Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz

Similar presentations


Presentation on theme: "Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz"— Presentation transcript:

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

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 Design Requirements Code-Implementation
product designer Requirements engineering designer Design Code-Implementation product designer Test Case Design Testing Builds Maintenance (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
Systems Engineering Requirements Analysis Software Design Implementation Testing Deployment Evolution The process/activities of developing and evolving software

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

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

11 The Software Lifecycle
“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.” The Software Lifecycle Software Design Requirements Analysis Implementation Systems Engineering Define software features Identify needs, problems and allocate roles Testing Deployment 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 Evolution

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

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

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

15 The Software Lifecycle
Software Design Create code Requirements Analysis Implementation Create blueprint Systems Engineering Define software features Identify needs, problems and allocate roles Testing Deployment Uncover errors Evolution Managing the software Configuration management Controlling change as software evolves Technical support Software lifecycle activities Evolution 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 "Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz"

Similar presentations


Ads by Google