Object Oriented Analysis & Design with UML
Duration:
4 days
Cost:
NZD 2650+GST
Can also run in-house Australia or NZ
Date/Venue:
- 13 October 2008
Wellington - 03 November 2008
Auckland
► Overview ◄
Object-orientation has evolved as a means to manage the complexity of software systems. The purpose of this course is to ensure that the participants understand the fundamentals of the object-oriented paradigm, and to equip them with techniques for designing object-oriented systems.
Unified Modelling Language (UML) diagrams are used to document the design. The diagrams that are covered are:
- Behavioural
- Use case diagrams
- Activity diagrams
- State machine diagrams
- Interaction
- Sequence diagrams
- Communication diagrams
- Structure
- Class diagrams
- Object diagrams
- Component diagrams
- Composite structure diagrams
- Package diagrams
- Deployment diagrams
Note that the timing and interaction overview diagrams are not covered.
This course covers use cases through to a fully specified model ready to pass to the programmers.
► Intended For ◄
This course is aimed at those people who need to learn the techniques of object-oriented systems design. It is also suitable for individuals and teams who already use object-orientation but who are seeking a more formalised approach.
This course is not for those who need to learn object oriented techniques for a specific OO programming language. This is not a programming course.
While the course addresses requirements issues, design topics are covered to a greater depth than typically needed by a user requirements analyst.
► Prerequisites ◄
This course is aimed at people who already have experience of system development.
Note that prior experience with object-orientation is not necessary.
► Objectives ◄
At the end of the course, participants will:
- Be familiar with standard UML notation.
- Understand how to model the requirements with use cases.
- Be able to describe the dynamic behaviour and structure of the design.
- Understand how to create a modular design with components.
- Know how to relate the logical design to the physical environment.
► Content ◄
Object-Orientation
Explore how modularity has evolved to manage the growing complexity of software systems. Understand the perspective of object-orientation and how it applies modularity to the “big picture” to build stable systems that are adaptable and extensible.
UML
An introduction to the Unified Modelling Language and what diagrams it provides.
Requirements
Look at the different types of requirements and how the B4 approach can be used to identify use cases. Understand use case diagrams and use case descriptions.
Architecture
Identify the overall structure for the system and describe it with package diagrams.
Dynamic modelling
Model the behaviour of a use case with activity diagrams. Identify the objects of the system by allocating the use case behaviour to the objects in communication and sequence diagrams.
Structural modelling
Identify the necessary classes and model their structure in class diagrams.
Concurrency
Identify where and why parallel execution of tasks is needed. Describe the resulting concurrency model with “active” classes and objects.
Environment
Identify the artifacts (files) and nodes (hardware) of the physical environment, documenting them with deployment diagrams.
Components
Structure the system as a set of connected (black box) components. Describe these components and their relationships with component diagrams.
Patterns
Look at how design patterns etc. can help to solve common problems. Model architectural design mechanisms as patterns with composite structure diagrams.
Component design
Describe the internal structure of individual components with composite structure diagrams and model their behaviour with communication and sequence diagrams.
Encapsulation
Refine the structure of each class, identifying the necessary operations, attributes and associations.
State machines
Model the dynamic behaviour of individual objects, components, processes and threads with state machine diagrams. Explore how these diagrams relate to the rest of the model and what they tell us about the code to be written.
Database modelling
Understand how classes (and especially inheritance hierarchies) are mapped to database tables.
Inheritance and polymorphism
A closer look at some of the issues, benefits and problems of using what is the most powerful feature of object-orientation.
► Method Used ◄
An exercise follows each topic to illustrate the concepts covered. An additional case study at the end ties the individual topics together and reinforces the learning.
Exercises are done in small groups, providing the chance to learn from each other and to fully explore the range and implications of each topic.
Pen and paper are used for the exercises, rather than a case tool. This ensures that the learning is not hindered by the distraction of a case tool.