Analysis | Design |
What | How |
Investigate the Problem | Create a Solution |
A Model is
Small | Large |
Individual | Team |
Simple | Complex |
Software
is developed in manageable stages
Stage | Activity |
Requirements analysis and definition |
|
System and software design |
|
Implementation |
|
System testing |
|
Operation and maintenance |
|
![]() |
![]() |
Structured design -- factor a program into a top-down hierarchy of independent modules (Structure chart)
Design concepts:
Transaction analysis -- the input and output streams
have multiple core processes. The top-level manager examines the
content of the input stream to determine which process should be invoked
(bank account -- deposit / withdrawal)
![]() |
Specification --
![]() |
Objects are created from a Class at run-time. Since Classes have state, an object retains information about its attributes for some indefinite time. This is different than functions or subprograms.
Abstraction
|
|
Encapsulation
"Information hiding" Information is hidden about data and implementation so that clients only have to know the interface of the class |
|
Generalization - Specialization
|
|
Object Identity
|
|
Composition
|
Build complex "whole" systems by assembling simpler "parts" by association or aggregation |
Type promotion
|
|
Message Passing
|
|
Polymorphism
|
|
Representation Continuity
|
|
Well Named | The name accurately communicates the nature of the abstraction |
Coherent | The abstraction contains a related set of attributes and behavior that makes sense and is needed and expected in a given setting |
Accurate | The abstraction contains only attributes or behavior that are displayed by the entity being modeled |
Minimal | The abstraction does not contain attributes or behavior extraneous to the purpose for which it is defined. |
Complete | The abstraction contains all the attributes and behavior necessary to accomplish its intended purpose. |
Stage | Activity |
Analysis
|
|
System Design
|
|
Object Design
|
Where necessary add: |
Implementation
hardware and software code |
|
Limit the design to a single sheet of paper.
You should be able to show this piece of paper to pretty much anyone on the street, and they would recognize the bank's basic design.
Work with someone else.
Take no more than 15 - 20 minutes.