Object Oriented Design
Object Oriented Design
bottom-up top-down
Architectur
al Abstract Interface Component Data Algorithm
design specificatio design design structur
e design
n design
Software Data
System Interface Component Algorithm
specification structure
architectur
e specifica
tion specification specifica
tion
specification
Design pr
oducts
• OOD
– Emphasizes a conceptual solution that fulfills the
requirements and define s/w objects, their responsibilities
and how they collaborate to fulfill the requirement.
– The products of object-oriented design can then be used
as blueprints for completely implementing a system using
object-oriented programming methods.
– detailed (or objects) OOD: provides the complete definition
of classes and associations to be implemented, as well as
the data structures and the algorithm of methods that
implement class operations
– OOD model, which adds the technical details of the
hardware/software solution that defines how the software
has to be implemented
• Layer relationship
– Layer A “Calls” Layer B (runtime)
– Layer A “Depends on” Layer B (“make” dependency,
compile time)
• Partition relationship
– The subsystem have mutual but not deep knowledge
about each other
– Partition A “Calls” partition B and partition B “Calls”
partition A
* *
Client
requester provider service1()
service2()
…
serviceN()
service1()
service2() *
…
serviceN() provider
1. updateData
application1:DBUser
database:DBMS
application2:DBUser
2. changeNotification
SemanticAnalyzer
SyntacticAnalyzer
Optimizer
LexicalAnalyzer CodeGenerator
understanding system
(“Blackboard architecture”) ParseTree SymbolTable
• Database Management
Systems
• Modern Compilers SourceLevelDebugger SyntacticEditor
initiator
Controller
* 1 repository
Model
1 notifier
subscriber
View
*
04/17/2025 KMU - OOD 38
• The Controller gathers input from the user and sends
messages to the Model.
• The Model maintains the central data structure.
• The Views display the Model and are notified (via a
subscribe/notify protocol) whenever the Model is changed.
• MVC is well suited for interactive systems, especially when
multiple views of the same model are needed.
• MVC can be used for maintaining consistency across
distributed data
• Component Diagram
– A graph of components connected by dependency
relationships.
– Shows the dependencies among software components
• source code, linkable libraries, executables
• Dependencies are shown as dashed arrows from the client
component to the supplier component.
– The kinds of dependencies are implementation language
specific.
• A component diagram may also be used to show
dependencies on a façade:
– Use dashed arrow the corresponding UML interface.
Scheduler reservations
UML Component
UML Interface
Planner update
GUI
<<include>>
StartServer
PlanningService
Administrator <<include>>
ManageServer ShutdownServer
<<include>>
ConfigureServer