x
Menu

Object-Oriented Analysis and Design

IIT Kharagpur, , Prof. Prof. Partha Pratim Das

Updated On 02 Feb, 19

Overview

The complexity of software systems is ever on the rise more complex problem domains being attempted (complex embedded systems), ever growing number of developers engaged in increasingly intricate development processes to turnaround in shorter and shorter time, flexibility of software and models of implementation being stretched to the limit with XaaS, platforms getting challenging with widely expanding distribution, cloud computation etc. Hence the analysis and design of software require well-organized and structured approaches to manage the challenges of complexity even more than ever before.

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 (Unified Modeling Language) 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 adopted (based on TIOBE Index for May 2019) Java (16%), C++ (8%), Python (8%), VB / VB.NET (5.5%), C# (4%), Perl (1.5%), Ruby (1.5%), Objective-C (1.5%), Delphi/Object Pascal (1.5%), D (1%) to name a few. Even out of C (14%) developers, a large section today adheres to OOAD / OOP principles in design and disciplined modular implementation.

The present course introduces OOAD grounds up starting with breaking down the root causes 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 a course on C++ / Java.

Includes

Lecture 1: Lecture 01: Challanges in Software Engineering

4.1 ( 11 )

Lecture Details

Course Details

COURSE LAYOUT

Week 1: Software Complexity: Understanding the challenges OOAD can address
Week 2: Object Model: Defining the primitives of the OO paradigm
Week 3: Classes and Objects: Bringing in the broader perspectives
Week 4: Classes and Objects: Identification approaches using OOAD
Week 5: Unified Modeling Language
Week 6: Unified Modeling Language
Week 7: Unified Modeling Language
Week 8: OOAD Case Studies: Applying OOAD in different contexts

Ratings

0


0 Ratings
55%
30%
10%
3%
2%
Comments
comment person image

Sam

Excellent course helped me understand topic that i couldn't while attendinfg my college.

Reply
comment person image

Dembe

Great course. Thank you very much.

Reply
Send