Lecture2010 9 1
Lecture2010 9 1
LECTURE 9:
Object-Oriented Design
1
Topics
Object-Oriented Design
Object-Oriented Architectural Design
Component Diagrams
Deployment Diagrams
Object-oriented Design Process
Design Classes
Fundamental Design Principles
2
Object-Oriented Design—The
Bridge Between Analysis and
Programming
Bridge between users’ requirements and
new system’s programming
Object-oriented design is process by which
detailed object-oriented models are built
Programmers use design to write code and
test new system
User interface, network, controls, security,
and database require design tasks and
models 3
Overview of Object-Oriented
Programs
Set of objects that cooperate to accomplish result
Object contains program logic and necessary
attributes in a single unit
Objects send each other messages and collaborate
to support functions of main program
OO systems designer provides detail for
programmers
Design class diagrams, interaction diagrams, and some
state machine diagrams
4
Object-Oriented Event-Driven
Program Flow
5
Object-Oriented Design:
Processes and Models
Diagrams developed for
analysis/requirements
Use case diagrams, use case descriptions and
activity diagrams, domain model class
diagrams, and system sequence diagrams
Diagrams developed for design
Component diagrams and Deployment
diagrams
Interaction diagrams and package diagrams
Design class diagrams
6
Design
Models with
Their
Respective
Input Models
7
Object-Oriented Architectural
Design
Desktop system
Enterprise-level system
Network or client/server system
Internet based system
8
Differences between network and
Internet systems
9
Component Diagrams and
Architectural Design
Component Diagram
Shows overall system architecture
API is the set of all public methods
available in the component
• Ports and Sockets define the interface
Frameset notation to extend UML
notation
Used to describe web components
10
Component Diagram Notation
11
Two-layer Architectural Design of
an Internet System
12
Three-layer Architectural Design of
an Internet system
13
Sample Web Services Design
14
Deployment Diagrams
Deployment diagram shows
physical components of a new system
Node is a physical component
Artifact is an executable module
Artifacts are components after they have
been compiled into executables
15
Sample Deployment Diagram
of an Internet System
16
Fundamental Principles of Object-
Oriented Detailed Design
Design class diagrams and detailed sequence
diagrams
Use each other as inputs and are developed in
parallel
Sequence diagrams define the interactions
between objects in order to execute a use case.
Interactions are called messages
Correspond to method calls in programming
language
Design Classes show attributes and method
signatures
17
Sample Sequence Diagram
18
Sample Design Class
19
Sample Java
Class Definition
20
Object-oriented Design Process
21
Just for Fun!
22
Design Class Symbols
UML does not distinguish between design class
notation and domain model notation
24
Standard Design Classes
Entity – design identifier for problem
domain class
Persistent class – exists after system is shut
down
Control – mediates between boundary and
entity classes, between the view layer and
domain layer
Boundary – designed to live on system’s
automation boundary, touched by users
User interface and windows classes
Data access – retrieves data from and
sends data to database 25
Design Class Notation
Name – class name and stereotype information
Attribute visibility (private or public) – attribute
name, type-expression, initial-value, property
Method signature – information needed to invoke (or
call) the method
Method visibility, method name, type-expression (return
parameter), method parameter list (incoming arguments)
Overloaded method – method with same name but two or
more different parameter lists
Class-level method – method associated with class
instead of each object (static or shared method), denoted
by an underline
26
Notation Used to Define a Design
Class
27
Design Class Definitions
Overloaded method – a method with one name
but different parameter lists
Class-level method – a method associated with
the class rather than an object
Class-level attribute – an attribute that contains
the same value for all objects
Overridden method – a method in a subclass
that overrides the parents method
Abstract class – a class that is never instantiated
Concrete class – a normal class with objects
28
Sample Class Diagram with Design
Classes and Inheritance
29
Developing the First-cut
Design Class Diagram
Elaborate the attributes
Visibility, Type cast, Initial values
Navigation Visibility
Ability to reference the methods of
another object
30
Navigation Visibility
31
Navigation Visibility Guidelines
One-to-many with superior to subordinate.
The visibility goes from the superior to the
subordinate
Mandatory relationships for existence.
Visibility goes from independent to
dependent
Object needs information from another
object. Visibility goes to object with the
information
Navigational arrows may be bidirectional
32
First Cut Class Diagram for RMO
33
Detailed Design with CRC cards
Class-Responsibility-Collaboration
Design process
Select a single use case
Identify class with primary responsibility
Identify other classes that collaborate
with primary class (become requests for
service to other classes)
Identify responsibilities within each class
(these become methods)
34
CRC Card Notation
35
CRC Card Set for Process new
order
36
Updated
Design Class
Diagram with
Visibility and
Methods
37
Some Fundamental Design
Principles
Encapsulation – each object is self-
contained unit that includes data and
methods that access data
Object reuse – designers often reuse
same classes for windows components
Information hiding – data associated
with object is not visible to outside world
38
Some Fundamental Design
Principles (continued)
Coupling – qualitative measure of how closely
classes in a design class diagram are linked
Number of navigation arrows in design class diagram
or messages in a sequence diagram
Loosely coupled – system is easier to understand
and maintain
Cohesion – qualitative measure of
consistency of functions within a single class
Separation of responsibility – divide low cohesive
class into several highly cohesive classes
Highly cohesive – system is easier to understand and
maintain and reuse is more likely 39
Some Fundamental Design
Principles (continued)
Protection from variations – parts of
a system that are unlikely to change are
segregated from those that will
Indirection – an intermediate class is
placed between two classes to decouple
them but still link them
Object responsibility – Objects are
responsible for system processing
Responsibilities include knowing and doing
40
Readings
!!!
Oriented Design”
u
yo
nk
a
Th
41