Training Categories

Click on a link to see more about each course.

Technical Training

Schedule

Course Outline

Dates Offered (click on the desired date to register):


This course is currently not scheduled for the near future.

Object Oriented Analysis and Design using UML

Course Number:  OOAD_UML

Course Description:  This workshop presents the concepts and techniques necessary to effectively use the system requirements captured using use cases to drive the development of a robust design model. In this intense, hands-on workshop, participants learn to apply the Unified Modeling Language (UML) to fundamental object-oriented analysis and design concepts including architecture, objects, classes, components, stereotypes, relationships, and all supporting diagrams.
UML is used throughout the project lifecycle to capture and communicate analysis and design decisions. Thus, the UML notation is taught in the context of an iterative, use case-driven, architecture-centric process.

Objectives:  Upon completion of this course, participants will be able to:
• Produce detailed object models and designs from system requirements
• Exploit the rich modeling concepts provided by Unified Modeling Language (UML)
• Analyze and document software designs using the Unified Process
• Identify use cases and expand into full behavioral designs
• Apply proven design patterns to refine analysis and design models
• Expand the analysis into a design ready for implementation
• Construct testable and adaptable designs

Benefits:  Object-oriented (OO) analysis and design is the principal industry-proven method for developing reliable, modular, testable programs, and systems. Consistent use of OO techniques leads to shorter development life cycles, increased productivity and reduced system maintenance costs.

This course provides practical skills in the latest OO analysis and design methods. Through workshops, participants develop real designs for use with OO and traditional programming languages. Attendees work in teams on OO analysis and design projects drawn from business and engineering systems. Participants apply modeling techniques in steps from analysis through design using UML. Workshops include:
• Identifying and refining use cases
• Producing object models: classes, associations and attributes
• Extracting reusable components
• Expanding sequence models to produce object state machines
• Applying design patterns to achieve platform independence

Target Audience:  This course is valuable for software engineers, systems analysts, designers, and programmers who need to take full advantage of the benefits of OO software development. Basic familiarity with objects or an OO programming language is helpful.

Prerequisites:  Some exposure to the problems of analysis and design. Experience with structured analysis and design and object-oriented programming would be helpful.

Course Length:  4 or 5 days

CourseTopics:

INTRODUCTION AND OVERVIEW
Using UML notation
• Use case diagrams
• Object models
• Packages and subsystems
• Interaction diagrams
Review of object-oriented concepts
• Classes, objects and attributes
• Encapsulation and interfaces
• Associations and multiplicity
• Inheritance and aggregation
• Polymorphism and collections
The Unified Process
• The object-oriented software life cycle
• Use case-driven and architecture-centric features
• Iterative and incremental development
• Performing requirements analysis
PRODUCING REQUIREMENTS MODELS
Capturing system behavior in use cases
• Finding primary & secondary use cases
• Include and Extend dependencies
• Use case generalization relationships
• Refining use cases: rapid prototypes
Creating the domain object model
• Building a system vocabulary
• Finding problem domain objects and attributes
• Managing analysis complexity with packages
ESTABLISHING THE OBJECT MODEL
Refining classes and associations
• Analysis model vs. design model classes
• Modeling associations and collections
• Preserving referential integrity
• Identifying link attributes
Achieving reusability
• Isolating reusable base classes
• Reuse through delegation
• Identifying and using service packages
• Improving reuse with design patterns
GENERATING THE BEHAVIORAL MODEL
Use case realization
• Sequence diagrams, object lifelines and message types
• Refining sequence diagrams to match object models
• Tying object and behavioral models with collaboration diagrams
• Implementing memory in objects using state machines
• States, events, actions and guard conditions
• Nested machines and concurrency
• Converting sequence diagrams into communicating state machines
• Modifying the object model to facilitate states

Analyzing object behavior
• Modeling methods with activity diagrams
• Swimlanes, concurrency and synchronization
• Distributing methods across hierarchies with polymorphism, propagation and delegation
• Improving robustness using constraints, dependencies and the Object Constraint Language (OCL)
OBJECT-ORIENTED DESIGN
Design at the object level
• Designing and evaluating methods
• Synchronizing dependent attributes
• Deriving association collections from class library collections
• Normalizing classes with dependent data
• Mapping object designs to programming languages
System design
• User interfaces and the I/O model
• Partitioning systems for deployment across processors, tasks and threads
• Persistence: storing objects to disks and databases
• Mapping designs to concurrent systems
Component design
• COM, CORBA and SOAP protocols
• Advantages of components with simple classes
• Deploying applications using components
DESIGN PATTERNS
Purposes of design patterns
• Improving architecture, analysis models
• Achieving reuse, robustness and flexibility
Using design patterns
• Achieving user interface independence
• Patterns for persistence
• Enabling product evolution
• Improving dynamic behavior
• Creational, behavioral and structural patterns
• Combining and varying patterns

Differences Between UML 2.x and UML 1.x
- UML 2 Architecture
- UML Infrastructure
- UML Superstructure (or UML)
- UML Superstructure (or UML)…
- Object Constraint Language (OCL)
- UML Diagram Interchange
- Officially Recognized Diagram -Package Diagram
- Package Diagram
- Class Diagram
- Activity Diagram
- Sequence Diagram
- Sequence Diagram
- Component Diagram
- New Diagrams
- Replacement Diagrams
- Communication Diagram
- State Machine Diagram

Phone:  772 217 3261

Email:  info@jhltech.com

Contact Us