Course Audience
Information Technology analysts, developers, software engineers, and business analysts. Business and technical leaders will also benefit by learning first-hand what is required for using object oriented techniques.
Course Description
Object-Oriented Analysis & Design Using UML workshop teaches attendees to fully define the scope, requirements/analysis and design of an application using object analysis/design techniques. Moving quickly from concept to technique, multiple workshops iteratively build the models and details needed to exploit the use of object techniques. The key features and notations of the emerging UML (Unified Modeling Language) are covered. The course focuses on building business systems using the practical and intuitive elements of object-oriented methodologies.
Prerequisites
Relevant reading and exposure on Object-Oriented Design and programming concepts.
TOPICS COVERED IN LECTURE & LAB
Definition
- Introduction & Concepts
- Object-orientation vs. structured thinking
- Constructs: classes, objects, messages, encapsulation, objects, abstract/concrete classes
- Structure: inheritance, aggregation, generalization
- Abstraction, collections
- Messages vs. subroutine calls
- Object orientation benefits & barriers
- Model overview and interrelationships
- Object-oriented development process
- Course notation conventions
Defining The Application Domain
- Criticality of domain definition and project scope
- Defining: technical and business objectives, project constraints, critical success factors
- Event list for scoping the project
- External and internal-temporal events; event table
- Scoping the domain with Classes
- Defining domain business rules
- Actors, actor classes, actor catalog
- Preliminary technical and application architecture definition; infrastructure components
- Incremental project delivery
Domain/Use Case Analysis
- Use case: introduction and usage
- Visual and text documentation of use cases
- Decomposing a use case
- Actors and use cases
- Use case generalization
- Use case ‘uses’ , ‘extends’ & variations
- Use cases and business and temporal events
- Quality testing with scenarios
|
Class/Object Model
- Extracting classes from use cases
- Responsibility driven design with CRC technique
- Format of CRC ‘card’
- Responsibilities and collaborations
- CRC process and validation
- Quality testing with CRC card design
- Class/object model: determining methods and attributes
- Class/object model notation
- Mapping business rules to class/object model
- Defining associations: multiplicity, constraints, roles, recursivity, ordering, association class
- Inheritance: abstract classes, disjoint subclass, multiple inheritance
- Aggregation and composites
- Overriding
- Design issues
- Class/object model validation
Dynamics Model
- Sequence diagram
- State and objects; state rules
- Events and objects
- Object life cycle
- State transition diagram
- When to use state transition diagrams
- Validation: class/object and dynamics models
Interface Model
- GUI interaction and events
- Events and GUI event queue
- Object-oriented user interface design process
- Three schema architecture for oo interface design
- MVC architecture
- Mapping from business to interface classes
- Extending the Use Case model for GUI design
- User task analysis techniques
- Actor profiling
- Prototyping the user interface
- GUI style guides and tips
Design/Architecture
- Need for design
- Partitioning & object-oriented architectures
- Generic layered architecture
- Coupling and design
- Design features impacting partitioning
- Partitioning strategies for design feature
- Packages
- Stereotypes
- Object-oriented features of RDBMS
- Mapping class/object model to RDBMS
- Mapping container class and iteration to RDBMS
- Usage analysis for design and partitioning
- Deployment diagram
- Patterns overview: purpose and origins
- Causes of redesign
- Catalogued patterns
- Coad patterns
- MVC pattern
- Looking for patterns for design
|