Object Oriented Analysis and Design (OOAD) With UML
This course teaches proven real-world techniques to meet the biggest challenge in the software development community - building quality systems which fulfill your requirements, and delivering them on time. The focus of the course is to give you the practical skills that are most critical in building well designed software systems. It is extremely hands-on and applied, as well as giving you the formal knowledge you need to be fully conversant in this important area.
Participants will finish this course with a thorough understanding of what OOAD is (and is not), what are the techniques and choices that are available, how to use the techniques, and most importantly, when to use a particular technique to best effect, and when not to use it (e.g. - to avoid “analysis paralysis”). Software built using these techniques has a very high success rate industry-wide.
The course focuses on three areas:
Concepts : OO concepts & best practices
Notation: OO diagramming notation (UML)
Process: Process of developing OO systems
Each area is introduced individually for clarity, and then all three are brought together with added depth in the context of a group project. The group project gives participants the chance to apply what they have learned, and also reflects the team environment most people are working in.
The course includes coverage of the most useful tools that exist today, including: Using Unified Modeling Language (UML) to document designs, documenting requirements with Use Cases, static and dynamic system modeling, software processes (Unified Process/RUP/Agile), Design Patterns, and coverage of best practices in software development.
Understand basic OO concepts such as types, inheritance & interfaces, & know how to use them
Understand OO analysis and design and its difference from structured design
Develop a gut feel for OO do’s and don’ts
Utilize OO architectural and design patterns
Be familiar with the Unified Modeling Language (UML) diagrams
Use the UML as a modeling and communications tool
Create Use Cases to document requirements
Create a static conceptual model of your system
Create a dynamic behavioral model of your system
Use Design Patterns to refine your model
Understand what a software development process is and why it is important
Understand the industry standard processes including Unified Process/RUP and Agile Processes
Design a software development process that fits the ceremony and complexity of your projects
Utilize the steps of the process to produce better software