Object Oriented Analysis & Design

Course Code: OOAD

Duration: 3 days

 
 
 
 

Object Oriented Analysis & Design Course Overview

The Object Oriented Analysis & Design course focuses on the fundamental concepts of Object Orientation and UML as part of the Software Development Life Cycle. The course focuses on the core activities and artifacts of Object Orientation and UML when used with various methodologies including XP, Agile and Unified Process. UML 2 notation is used throughout the course.

This hands-on course shows delegates how to analyse and design models of software systems to enable them to develop quality software that meets the requirements of Stakeholders. Delegates will learn how to follow a system through the OO Analysis and Design phases and build models and artifacts to validate and elaborate the design.

UML Modelling Tools are available in the classroom to give delegates experience of using these tools to document analysis and design models.

A Case Study, exercises and examples are used throughout the course to give practical hands-on experience with the techniques covered.

Course Objectives

By the end of the course delegates should be able to:

  • Explain OO Analysis and Design
  • Describe the main processes and artifacts of OO Analysis and Design
  • Identify and Analyse Requirements
  • Model System Functionality with Use Cases
  • Find and Organise Analysis Classes
  • Create System Domain Models
  • Validate Use Case Models with Stakeholders
  • Create Activity Diagrams to describe System Behaviour
  • Model Object Relationships
  • Understand and apply Generalisation and Inheritance
  • Design Object Behaviour
  • Realise System Design
  • Create Deployment Models

Who will the Course Benefit?

The Object Oriented Analysis & Design course is aimed at staff and consultants working as part of a development team using OO techniques to develop quality software including Business and System Analysts, Solution Architects, Programmers, Designers, Subject Matter Experts, Project Managers and anyone who needs a good understanding of the use of Object Oriented Analysis and Design within software development.

This course is particularly beneficial for those using Object Oriented development languages such as Java, Python, C++, Visual Basic and Ruby.

Skills Gained

The delegate will learn and acquire skills as follows:

  • Gathering and documenting Requirements
  • Documenting Requirements with Use Cases
  • Detailing Use Case Flows
  • Designing and Testing Activity Diagrams
  • Identifying Analysis Classes
  • Building Class Models
  • Modelling Relationships between Classes
  • Identifying and Building Generalisation Hierarchies
  • Designing Abstract Classes, Interfaces and Inheritance
  • Modelling System Behaviour
  • Modelling Object State
  • Realising Designs with Interaction Diagrams
  • Designing Packages for Deployment

Object Oriented Analysis & Design Training Course

Course Introduction

  • Administration and Course Materials
  • Course Structure and Agenda
  • Delegate and Trainer Introductions

Session 1: INTRODUCTION TO OBJECT-ORIENTED ANALYSIS AND DESIGN

  • Introduction
  • Software Architecture
  • Object-Orientation
  • Requirements
  • Conclusion

Session 2: USE CASE DIAGRAMS

  • Use Case Modelling
  • Finding Actors and Use Cases
  • Use Case Diagrams
  • Primary and Secondary Actors

Session 3: USE CASE DESCRIPTIONS

  • Developing Use Case Descriptions
  • Level of Detail
  • Pre-Conditiond and Post-Conditions
  • Main Flow
  • Branching within a Flow
  • Duplicate Steps
  • Future Requirements

Session 4: ACTIVITY DIAGRAMS

  • Activity Diagrams for Use Case Flows
  • Activity Diagram Notation
  • Action States
  • Subactivity States
  • Transitions
  • Decisions
  • Parallel Processing
  • Loops
  • Scenarios
  • When to Use Activity Diagrams for Use Case Modelling

Object Oriented Analysis & Design Training Course

Session 5: CLASS AND OBJECT ANALYSIS

  • Steps in Domain Modelling
  • Identifying Candidate Classes
  • Noun Extraction Approach
  • Common Categories Approach
  • Evaluate Candidate Classes
  • Elimination/Retention Review
  • CRC Cards
  • Identify Candidate Attributes and Operations
  • Creation of the Static Domain Model

