©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 1 Design.

Slides:



Advertisements
Similar presentations
Software Design Fundamentals
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
Design Concepts and Principles
Design Phase What’s design?
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman.1.
Design Concepts And Principles Software Design -- An iterative process transforming requirements into a “blueprint” for constructing the software.
Component-Level Design
Chapter 14: Design Method --- data and architectural design Design -- A multistep process in which representations of data structure, program structure,
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Chapter 9 Design Engineering
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Chapter 10 Architectural Design
Design Issues Practice: A generic View Design Principles.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
1 COSC 4406 Software Engineering COSC 4406 Software Engineering Haibin Zhu, Ph.D. Dept. of Computer Science and mathematics, Nipissing University, 100.
Chapter 9 Design Engineering
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Slide 1 Architectural Design.
 2004 by SEC Chapter 4 Software Design. 2  2004 by SEC Chapter 4 Software Design 4.1 Design Fundamentals 4.2 Design Method 4.3 Architecture Design
SOFTWARE DESIGN.
SOFTWARE DESIGN Design Concepts Design is a meaningful engineering representation of something that is to be built It can be traced to a customer’s 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.
CSEB233: Fundamentals of Software Engineering Software Design.
Drexel University CS 451 Software Engineering Winter Yuanfang Cai Room 104, University Crossings
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Design Concepts and Principles Instructor: Dr. Jerry Gao.
1 Chapter 9 Design Engineering. 2 Analysis Model -> Design Model.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Computing and SE II Chapter 6: Software Design
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Software Design: Principles, Process, and Concepts Getting Started with Design.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Chapter 1: Design Concepts Prepared by Mohd Kamir Yusof 1.
Software Design Process
1 Supplementary Slides for Software Engineering: A Practitioner's Approach, 5/e Supplementary Slides for Software Engineering: A Practitioner's Approach,
CS 3610: Software Engineering – Spring 2009 Dr. Hisham Haddad – CSIS Dept. Chapter 9 Design Engineering Highlights of Software Design Concepts and Principles.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 9: Design Engineering Software Engineering: A Practitioner’s Approach, 6/e Chapter.
1 Chapter 16 Component-Level Design. 2 Component-Level Design  the closest design activity to coding  the approach: review the design description for.
Software Engineering B.Tech IT/II Sem-II Term: Unit-4 PPT SLIDES Text Books:1.Software Engineering, A practitioner’s approach Roger s. Pressman.
CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad Chapter 9 Class will start momentarily. Please Stand By … CS 8532: Advanced Software Engineering.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 9: Design Engineering Software Engineering: A Practitioner’s Approach, 6/e Chapter.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Chapter : 8 Design Concepts
February 19, February 19, 2016February 19, 2016February 19, 2016 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific.
CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Chapter 9 Design Engineering Highlights of Software Design Concepts and Principles.
Basic Characteristics of Object-Oriented Systems
DESIGN PROCESS AND CONCEPTS. Design process s/w design is an iterative process through which requirements are translated into a “blueprint” for constructing.
Design Engineering 1. Analysis  Design 2 Characteristics of good design 3 The design must implement all of the explicit requirements contained in the.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Design Concepts ch-8
CompSci 280 S Introduction to Software Development
Design engineering Prepared By:Jay A.Dave..
Design and Implementation
Software Engineering: A Practitioner’s Approach, 6/e Chapter 9 Design Engineering copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For.
Lecture 9- Design Concepts and Principles
Software Engineering: A Practitioner’s Approach, 6/e Chapter 11 Component-Level Design copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Software Quality Engineering
Design Concepts.
CIS 375 Bruce R. Maxim UM-Dearborn
Component-Level Design
Component-Level Design
Object-Oriented Design
Lecture 9- Design Concepts and Principles
Chapter 9 Design Engineering
CS 8532: Advanced Software Engineering
Design Engineering.
COSC 4406 Software Engineering
Presentation transcript:

©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 1 Design

©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 2 Analysis -> Design Procedural design Architectural design Data design Interface design Detailed DFDs; Flowchart; N-S chart; pdl; component level designs Structure Chart UML class hierarchy Class diagrams Structural components and procedural description of software Layout and interaction mechanisms for human-machine interaction; Internal and external interfaces Relationships among major structural components of program; Patterns and styles Information domain model created during analysis data structures and database model Scenario-based diagrams

©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 3 Design Principles l Design not equal to coding!!! l Design should: Consider alternative approaches Be traceable to analysis model Be structured to accommodate change Degrade gently Assess for quality while creating design Be reviewed Design derived from repeatable method driven by information in req. analysis phase.

©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 4 Fundamental Concepts of Good Design l Abstraction Solution stated in problem environment Data, procedure, control l Refinement: Top-down design strategy l Software Architecture Hierarchical structure of procedural components

©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 5 Concepts of Good Design l Modularity Easier to solve problems when broken up (logical partition) “size” based on independent functional characteristics (high cohesion and low coupling) Lead to interfaces with reduced complexity

©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 6 Functional Independence

©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 7 A structure chart showing data coupling

©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 8 Concepts of Good Design cont. l Information Hiding Controlled interfaces l Use of patterns that convey essence of a proven design solution l Refactoring – a reorganization technique that simplifies the design

©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 9 Refactoring l Fowler [FOW99] defines refactoring as: " Refactoring is the process of changing a software system in such a way that it does not alter the external behavior of the code [design] yet improves its internal structure.” l When software is refactored, the existing design is examined for redundancy unused design elements inefficient or unnecessary algorithms poorly constructed or inappropriate data structures or any other design failure that can be corrected to yield a better design.

©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 10 Design Patterns l Best designers have an uncanny ability to see patterns and combine them to create a solution l A description of a design pattern may also consider Design forces describe non-functional requirements (e.g., ease of maintainability, portability) associated with the software l The pattern characteristics (classes, responsibilities, and collaborations) indicate the attributes of the design that may be adjusted to enable the pattern to accommodate a variety of problems.

©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 11 Frameworks l A framework is not an architectural pattern, but rather a skeleton with a collection of “plug points” (or hooks and slots) that enable it to be adapted to a specific problem domain. l Note that: Design patterns are more abstract, less specialized and have smaller architectural elements than frameworks. In an OO context, a framework is a collection of collaborating classes

©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 12 Assessment of Design Notations l Design notations should Support modularity Be simple Be easy to edit Be machine readable Maintainable Enforce structure Represent data Goal of automatic verification “code-to” ability

©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 13 Design Post-Processing l Processing narratives for each module l Interface description for each module l Local/global data structures defined l All design restrictions/limitations noted l Conduct design review l Consider optimization