0% found this document useful (0 votes)
58 views41 pages

Lecture2010 9 1

This document provides an overview of object-oriented design concepts and processes. It discusses object-oriented design as the bridge between analysis and programming. Key topics covered include object-oriented architectural design using component and deployment diagrams, the object-oriented design process, developing design class diagrams, and fundamental design principles such as encapsulation, coupling, cohesion, and separation of responsibilities. Sample diagrams are provided to illustrate concepts like two-layer and three-layer architectural designs, component diagrams, deployment diagrams, sequence diagrams, and design class diagrams.

Uploaded by

sami damtew
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
58 views41 pages

Lecture2010 9 1

This document provides an overview of object-oriented design concepts and processes. It discusses object-oriented design as the bridge between analysis and programming. Key topics covered include object-oriented architectural design using component and deployment diagrams, the object-oriented design process, developing design class diagrams, and fundamental design principles such as encapsulation, coupling, cohesion, and separation of responsibilities. Sample diagrams are provided to illustrate concepts like two-layer and three-layer architectural designs, component diagrams, deployment diagrams, sequence diagrams, and design class diagrams.

Uploaded by

sami damtew
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 41

“Systems Analysis and Design, I”

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

 Domain model class diagram shows conceptual


classes in users’ work environment

 Design class diagram specifically defines software


classes

 UML uses stereotype notation to categorize a


model element by its characteristics
23
Standard Stereotypes Found in
Design Models

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

Today’s lecture: Chapter 11 – “Object-

!!!
Oriented Design”

u
yo
nk
a
Th

For next lecture: Chapter 12 – “Use


Case Realizations”

41

You might also like