Title: ITEC 3010 Systems Analysis and Design, I
1ITEC 3010 Systems Analysis and Design,
I LECTURE 9 Object-Oriented Design
Prof. Peter Khaiter
2Topics
- Object-Oriented Design
- Object-Oriented Architectural Design
- Component Diagrams
- Deployment Diagrams
- Object-oriented Design Process
- Design Classes
- Fundamental Design Principles
3Object-Oriented DesignThe Bridge Between
Analysis and Programming
- Bridge between users requirements and new
systems 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
4Overview 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
5Object-Oriented Event-Driven Program Flow
6Object-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
7Design Models with Their Respective Input Models
8Object-Oriented Architectural Design
- Desktop system
- Enterprise-level system
- Network or client/server system
- Internet based system
9Differences between network and Internet systems
10Component 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
11Component Diagram Notation
12Two-layer Architectural Design of an Internet
System
13Three-layer Architectural Design of an Internet
system
14Sample Web Services Design
15Deployment 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
16Sample Deployment Diagram of an Internet System
17Fundamental 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
18Sample Sequence Diagram
19Sample Design Class
20Sample Java Class Definition
21Object-oriented Design Process
22Just for Fun!
23Design 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
24Standard Stereotypes Found in Design Models
25Standard 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 systems
automation boundary, touched by users - User interface and windows classes
- Data access retrieves data from and sends data
to database
26Design 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
27Notation Used to Define a Design Class
28Design 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
29Sample Class Diagram with Design Classes and
Inheritance
30Developing the First-cut Design Class Diagram
- Elaborate the attributes
- Visibility, Type cast, Initial values
- Navigation Visibility
- Ability to reference the methods of another
object
31Navigation Visibility
32Navigation 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
33First Cut Class Diagram for RMO
34Detailed 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)?
35CRC Card Notation
36CRC Card Set for Process new order
37Updated Design Class Diagram withVisibility and
Methods
38Some 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
39Some 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
40Some 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
41Readings
Todays lecture Chapter 11 Object-Oriented
Design For next lecture Chapter 12 Use
Case Realizations
Thank you !!!