Object-Oriented Analysis and Design Using UML


Audit this courses
a
You Will Learn How To • Capture user requirements in use cases and transform them into detailed designs • Exploit the rich object-oriented modeling provided by Unified Modeling Language (UML) • Adapt to changing requirements with iterative techniques and component-based design • Design agile solutions optimized for modern object-oriented languages and platforms • Re-factor design models by applying proven design patterns • Verify implemented designs with automated unit and system tests
Course Duration: 3  Days

Object-Oriented Analysis and Design Using UML 

 

You Will Learn How To: 

  • Capture user requirements in use cases and transform them into detailed designs
  • Exploit the rich object-oriented modeling provided by Unified Modeling Language (UML)
  • Adapt to changing requirements with iterative techniques and component-based design
  • Design agile solutions optimized for modern object-oriented languages and platforms
  • Re-factor design models by applying proven design patterns
  • Verify implemented designs with automated unit and system tests

 

Course Benefits 

Object-oriented (OO) analysis and design is the principal industry-proven method for developing reliable, modular, testable programs and systems. This course provides practical skills in the latest OO requirements gathering, analysis, design, and testing methods. Intensive hands-on exercises offer you a working knowledge that turns concepts into practice.

 

 

Who Should Attend 

Anyone involved in developing systems on modern object-oriented platforms. Project teams benefit greatly by sharing the same methodology with co-developers or with supportive management. Familiarity with basic OO concepts is helpful, but not assumed.

 

Course Outline

 

Lesson1: 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

 

Lesson 2: Producing Requirements Models

  • Capturing system behavior in use cases
  • Finding primary and secondary use cases
  • Refining use cases with Include and Extend dependencies
  • Modeling user interface requirements
  • Validating user interfaces against use cases
  • Creating the domain object model
  • Mapping ontological data structures onto a UML data model
  • Building a class description database
  • Finding analysis classes
  • Managing analysis complexity with packages and subsystems

 

Lesson 3: Establishing the Object Model

  • Refining classes and associations
  • Analysis model vs. design model classes
  • Categorizing classes: entity, boundary and control
  • Modeling associations and collections
  • Preserving referential integrity
  • Achieving reusability
  • Isolating reusable base classes
  • Reuse through delegation
  • Improving reuse with design patterns

 

Lesson 4: Generating the Behavioral Model

  • Use case realization
  • Sequence diagrams, object lifelines and message types
  • Refining sequence diagrams
  • Sharing models in a version controlled repository
  • Implementing memory in objects using state machines
  • States, events and actions
  • Nested machines and concurrency
  • Capturing state machines from sequence diagrams
  • Modifying the object model to facilitate states
  • Analyzing object behavior
  • Modeling methods with activity diagrams
  • Swimlanes, concurrency and synchronization
  • Restructuring using polymorphism and delegation
  • Improving robustness using constraints, dependencies and the Object Constraint Language (OCL)

 

Lesson 5: Object-Oriented Design

  • Design at the object level
  • Designing and evaluating methods
  • Synchronizing dependent attributes
  • Normalizing classes with dependent data
  • System design
  • Partitioning systems for deployment
  • Persisting objects to databases
  • Mapping designs to concurrent systems
  • Service-oriented architecture
  • Distributing applications with Web services
  • Applying component technology
  • Deploying applications using components

 

Lesson 6: Design Patterns

  • Purposes of design patterns
  • Improving architecture, analysis models
  • Achieving reuse, robustness and flexibility
  • Applying design patterns
  • Achieving user interface independence
  • Patterns for persistence
  • Improving designs by refactoring
  • Creational, behavioral and structural patterns
  • Testing Object-Oriented Designs
  • Unit testing classes against their specifications
  • Instituting automated object-oriented regression testing
  • Validating implemented behavioral requirements
  • Writing test scenarios from use case descriptions

 

 

blog comments powered by Disqus