this is the right column and should be hidden
Applying UML to Object Orientated Analysis and Design

* Summary
* Objectives
* Prerequisites
* Detailed Outline

Course Duration :

4 days (how to book)

Summary:

This course applies the UML Graphical Language to a large, real life case study. The necessary Object Orientation will be introduced in easily assimilated chunks throughout the course.

The understanding of the subject matter will be developed through a large amount of practical, hands on work which we shall use to consolidate every topic.

We will be weighing up different processes that can be used with the UML (such as waterfall, iterative, spiral) - but we will be focusing on the Unified Process.This course spends an equal amount of time on both analysis and design and is excellent if you want to put UML and Object Orientation into the context of a full project lifecycle. 

Key to becoming an extremely accomplished object orientated designer is a knowledge of Design Patterns and how to apply them. This course will introduce the idea of Design Patterns and study six design patterns in detail, applying each of them to the case study itself.

Objectives:

By the end of this course attendees will:

  • Be familiar with the use of the UML language for describing artefacts of a software system
  • Be familiar with one of the major UML CASE Tools.
  • Be comfortable with the concepts and philosophy of Object Orientation, and aware of the issues around OO
  • Have used the Unified Process, and be able to fit in with real life UP/RUP projects, and understand the terminology and concepts behind RUP/UP
  • Be able to create and understand all of the major UML Diagrams
  • Be able to compare the OO approach with the Procedural/Functional approach
  • Be able to describe the pros and cons of object orientation, and explain why OO leads to better engineering
  • Be able to construct a domain model as a basis for further design work
  • Understand the interaction models are often necessary and be able to use design techniques to construct them
  • Be able to use inheritance in design, and understand the purpose of doing so
  • Know when not to use inheritance
  • Be able to name several of the most useful Design Patterns, and know when they should be applied
  • Be able to apply the fundamental design principles

Prerequisites:

This course has no prerequisites. All subjects are covered from scratch, however those with previous programming experience are likely to benefit the most from the Design Patterns section of the course.

Detailed Outline:

Introducing UML
- Models vs Diagrams
- What UML is and what it is not
- Modelling Notations

  A Quick Look at Process
- Alternative Processes/Methods
- Waterfall Process
- Unified Process - pros and cons
- Rational Unified Process
- UP Phases Inception, Elaboration, Construction, Transition
- Managing Iterations
- Mapping the Unified Process to the UML
- Agile Modelling
- Extreme Programming

Object Orientation Basics
- Pros and Cons Procedural Programming
- Pros and Cons of Object Orientation
- Classes
- Encapsulation
- Collaboration
- Object to Relational Mapping
- Persistence

Use Cases
- Use Cases as structured requirements
- Granularity of Use Cases
- Actors
- Discovering Use Cases from Business Processes
- Primary and Secondary Actors
- Ranking Use Cases
- Specifying Use Cases
- Use Case Descriptions
- Non functional requirements
- Preconditions
- Postconditions
- Main Flow
- Extension Flows
- Style Guidelines

The Domain Model
- Domain Modelling
- Finding Classes
- Notation in the UML
- Attributes
- Associations
- Multiplicities
- CRUD Matrices

The State Machine
- Capturing Business Rules
- Events and States
- Basic Notation
- Superstates and Substates
- Conditional Transitions
- Actions
- Finding Use Cases from the State Model

Detailed Use Case Descriptions
- Use Case Storyboards
- Preconditions
- Postconditions
- Main Flow
- Extension Flow
- Graphical Form

Transition to Detailed Design
- Interaction Modelling
- Responsibility and Collaboration

The Communication Diagram
- Objects and Associations
- Method Calls
- Parameters
- Return Values
- Looping
- Creating Objects
- Mapping to the Design Class Diagram

The Sequence Diagram

Polymorphism, Inheritance and Composition
- Inheritance in UML
- Visibility
- Coupling
- Overriding
- Abstract Methods and Classes
- Polymorphism
- Interfaces
- Composition and Aggregation
- Design Principle: Program to Interfaces
- Design Principle: Favour Composition

Design Patterns and Principles (1)
- The Origin of Design Patterns
- Introducing the Gang of Four (GoF)
- The 23 GoF Patterns
- The Adapter Pattern
- Managing Complex Subsystems: The Facade
- Design Principle: Encapsulate Change
- Design Principle: Least Knowledge

Design Patterns and Principles (2)
- The Singleton
- Discussion of the Singleton Pattern
- Singleton Controversy
- Design Principle: Single Responsibility
- Why Singletons Violate Design Principles
- Using Factories

Design Patterns and Principles (3)
- Avoiding Nested Conditional Logic
- Design Principle: Open/Closed
- The Strategy Pattern
- The Proxy Pattern
- Summary of Design Principles

A Resume of all UML 2.0 Diagrams
- Behavioural Diagrams
- Structural Diagrams
- Interaction Overview Diagram
- Timing Diagram
- Component Diagram
- Composite Structure Diagram
- Deployment Diagram
- Object Diagram
- Model Driven Architecture (MDA)

 
 
Website by YesNo.com