Object-Oriented Analysis and Design

Home Resources Feedback Search Contents



Get Java Now

Object-Oriented Analysis and Design With UML

This SoftMoore seminar introduces the fundamental principles of object-oriented requirements analysis and design using the notation of the Unified Modeling Language (UML), which integrates many of the best features from earlier object-oriented methods including the Booch Method, Object-Oriented Software Engineering (Jacobson), and the Object Modeling Technique (Rumbaugh).  Adopted as a standard by the Object Management Group in late 1997, UML has been accepted by the software community as the primary notation for specifying, constructing, visualizing, and documenting the artifacts of a software-intensive system. Topics include an overview of basic object-oriented concepts, requirements capture via use cases, strategies for identifying objects and classes of objects, development of class diagrams, specifying object interactions, design of class hierarchies, specifying object lifecycle and state-dependent behavior, architectural considerations, an incremental and iterative process for object-oriented analysis and design, techniques for evaluating an object-oriented model, and an overview of design patterns for object-oriented software. Case studies and class exercises will be integrated with class discussions throughout the course to illustrate and reinforce the underlying concepts.
This seminar is designed for software professionals who are interested in applying object-oriented techniques to the analysis and design activities of software development. Participants should have strong software development experience. Prior familiarity with object-oriented concepts and languages would be useful but is not required.
Recommended Duration:
5 Days
Course Materials:
Each participant will receive a complete set of all course materials including course notes, class exercises and solutions, and a copy of the Addison-Wesley textbook UML Distilled (Second Edition) by Martin Fowler and Kendall Scott.

Course Outline

Basic Object-Oriented Concepts
 Software Engineering
 Classes and Objects
 Object Identity
 Encapsulation/Information Hiding
 Benefits of an Object-Oriented Approach
Overview of UML
 Background and Current Status
 Model Elements and Relationships
 Common Mechanisms
Capturing Requirements with Use Cases
 Actors and System Boundaries
 Basic Course and Alternative Courses
 Use Case Relationships
 Documenting Use Cases
Modeling the Static Structure
 Modeling Objects and Classes
 Attributes, Operations, and Methods
 Links and Associations
 Class Stereotypes
 Aggregation and Composition
 Abstract Classes
 Association Classes
 Active Classes
Modeling Object Interactions
 Modeling Messages
 Sequence Diagrams
 Collaboration Diagrams
 Modeling Object Lifecycles and State-Dependent Behavior
 States, Events, and Transitions
 Statechart Diagrams
 Actions and Activities
 Sequential and Concurrent Substates
Additional UML Concepts
 Activity Diagrams
 Component Diagrams
 Deployment Diagrams
 Multi-tier Software Architecture
 Logical versus Physical Tiers
 Architecture Impact on Analysis and Design
Analysis and Design Process
 Software Lifecycle Models
 Identifying Objects and Classes
 An Iterative and Incremental Process
 Problem Space versus Solution Space
 The Role of Prototyping
 Documenting Analysis and Design Models
Design Patterns
 The Role of Patterns in Software Design
 Overview of Creational Patterns
 Overview of Structural Patterns
 Overview of Behavioral Patterns
Evaluating an Object-Oriented Design
 Class Coupling and Cohesion
 Principles of Object-Oriented Design
Selected Topics in Object Technology
 Object Persistence
 Object Technology and Software Reuse
 Testing Object-Oriented Software
 Object-Oriented Metrics


Send mail to with questions or comments about this web site.
Last modified: June 1, 2004