
|
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
|
PUBLIC SCHEDULE |
| Date |
Location |
Price(£) |
|
18/10/10
 |
Bath |
1500 |
|
29/11/10
 |
Bath |
1500 |
|
|
|
|
Copyright © 2009 - Verhoef Group of Companies - All Rights Reserved
|