Download presentation
Presentation is loading. Please wait.
Published byColin Davis Modified over 9 years ago
1
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 1 Design
2
©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
3
©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.
4
©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
5
©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
6
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 6 Functional Independence
7
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 7 A structure chart showing data coupling
8
©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
9
©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.
10
©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.
11
©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
12
©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
13
©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
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.