
"This class was definitely one of the most directly applicable courses I have taken during my tenure at this company. VERY useful."
|
Object Oriented Analysis and Design Using the Unified Modeling Language (UML) The Unified Modeling Language (UML) is an OO development approach that represents the unification of Rumbaugh's OMT, the Booch method and Jacobson's Objectory. The UML provides a basis for future standards in object-oriented development and draws on the practical application of OO methods by many people. This course covers the complete development process, showing you how to clarify user requirements by building a model of the problem domain and how to progress the model through design to implementation. What You Will Learn · Apply Use cases to capture and document system requirements · Model the required behavior of the system using static and dynamic views of objects and classes · Progress from analysis to design, taking into account architectural decisions and design constraints · Design flexible, extensible applications · Combine features from several established OO development methods effectively Who Should Attend This course is principally intended for analysts and designers of UML projects, or anyone carrying out those roles. It is also applicable for team leaders, project managers, test engineers and business planners. Exercises To help assimilate the notations and techniques learned, there is a mixture of individual and team exercises throughout the course. There is a major workshop at the end of analysis, which enables the students to practice the complete analysis process in a supported environment. Prerequisites You will need a basic knowledge of software engineering. A prior exposure to object-oriented concepts would be beneficial, but is not essential. This could be gained, for example, from attending our Object-Oriented Primer course. Length 5 Days Course Outline Introduction Overview of OO development • Evolution of OO and OO methods • Introduction to the Unified Modeling Language • OO concepts Starting Analysis Defining system scope • Actors and Use cases • Managing complexity Specifying Detailed Requirements Scenarios and sequence diagrams • Events and messages • Mapping to the class diagram The Class Diagram Modeling classes, operations and attributes • Association and aggregation • Multiplicity and roles • Generalization and specialization Examining Object Behavior Behavior of objects over time • States, events and transitions • Operations and activities • Advanced state diagramming techniques Architecture Packages • Composition • Deployment • Architectural patterns From Analysis to Design Analysis completeness and consistency • Transitioning to design • Design overview Designing Detailed Requirements Collaborating objects • Messages: sequencing, qualifiers, collections, conditionals • Designing alternatives Designing Classes and Associations Well-formed classes • Completing class descriptions • Coupling and cohesion • Association navigation • Implementing aggregation-by-value and aggregation-by-reference Implementation Mapping to code |