oo design

Text-only Preview

Object-oriented Software
Engineering
Object-oriented
Design
TOPIC FOUR
Software Engineering


Object-oriented Design

It transforms the analysis model created in object-oriented
analysis into a design model that serves as a blueprint for
software construction.

It must describe the specific data organization of attributes
and the procedural detail of individual operations.
Software Engineering


Five Basic Principles of
Design

Linguistic modular units

Few interfaces

Small interfaces/Weak Coupling

Explicit interface

Information Hiding
Software Engineering


Object-oriented Design
Methods

Booch Method
- It involves a "micro-development" process and a "macro-
development" process.

Coad and Yourdon Method
- It addresses not only the application but also the infasturcture for the
application.

Jacobson Method
- It emphasizes the traceability of the OOSE analysis model.
Software Engineering


Object-oriented Design
Methods

Rambaugh Method
- It encompasses a design activity that encourages design to be
conducted at two different levels of abstraction. System design
focuses on the layout for the components that are needed to
complete the product. Object design emphasizes the detailed layout
of an individual objects.

Wirfs-Brock Method
- It defines a continuous tasks in which analysis leads seamlessly into
design.
Software Engineering


Common Steps to All OOD

STEP 1: Define the subsystems of the software by
determining data-related subsystems (entity design),
control-related subsystems (controller design), and human
interaction-related subsystems (boundary design). This
should be guided by the software architecture of choice.

STEP 2: Define Class and Object Design

STEP 3: Define Message Design
Software Engineering


OO Design Main Work
Products

Software Architecture

Data Design

Interface Design

Component-level Design

Deployment Design
Software Engineering


Summary

Purpose
- To transform analysis model into a blueprint of software construction

OOD Methods

OOD Models
- Software Architecture
- Data Design
- Interface Design
- Component-level Design
- Deployment Design
Software Engineering