Object Oriented Application Development With UML

Course:  OOAD
Duration:  5 Days
Level:  I
Course Summary

You have probably written software code that focuses on the procedures of a system. You may now need to write code that focuses on the properties of the objects involved in the system rather than the procedures. We will begin by examining the concepts underlying the object-oriented programming model.

Modern software systems are complex. By pictorially representing the software design and business processes, organizations can deliver higher quality systems to the customers and end users.

UML (Unified Modeling Language) is the OMG approved industry-standard notation for producing the models of a system. It is used for visualizing, specifying, constructing and documenting the artifacts of a software-intensive system. You can use UML with all processes, throughout the development life cycle from analysis to testing and debugging, and across different implementation technologies.

In this course, you will be introduced to the basic concepts of the Unified Modeling Language (UML), Model Driven Architecture (MDA), and the Unified Software Development Process. You will also draw all the 13 diagrams of the UML.

You'll learn to generate and interpret UML models as applied to a wide range of activities using the significant extensions and enhancements of UML 2. These skills are put into practice using a variety of tools.

« Hide The Details
Topics Covered In This Course

Describing the Characteristics and Benefits of Object-Oriented Programming

  • Examine the Different Approaches to Problem Set Analysis
  • Describe the Evolution of the Object Model
  • Identify the Benefits of Object-Oriented Programming

Identifying the Elements of the Object Model

  • Define Object Relationships and Attributes
  • Objects and classes
  • Links and relationships
  • Examine Classes
  • Identify the Relationship Between Classes
  • Inheritance and polymorphism
  • Examine Polymorphism in Class Implementations

Identifying the Key Phases in Software Product Development

  • Identify the Aspects of a Good Project Plan
  • Identify the Elements in Software Requirement Specifications
  • Determine the Steps Involved in Designing a Class Structure
  • Examine the Coding Process

Introduction to UML

  • Enumerate the Diagramming Languages of UML
  • Explore the Basic Models of the Model Driven Architecture
  • Explore the Basic Principles of the Unified Software Development Process

Modeling the Structure of a System

Specifying classes

  • Representing information as attributes
  • Representing functionality as operations

Identifying relationships between classes

  • Dependencies
  • Associations
  • Aggregation and composition
  • Generalization

Object and class diagrams: the core of UML

  • Showing classes and their relationships
  • Depicting snapshots using object diagrams

Modeling the Behavior of a System

Use case diagrams: describing user requirements

  • Representing systems boundaries
  • Actors and use cases
  • Notations for refinement

Developing a System Using Use Cases

  • Create Simple Use Case Diagrams
  • Use One Use Case to Extend Another Use Case
  • Include One Use Case in Another Use Case
  • Use Multiplicities in Use Cases

Creating Class and Object Diagrams

  • Draw a Simple Class Diagram
  • Document Interfaces
  • Document Associations
  • Document Inheritance
  • Document Aggregation
  • Draw Object Diagrams

Interacting with Objects Using Sequence Diagrams

  • Create a Sequence Diagram
  • Handle Combined Fragments in Sequence Diagrams

Modeling Dynamic Behavior Using State Machine and Activity Diagrams

  • Create a State Machine Diagram
  • Draw Activity Diagrams

Representing State Machines

State machine diagrams: capturing state-dependent behavior

  • States, transitions and events
  • Concurrent substates
  • History and synch states

Activity diagrams: specifying behavioral logic

  • Modeling workflows
  • Partitioning activities using swimlanes
  • Concurrency and synchronization of parallel activities

Using Communication, Timing, and Interaction Overview Diagrams

  • Create a Communication Diagram
  • Create a Timing Diagram
  • Create an Interaction Overview Diagram

Using Component, Composite Structure, and Deployment Diagrams

  • Create a Component Diagram
  • Create a Composite Structure Diagram
  • Create a Deployment Diagram

Layering the System into Packages

  • Use Packages to Organize the Elements of a Design
  • Use Packages with Use Cases

Managing and Scheduling the Software Development Process

  • Manage a Software Project
  • Prioritize Software Development

An Introduction to Design Patterns and Design Refactoring

  • Patterns, mechanisms and frameworks
  • Representing design patterns

Life cycle stages

  • Using UML within the Unified Process
  • Modeling business processes
  • Capturing requirements
  • Systems analysis
  • Software design
What You Can Expect

You will examine the principles of object-oriented programming and UML2. You gain hands-on UML experience using UML tools. Exercises include:

  • Modeling system requirements and business processes with use cases
  • Representing system structure using class and object diagrams
  • Modeling behavior with interaction, state machine and activity diagrams
  • Generating HTML and textual documentation
  • Enhancing diagrams with UML extensions
  • Producing interrelated diagrams of a larger system model

At the end of this course, participants will be able to:

  • Describe the characteristics and benefits of object-oriented programming.
  • Identify the elements of the object model.
  • Identify the key phases in software product development.
  • Explore software design methodologies and tools.
  • Determine the use of object programming in windowed applications.
  • Be introduced to the diagramming languages of UML and the concepts involved in the software development process.
  • Model software and non-software systems using UML 2
  • Capture and document user requirements using use cases
  • Develop a system using Use Cases.
  • Create Class diagrams having responsibilities, relationships, and an Object diagram.
  • Depict interactions with objects using Sequence diagrams.
  • Create State Machine and Activity diagrams.
  • Create Communication, Timing, and Interaction Overview diagrams.
  • Describe the actual implementation of a system using the Component, Composite Structure, and Deployment diagrams.
  • Layer the system into packages.
  • Manage and schedule the software development process.
  • Generate and interpret UML models using the complete diagramming notation
  • Identify UML tools to forward- and reverse-engineer code, XML and database schemas
  • Ensure consistency and accuracy throughout all diagrams
  • Represent design patterns in UML
Who Should Take This Course

The target student is interested in learning general object-oriented programming concepts. This course provides a foundation for students desiring to go on and learn one or more object-oriented programming languages. Business analysts, designers, programmers, project managers and all other personnel involved in systems development. UML practitioners who wish to update their skills to UML 2 will also benefit. Knowledge of object-oriented techniques is helpful but not required.

Recommended Prerequisites

Some analysis, design or programming experience is essential.

Training Style

Instructor-led, group-paced, classroom-delivery learning model with structured hands-on activities.

« Hide The Details
Related Courses
Code Course Title Duration Level
Object-Oriented Analysis and Design Using UML
3 Days

Every student attending a Verhoef Training class will receive a certificate good for $100 toward their next public class taken within a year.

You can also buy "Verhoef Vouchers" to get a discounted rate for a single student in any of our public or web-based classes. Contact your account manager or our sales office for details.

Schedule For This Course
There are currently no public sessions scheduled for this course. We can schedule a private class for your organization just a couple of weeks from now. Or we can let you know the next time we do schedule a public session.
Notify me the next time this course is confirmed!
Can't find the course you want?
Call us at 800.533.3893, or
email us at [email protected]