Using UML Patterns and Java ObjectOriented Software Engineering
Using UML, Patterns, and Java Object-Oriented Software Engineering Art for Chapter 6, System Design: Decomposing the System
Version 1 Version 2 Stairs Bath Master Bedroom Hallway Bath Entrance door Hallway Dining Study Bedroom 2 Kitchen Study Bedroom 2 Dining Entrance door Master Bedroom Hallway Dining Version 3 Bernd Bruegge & Allen H. Dutoit Bath Study Bedroom 2 Kitchen Stairs Entrance door N Master Bedroom Figure 6 -1, Example of iterative floor plan design. Three successive versions show we minimize walking distance and take advantage of sunlight. Object-Oriented Software Engineering: Using UML, Patterns, and Java 2
Figure 6 -2, The activities of system design. nonfunctional requirements Analysis dynamic model analysis object model System design goals subsystem decomposition Object design object design model Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 3
Figure 6 -3, Subsystem decomposition. System Part * Class Bernd Bruegge & Allen H. Dutoit * Subsystem Object-Oriented Software Engineering: Using UML, Patterns, and Java parts 4
Figure 6 -4, Subsystem decomposition for an accident management system. Dispatcher. Interface Field. Officer. Interface Notification Bernd Bruegge & Allen H. Dutoit Incident. Management Object-Oriented Software Engineering: Using UML, Patterns, and Java 5
Figure 6 -5, Example of reducing the couple of subsystems. Alternative 1: Direct access to the Database subsystem Resource. Management Incident. Management Map. Management Database Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 6
Figure 6 -5, Example of reducing the couple of subsystems (continued) Alternative 2: Indirect access to the Database through a Storage subsystem Resource. Management Incident. Management Map. Management Storage Database Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 7
Figure 6 -6, Decision tracking system. Decision. Subsystem Criterion assesses * * solvable. By Design. Problem * Bernd Bruegge & Allen H. Dutoit * based-on resolved. By Sub. Task Action. Item Alternative Decision Task implemented. By subtasks Object-Oriented Software Engineering: Using UML, Patterns, and Java 8
Figure 6 -7, Alternative subsystem decomposition for the decision tracking system of Figure 6 -6 Rationale. Subsystem Criterion assesses Alternative * * Design. Problem * solvable. By based-on resolved. By Decision Planning. Subsystem implemented. By Sub. Task * Action. Item Bernd Bruegge & Allen H. Dutoit Task subtasks Object-Oriented Software Engineering: Using UML, Patterns, and Java 9
Figure 6 -8, Subsystem decomposition of a system into three layers. Layer 1 (Top) A: Subsystem C: Subsystem B: Subsystem E: Subsystem Bernd Bruegge & Allen H. Dutoit F: Subsystem D: Subsystem Layer 2 G: Subsystem Layer 3 (Bottom) Object-Oriented Software Engineering: Using UML, Patterns, and Java 10
Application Level of abstraction Presentation Figure 6 -9, An example of closed architecture: the OSI model. Bernd Bruegge & Allen H. Dutoit Format Session Connection Transport Message Network Packet Data. Link Frame Physical Bit Object-Oriented Software Engineering: Using UML, Patterns, and Java 11
Application Object Presentation CORBA Session Transport Network Socket TCP/IP Data. Link Physical Ethernet Wire Figure 6 -10, An example of closed architecture. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 12
Figure 6 -11, An example of open architecture: the Swing user interface library on the X 11 platform. Application Swing AWT Xlib Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 13
Figure 6 -12, Repository architectural style. Repository Subsystem Bernd Bruegge & Allen H. Dutoit create. Data() set. Data() get. Data() search. Data() Object-Oriented Software Engineering: Using UML, Patterns, and Java 14
Figure 6 -13, An instance of the Repository architectural style. Compiler Syntactic. Analyzer Semantic. Analyzer Optimizer Code. Generator Lexical. Analyzer Repository Parse. Tree Source. Level. Debugger Bernd Bruegge & Allen H. Dutoit Symbol. Table Syntactic. Editor Object-Oriented Software Engineering: Using UML, Patterns, and Java 15
Figure 6 -14, Model/View/Controller architectural style. Controller initiator 1 * repository Model View Bernd Bruegge & Allen H. Dutoit subscriber 1 notifier * Object-Oriented Software Engineering: Using UML, Patterns, and Java 16
Figure 6 -15, An example of MVC architectural style. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 17
Figure 6 -16, Sequence of events in the Model/View/Control architectural style. 2: enter. New. File. Name(file, new. Name) 3: set. Name(new. Name) : Controller : Model 1: subscribe. To. File. Events(file) 5: get. Name() : Info. View 4: notify. Subscribed. Views(file) : Folder. View 1: subscribe. To. File. Events(file) 5: get. Name() Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 18
Figure 6 -17, Client/server architectural style. Server Client Bernd Bruegge & Allen H. Dutoit * requester * provider service 1() service 2() … service. N() Object-Oriented Software Engineering: Using UML, Patterns, and Java 19
Figure 6 -18, The World Wide Web as an instance of the client/server architecture. netscape: Web. Browser iexplorer: Web. Browser lynx: Web. Browser www 12. in. tum. de: Web. Server www. cs. cmu. edu: Web. Server mosaic: Web. Browser Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 20
Figure 6 -19, Peer-to-peer architectural style. Peer service 1() service 2() … service. N() Bernd Bruegge & Allen H. Dutoit requester * * provider Object-Oriented Software Engineering: Using UML, Patterns, and Java 21
Figure 6 -20, An example of peer-to-peer architecture. application 1: DBUser 1. update. Data database: DBMS application 2: DBUser Bernd Bruegge & Allen H. Dutoit 2. change. Notification Object-Oriented Software Engineering: Using UML, Patterns, and Java 22
Figure 6 -21, Three-tier architectural style. Interface Application Logic Storage Bernd Bruegge & Allen H. Dutoit Form Connection Query Object-Oriented Software Engineering: Using UML, Patterns, and Java 23
Figure 6 -22, Four tier architectural style. Presentation Client Web. Browser Presentation Server Form Application Logic Storage Bernd Bruegge & Allen H. Dutoit Connection Query Object-Oriented Software Engineering: Using UML, Patterns, and Java 24
Figure 6 -23, Pipe and filter architectural style. * input output 1 Filter Pipe * output Bernd Bruegge & Allen H. Dutoit input 1 Object-Oriented Software Engineering: Using UML, Patterns, and Java 25
Figure 6 -24, An instance of the pipe and filter architectural style. % ps auxwww | grep dutoit | sort | more dutoit 19737 0. 2 1. 6 1908 1500 pts/6 O 15: 24: 36 0: 00 -tcsh dutoit 19858 0. 2 0. 7 816 580 pts/6 S 15: 38: 46 0: 00 grep dutoit 19859 0. 2 0. 6 812 540 pts/6 O 15: 38: 47 0: 00 sort ps Bernd Bruegge & Allen H. Dutoit grep sort Object-Oriented Software Engineering: Using UML, Patterns, and Java more 26
Figure 6 -27, Analysis model for the My. Trip route planning and execution. Route. Assistant Planning. Service Trip Location Direction Destination Crossing Segment Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 27
Figure 6 -28, Initial subsystem decomposition for My. Trip. Routing. Subsystem Planning. Subsystem Route. Assistant Planning. Service Trip Location Direction Destination Crossing Segment Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 28
Figure 6 -29, An example of the Facade pattern. Compiler compile(s) Code. Generator Lexer create() get. Token() Optimizer Parser create() generate. Parse. Tree() Parse. Node create() Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 29
- Slides: 29