header trireme
telephone   UK: 01625 850 839    International: +44 1625 850 839 email us: clive@trireme.com

object-oriented analysis and design (OOAD) with UML

course overview

Object oriented programming languages provide a powerful tool for building flexible and extensible software components. However, maximum benefits are gained only if the software is appropriately designed. The choice of classes, and the distribution of tasks between the objects, is of crucial importance. Software development is a team effort, and it is equally important that developers have a language for talking about analyses and designs: a language that is less ambiguous than English, but able to deal in requirements and high level design without being cluttered by the fine detail of program code.

This course is part of a package including mentoring, aimed at making a low-risk migration towards UML-based analysis and design. We tailor the content to suit your needs.

This course separates and makes explicit the decisions that make up an OO analysis and design. We show how to use the UML notation most effectively both to discuss designs with colleagues, and in documents. UML is now an industry standard, supported by all the major tools. The course provides especially strong coherence between the different notations used in UML, making it clear when there are inconsistencies or holes in the analysis. This saves a lot of money in the later stages of a project.

Duration: 5 days

objectives

target audience

The course is suitable for analysts and designers wishing to develop clear precise methods of discussing requirements and designs at a high level, clear of implementation detail; and managers and architects wishing to understand the strategic issues in migrating to, and getting the best out of, an object-oriented development lifecycle.

prerequisites

Some knowledge of an OO language (such as C++, Java, Smalltalk, Eiffel) is an advantage.

course syllabus

[B] — Basic material for participants whose familiarity with analysis and design is limited.
[D] — Design issues, rather than modelling, specification, or analysis: can be de-emphasized.
[A] — Additional topic (can be omitted).
[S] — Strategic issues particularly of interest to senior designers and management.

Object Oriented programming [B]

Introducing the principles of OO design.

OO analysis and design

Aims and overview of process.

business modelling and UML basics

This section covers techniques of identifying business concepts and tasks, and introduces relevant parts of UML along the way.

requirements modelling

This section deals with the specification of requirements of a software component, application, or complete system. More modelling patterns and techniques are investigated.

basic design

The key principle of OO design is assigning responsibilities and designing collaborations.

basic design patterns [D]

In this section, the usefulness of design patterns as a way of thinking about and describing designs is investigated. Several patterns are discussed, and then a problem is presented which participants model and then sketch a solution for, using the patterns.

domain coupling [D]

The linkage of the 'core(s)' to presentation, persistence, and other layers.

development: fundamental tasks

This section reviews the tasks and deliverables involved in a typical object-oriented development project.

Standard design patterns [D] [A]

More patterns, based on texts by Gamma et al, Coplien, Pree, and the PLoP workshops.

frameworks: generic models [A]

Partial models (views) as reusable artefacts.

re-use and Component-based development [S]

Reuse does not come automatically, and requires not only appropriate technology, but also management and motivation at the corporate level.

components — the technology [A]

distributed systems [A] [see also "Components"]

re-engineering existing systems [A]

Please note, when taught at your site, this course is customizable. Modules can be adapted, removed, added from other courses, or even created.

further information

timetable

Day 1

  • Object Oriented programming [B]
  • OO analysis and design
  • business modelling and UML basics

Day 2

  • requirements modelling
  • basic design
  • basic design patterns [D]

Day 3

  • domain coupling
  • development: fundamental tasks
  • standard design patterns [D] [A]
  • frameworks: generic models [A]

Day 4

  • re-use and Component-based development [S]
  • components — the technology [A]
  • distributed systems [A]
  • re-engineering existing systems [A]

Day 5

  • a workshop to put OOAD theory into practice on a realistic case study

course exercises

Each section uses numerous small examples and exercises. Two major examples are followed through the course: one discussed in class as each point is introduced, and one developed by participants in groups. Depending on the background of the participants, the exercises can be chosen from commercial or process control areas. This is a pencil-and-paper course, with group exercises. We can demonstrate a variety of support tools (such as Rose, Select, or Rhapsody). However, we do not recommend using tools for the exercises, as the details of driving them distracts from the main issues of the language and techniques; and they do not promote team working in the class. At the detailed design level, we will use examples in Java, C++, or another language of your choice. The course is presented by one of our senior consultants, each of whom has at least ten years' experience in object oriented software development, and at least three years' experience as a trainer and consultant in a diverse range of application areas.

course instructor

The course is presented by one of our senior consultants, each of whom has had at least ten years experience in object oriented analysis, design and software development, and at least three years' experience as a trainer and consultant in a diverse range of application areas.

telephone   UK: 01625 850 839    International: +44 1625 850 839 email us: clive@trireme.com