Introduction
This interactive course presents the concepts and techniques necessary to
effectively use system requirements, captured using use cases, to drive
the development of a robust design model. In this hands-on workshop,
participants learn to apply the Unified Modelling Language (UML) to
fundamental object-oriented analysis and design concepts using the core
UML diagrams. The course can run using a variety of modelling tools,
including Rational Rose, Rational Modeller, Enterprise Architect,
Telelogic, Visio, or a paper and pen! The course follows the rational
unified process as it takes you through the analysis and then the design
phase of a software lifecycle.
Course ObjectivesBy the end of the course you will be
able to:
-
Create effective use-case diagrams and write effective use case
descriptions and scenarios
-
Identify analysis classes from use case description documents
-
Create analysis sequence diagrams from analysis classes, use case
descriptions and scenarios
-
Create class diagrams from analysis sequence diagrams, and create
design sequence diagrams allocating behaviours appropriately
-
Apply the concepts of abstraction, encapsulation, inheritance and
polymorphism to create a comprehensive class diagram
-
Create state charts and understand how they feed into the model
-
Understand the need for mechanisms, and be able to identify required
mechanisms
-
Identify the need for components, and be able to identify suitable
components
-
Understand how to package classes effectively, and understand the
principles of layering applications
-
Understand the different views of a software architecture, the key
mechanisms that are defined in support of that architecture, and the
effect of the architecture and mechanisms on the produced design
-
Describe basic design considerations, including the use of patterns
Content
Concepts and UML Overview - An overview of the basic OO concepts -
Abstraction - Encapsulation - Objects and Classes - Polymorphism -
Interfaces - Subsystems - UML Notation Overview
Introduction to Use-Cases - Overview of the basic Use-Case Modelling
concepts - Actors, Use-Cases, Associations - Requirements Documents (Use
Case Model, Use Case Specification, Supplementary Specification, Glossary)
Defining
the Architecture - Techniques for defining the initial Architecture
for the system - Introducing 3-Tier, MVC, and Layered Architectures
Use Case Analysis - Techniques for identifying the initial classes from
Use-Case Specifications - Allocating responsibilities to these classes -
Describing the required class collaborations to deliver the Use-Case
functionality - Describing the class relationships that must exist to
support collaborations
Analysis to Design - Techniques for moving from the initial analysis
model produced in Use Case Analysis to the more formal design model
Implementing
Architectural Design Patterns - Refinement of the initial architecture
to incorporate key design and implementation patterns for mechanisms -
Persistence - Security
Use Case Design - Techniques for refining
the collaborations initially developed during 'Use Case Analysis' to
incorporate the defined architectural patterns and design elements -
Techniques for designing the internals of subsystems identified during
'Analysis to Design'
Introducing Design Patterns - Commonly used
Design Patterns - Singleton - Factory - Abstract Factory - State
Class
Design - Techniques for designing the internals the design classes -
Modelling state-controlled behaviour - The refinement of the class
relationships and the incorporation of basic patterns