Presentation is loading. Please wait.

Presentation is loading. Please wait.

Using UML, Patterns, and Java Object-Oriented Software Engineering Art for Chapter 6, System Design: Decomposing the System.

Similar presentations


Presentation on theme: "Using UML, Patterns, and Java Object-Oriented Software Engineering Art for Chapter 6, System Design: Decomposing the System."— Presentation transcript:

1 Using UML, Patterns, and Java Object-Oriented Software Engineering Art for Chapter 6, System Design: Decomposing the System

2 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 2 N Bedroom2 Master Bedroom Dining Hallway Stairs Bath Kitchen Study Bath Kitchen Master Bedroom Dining Hallway Stairs Entrance door Master Bedroom Bedroom2 Dining Hallway Stairs Entrance door Study Bath Kitchen Bedroom2 Entrance door Version 1 Version 2 Version 3 Figure 6-1, Example of iterative floor plan design. Three successive versions show how we minimize walking distance and take advantage of sunlight.

3 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 3 Figure 6-2, The activities of system design. System design Object design object design model design goals subsystem decomposition Analysis analysis object model dynamic model nonfunctional requirements

4 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 4 Class parts * System Part * Subsystem Figure 6-3, Subsystem decomposition.

5 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 5 Figure 6-4, Subsystem decomposition for an accident management system. Notification IncidentManagement FieldOfficerInterfaceDispatcherInterface

6 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. MapManagement IncidentManagement Database ResourceManagement Alternative 1: Direct access to the Database subsystem

7 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 7 Figure 6-5, Example of reducing the couple of subsystems (continued) MapManagement IncidentManagement Storage ResourceManagement Database Alternative 2: Indirect access to the Database through a Storage subsystem

8 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 8 Alternative Decision Criterion subtasks * SubTask ActionItem DesignProblem Task assesses solvableBy resolvedBy based-on * ** implementedBy DecisionSubsystem Figure 6-6, Decision tracking system.

9 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 9 subtasks * assesses solvableBy resolvedBy based-on * ** implementedBy RationaleSubsystem PlanningSubsystem CriterionAlternative Decision DesignProblem SubTask ActionItem Task Figure 6-7, Alternative subsystem decomposition for the decision tracking system of Figure 6-6

10 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 10 F:Subsystem E:Subsystem G:Subsystem D:SubsystemC:Subsystem B:Subsystem A: Subsystem Layer 1 (Top) Layer 2 Layer 3 (Bottom) Figure 6-8, Subsystem decomposition of a system into three layers.

11 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 11 Application Presentation Session Transport Network DataLink Physical Frame Packet Bit Connection Format Message Level of abstraction Figure 6-9, An example of closed architecture: the OSI model.

12 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 12 Application Presentation Session Transport Network DataLink Physical Socket CORBA TCP/IP Object Ethernet Wire Figure 6-10, An example of closed architecture.

13 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 13 Xlib AWT Swing Application Figure 6-11, An example of open architecture: the Swing user interface library on the X11 platform.

14 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 14 Subsystem Repository createData() setData() getData() searchData() Figure 6-12, Repository architectural style.

15 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 15 LexicalAnalyzer SyntacticAnalyzer SemanticAnalyzer CodeGenerator SourceLevelDebuggerSyntacticEditor ParseTree SymbolTable Compiler Repository Optimizer Figure 6-13, An instance of the Repository architectural style.

16 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 16 Controller Model subscriber notifier initiator * repository1 1 * View Figure 6-14, Model/View/Controller architectural style.

17 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 17 Figure 6-15, An example of MVC architectural style.

18 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 18 Figure 6-16, Sequence of events in the Model/View/Control architectural style. :Controller :InfoView :Model 2:enterNewFileName(file,newName) 3:setName(newName) :FolderView 1:subscribeToFileEvents(file) 5:getName() 4:notifySubscribedViews(file) 1:subscribeToFileEvents(file) 5:getName() 4:notifySubscribedViews(file)

19 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 19 Client Server service1() service2() serviceN() … * * requesterprovider Figure 6-17, Client/server architectural style.

20 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 20 netscape:WebBrowser www12.in.tum.de:WebServer lynx:WebBrowser mosaic:WebBrowser iexplorer:WebBrowser Figure 6-18, The World Wide Web as an instance of the client/server architecture.

21 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 21 Peer service1() service2() serviceN() … requester provider * * Figure 6-19, Peer-to-peer architectural style.

22 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 22 application1:DBUser database:DBMS application2:DBUser 1. updateData 2. changeNotification Figure 6-20, An example of peer-to-peer architecture.

23 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 23 Figure 6-21, Three-tier architectural style. Interface Application Logic Storage Connection Form Query

24 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 24 Figure 6-22, Four tier architectural style. Presentation Server Application Logic Storage Connection Form Query Presentation Client WebBrowser

25 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 25 Pipe inputoutput input*1 *1 Filter Figure 6-23, Pipe and filter architectural style.

26 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 26 % ps auxwww | grep dutoit | sort | more dutoit pts/6 O 15:24:36 0:00 -tcsh dutoit pts/6 S 15:38:46 0:00 grep dutoit dutoit pts/6 O 15:38:47 0:00 sort psgrepsortmore Figure 6-24, An instance of the pipe and filter architectural style.

27 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 27 Location Segment Crossing Direction Destination Trip RouteAssistant PlanningService Figure 6-27, Analysis model for the MyTrip route planning and execution.

28 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 28 Location Segment Crossing Direction Destination RoutingSubsystem PlanningSubsystem Trip RouteAssistant PlanningService Figure 6-28, Initial subsystem decomposition for MyTrip.

29 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 29 Compiler compile(s) create() getToken() CodeGenerator create() generateParseTree()create() Compiler Optimizer Lexer Parser ParseNode Figure 6-29, An example of the Facade pattern.


Download ppt "Using UML, Patterns, and Java Object-Oriented Software Engineering Art for Chapter 6, System Design: Decomposing the System."

Similar presentations


Ads by Google