chapter 6
play

Chapter 6 Using UML, Patterns, and Java System Design: Decomposing - PDF document

Object-Oriented Software Engineering Chapter 6 Using UML, Patterns, and Java System Design: Decomposing the System Podcast Ch06-01 Title : Introduction to System Design Description : Introduction to System Design; Design Goals and


  1. Object-Oriented Software Engineering Chapter 6 Using UML, Patterns, and Java System Design: Decomposing the System Podcast Ch06-01 ♦ Title : Introduction to System Design ♦ Description : Introduction to System Design; Design Goals and Tradeoffs; Finding Design Patterns ♦ Participants : Barry Kurtz (instructor); Brandon Winters, Sara Hyde, Cheng Vue (students) ♦ Textbook : Object-Oriented Software Engineering: Using UML, Patterns and Java by Bernd Bruegge and Allen H. Dutoit 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 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 3 Page 1

  2. System Design 1. Design Goals 8. Boundary Definition Conditions Trade-offs Initialization Termination Failure 2. System Decomposition Layers/Partitions 7. Software Cohesion/Coupling Control Monolithic Event-Driven 3. Concurrency Threads Conc. Processes 6. Global Identification of 4. Hardware/ 5. Data Threads Software Resource Handling Management Mapping Access control Persistent Objects Security Special purpose Files Buy or Build Trade-off Databases Allocation Data structure Connectivity Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 4 How to use the results from the RAD ♦ Nonfunctional requirements => � Activity 1: Design Goals Definition ♦ 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 5 List of Design Goals � Good documentation ♦ Reliability � Well-defined interfaces ♦ Modifiability � User-friendliness ♦ Maintainability � Reuse of components ♦ Understandability � Rapid development ♦ Adaptability � Minimum # of errors ♦ Reusability ♦ Efficiency � Readability ♦ Portability � Ease of learning ♦ Traceability of requirements � Ease of remembering ♦ Fault tolerance � Ease of use ♦ Backward-compatibility � Increased productivity ♦ Cost-effectiveness � Low-cost ♦ Robustness � Flexibility ♦ High-performance Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 6 Page 2

  3. Relationship Between Design Goals End User Low cost Functionality User-friendliness Increased Productivity Backward-Compatibility Ease of Use Runtime Traceability of requirements Ease of learning Efficiency Rapid development Fault tolerant Flexibility Robustness Reliability Portability Good Documentation Client (Customer, Sponsor) Minimum # of errors Modifiability, Readability Reusability, Adaptability Developer/ Well-defined interfaces Maintainer Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 7 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 8 Exercise ch06-01-01 Give a particular example that you are familiar with for each of the tradeoffs listed on the previous slide. Don’t repeat the examples given by your classmates in their discussion. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 9 Page 3

  4. Nonfunctional Requirements may give a clue for the use of Design Patterns ♦ Read the problem statement again ♦ Use textual clues (similar to Abbot’s technique in Analysis) to identify design patterns ♦ Text: “manufacturer independent”, “device independent”, “must support a family of products” � Abstract Factory Pattern ♦ Text: “must interface with an existing object” � Adapter Pattern ♦ Text: “must deal with the interface to several systems, some of them to be developed in the future”, “ an early prototype must be demonstrated” � Bridge Pattern Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 10 Textual Clues in Nonfunctional Requirements ♦ Text: “complex structure”, “must have variable depth and width” � Composite Pattern ♦ Text: “must interface to an set of existing objects” � Façade Pattern ♦ Text: “must be location transparent” � Proxy Pattern ♦ Text: “must be extensible”, “must be scalable” � Observer Pattern ♦ Text: “must provide a policy independent from the mechanism” � Strategy Pattern Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 11 Page 4

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend