Using UML Patterns and Java Object Oriented Software Engineering Chapter 6 System Design Decomposing the System Design 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 Which would be more difficult Bernd Bruegge Allen H Dutoit Object Oriented Software Engineering Using UML Patterns and Java 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 Bernd Bruegge Allen H Dutoit The evolutionary rapid development process focuses on the use of small artisan based teams integrating software and systems engineering disciplines working multiple often parallel short duration timeboxes with frequent customer interaction reuse of architectural components Object Oriented Software Engineering Using UML Patterns and Java 3 Overview System Design I Today 0 Overview of System Design 1 Design Goals 2 Subsystem Decomposition System Design II Addressing Design Goals next lecture 3 Concurrency More Self reading 4 Hardware Software Mapping 5 Persistent Data Management 6 Global Resource Handling and Access Control 7 Software Control 8 Boundary Conditions Bernd Bruegge Allen H Dutoit Object Oriented Software Engineering Using UML Patterns and Java 4 System Design System Design 1 Design Goals 8 Boundary Conditions De nition Trade offs Initialization Termination Failure 2 System Decomposition 7 Software Control Layers Partitions Cohesion Coupling 3 Concurrency Identi cation of Threads 4 Hardware Software Mapping 5 Data Management Special purpose Buy or Build Trade of Allocation Connectivity Bernd Bruegge Allen H Dutoit Persistent Objects Files Databases Data structure Monolithic Event Driven Threads Conc Processes 6 Global Resource Handling Access control Security Object Oriented Software Engineering Using UML Patterns and Java 5 How to use the results from the Requirements Analysis for System Design Nonfunctional requirements Activity 1 Design Goals De nition Functional model Activity 2 System decomposition Selection of subsystems based on functional requirements cohesion and coupling Object model Activity 4 Hardware software mapping Activity 5 Persistent data management Dynamic model Activity 3 Concurrency Activity 6 Global resource handling Activity 7 Software control Subsystem Decomposition Activity 8 Boundary conditions Bernd Bruegge Allen H Dutoit Object Oriented Software Engineering Using UML Patterns and Java 6 List of Design Goals Reliability Modifiability Maintainability Understandability Adaptability Reusability Efficiency Portability Traceability of requirements Fault tolerance Backward compatibility Cost effectiveness Robustness High performance Good documentation Well defined interfaces User friendliness Reuse of components Rapid development Minimum of errors Readability Ease of learning Ease of remembering Ease of use Increased productivity Low cost Flexibility Are these exhaustive Anything else What do we do with all these Bernd Bruegge Allen H Dutoit Object Oriented Software Engineering Using UML Patterns and Java 7 How do we get the Design Goals Let s look at a small example Current Situation Computers must be used in the office Why Problem What we want A computer that can be used in mobile situations What are the technical terms describing the two Bernd Bruegge Allen H Dutoit Object Oriented Software Engineering Using UML Patterns and Java 8 Identify Current Technology Constraints Direction where the user looks is irrelevant Single Output Device Fixed Network Connection Location of user does not matter Precise Input Bernd Bruegge Allen H Dutoit Object Oriented Software Engineering Using UML Patterns and Java 9 Generalize Constraints using Technology Enablers Direction where the user looks is irrelevant relevant Single Output Device Multiple Output Devices Fixed Network Dynamic Network Connection Location of user does not Location based matter PreciseInput Input Vague Any concrete scenarios Bernd Bruegge Allen H Dutoit Object Oriented Software Engineering Using UML Patterns and Java 10 Establish New Design Goals Mobile Network Connection Multiple Output Devices Location Based Multimodal Input Users Gaze Users Location Vague input Are these Requirements or Design Bernd Bruegge Allen H Dutoit Object Oriented Software Engineering Using UML Patterns and Java 11 Sharpen the Design Goals Location based input Input depends on user location Input depends on the direction where the user looks egocentric systems Multi modal input The input comes from more than one input device Dynamic connection Contracts are only valid for a limited time Is there a possibility of further generalizations Example location can be seen as a special case of context User preference is part of the context Interpretation of commands depends on context Bernd Bruegge Allen H Dutoit Object Oriented Software Engineering Using UML Patterns and Java 12 Relationship Between Design Goals End User Low cost Increased Productivity Backward Compatibility Traceability of requirements Rapid development Flexibility Client Customer Sponsor Nielson Usability Engineering MMK HCI Rubin Task Analysis Runtime Efficiency Reliability Portability Good Documentation Minimum of errors Modifiability Readability Reusability Adaptability Well defined interfaces What does Reliability mean Bernd Bruegge Allen H Dutoit Functionality User friendliness Ease of Use Ease of learning Fault tolerant Robustness Object Oriented Software Engineering Using UML Patterns and Java Developer Maintainer 13 Typical Design Trade offs Functionality vs Usability Cost vs Robustness Efficiency vs Portability Rapid development vs Functionality Cost vs Reusability Backward Compatibility vs Readability Bernd Bruegge Allen H Dutoit Object Oriented Software Engineering Using UML Patterns and Java 14 Section 2 System Decomposition Subsystem UML Package Collection of classes associations operations events and constraints that are interrelated Seed for subsystems UML Objects and Classes Subsystem Service Group of operations
View Full Document
Unlocking...