上游充通大学 SHANGHAI JIAO TONG UNIVERSITY 6.System Design: Decomposing the System 强 w 春 SHANG 1日日G
6. System Design: Decomposing the System
上游充通大¥ Outline SHANGHAI JIAO TONG UNIVERSITY Design System Design Activities Determine Design Goals System Design Concepts © Software Architecture Pattern Software Engineering
Software Engineering Outline Design System Design Activities Determine Design Goals System Design Concepts Software Architecture Pattern
上游充通大¥ SHANGHAI JIAO TONG UNIVERSITY 1.1 Design Methodology "There are two ways of constructing a software design:One way is to make it so simple that there are obviously no deficiencies,and the other way is to make it so complicated that there are no obvious deficiencies. C.A.R.Hoare Software Engineering
Software Engineering 1.1 Design Methodology “There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies.” - C.A.R. Hoare
上大名.2 Why is Design so Difficult? SHANGHAI JIAO TONG UNIVERSITY Analysis:Focuses on the application domain Design:Focuses on the solution domain Design knowledge is a moving target The reasons for design decisions are changing very rapidly Halftime knowledge in software engineering:About 3-5 years What I teach today will be out of date in 3 years Cost of hardware rapidly sinking “Design window": Time in which design decisions have to be made Technique Time-boxed prototyping Software Engineering
Software Engineering 1.2 Why is Design so Difficult? Analysis: Focuses on the application domain Design: Focuses on the solution domain • Design knowledge is a moving target • The reasons for design decisions are changing very rapidly • Halftime knowledge in software engineering: About 3-5 years • What I teach today will be out of date in 3 years • Cost of hardware rapidly sinking “Design window”: • Time in which design decisions have to be made Technique • Time-boxed prototyping
上充大1.3 The Purpose of System Design SHANGHAI JIAO TONG UNIVERSITY Bridging the gap between Problem desired and existing system in a manageable way © Use Divide and Conquer New We model the new system to be developed as a set of System subsystems Existing System Software Engineering
Software Engineering 1.3 The Purpose of System Design Bridging the gap between desired and existing system in a manageable way Use Divide and Conquer • We model the new system to be developed as a set of subsystems Problem Existing System New System
上游充通大学 SHANGHAI JIAO TONG UNIVERSITY 1.4 Viewpoint Change Do the right Do the things things right What How Software Engineering
Software Engineering 1.4 Viewpoint Change Do the right things Do the things right What How
上游充通大¥ SHANGHAI JIAO TONG UNIVERSITY 1.5 Input and Output A set of nonfunctional Design goals requirements 国 Software architecture 国 use case model Boundary use cases sequence diagrams Software Engineering
Software Engineering 1.5 Input and Output A set of nonfunctional requirements use case model sequence diagrams Design goals Software architecture Boundary use cases
上克通大1.6 Knowledge needed for System Design SHANGHAI JIAO TONG UNIVERSITY System Design 1.Design Goals Defi nition 8.Boundary Trade-offs Conditions Initialization T ermination 2.System Failure Decomposition Layers/Partitions Cohesion/Coupling 7.Software Control Monolithic Event-Driven 3.Concurrency Threads Identification of 4.Hardware/ 6.Global Conc.Processes Threads Softwae 5.Data Mapping Management Resource Handling Access control Special purpose Persistent Objects Buy or Build Trade-off Files Security Allocation Databases Data structure Connectivity Software Engineering
Software Engineering 1.6 Knowledge needed for System Design System Design 2. System Layers/Partitions Cohesion/Coupling 5. Data 1. Design Goals Defi nition T rade-of fs 4. Hardware/ Special purpose Software Buy or Build Trade-off Allocation Connectivity 3. Concurrency Data structure Persistent Objects Files Databases Management Access control Security 6. Global Resource Handling 8. Boundary Conditions Initialization T ermination Failure Decomposition Mapping 7. Software Control Identification of Threads Monolithic Event-Driven Threads Conc. Processes