|
|
|
|
|
|
|
|
|
Advanced Object-Oriented Analysis and Design Using UML |
Duration: 5 days |
|
|
- Analysts
- Architects
- Designers
- Developers
- Technical managers
- Any stakeholder in an organization applying technology who wants to understand
the object-oriented promise
|
|
Experience with
object-oriented analysis & design is required |
|
|
Description |
This
course covers advanced aspects of object technology. The course teaches
a variety of approaches to advanced issues important in real world
applications. Particular attention is given to topics that improve
the precision and quality of developed systems. The course covers
a variety of techniques encountered in complex mission critical
applications today and guides students through the best practices
of complex system development. Particular attention is given to
topics that present the most productive solutions and identify
approaches that may cause deficiencies during the lifetime of
the system. In addition, the course covers areas of object storage
and retrieval, distributed systems, business rules and objects
and introduces architecture for supportable systems. Emphasizing
productivity and quality, the course concludes with pragmatic
guidelines on how to incorporate testing and quality assurance
into the development process of object-oriented systems. |
|
Objectives |
This course aims
to teach a set of skills necessary to create and deliver well
designed real-world applications. On completion, attendees will be able to:
- Identify advanced concepts of object technology
- Add precision to analysis and design models
- Deploy design by contract and create highly reliable and reusable components
- Use state modeling for describing behavior of complex systems
- Decouple objects using a variety of techniques, improving on flexibility and
maintainability
- Deal with multiple inheritance correctly
- Choose and implement connectivity to relational and OO databases
- Select and design applications with distribution and component mechanisms
- Apply business rules and select their implementation
- Identify issues in construction of supportable and modifiable systems
- Incorporate object-oriented testing and quality assurance as a pervasive
activity
|
|
Course Outline |
Object-Oriented Analysis and Design (Optional Review)
- Domain Modeling
- Object-Oriented Analysis
- Object-Oriented Design
Precise Specifications
- UML and Object Constraint Language
- Values and Types
- Objects and Properties
- Collections
- Use of Precise Specifications
Design by Contract
- Preconditions
- Postconditions
- Invariants
- Contracts in Programming Languages
- Correct use of Inheritance
State Modeling
- Finite State Machines
- Events
- States
- Statecharts
- Nested States
- History Connectors
- Correspondence of States and Other Models
- Orthogonal State Machines
Modeling Multiple Views
- Multiple Views on Systems
- Synthesis of Models
- Combining Specifications
- Issues in Synthesis
Creation of Objects
- Problems in Object Construction
- Type and Class Dependencies
- Factories
- Template Method
- Prototype
Decoupling
- Kinds of Coupling
- Identity Coupling
- Type Coupling
- Interfaces and Implementations
- Adapting Interfaces
- Implementation Coupling
- Decoupling with Command Objects
|
|
Multiple Inheritance
- Multiple Inheritance
- Repeated Inheritance
- Multiple Inheritance of Implementations
- Mapping Multiple to Single Inheritance
Persistence
- Storing Objects in Files
- Object Serialization
- Objects and Relational Databases
- Persistent Storage Engines
- Object-Oriented Databases
Distribution
- Distributed Applications
- RPC
- Proxy Objects
- DCOM
- CORBA
- RMI
- Interface Definition Language
- Object Adapters
- CORBA Services
Objects and Rules
- Business Rules
- Rules and Objects
- Implementation of Rules
Design for Supportable Systems
- Issues of Supportable Systems
- Architecture for Supportability
- Observable Components
- Maintenance Issues
- Modifications in the Field
- Dynamic Configurations
- Framework for Supportability
Testing Object-Oriented Systems
- Testing, Quality and Objects
- Risk Analysis Fundamentals
- Testing Specifications: Verification
- Code Verification
- Design for Testability
- Component Validation
- Test Framework Architectures
- Component Testing Techniques
- Testing Contracts and Functionality
- Testing States
- Testing Interactions
- Testing Subclasses
- Testing Frameworks and System Components
- Testing Exceptions
- System Testing
| |
|
|