Object-Oriented Analysis and Design UML™ for Software


The Unified Modeling Language (UML™) is the standard from the Object Management Group (OMG) for developing software-centric system analysis and design artifacts. To be effective these artifacts need to be developed in the context of a methodology that provides guidance on why each of the artifacts is created and explains how they are related. This course provides education on the UML language as well as a lightweight methodology for that necessary context. Knowledge is developed through a series of lectures and hands-on exercises. Although a number of textbook problems can be provided by the instructor, this course is most effective when the students use their own problem for the course exercises. This provides a headstart in creating models that can be extended to apply to current work, in addition to ensuring that students are familiar with the problem domain. This course is designed to be modeling tool agnostic, so students are encouraged to use their company standard tool.

What you will learn:

    The goal of this course is to provide students with the necessary skills to create meaningful analysis and design artifacts using UML.

  • Perform Use Case driven requirements analysis
  • Transition from analysis to design – avoiding analysis paralysis
  • Understand basic software architecture and design principles
  • Create designs through the application of principles
  • Understand essential UML notation and diagrams
  • Transform designs into a implementation using a programming language – how much UML is enough
  • Understand how UML-based designs fit into the product lifecycle

Course Outline:

  1. Introduction to Modeling Using UML
    • Lecture/Discussion
    • An overview of the thirteen diagrams of the UML
    • A review of the problem to be addressed in the class
    • A high-level look at the product development lifecycle
    • Modeling the domain
    • Hands-on Exercise
    • Creating the domain model
  2. Use Case Modeling
    • Lecture/Discussion
    • Organizing the use case model
    • UML use case diagrams
    • Tracing system requirements to use cases
    • Elaborating use cases using text to express software requirements
    • Adding activity diagrams to support requirements analysis
    • Hands-on Exercise
    • Creating the use case model
    • Elaborating the use cases
  3. From Problem Domain to Solution Domain
    • Lecture/Discussion
    • Avoiding analysis paralysis
    • Transition from analysis to design
    • Behavior driven structural modeling to assign responsibilities
    • Hands-on Exercise
    • Creating the analysis model to validate use cases
  4. Apply Design Principles to the UML Class Model
    • Lecture/Discussion
    • Basic software architecture and design principles
    • Behavior modeling using sequence diagrams
    • Hands-on Exercise
    • Creating the class model to satisfy requirements in the use case view
  5. Transforming Models to Code
    • Lecture/Discussion
    • Incorporating design patterns in the model and code
    • Transforming models to code
    • Synchronizing models with the evolving code
    • Supporting development with other UML diagrams, including state diagrams
    • Hands-on Exercise
    • Evolving the model to incorporate new information


This course is not on the current schedule of open enrollment courses. If you are interested in attending this or another course as open enrollment, please contact us at (410)956-8805 or at ati@aticourses.com and indicate the course name and number of students who wish to participate. ATI typically schedules open enrollment courses with a lead time of 3-5 months. Group courses can be presented at your facility at any time. For on-site pricing, request an on-site quote. You may also call us at (410)956-8805 or email us at ati@aticourses.com.


  • J.D. Baker  is a Software/Systems Engineer with interest and expertise in enterprise architecture, requirements development, software/system architecture and system design processes and methodologies that support Model-Based Engineering. He has used UML as a leader of development teams since 1999. He provides training and mentoring insoftware and system architecture, software development, iterative/agile development, object-oriented analysis and design, the Unified Modeling Language (UML), use case driven requirements, and process improvement. He is the Analysis and Design Task Force Co-Chair at the OMG. He has participated in the development of UML. J.D. holds many industry certifications, including OMG Certified System Modeling Professional (OCSMP), OMG Certified UML Professional (OCUP), Sun Certified Java Programmer, and he holds certificates as an SEI Software Architecture Professional and ATAM Evaluator.

    Contact this instructor (please mention course name in the subject line)

Request On-Site Quote