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