Stairs Dining Study Bedroom2

advertisement
Version 1
Version 2
Stairs
Stairs
Entrance
door
Bath
Hallway
Dining
Master
Bedroom
Study
Hallway
Bedroom2
Bath
Bedroom2
Kitchen
Kitchen
Study
Dining
Entrance
door
Master
Bedroom
Hallway
Dining
Version 3
Bernd Bruegge & Allen H. Dutoit
Bedroom2
Study
Bath
Kitchen
Stairs
Entrance
door
N
Master
Bedroom
Figure 6-1, Example of
iterative floor plan
design. Three successive
versions show how we
minimize walking
distance and take
advantage of sunlight.
Object-Oriented Software Engineering: Using UML, Patterns, and Java
1
Figure 6-2, The activities of system design.
nonfunctional
requirements
Analysis
dynamic model
analysis object
model
System design
design goals
subsystem
decomposition
Object design
object design
model
Bernd Bruegge & Allen H. Dutoit
Object-Oriented Software Engineering: Using UML, Patterns, and Java
2
Figure 6-3, Subsystem decomposition.
System
Part
*
Class
Bernd Bruegge & Allen H. Dutoit
*
Subsystem
Object-Oriented Software Engineering: Using UML, Patterns, and Java
parts
3
Figure 6-4, Subsystem decomposition for an accident
management system.
FieldOfficerInterface
DispatcherInterface
Notification
Bernd Bruegge & Allen H. Dutoit
IncidentManagement
Object-Oriented Software Engineering: Using UML, Patterns, and Java
4
Figure 6-5, Example of reducing the couple of
subsystems.
Alternative 1: Direct access to the Database subsystem
ResourceManagement
IncidentManagement
MapManagement
Database
Bernd Bruegge & Allen H. Dutoit
Object-Oriented Software Engineering: Using UML, Patterns, and Java
5
Figure 6-5, Example of reducing the couple of
subsystems (continued)
Alternative 2: Indirect access to the Database through a Storage subsystem
ResourceManagement
IncidentManagement
MapManagement
Storage
Database
Bernd Bruegge & Allen H. Dutoit
Object-Oriented Software Engineering: Using UML, Patterns, and Java
6
Figure 6-6, Decision tracking system.
DecisionSubsystem
assesses
Criterion
Alternative
*
*
solvableBy
DesignProblem
*
Bernd Bruegge & Allen H. Dutoit
based-on
resolvedBy
SubTask
ActionItem
*
Decision
Task
implementedBy
subtasks
Object-Oriented Software Engineering: Using UML, Patterns, and Java
7
Figure 6-7,
Alternative
subsystem
decomposition for
the decision
tracking system of
Figure 6-6
RationaleSubsystem
Criterion
assesses
Alternative
*
*
DesignProblem
solvableBy
*
based-on
resolvedBy
Decision
PlanningSubsystem
implementedBy
SubTask
*
ActionItem
Bernd Bruegge & Allen H. Dutoit
Task
subtasks
Object-Oriented Software Engineering: Using UML, Patterns, and Java
8
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
9
Level of abstraction
Application
Figure 6-9, An
example of
closed
architecture: the
OSI model.
Bernd Bruegge & Allen H. Dutoit
Presentation
Format
Session
Connection
Transport
Message
Network
Packet
DataLink
Frame
Physical
Bit
Object-Oriented Software Engineering: Using UML, Patterns, and Java
10
Application
Object
Presentation
CORBA
Session
Transport
Network
Socket
TCP/IP
DataLink
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
11
Figure 6-11, An example of open architecture: the
Swing user interface library on the X11 platform.
Application
Swing
AWT
Xlib
Bernd Bruegge & Allen H. Dutoit
Object-Oriented Software Engineering: Using UML, Patterns, and Java
12
Figure 6-12, Repository architectural style.
Repository
Subsystem
Bernd Bruegge & Allen H. Dutoit
createData()
setData()
getData()
searchData()
Object-Oriented Software Engineering: Using UML, Patterns, and Java
13
Figure 6-13, An instance of the Repository
architectural style.
Compiler
SyntacticAnalyzer
SemanticAnalyzer
Optimizer
CodeGenerator
LexicalAnalyzer
Repository
ParseTree
SourceLevelDebugger
Bernd Bruegge & Allen H. Dutoit
SymbolTable
SyntacticEditor
Object-Oriented Software Engineering: Using UML, Patterns, and Java
14
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
15
Figure 6-15, An example of MVC architectural style.
Bernd Bruegge & Allen H. Dutoit
Object-Oriented Software Engineering: Using UML, Patterns, and Java
16
Figure 6-16, Sequence of events in the
Model/View/Control architectural style.
2:enterNewFileName(file,newName)
3:setName(newName)
:Controller
1:subscribeToFileEvents(file)
5:getName()
:InfoView
:Model
4:notifySubscribedViews(file)
4:notifySubscribedViews(file)
:FolderView
Bernd Bruegge & Allen H. Dutoit
1:subscribeToFileEvents(file)
5:getName()
Object-Oriented Software Engineering: Using UML, Patterns, and Java
17
Figure 6-17, Client/server architectural style.
Server
Client
Bernd Bruegge & Allen H. Dutoit
*
requester
*
provider
service1()
service2()
…
serviceN()
Object-Oriented Software Engineering: Using UML, Patterns, and Java
18
Figure 6-18, The World Wide Web as an instance of
the client/server architecture.
netscape:WebBrowser
iexplorer:WebBrowser
lynx:WebBrowser
www12.in.tum.de:WebServer
www.cs.cmu.edu:WebServer
mosaic:WebBrowser
Bernd Bruegge & Allen H. Dutoit
Object-Oriented Software Engineering: Using UML, Patterns, and Java
19
Figure 6-19, Peer-to-peer architectural style.
Peer
service1()
service2()
…
serviceN()
Bernd Bruegge & Allen H. Dutoit
requester
*
*
provider
Object-Oriented Software Engineering: Using UML, Patterns, and Java
20
Figure 6-20, An example of peer-to-peer architecture.
1. updateData
application1:DBUser
database:DBMS
application2:DBUser
Bernd Bruegge & Allen H. Dutoit
2. changeNotification
Object-Oriented Software Engineering: Using UML, Patterns, and Java
21
Figure 6-21, Three-tier architectural style.
Bernd Bruegge & Allen H. Dutoit
Interface
Form
Application Logic
Connection
Storage
Query
Object-Oriented Software Engineering: Using UML, Patterns, and Java
22
Figure 6-22, Four tier architectural style.
Presentation Client
WebBrowser
Presentation Server
Form
Application Logic
Connection
Storage
Query
Bernd Bruegge & Allen H. Dutoit
Object-Oriented Software Engineering: Using UML, Patterns, and Java
23
Figure 6-23, Pipe and filter architectural style.
* input
Filter
Bernd Bruegge & Allen H. Dutoit
* output
output 1
input 1
Object-Oriented Software Engineering: Using UML, Patterns, and Java
Pipe
24
Figure 6-24, An instance of the pipe and filter
architectural style.
% ps auxwww | grep dutoit | sort | more
dutoit
dutoit
dutoit
19737
19858
19859
0.2
0.2
0.2
ps
Bernd Bruegge & Allen H. Dutoit
1.6 1908 1500 pts/6
0.7 816 580 pts/6
0.6 812 540 pts/6
grep
O 15:24:36
S 15:38:46
O 15:38:47
sort
Object-Oriented Software Engineering: Using UML, Patterns, and Java
0:00 -tcsh
0:00 grep dutoit
0:00 sort
more
25
Figure 6-27, Analysis model for the MyTrip route
planning and execution.
RouteAssistant
PlanningService
Trip
Location
Direction
Destination
Crossing
Segment
Bernd Bruegge & Allen H. Dutoit
Object-Oriented Software Engineering: Using UML, Patterns, and Java
26
Figure 6-28, Initial subsystem decomposition for
MyTrip.
RoutingSubsystem
PlanningSubsystem
RouteAssistant
PlanningService
Trip
Location
Direction
Destination
Crossing
Segment
Bernd Bruegge & Allen H. Dutoit
Object-Oriented Software Engineering: Using UML, Patterns, and Java
27
Figure 6-29, An example of the Facade pattern.
Compiler
Compiler
compile(s)
CodeGenerator
Lexer
create()
getToken()
Optimizer
Parser
create()
generateParseTree()
ParseNode
create()
Bernd Bruegge & Allen H. Dutoit
Object-Oriented Software Engineering: Using UML, Patterns, and Java
28
Download