Java Fundamentals: Object-Oriented Analysis and Design (OOAD) with UML Training

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

  1. Introduction to Analysis and Design
    1. Why is Programming Hard?
    2. The Tasks of Software Development
    3. Modules
    4. Models
    5. Modeling
    6. Perspective
    7. Objects
    8. Change
    9. New Paradigms
  2. Objects
    1. Encapsulation
    2. Abstraction
    3. Objects
    4. Classes
    5. Responsibilities
    6. Attributes
    7. Composite Classes
    8. Operations and Methods
    9. Visibility
    10. Inheritance
    11. Protected and Package Visibility
    12. Scope
    13. Class Scope
  3. Advanced Objects
    1. Constructors & Destructors
    2. Instance Creation
    3. Abstract Classes
    4. Polymorphism
    5. Multiple Inheritance
    6. Solving Multiple Inheritance Problems
    7. Interfaces
    8. Interfaces with Ball and Socket Notation
    9. Templates
  4. Classes and Their Relationships
    1. Class Models
    2. Associations
    3. Multiplicity
    4. Qualified Associations
    5. Roles
    6. Association Classes
    7. Composition and Aggregation
    8. Dependencies
    9. Using Class Models
  5. Sequence Diagrams
    1. Sequence Diagrams
    2. Interaction Frames
    3. Decisions
    4. Loops
    5. Creating and Destroying Objects
    6. Activation
    7. Synchronous & Asynchronous
    8. The Objects Drive the Interactions
    9. Evaluating Sequence Diagrams
    10. Using Sequence Diagrams
  6. Communication Diagrams
    1. Communication Diagrams
    2. Communication and Class Diagrams
    3. Evaluating Communication Diagrams
    4. Using Communication Diagrams
  7. State Machine Diagrams
    1. What is State?
    2. Object-Oriented Analysis & Design
    3. Using the Unified Modeling Language
    4. State Notation
    5. Transitions and Guards
    6. Registers and Actions
    7. More Actions
    8. Internal Transitions
    9. Superstates and Substates
    10. Concurrent States
    11. Using State Machines
    12. Implementation
  8. Activity Diagrams
    1. Activity Notation
    2. Decisions and Merges
    3. Forks and Joins
    4. Drilling Down
    5. Iteration
    6. Partitions
    7. Signals
    8. Parameters and Pins
    9. Expansion Regions
    10. Using Activity Diagrams
  9. Package, Component, and Deployment Diagrams
    1. Modeling Groups of Elements – Package
    2. Diagrams
    3. Visibility and Importing
    4. Structural Diagrams
    5. Components and Interfaces
    6. Deployment Diagram
    7. Composite Structure Diagrams
    8. Timing Diagrams
    9. Interaction Overview Diagrams
  10. Use Cases
    1. Use Cases
    2. Use Case Diagram Components
    3. Actor Generalization
    4. Include
    5. Extend
    6. Specialize
    7. Other Systems
    8. Narrative
    9. Template for Use Case Narrative
    10. Using Use Cases
  11. Process
    1. Process
    2. Risk Management
    3. Test
    4. Reviews
    5. Refactoring
    6. History
    7. The Unified Process
    8. Agile Processes
  12. The Project
    1. Inception
    2. Elaboration
    3. Elaboration II
    4. Construction Iterations
    5. Construction Iterations – The Other Stuff
  13. Domain Analysis
    1. Top View – The Domain Perspective
    2. Data Dictionary
    3. Finding the Objects
    4. Responsibilities, Collaborators, and Attributes
    5. CRC Cards
    6. Class Models
    7. Use Case Models
    8. Other Models
    9. Judging the Domain Model
  14. Requirements and Specification
    1. The Goals
    2. Understand the Problem
    3. Specify a Solution
    4. Prototyping
    5. The Complex User
    6. Other Models
    7. Judging the Requirements Model
  15. Design of Objects
    1. Design
    2. Factoring
    3. Design of Software Objects
    4. Features
    5. Methods
    6. Cohesion of Objects
    7. Coupling between Objects
    8. Coupling and Visibility
    9. Inheritance
  16. System Design
    1. Design
    2. A Few Rules
    3. Object Creation
    4. Class Models
    5. Interaction Diagrams
    6. Printing the Catalog
    7. Printing the Catalog II
    8. Printing the Catalog III
    9. Object Links
    10. Associations
  17. Refactoring
    1. Refactoring
    2. Clues and Cues
    3. How to Refactor
    4. A Few Refactoring Patterns
  18. Appendix A – UML Syntax
  19. Appendix B – Design by Contract
    1. Contracts
    2. Enforcing Contracts
    3. Inheritance and Contract
  20. Appendix C – University Summary
  21. Appendix D – Implementations
    1. C++
    2. Java
    3. C#

To Hire an AMS Java Developer Subject Matter Expert and Instructor who also teaches this class, call us today at 800-798-3901!

Leave a Reply