Object-oriented analysis and design (OOAD) is a software engineering approach that models a system as a group of interacting objects. Each object represents some entity of interest in the system being modeled, and is characterised by its class, its state (data elements), and its behavior. Various models can be created to show the static structure, dynamic behavior, and run-time deployment of these collaborating objects. There are a number of different notations for representing these models, such as the Unified Modeling Language (UML).
Object-oriented analysis (OOA) applies object-modeling techniques to analyze the functional requirements for a system. Object-oriented design (OOD) elaborates the analysis models to produce implementation specifications. OOA focuses on what the system does, OOD on how the system does it.
This 5-day Object-Oriented Analysis and Design course will familiarize you with all phases of Object-Oriented Analysis and Design (OOAD) using the Unified Modeling Language (UML). You will learn how to consider any subject matter and identify all its concepts and relationships to express and model them using UML Analysis, and then design them in preparation for the programming phase.
Furthermore, you will learn advanced Analysis and Design strategies based upon the most important Object-Oriented Patterns. This course will set you up to master the fundamental aspects of Analysis and Design a developer needs to succeed.
Note that this is a one-week class that includes both OO Analysis and OO Design using UML. If you would like to go deeper and you can devote two weeks of training (as opposed to just one) then consider taking one week of "pure" OO analysis and then another week of "pure" OO design.
These OOAD & UML Training Sessions offer a very balanced blend of lectures and exercises which render the learning process attractive, interactive, and very thorough. You will have the opportunity to practice OO Analysis as well as OO Design during a series of detailed labs—at least one lab per subject matter.
This course offers two other opportunities to practice, the Corporate Case Study or the OO Design computer labs. With the Corporate Case Study you can bring a specific problem domain you would like to solve and submit it to the class for immediate solution. Alternately you can opt for our series of OO Design computer labs. See this OOAD & UML training strategy and outline for further description.
The objectives of this UML Training Course are to:
Become familiar with all phases of Object-Oriented Analysis and Design (OOAD)
Master the main features of the Unified Modeling Language (UML)
Understand how UML supports the entire OOAD process
Master the main concepts of Object Technologies and how to apply them at work
Develop the ability to analyze and solve challenging Problem Domains
Learn the Object Design Principles and understand how to apply them towards implementation
Discover and learn how to use the most fundamental OO Analysis Patterns and Design Patterns
Understand how to implement any Object Design with OO Programming Languages like C#, Java, C++ or others.
Programming languages have traditionally divided the world into two parts--data and operations on data. Data is static and immutable, except as the operations may change it. The procedures and functions that operate on data have no lasting state of their own; they're useful only in their ability to affect data.
This division is, of course, grounded in the way computers work, so it's not one that you can easily ignore or push aside. Like the equally pervasive distinctions between matter and energy and between nouns and verbs, it forms the background against which we work. At some point, all programmers--even object-oriented programmers--must lay out the data structures that their programs will use and define the functions that will act on the data.
With a procedural programming language like C, that's about all there is to it. The language may offer various kinds of support for organizing data and functions, but it won't divide the world any differently. Functions and data structures are the basic elements of design.
Object-oriented programming doesn't so much dispute this view of the world as restructure it at a higher level. It groups operations and data into modular units called objects and lets you combine objects into structured networks to form a complete program. In an object-oriented programming language, objects and object interactions are the basic elements of design.
Every object has both state (data) and behavior (operations on data). In that, they're not much different from ordinary physical objects. It's easy to see how a mechanical device, such as a pocket watch or a piano, embodies both state and behavior. But almost anything that's designed to do a job does too. Even simple things with no moving parts such as an ordinary bottle combine state (how full the bottle is, whether or not it's open, how warm its contents are) with behavior (the ability to dispense its contents at various flow rates, to be opened or closed, to withstand high or low temperatures).
It's this resemblance to real things that gives objects much of their power and appeal. They can not only model components of real systems, but equally as well fulfill assigned roles as components in software systems.