OO Analysis and Design with UML

Duration: 
5 days
Codes: 
OO,UML

Overview

The first part of this course teaches proven, effective analysis techniques related to event, process, information and interface modelling. The aim is to define a technology and jargon free Essential Logical Model. Once defined the essential model can be mapped during the define phase into a design model that can be Object Oriented, object based, hybrid or classical depending on the chosen development technology.

The second part of the course studies the principal and practical skills for creating good design using Object Oriented Technology. Delegates will learn how to map the Essential Model into a Design (Physical) Model. The modeling notation is UML (the approved OMG standard) and the course is language independent. Delegates will learn to use Object-Oriented techniques to analyse real-world requirements and to design solutions that are ready to code. They will understand how to identify and design objects, classes, and their relationships to each other, which includes links, associations, and inheritance. A strong emphasis is placed on diagram notation for use cases, class and object representation, links and associations, and object messages. This course utilises UML 2.x notation.

Audience

This course is intended primarily for systems analysts, designers, programmers and project managers. The analysis section (first three days) would also be of value to problem domain experts involved in the specification stage.

Prerequisites

Familiarity with structured techniques such as functional decomposition is helpful.

Course Outline

  • Introduction to Analysis and Design
  • Why is Programming Hard?
  • The Tasks of Software Development.
  • Modules.
  • Models.
  • Modeling.
  • Perspective.
  • Objects.
  • Change.
  • New Paradigms.
  • Objects
  • Encapsulation.
  • Abstraction.
  • Classes.
  • Responsibilities.
  • Attributes.
  • Composite Classes.
  • Operations and Methods.
  • Visibility.
  • Inheritance.
  • Protected and Package Visibility.
  • Scope.
  • Class Scope.
  • Advanced Objects
  • Constructors & Destructors.
  • Instance Creation.
  • Abstract Classes.
  • Polymorphism.
  • Multiple Inheritance.
  • Solving Multiple Inheritance Problems.
  • Interfaces
  • Interfaces with Ball and Socket Notation.
  • Templates.
  • Classes and Their Relationships
  • Class Models.
  • Associations.
  • Multiplicity.
  • Qualified Associations.
  • Roles.
  • Association Classes.
  • Composition and Aggregation.
  • Dependencies.
  • Using Class Models.
  • Sequence Diagrams
  • Interaction Frames.
  • Loops.
  • Creating and Destroying Objects.
  • Activation.
  • Synchronous & Asynchronous.
  • The Objects Drive the Interactions.
  • Evaluating Sequence Diagrams.
  • Using Sequence Diagrams.
  • Communication Diagrams
  • Communication and Class Diagrams.
  • Evaluating Communication Diagrams.
  • Using Communication Diagrams.
  • State Machine Diagrams
  • State Notation.
  • Transitions and Guards.
  • Registers and Actions.
  • More Actions.
  • Internal Transitions.
  • Superstates and Substates.
  • Concurrent States.
  • Using State Machines.
  • Implementation.
  • Activity Diagrams
  • Activity Notation.
  • Forks and Joins.
  • Drilling Down.
  • Iteration.
  • Partitions.
  • Signals.
  • Parameters and Pins.
  • Expansion Regions.
  • Using Activity Diagrams.
  • Package, Component, and Deployment Diagrams
  • Modeling Groups of Elements – Package Diagrams.
  • Visibility and Importing.
  • Structural Diagrams.
  • Components and Interfaces.
  • Deployment Diagram.
  • Composite Structure Diagrams.
  • Timing Diagrams.
  • Interaction Overview Diagrams.
  • Use Cases
  • Use Case Diagram Components.
  • Actor Generalization.
  • Include.
  • Extend.
  • Specialize.
  • Other Systems.
  • Narrative.
  • Template for Use Case Narrative.
  • Using Use Cases.
  • Process
  • Risk Management.
  • Test Reviews.
  • Refactoring.
  • History.
  • The Unified Process.
  • Agile Processes.
  • The Project
  • Inception.
  • Elaboration.
  • Construction Iterations.
  • Domain Analysis
  • Top View – The Domain Perspective.
  • Data Dictionary.
  • Finding the Objects.
  • Responsibilities, Collaborators, and Attributes.
  • CRC Cards.
  • Use Case Models.
  • Other Models.
  • Judging the Domain Model.
  • Requirements and Specification
  • Understand the Problem.
  • Specify a Solution.
  • Prototyping.
  • The Complex User.
  • Judging the Requirements Model.
  • Design of Objects
  • Design.
  • Factoring.
  • Design of Software Objects.
  • Features.
  • Methods.
  • Cohesion of Objects.
  • Coupling between Objects.
  • Coupling and Visibility.
  • System Design
  • A Few Rules.
  • Object Creation.
  • Interaction Diagrams.
  • Printing the Catalog.
  • Object Links.
  • Refactoring
  • Clues and Cues.
  • How to Refactor.
  • A Few Refactoring Patterns.

UML Syntax

  • Design by Contract
  • Contracts.
  • Enforcing Contracts.
  • Inheritance and Contracts.
  • Implementations
  • C++.
  • Java.

Thinking about Onsite?

If you need training for 3 or more people, you should ask us about onsite training. Putting aside the obvious location benefit, content can be customised to better meet your business objectives and more can be covered than in a public classroom. It's a cost effective option.

Submit an enquiry from any page on this site, and let us know you are interested in the requirements box, or simply mention it when we contact you.