Duration: 5 days
Description
This class will teach students core concepts, techniques, methodologies and best practices neccessary to perform Object Oriented analyis and design. Students will develop a number of object-oriented designs and models to focus on developing skills and understanding of object-oriented design. A number of different models will be used so students can see OO design implemented in a number of different scenarios. Students will learn best practices with use-case, CRC analysis, UML diagramming, design patterns, problem domain analysis, activity diagramming, interaction diagramming, and class diagramming. This class is presented in a workshop having students work on small, intermedidate and large designs. This course offers in-depth coverage of the Unified Modeling Language (UML) by some of the top object-oriented experts in the nation. The last day is focused more advanced topics and designs to prepare students for real-life environments.
Topics
- O0 technology today
- Reasons for OO technology
- Key areas of OO technology
- Why UML
- OO project phases
- Understand the lifecycle of object-oriented projects
- OO Languages
- Class Libraries
- Different OOA&D tools
- OO directions and trends
- Succeeding with OO technology
- OO concepts
- Objects
- Defining classes and attributes
- Identifying model objects and classes
- The different types of relationships between classes
- Abstraction and Encapsulation
- Methods
- Behaviors and operations
- Messaging
- Visibility
- Generalization/Specialization
- Inheritance
- Polymorphism
- Aggregation
- Composition
- Association
- Relationships
- Composite aggregation
- Ternary associations
- Cardinality
- Navigability
- Cohesion
- Coupling
- Interfaces
- A comparision of E/R and class diagrams
- Succeeding with OO technology
- OO analysis and design
- UML graphical notation
- Diagrams and Models
- Diagramming Techniques
- Diagrams
- Icons and relationships
- Analysis techniques
- Optimizing designs
- Mapping system functionality to objects
- Class diagrams
- Collaboration Diagrams
- Sequence diagrams
- Sequence diagrams
- State Transition diagrams
- Activity diagrams
- Analysis and design guidelines
- Design strategies and goals
- Partitioning
- Business processes
- Reusable patterns
- Validating designs
- Gathering specifications
- Developing the correct designs
- Prototyping
- Implementing a design
- Behavioral Analysis
- Domain Analysis
- Working with Use Cases
- Use Case descriptions
- Use Case diagrams
- Working with CRC Cards
- Containment
- Composition
- Referential aggregation
- Inheritance, subTypes and Is-A hierarchies
- Association and link relationships
- Diagramming system events
- State transition diagramming
- Transitions
- Registers and actions
- Superstates and substates
- Concurrent states
- Using state machines
- Design patterns
- Model-View-Controller
- Persistence patterns
- Leveraging reusability
- Managing the Development Cycle
- Organizing the project team
- Managing source code
- Expanding Inheritance Hierarchies
- Abstract Classes and Virtual Methods
- Overriding
- Overloading
- Multiple Inheritance
- Package cohesion
- Package coupling
- Factory method
- Abstract Factory
- Prototypes
- System Patterns
- Architectural Patterns
- Reflection
- J2EE Patterns
- Key reasons why OO projects fail
- Things to watch out for
- Keys to success with OO
- Choosing the right tool
- Metrics
Prerequisites
- A background in data processing and programming is required.
|