×

Object-Oriented Analysis and Design

While designing a system, one should know all the requirements or needs of the plan beforehand, and to do so, we should use a systematic approach to analyze the goal and conditions of the system and then the same process should be used to design the system. Let us now discuss one of the most commonly used approaches.

Object-Oriented Analysis

The procedure followed to recognize the Software Engineering requirements to build a software model comprising interactive objects is called Object-Oriented analysis. This is the first technical step toward making any object-oriented software engineering model.

The critical difference between object-oriented analysis and other approaches is that the traditional methods identify and interact with data and function separately. In contrast, the requirement is integrated around the objects comprising data and functions in this approach.

The objects are modelled after the real-world entities with which the system would interact. OOA introduces various new concepts that can be used to investigate the problem efficiently. The OOA is based on a set of fundamental principles like:

  • Information is collected.
  • Recognizing the different types of objects that the system would interact with.
  • Creating an Object model diagram to arrange the objects.
  • Identifying the attributes of the object.
  • Defining the action or declaring the functions that can be called on the object.
  • Describing the ways the objects would interact.

Object-Oriented Design

Once the model is created using the object-oriented analysis approach, we use the same model to make the final software product. The model designed by this approach provides us with different levels of modularity. In simple words, each principal component is further divided into sub-systems. All the data manipulation functionalities are encapsulated in the form of objects that act as the modular building blocks of an object-oriented system.

While designing the model using the OOD approach, one must also specify the required information regarding the organization of data in the attributes and the description of the procedure of each operation. The OO design approach uses a pyramid to represent each system layer. There are primarily four layers in the Object-Oriented design pyramid, namely:

1. The Subsystem Layer

This layer is the lowest in the Object-oriented design pyramid and represents the sub-system that would enable the software to achieve user requirements. This is also responsible for the implementation frameworks to fulfil user needs.

2. The class and object layer

As the name suggests, this layer basically just represents the hierarchical order of the classes that would build the entire system. The system is developed by using simple generalization and specialization techniques for these classes. This layer also represents each object of the respective classes.

3. The message layer

This layer represents the design details that enable the objects of different classes to communicate with their respective parent classes. This layer establishes the internal and external interfaces of a system.

4. The responsibilities layer

The Responsibilities layer represents the data structure and algorithmic design for all the attributes and operations that would be performed on each object.

These layers collectively form the Object Oriented design pyramid, which specially focuses on the system or software it is designing. The primary point to remember is that the OOD pyramid cannot work individually; it rests on another already existing design layer. The object-oriented design model focuses on the core layer that plays an effective role in constructing the infrastructure.

While designing a system using the object-oriented design approach, you may come across many terms related to object-oriented programming concepts; let us understand some of them.

  • Attributes: A set of data or properties that are usually used to describe a class.
  • Class: A finite scope entity that is used to encapsulate the data and procedural abstractions that would be required to describe the content and behavior of the real-world entities. It can also be understood as the collection of similar objects.
  • Objects: The instances of a class that inherit all the properties and operations of their parent class.
  • Operations: The methods or services that are performed on the object of a class to change its behavior or attributes.
  • Sub-Class:  A specialized version of an existing class that inherit all the properties and behavior of a superclass.
  • Superclass: This is the base class or, simply said, the generalized set of subclasses related to it.

Related Topics

Binary Tree vs Binary Search Tree: Data Structure

Difference Between Binary Tree and Binary Search Tree What is Binary Tree? A tree which each node can have utmost two children called binary tree. These children are referred as the ‘left...

3 minutes read.

Sparse Matrix in Data Structure

Sparse Matrix The sparse matrix is a two-dimensional data object which is made by m rows and n columns, so we can say the number of data values in sparse matrix...

6 minutes read.

Complete Binary tree

In this article, we will discuss the complete binary tree. But before start discussing the complete binary tree, we should first see a brief description of a binary tree. What is...

7 minutes read.

What is a Sparse Matrix in Data Structure?

Definition A matrix in which a few non-zero elements are present is called a Sparse matrix. In a Sparse matrix, almost all the matrices are filled with zero (0). A matrix...

5 minutes read.

Asymptotic Notation

Asymptotic notation is expressions that are used to represent the complexity of algorithms. The complexity of the algorithm is analyzed from two perspectives:  Time complexitySpace complexity Time complexity The time complexity of an algorithm is the...

3 minutes read.

DFS (Depth-first search) Algorithm: Data Structure

What is DFS (Depth-first search)? The depth first search is a graph traversal algorithm. The idea behind this algorithm is backtracking and it is a kind of recursive algorithm. In the...

3 minutes read.

Box Stacking Problem

Stacking of boxes depending on their base You have been given n different boxes. These boxes will have different heights, widths, and depths. You have to stack all these boxes in...

4 minutes read.

Treap data structure

In this article, we will discuss the treap data structure. The word treap is a combination of 'tree' and 'heap'. So, treap data structure is a combination of a heap...

8 minutes read.

B+ Tree in Data Structure

A B-Tree extension called B+ Tree, which enables effective search, insertion, and deletion operations. Both Records and keys can be stored in internal and leaf nodes in a B tree. Contrarily,...

4 minutes read.

What are Forest Trees in Data Structure

Data structure A data model manages and optimizes computer resources, and a database stores and manages data. It's one of many uses for data structures to hold data. Data structures come...

5 minutes read.

Deletion in B+ Tree

Make a search for the leaf node that containing the key value by taking the value in a key value. If the required key value is found, then it will remove...

6 minutes read.

String Operations in Data Structures

Operations on Strings Reversing the order of words in a sentence Reversing a string is a technique that reverses or alters the order of a given string so that the last character...

9 minutes read.

Fundamental of Algorithms

An algorithm is a part of any programming solution or coding. If we have to make a solution then first we have to think of a clear idea about the...

13 minutes read.

Queue Implementation using stacks Data Structure

Queue Implementation using stacks In this problem, we have stack data structure which supports only push() and pop() operations. We are required to implement a queue data structure using the instances...

4 minutes read.

Winner tree in Data Structures

Tree Data structure A tree is a hierarchical and non-linear data structure with nodes. Each node in the Tree contains a message value and stores the name passed to another ("child")...

6 minutes read.

Red Black Tree

Red Black Tree A red-black tree is referred as self-balancing binary search tree. The tree was invented by Rudolf Bayer in 1972. In red-black, each node stores an extra bit that...

8 minutes read.

Delete nodes from the linked list which have a greater value on the right side

Delete nodes from the linked list which have a greater value on the right side In this problem, we have given a singly linked list, and we need to remove all...

3 minutes read.

Construction of B tree in Data Structure

A B-tree is a type of balanced tree data structure that is commonly used in file systems and databases to improve the efficiency of search, insert, and delete operations. The structure...

4 minutes read.

Heap Sort in Data Structure

Heap Sort: Heap Sort is very useful and efficient sorting algorithm in data structure. We can say it is a comparison base sorting algorithm, similar sort where we will find...

2 minutes read.

Data structure: Infix to Prefix Conversion

Infix to Prefix Conversion In present time, we use the infix expression in our daily life but the computers are not able to understand this format because they need to keep...

4 minutes read.