Presentation is loading. Please wait.

Presentation is loading. Please wait.

Eng. Mohammed Timraz Electronics & Communication Engineer University of Palestine Faculty of Engineering and Urban planning Software Engineering Department.

Similar presentations


Presentation on theme: "Eng. Mohammed Timraz Electronics & Communication Engineer University of Palestine Faculty of Engineering and Urban planning Software Engineering Department."— Presentation transcript:

1 Eng. Mohammed Timraz Electronics & Communication Engineer University of Palestine Faculty of Engineering and Urban planning Software Engineering Department Software Modeling SWE5441 Lecture 3

2 Two Types of Design Models  Static model: Represents the parts, relationships, and attributes that do not change (during execution of the software )  Dynamic model: Represents what happens during the execution of the software.

3 Software Product Designer & Engineering Designer  A software product designer is concerned with: Product features and capabilities. Visually appealing and easy to use user interfaces. Fitting into users’ business processes and operability. Product packaging. ** ( a closer tie to what is specified in the product requirements )  A software engineering designer is concerned with: Individual functionalities and performance. Internal structure of the software system. Individual programs and their interfaces & interactions. The data flow through the software system (including inputs and outputs). System maintenance and evolution. ** (a closer tie to the internal technical design ) (similarities and differences?)

4 Software Design Team  We Need both: Software Product Designer. Software Engineering Designer.  Different sets of skills needed : Product Designer: knowledge of: User interface, communicating the requirements/product design, marketing, business processes, applications domain knowledge Engineering Designer: knowledge of: Architecture, programming, database and data structures, development platforms, networking, operating systems.

5 Software Design Requirements Design Code-Implementation Test Case Design Builds Testing Maintenance product designer engineering designer product designer (product and engineering redesign)

6 Software Product Design.vs. Software Engineering Design  Product Design Activity: output is a software requirements specification document. Answers mostly “what” the user and customer needs and wants. formulates the problem in an organized way : Functionalities & features Looks and interfaces Constraints  Engineering Design Activity: output is a design specification document Answers mostly “how” the software will be put together to respond to the users’ needs and wants. formulates the solution in an organized way. High level software: –Components and How they interact. –Rationale behind your design decisions ( * my addition ) Low level specifications of programs and data and their behavior organize: relating these

7 Is There a Design Method?  There is no ONE design method in the form of a “recipe” for design.  There are several methods that all speak to: Design process: a set of steps that starts with “some inputs” and transform that input to some output and eventually results in a design specification (e.g. structured method, OO-method, etc.). Design notation: a set of symbolic representations and how the symbols are to be used (e.g. UML, etc.). Design “heuristics”: a set of guiding rules (e.g. low coupling and high cohesion)

8 The Software Lifecycle The process/activities of developing and evolving software Systems Engineering Requirements Analysis Software Design Implementation Testing Deployment Evolution

9 The Software Lifecycle Systems Engineering –Identify needs/problems –Allocation of roles Hardware Procedures Software –Feasibility studies Systems Engineering Requirements Analysis Software Design Implementation Testing Deployment Evolution

10 The Software Lifecycle Requirements Analysis –Define goals, objectives, features of target software Requirements Analysis Software Design Implementation Testing Deployment Evolution Systems Engineering Identify needs, problems and allocate roles

11 The Software Lifecycle Software design –Creating a blueprint for building the software Architectural design Subsystem design Detailed design Procedural Design User Interface Design Database Design Data Structures Design Test case design Requirements Analysis Software Design Implementation Testing Deployment Evolution Systems Engineering Identify needs, problems and allocate roles Define software features “Up to 70% of all faults detected in large-scale software projects are introduced in requirements and design. Detecting the causes of those faults early may reduce their resulting costs by a factor of 100 or more.”

12 The Software Lifecycle Implementation –Creating the finished product – the program Coding –Writing code for the classes and operations Generate object code Create Test cases Create user manuals Requirements Analysis Software Design Implementation Testing Deployment Evolution Systems Engineering Identify needs, problems and allocate roles Define software features Create blueprint

13 The Software Lifecycle Testing –Determining if the software has errors/fulfils its requirements Test planning Unit testing Subsystem testing Integration testing Regression testing Test case design Requirements Analysis Software Design Implementation Testing Deployment Evolution Systems Engineering Identify needs, problems and allocate roles Define software features Create blueprint Create code

14 The Software Lifecycle Deployment –Making the software available for use Deployment/installation planning Develop documentation Hardware configuration Installation Software distribution Training Requirements Analysis Software Design Implementation Testing Deployment Evolution Systems Engineering Identify needs, problems and allocate roles Define software features Create blueprint Create code Uncovering errors

15 The Software Lifecycle Evolution –Managing the software Configuration management –Controlling change as software evolves Technical support Software lifecycle activities Requirements Analysis Software Design Implementation Testing Deployment Evolution Systems Engineering Identify needs, problems and allocate roles Define software features Create blueprint Create code Uncover errors Make software available for use

16 Inputs To Software Design  Software requirements specification Describes WHAT system shall do not HOW. External view of system to be developed.  Environmental constraints Hardware, language, system usage.  Design constraints Design method. Design notation.

17 Outputs From Software Design  Architectural Design Overall description of software structure, Textual and Graphical. Specification of software components and their interfaces. Data Design.  Detailed Design of each component Internal logic. Internal data structures.  Design decisions made Design rationale. Traces to requirements.

18 Software Design Process  Software life cycle models: Waterfall: limitations of Waterfall Model Incremental: evolutionary prototyping Exploratory: throwaway prototyping Spiral model: risk driven process model

19 Waterfall Model

20 Software Life Cycle Model (Definition)  Requirements Analysis and Specification Analysis of user's problem. Specification of "what" system shall provide user.  Architectural Design Specification of "how" system shall be structured into components. Specification of interfaces between components. Data Design.

21 Software Life Cycle Model (Construction)  Detailed Design Internal design of individual components. Design of logic and data structures.  Coding Map component design to code.  Unit Testing Test individual components.

22 Software Life Cycle Model (Integration and Test)  Integration Testing Gradually combine components and test combinations.  System Testing Test of entire system against software requirements.  Acceptance Test Test of entire system by user prior to acceptance.

23 Software Life Cycle Model (Maintenance)  Modification of software system after installation and acceptance Fix software errors. Improve performance. Address changes in user requirements. Often implies significant software redesign

24 Limitations of Waterfall Model  Does not show iteration in software life cycle.  Does not show overlap between phases.  Software requirements are tested late in life cycle.  Operational system available late in life cycle.

25 Prototyping During Requirements Phase Problem  Software requirements are tested late in life cycle. Solution  Use throw-away prototyping. Help ensure requirements are understood Also first attempt at designing system –Design of key file and data structures –Design of user interface –Early design tradeoffs

26

27

28

29

30

31

32 Spiral Process Model (SPM) SPM consists of four main activities that are repeated for each cycle: Defining objectives, alternatives and constraints Analyzing risks Developing and verifying product Spiral planning  Number of cycles is project specific  Risk driven process Analyze risks in second quadrant

33

34 Design Concepts

35

36

37

38

39

40


Download ppt "Eng. Mohammed Timraz Electronics & Communication Engineer University of Palestine Faculty of Engineering and Urban planning Software Engineering Department."

Similar presentations


Ads by Google