OO Development with Use Cases
An intermediate class on use-case driven, component-based software development
| Delivery | On-Site, Open Enrolment |
|---|---|
| Course Length | 4 days |
| Course Approach | Lecture, discussions, workshops |
| Level | Intermediate |

Course Description
This 4-day class will equip delegates with skills and techniques necessary to effectively develop object-oriented and component-based software from use cases. The approach that underlies the Unified Process and many other agile, iterative development processes.
The key concepts covered in this course include - separation of concerns, abstraction, encapsulation, delegation; effective analysis, minimal design, the role of architecture, keeping minimal and extension design separate; packaging with layers, subsystems and tiers; and designing for testability. Throughout the class, common problems and their solutions will be explored.
As part of the course the delegates will contribute to the construction of object oriented analysis and design models and the translation of these models into working software. Reference examples and exercise solutions are also supplied.
The course is based upon concepts introduced by Ivar Jacobson in the best-selling book ‘Object-Oriented Software Engineering’ (Addison Wesley, 1992) and also the newly published ‘Aspect Oriented Software Development with Use Cases’ by Ivar Jacobson and Pan-Wei Ng (Addison Wesley, 2004).
Objectives
Upon completion of the course, participants will understand:
- The role of use cases in software development
- How to analyze and design different kinds of use cases – peer use cases, extension use cases, infrastructure use cases.
- How to structure/organize components in a system
- How to structure/organize the internals of a component
- How to keep platform specifics separate from application.
- How to apply the principles of encapsulation, abstraction and delegation
- How to apply design patterns to achieve a good structure.
- How to achieve maintainability, extensibility, reusability, interoperability, testability etc.
Topics Covered
-
Understanding components and models
-
A brief introduction to use cases
-
Object oriented software engineering with use cases
-
Analyzing and designing peer use cases
-
Analyzing and designing extension use cases
-
Analyzing and designing infrastructure
-
Analyzing and designing platform specifics
-
Designing for testability
-
Evaluating the design
Audience
-
Developers
-
Architects
-
Systems Analysts
-
Programmers
Recommended Pre-requisite courses
None
Recommended Experience
It is beneficial for delegates to have some programming and development experience.
Related Courses
For students interested in continued learning in this field, we suggest:


