Object Oriented Analysis and Design: Mastering UML
(BAOOAD, 5 days)


Description

This SETC Certified System design course provides IT professionals with a good overview of the end to end roles and responsibilities of a software designer in the context of an application development project. The course begins with a discussion of the differences between a waterfall methodology and an iterative methodology as it applies to the systems design role. It is worth noting that the iterative methodology is emphasized and discussed in detail in this course. Having situated systems design within the larger context of the overarching methodology, a thorough discussion of business use cases, system use cases, UML and database design is undertaken. The focus is on the development of high quality functional requirements in support of a particular design activity. This is followed by an implementation workshop which allows participants to see how a given design can be implemented using the object oriented language of their choice. If time permits, the course concludes with an overview of design patterns and of their implementation in the chosen language.

Dates and Pricing


Oct 23 to Oct 27, 2017$2,775/person Jan 29 to Feb 2, 2018$2,775/person Feb 26 to Mar 2, 2018$2,775/person Mar 26 to Mar 30, 2018$2,775/person

Outline

Software Engineering with Components.
What is a good system?
Do we have a good system?
What are good systems like? Encapsulation, Abstraction, Coupling!
How are good systems built?
Object Concepts
Defining terms: Containment, Inheritance, Polymorphism, Interface and Implementation, classes, etc
What is an object? Messages, Interfaces, Classes.
Inheritance.
Polymorphism and Dynamic Binding.
How does this help us achieve the goals of Section I.
The Rational Unified Process
The Happy Video Store
The Rational Unified Process
The Inception Phase
The Elaboration Phase
The Construction Phase
The Transition Phase
UML: Essentials of Class Models
Introduction to UML
Identifying objects and classes.
Associations.
Attributes and Operations.
Generalization.
The class model during the development.
CRC cards.
UML: More On Class Models.
More about associations: Aggregation and Composition, Roles, Navigability, Qualified Associations, Derived Associations, Constraints.
More about classes: Interfaces, Abstract Classes.
Parametrized classes.
Dependency
UML: Use Case Models
Actors in detail.
Use cases in detail
System boundary
Relationships between use cases.
Relationships between actors.
Actors and classes.
UML: Interaction Diagrams.
Collaborations.
Interactions on Collaboration Diagrams.
Sequence Diagrams.
More advanced features: Messages from an object to itself, Detailed Behavior, Returned Values, Creation and Deletion of Objects, Timing.
Other Purposes: providing an operation, how design patterns work, how a component works.
Conditional Behavior and Iteration.
Concurrency.
UML: State And Activity Diagrams.
State Diagrams
Activity diagrams.
Other kinds of events.
Other kinds of actions.
Looking inside states.
Concurrency within states.
UML: Implementation Diagrams
Component Model
Deployment Model
UML: Reuse: Components and Patterns.
What can be reused and how?
Why reuse?
Why is reuse hard?
Which components are really reusable?
What difference does object orientation make?
Creating Objects with Java/VB.NET/C#
Proper Coding
Using Classes
Creating Classes
Class Properties
Object Methods
Constructors
Destructors
Static Data
A complete Object example
Inheritance and Polymorphism
Inheritance
Polymorphism
Abstract Functions and Classes
Interfaces
Common Inheritance Examples
UML: Design Patterns (If Time Permits):
Modeling Design Patterns
Singleton
Abstract Factory
Facade
Visitor
Observer