CSE 5324: Software Engineering I

(Analysis, Design, Creation)

 

Fall 1997

Reminder:

 

Exam 2:

October 23

Chaps 19, 20, 13, 14, 21, 15

 

Object Oriented Methodolgy: Terms, ideas, techniques

OO Concepts, OO Analysis, OO Design

Design Concepts, Design Methods (Structured)

Real Time Analysis and Design

 

 

 

Design - Methods of Design

 

Why design?

 

How is design done:

Many methods:

Structured

OO

Etc.

 

Goal:

Define process (or system) in enough detail to

Implement. (Create, realize)

 

What is designed:

 

Data

Architecture

Interface

Procedural

 

Object Oriented Design:

 

Find objects, factor into good classes, define class

hierarchies and interfaces, make it reusable,

modifiable.

 

OO Design architecture stresses object relations rather

than flow of control

 

What is different: (Fichman, Kemerer)

(From SA)

Module Hierarchy representation

Data Definition Spec

Procedural Spec

End-to-end processing sequences

Class and Hierarchy definition

Operations assigned to classes

 

 

 

Bertrand Meyer suggests:

 

Decomposable – design method makes easier

subproblems

Composable – reusable

Understandable – by module

Continuity – coupling (local)

Protection – coupling (isolation)

 

To achieve:

Few, small, explicit interfaces. Information

hiding.

 

OOD:

Booch

Coad – Yourdon

Rumbaugh

 

Jackson – design a part of analysis!

 

Coad suggest (for any method): Define:

Problem Domain

User I/F

Task Management

Data Management

 

 

Design Patterns:

(This is another of the SE Buzz words!)

Recurring and reusing of classes and objects

(Gamma)

 

Name of pattern

Problem to which applied

Characteristics

Consequences of applying

 

Should one use inheritance or composition?

(When both possible)

Use what is general, or make it specific?

 

 

 

Compare SA, SD versus OO:

 

Hospital system: Patient record system.

 

Spreadsheet

 

 

 

Is OO Important?

 

OO Prog languages: JAVA, et al

 

OO Interfaces:

Windowing systems

 

CORBA

Distributed objects