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

Slides:



Advertisements
Similar presentations
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software processes 2.
Advertisements

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Chapter 2 – Software Processes
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Using UML, Patterns, and Java Object-Oriented Software Engineering Royce’s Methodology Chapter 16, Royce’ Methodology.
Software Engineering COMP 201
Software Testing and Quality Assurance
Software Testing and Quality Assurance
Algorithms and Problem Solving-1 Algorithms and Problem Solving.
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
Algorithms and Problem Solving. Learn about problem solving skills Explore the algorithmic approach for problem solving Learn about algorithm development.
Analysis Stage (Phase I) The goal: understanding the customer's requirements for a software system. n involves technical staff working with customers n.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Process Models.
1 SWE Introduction to Software Engineering Lecture 5.
1 Lecture 5 Introduction to Software Engineering Overview  What is Software Engineering  Software Engineering Issues  Waterfall Model  Waterfall Model.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
1/31 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2005] January 22, 2009.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
L ECTURE 2 S OFTWARE P ROCESSES 1. O BJECTIVES To describe outline process models for requirements engineering, software development, testing and evolution.
1 Software Testing and Quality Assurance Lecture 1 Software Verification & Validation.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Introduction To System Analysis and design
Software Waterfall Life Cycle Requirements Construction Design Testing Delivery and Installation Operations and Maintenance Concept Exploration Prototype.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Understand Application Lifecycle Management
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Software Processes lecture 8. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
Chapter 2: Software Process Omar Meqdadi SE 2730 Lecture 2 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 1 Software Processes l Coherent sets of activities for specifying, designing,
CS540 Software Design Lecture 2 1 Lecture 2: Software Design Methods Anita S. Malik Adapted from Budgen (2003) Chapter 3 and Schach.
Introduction To System Analysis and Design
Sommerville, Mejia-Alvarez, 2009Software Engineering, Slide 1 Software Design u Deriving a solution which satisfies software requirements.
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
Software Design Deriving a solution which satisfies software requirements.
Chapter 7 System models.
Lecture 7: Requirements Engineering
Lecture 3 Uses Cases Topics UML Use Cases pop quiz Readings: Chapter 3 January 24, 2008 CSCE 492 Software Engineering.
CS 4310: Software Engineering Lecture 4 System Modeling The Analysis Stage.
Notes of Rational Related cyt. 2 Outline 3 Capturing business requirements using use cases Practical principles  Find the right boundaries for your.
1 © 2007 T. Horton CS 441, Summer 2007 Principles of SW Design Design Patterns in Context – Doing design: can we say more about how to go about it? Readings:
CEN5011, Fall CEN5011 Software Engineering Dr. Yi Deng ECS359, (305)
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
Software Engineering Emphasis for Engineering Computing Courses William Hankley Computing & Information Sciences Kansas State University.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Lecture 14 22/10/15. The Object-Oriented Analysis and Design  Process of progressively developing representation of a system component (or object) through.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Software Engineering, 8th edition. Chapter 4 1 Courtesy: ©Ian Sommerville 2006 FEB 13 th, 2009 Lecture # 5 Software Processes.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Design and implementation Chapter 7 – Lecture 1. Design and implementation Software design and implementation is the stage in the software engineering.
Chapter 7 Lecture 1 Design and Implementation. Design and implementation Software design and implementation is the stage in the software engineering process.
RUP RATIONAL UNIFIED PROCESS Behnam Akbari 06 Oct
1 Process activities. 2 Software specification Software design and implementation Software validation Software evolution.
Design Concepts ch-8
Elaboration popo.
Chapter3:Software Processes
Software Engineering Lecture 4 System Modeling The Analysis Stage.
Lecture 3 Prescriptive Process Models
UNIT 1.
About the Presentations
Software Processes.
Algorithms and Problem Solving
Software Design Methodologies and Testing
Presentation transcript:

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

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

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 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

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 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

Deriving a solution which satisfies software requirements Software Design

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.

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.

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

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

Phases of the Design Process

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

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

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 The longer you postpone coding, The sooner you’ll be finished However …….