Professional Documents
Culture Documents
Over the past two decades methods of Object-Oriented Analysis, Design and Programming
have proved to be effective solutions in handling the inherent complexity of software design,
development, testing and maintenance. Concepts of OOAD like Abstraction, Encapsulation,
Modularity, Hierarchy, Object, State, Behavior, Identity, Class, Operation, Interface, Inheritance,
Association, Aggregation, Decomposition, Use-case, etc. have become the lingua franca for the
software developers; ubiquitous notation of UML has firmly established itself as the vehicular
language for design; and many object-based as well as object-oriented languages have become
available and have been widely adopted1 – Java (21%), C++ (6%), C# (4%), VB / VB.NET
(4%), Python (3%), Perl (2.5%), Ruby (2.5%), Objective-C (2%), Delphi/Object Pascal (2%), D
(1%) – to name a few. Even out of C (14%) developers, a large section today adheres to OOAD
/ OOP principles.
The present course introduces OOAD grounds up starting with breaking down the root cause of
inherent software complexity. After an in-depth exposure to Object Models, Classes and their
interactions, the course takes a thorough tour of the diagrams of UML 2.0. Several systems
examples help students understand the concept and tutorials offer quick practice. The course
ends with a brief discourse on OOP in C++.
While this course can be followed independently (with some programming background), it would
help in practicing OOP in C++ or Java. Hence this course is advised in conjunction with C++ /
Java.