Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS251 – Software Engineering Lecture 9: Software Design Slides by Mohammad El-Ramly, PhD

Similar presentations


Presentation on theme: "CS251 – Software Engineering Lecture 9: Software Design Slides by Mohammad El-Ramly, PhD"— Presentation transcript:

1 CS251 – Software Engineering Lecture 9: Software Design Slides by Mohammad El-Ramly, PhD http://www.acadox.com/join/563R9V

2 Lecture 9 Outline 1. What to Design 2. The Design Process 3. Why Design ? 4. Review of OOP 5. System Static View (Class Diagram) 6. Further topics:  Design Patterns  UI Design  Architecture

3 Course Contents We will cover as much of these as we can: Overview of Software Engineering ½ Week Software Disasters ½ Week Review of OOP1 Week Software Lifecycle and Software Engineering Processes 1 Week Requirements Engineering (SRS, use cases, storyboards, etc.) 1 Week Software Modeling and Analysis and UML3 Weeks Software Patterns1 Week Software Architecture 1 Week Software Construction1 Week Software Quality and Unit Testing 1 Week Software Configuration and Project Management1 Week

4 4 REQSoftware Requirements DESSoftware Design CSTSoftware Construction TSTSoftware Testing MNTSoftware Maintenance CNFSoftware Configuration Management MGTSoftware Engineering Management PRCSoftware Engineering Process TLSSoftware Engineering Tools and Methods QLYSoftware Quality SWEBOK’s Key 10 Knowledge Areas SWEBOK 2004 SWEBOK 2013 added 5 more KAs

5 Software Design Design is defined as both “the process of defining the architecture, components, interfaces, and other characteristics of a system or component” and “the result of [that] process.” Viewed as a process, software Software design is the activity in which software requirements are analyzed in order to produce a description of the software’s internal structure that will serve as the basis for its construction.

6 6 Design (Verb): Process of Design Design (Noun): Result of the Design Process, a blue print for the system to be developed Software Design Phase takes the ‘what’ part and produces the ‘how’ part; It takes system from ‘problem’ domain to ‘solution’ domain Software Design is perhaps the most critical factor affecting the quality of the system; it has a major impact on later phases particularly maintenance Software Design

7 Deriving a solution which satisfies software requirements Software Design

8

9 Software Construction The term software construction refers to the detailed creation of working, meaningful software through a combination of coding, verification, unit testing, integration testing, and debugging.

10 Sofwtare Testng Testing is performed to evaluate and improve product quality by identifying defects and problems. Software testing consists of the dynamic verification of a program’s behavior on a finite set of test cases, suitably selected from the usually infinite executions, against the expected behavior.

11

12 1. What to Design Program Structure and Components Internal / External Interfaces Data Types Algorithms User Interface Database

13

14 Problem understanding  Look at the problem from different angles to discover the design requirements. Identify one or more solutions  Evaluate possible solutions and choose the most appropriate depending on the designer's experience and available resources. Describe solution abstractions  Use graphical, formal or other descriptive notations to describe the components of the design. Repeat process for each identified abstraction until the design is expressed in primitive terms. 2. Stages of the Design Process

15 Phases of the Design Process

16

17 CS540 Software Design17 Lecture 2 Design methods provide guidelines on the choices to be made during the design process  Structured Methods,  Formal Methods and  Object-Oriented Methods Software Design Methods

18

19 19 Skip requirements engineering and design phases; Start writing code Code is what really matters !! 3. Programmer’s View: Let us code …..

20 20 Design is a waste of time We need to show something to the customer real quick We are judged by the amount of LOC/month We expect or know that the schedule is too tight Why is this programmer’s approach?

21 21 The longer you postpone coding, The sooner you’ll be finished However …….


Download ppt "CS251 – Software Engineering Lecture 9: Software Design Slides by Mohammad El-Ramly, PhD"

Similar presentations


Ads by Google