Object Oriented Design and Analysis Course

Target audience

This course is principally aimed at senior developers who need an understanding of the analysis and design aspects of object technology.. Ideally, participants should be familiar with a block structured programming language, such as C, C++, Java or Pascal.

Objectives

  • To show good design, and why it is worth striving for.
  • To introduce the key object-oriented concepts and relate them to the facilities available in C++ or Java, and other common object-oriented programming languages.
  • To introduce the use of the UML notations to describe designs.
  • To give the participants some experience of the design activity.
  • To explore the impact of object-oriented technologies on design.
  • To explain the key steps in the software development process as exemplified by the RUP, emphasising how good design helps.
  • To explain the core concepts of an object oriented analysis activity that links to an object oriented design phase.

Data

  • Duration: 4 days
  • Class size: 6-12 (2 presenters)

Note
We have both Java and C++ versions of this course available.

Outline

Day 1

  • Object-oriented concepts and their implementation, illustrated in C++ or Java.
  • Walks through the construction of a simple example system.
  • Uses the UML notations at various levels of abstraction during the design activity.

Small exercises are used throughout, performed in groups of two or three.

Day 2

  • A medium-sized exercise, in groups of two or three, to get students thinking about design issues.
  • A larger exercise, in bigger groups, creating a design for the core of a system, providing first-hand experience of design and communicating design ideas through the UML.

Day 3

  • Advanced features of object-oriented languages, such as exceptions, and memory management, with concrete examples of their uses and dangers.
  • Common design patterns in user interface construction, and some user interface design guidelines.
  • Component orientation, as exemplified by .NET and J2EE system architectures, including the approach to building distributed systems.
  • An introduction to the Rational Unified Process, a sound process to follow in object-oriented designs.
  • Storing objects in files and databases.

Day 4

  • Basic structure of an object-oriented approach to systems analysis
  • Object oriented analysis techniques including the use of conceptual object models and use cases.
  • Iteration in the OOA&D process.
  • Business process modelling, and the UML activity diagram notation.
  • As-Is and To-Be models and their incorporation into the process.

Description

This course provides an overall view of object-oriented design and analysis. The early parts of the course build a solid grounding in object oriented techniques including a number of practical design exercises through which attendees can build their skills. The final parts of the course look both at more advanced technological aspects and at the application of the same object oriented techniques and notations to the systems analysis parts of the development process. These techniques are generally applicable but need special approaches here, for example the models are often conceptual, reperesenting the basic business processes and a concentration on use-cases provides a way of looking at a system from the point of view of the various roles that use the system.