This 5 day Object-Orientated Analysis and Design (OOAD) with UML training course teaches students how to use object-oriented techniques from requirements gathering to implementation. Learn how to analyze and design classes and their relationships to each other in order to build a model of the business requirements. All the UML diagrams are covered in this OOAD class to identify the most suitable diagram suite for your organization. An emphasis is placed on Use Cases to capture and manage requirements and form the basis for test scenarios. Class relationships, through the use of Design Patterns, are leverage to enforce OO concepts that will produce a reusable structural design for your system that adapts well to change. Activity and Sequence diagrams are explored in some detail to model the dynamic aspects of your system. This is a hands-on OOAD class. Students will apply their new OOAD and UML skills obtained in the course to model prospective application solutions.
Goals
- To understand requirements, analysis and design workflow
- To learn to identify classes
- To learn to use diagram notation for use cases, class and object representation, links and associations, inheritance and object messages
- To gain a working knowledge of UML 2.0
- To understand the advantages of Design patterns
Outline
- 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
- 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 Diagrams
- Communication and Class Diagrams
- Evaluating Communication Diagrams
- Using Communication Diagrams
- State Machine Diagrams
- What is State?
- Object-Oriented Analysis & Design
- Using the Unified Modeling Language
- 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 Cases
- Use Case Diagram Components
- Actor Generalization
- Include
- Extend
- Specialize
- Other Systems
- Narrative
- Template for Use Case Narrative
- Using Use Cases
- Process
- Process
- Risk Management
- Test
- Reviews
- Refactoring
- History
- The Unified Process
- Agile Processes
- The Project
- Inception
- Elaboration
- Elaboration II
- Construction Iterations
- Construction Iterations – The Other Stuff
- 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
- Printing the Catalog II
- Printing the Catalog III
- Object Links
- Associations
- Refactoring
- Refactoring
- Clues and Cues
- How to Refactor
- A Few Refactoring Patterns
- Appendix A – UML Syntax
- Appendix B – Design by Contract
- Contracts
- Enforcing Contracts
- Inheritance and Contract
- Appendix C – University Summary
- Appendix D – Implementations
- C++
- Java
- C#
To Hire an AMS Java Developer Subject Matter Expert and Instructor who also teaches this class, call us today at 800-798-3901!