Zoom Outline PDF View  or  Email Back to Schedule for All UK


OO Analysis and Design with UML




AUDIENCE:   This course is intended primarily for systems analysts, designers, programmers and project managers. The analysis section (first 3 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.

DURATION:   5 days. Lecture and Workshop based.

OBJECTIVES:   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.0 notation.

COURSE CONTENT:  

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
Objects
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
Decisions
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
What is State?
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
Decisions and Merges
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
Class Models
Use Case Models
Other Models
Judging the Domain Model

Requirements and Specification
The Goals
Understand the Problem
Specify a Solution
Prototyping
The Complex User
Other Models
Judging the Requirements Model

Design of Objects
Design
Factoring
Design of Software Objects
Features
Methods
Cohesion of Objects
Coupling between Objects
Coupling and Visibility
Inheritance

System Design
Design
A Few Rules
Object Creation
Class Models
Interaction Diagrams
Printing the Catalog
Object Links
Associations

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


GH08/10

© 2009 Verhoef Training Ltd.

Course Information

Date Location Price(£)


Copyright © 2009 - Verhoef Group of Companies - All Rights Reserved