At a glance

Duration:
4 days
Cost:
AUD $2585 inc GST
Contact us if you would like
to run this course in-house.
Location/Date:
System Design

Object Oriented Analysis & Design with UML

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.

Learning outcomes

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.

Software Education Australia Pty Ltd
Freecall: 1800 145 152 Fax: 1800 145 715
Proud to support World Vision