Session 6: CLASS MODELS

  • Encapsulation
  • Messaging
  • UML object notation
  • Object attribute values
  • Classes
  • UML class notation
  • Name compartment
  • Attribute compartment
  • Visibility
  • Multiplicity
  • Operation compartment

Session 7: MODELLING RELATIONSHIPS

  • Association
  • Types of Associations
  • Aggregation
  • Composition
  • Reflexive Association
  • Navigability
  • Associations and attributes
  • Association Classes
  • Guidelines for Identifying and Modeling Associations

Session 8: GENERALISATION AND INHERITANCE

  • Generalisation
  • Class generalisation
  • Class inheritance
  • Overriding
  • Generalisation in OO Analysis and Design
  • Identifying GeneraliSations
  • Generalised Classes or Interfaces?
  • Mitigating Repeated Inheritance
  • Dependency

Object Oriented Analysis & Design Training Course

Session 9: MODELLING BEHAVIOUR

  • Activity Diagrams
  • Defining the Behaviour
  • Identifying Steps
  • Pre and Post Conditions
  • Special Action Types
  • Identifying Control and Data Flows
  • Data Flows
  • Identifying Expansion Regions
  • Grouping Actions into Partitions
  • Identifying Exceptions and Exception Regions

Session 10: STATE MACHINE DIAGRAMS

  • State machines and classes
  • Basic state Machine syntax
  • States
  • State syntax
  • Transitions
  • Events
  • Call events
  • Signal events
  • Change events
  • Time events
  • Super States

Session 11: REALISATION AND DESIGN

  • Sequence Diagrams
  • Detailing Class Operations from Sequence Diagrams
  • Creating Sequence Diagrams
  • Iteration
  • Branching and self-delegation
  • Concurrency - Active Objects
  • Object State and Constraints

Session 12: IMPLEMENTATION AND DEPLOYMENT

  • Solution Modelling
  • Solution Architecture
  • Infrastructure Architecture 5
  • Modelling the Presentation and Data Layers
  • Design Modelling
  • OO Design Principles
  • Modelling Object Behaviour
  • Effective Package Design
Notes:
  • Course technical content is subject to change without notice.
  • Course content is structured as sessions, this does not strictly map to course timings. Concepts, content and practicals often span sessions.

Course Requirements

Delegates attending this course should have a basic understanding of programming in an object-oriented language such as Java, Python, Ruby, JavaScript, etc. Delegates should understand the concepts of classes, attributes and operations. This knowledge can be obtained by attendance on the pre-requisite Introduction to Programming course.

Pre-Requisite Courses

Course Reviews

I enjoyed the tuition and thought the course was a good basis for gaining a better understanding of data modelling and analysis. Being sent on the course by my employer despite having done the same tuition at university.

oliver - Software Developer

Public Scheduled Events

Classroom & Live Virtual Instructor-Led Training

Duration: 3 days

Price: £1,560.00 exc. VAT 


Start Date Options Spaces  
19 Jun 2024
StayAhead Virtual Courses available 
Spaces Book Now 
18 Sep 2024
StayAhead Virtual Courses available 
Spaces Book Now 
11 Dec 2024
StayAhead Virtual Courses available 
Spaces Book Now 
 

Live Virtual Classroom

 
Join live instructor-led classroom training from the comfort of your home or office.
All the convenience and benefits of the classroom experience without the hassle and costs of travel and accommodation.
 
 



Our Customers Include

 
EDF
Amazon
American Express
Aviva
QA
BAE
University of Cambridge
Barnardo's
Scottish Government
Bauer
Bloomberg
BP
HSBC
DVLA
GlaxoSmithKline
Government Campus
Capita
Tui
NHS
Ordnance Survey
Ministry of Defence
Zurich Insurance Group
trainline
Vodafone
 
 



Our Course Curriculum

 
 
 
+44 (0)20 7600 6116
Enquiries@StayAhead.com
Copyright © 2024 StayAhead Training Ltd
Cookies   /   Privacy Policy