Lesson 1
System and Object Design
Welcome to Object Oriented Design: System and Object Design, the third course in the Object-Oriented Analysis and Design Fundamentals Series. This course covers the system analysis and object design phases of the software development project life cycle.
- Data dictionary
- Use case diagram
- Class diagram
- Sequence diagrams
Levels of Models
Models take on different forms for various purposes and appear at different levels of abstraction.
The amount of detail in the model must be adapted to one of the following purposes.
Guides to the Thought Process
High-level models built early in a project serve to focus the thought process of the stakeholders and highlight options.
They capture requirements and represent a starting point toward a system design. The early models help the originators explore possible options before converging on a system concept. As design progresses, the early models are replaced by more accurate models.
There is no need to preserve every use case examined during the exploratory process. The purpose of high-level models is to produce ideas.
However, the final "thinking models" should be preserved even after the focus shifts to design issues. Early models do not require the detail or precision of an
implementation model[1], and they do not require a full range of implementation concepts.
Such models use a subset of UML constructs, which represent a more limited subset than later design models.
When an early model is a complete view of a system at a given precision (i.e., an analysis model of what must be done) then it should be preserved when development shifts to the next stage. There is an important difference between adding detail (in which case, the chain of reasoning should be preserved) and the normal random-walk process of exploring many dead ends before arriving at the right solution.
In the latter case, it is usually overwhelming and unnecessary to save the entire history except in extraordinary situations in which complete
traceability is required.
Course goals
After completing this course, you will be able to:
- Execute the two steps of the design process: system analysis and object design
- Partition a system in preparation for the detailed design phase
- Partition the system by functional requirements using use cases and the class diagram
- Partition the functional areas into cooperating layers of technology
- Apply cohesion and coupling to assess and improve the quality of your design
- Refine the definition of objects using stereotyped behaviors
- Build design patterns like MVC by distributing responsibilities
- Apply design patterns to improve the flexibility of your application
Object-Oriented Design is the third course in the
Object-Oriented Analysis and Design Fundamentals Series.
This series is designed to teach you practical object-oriented business analysis. By completing the series, you learn to fully define the
- scope,
- requirements,
- analysis, and
- design
for a business application using object-oriented models and techniques.
[1]
The implementation model is a collection of components, and the implementation subsystems that contain them. Components include both deliverable components, such as executables, and components from which the deliverables are produced,
such as source code files.
Structural Analysis