OOAD Object Oriented Design - Object Oriented Analysis and Design

What is Object Oriented Design?

After the investigation stage, the conceptual model is created encourage into a question situated model utilizing object-arranged outline (OOD). In OOD, the innovation autonomous ideas in the examination display are mapped onto executing classes, limitations are recognized, and interfaces are composed, bringing about a model for the arrangement space. Basically, a definite depiction is developed determining how the system is to be based on solid advances
The phases for object– situated outline can be distinguished as −
  • Definition of the context of the system
  • Designing system architecture
  • Identification of the objects in the system
  • Construction of design models
  • Specification of object interfaces

System Design

Object oriented system modelconfiguration includes characterizing the setting of a system took after by outlining the design of the system.
  • Context − The setting of a system has a static and a dynamic part. The static setting of the system is composed utilizing a basic square Diagram of the entire system which is ventured into a chain of importance of subsystems. The subsystem display is spoken to by UML bundles. The dynamic setting depicts how the system collaborates with its condition. It is displayed utilizing use case outlines.
  • System Architecture − The system engineering is planned based on the setting of the system as per the standards of structural outline and in addition area data. Commonly, a system is divided into layers and each layer is Decompositioned to shape the subsystems.

Object-Oriented Decomposition

Decomposition implies isolating a vast complex system into a progressive system of littler Components with lesser complexities, on the standards of divide– and– prevail. Each significant Component of the system is known as a subsystem. Protest situated disintegration distinguishes individual independent questions in a system and the correspondence among these articles.
The advantages of decomposition are −
  • The individual components are of lesser complexity, and so more understandable and manageable.
  • It enables division of workforce having specialized skills.
  • It allows subsystems to be replaced or modified without affecting other subsystems.

Identifying Concurrency

Concurrency enables more than one articles to get events in the meantime and more than one movement to be executed all the while. Concurrency is distinguished and spoken to in the dynamic model.
To empower Concurrency , each simultaneous component is relegated a different string of control. In the event that the Concurrency is at protest level, at that point two simultaneous items are doled out two unique strings of control. On the off chance that two operations of a solitary question are simultaneous in nature, at that point that protest is part among various strings.
Concurrency is related with the issues of data respectability, gridlock, and starvation. So an unmistakable technique should be made at whatever point Concurrency is required. Also, Concurrency requires to be distinguished at the outline organize itself, and can't be left for execution arrange.

Identifying Patterns

While planning applications, some ordinarily acknowledged arrangements are embraced for a few classes of issues. These are the examples of plan. An example can be characterized as a recorded arrangement of building hinders that can be utilized as a part of specific sorts of use improvement issues.
Some regularly utilized plan designs are −
  • Façade pattern
  • Model view separation pattern
  • Observer pattern
  • Model view controller pattern
  • Publish subscribe pattern
  • Proxy pattern

Controlling Events

Amid system plan, the events that may happen in the objects of the system should be distinguished and suitably managed.
An event is a detail of a huge event that has an area in time and space.
There are four types of events that can be modelled, namely −
  • Signal Event − A named object thrown by one object and caught by another object.
  • Call Event − A synchronous event representing dispatch of an operation.
  • Time Event − An event representing passage of time.
  • Change Event − An event representing change in state.

Handling Boundary Conditions

The system configuration stage needs to address the instatement and the end of the system all in all and in addition every subsystem. The diverse angles that are recorded are as per the following −
  • The start–up of the system, i.e., the transition of the system from non-initialized state to steady state.
  • The termination of the system, i.e., the closing of all running threads, cleaning up of resources, and the messages to be sent.
  • The initial configuration of the system and the reconfiguration of the system when needed.
  • Foreseeing failures or undesired termination of the system.
Boundary conditions are modelled using boundary use cases.

Object Design

After the pecking order of subsystems has been produced, the items in the system are recognized and their subtle elements are outlined. Here, the fashioner subtle elements out the technique picked amid the system outline. The accentuation shifts from application space ideas toward PC ideas. The articles distinguished amid investigation are scratched out for usage with an expect to limit execution time, memory utilization, and general cost.
Object design includes the following phases −
  • Object identification
  • Object representation, i.e., construction of design models
  • Classification of operations
  • Algorithm design
  • Design of relationships
  • Implementation of control for external interactions
  • Package classes and associations into modules

Object Identification

The initial step of question configuration is protest ID. The items recognized in the object– situated investigation stages are assembled into classes and refined so they are appropriate for genuine execution.
The functions of this stage are −
  • Identifying and refining the classes in each subsystem or package
  • Defining the links and associations between the classes
  • Designing the hierarchical associations among the classes, i.e., the generalization/specialization and inheritances
  • Designing aggregations

Object Representation

Once the classes are recognized, they should be spoken to utilizing object displaying methods. This stage basically includes building UML diagrams.
There are two sorts of configuration models that should be delivered −
  • Static Models − To depict the static structure of a system utilizing class outlines and protest diagrams.
  • Dynamic Models − To depict the dynamic structure of a system and demonstrate the connection between classes utilizing collaboration diagrams and state– outline Diagrams.

Classification of Operations

In this progression, the operation to be performed on objects are characterized by joining the three models created in the OOA stage, in particular, question demonstrate, dynamic model, and utilitarian model. An operation indicates what can anyone do not how it ought to be finished.
The following tasks are performed regarding operations −
  • The state transition diagram of each object in the system is developed.
  • Operations are defined for the events received by the objects.
  • Cases in which one event triggers other events in same or different objects are identified.
  • The sub–operations within the actions are identified.
  • The main actions are expanded to data flow diagrams.

Algorithm Design

The operations in the articles are characterized utilizing calculations. A calculation is a stepwise method that takes care of the issue set down in an operation. Calculations concentrate on how it is to be finished.
There might be more than one calculation comparing to a given operation. Once the elective calculations are recognized, the ideal calculation is chosen for the given issue area. The measurements for picking the ideal calculation are −
  • Computational Complexity − Complexity decides the productivity of a calculation as far as calculation time and memory prerequisites.
  • Flexibility − Flexibility decides if the picked calculation can be executed reasonably, without loss of propriety in different conditions.
  • Understandability − This decides if the picked calculation is straightforward and actualize.

Design of Relationships

The system to actualize the connections should be chalked out amid the question configuration stage. The fundamental connections that are tended to include affiliations, accumulations, and legacies.
The designer should do the following regarding associations −
  • Identify whether an association is unidirectional or bidirectional.
  • Analyze the path of associations and update them if necessary.
  • Implement the associations as a distinct object, in case of many–to-many relationships; or as a link to other object in case of one–to-one or one–to-many relationships.
Regarding inheritances, the designer should do the following −
  • Adjust the classes and their associations.
  • Identify abstract classes.
  • Make provisions so that behaviors are shared when needed.

Implementation of Control

The object designer may consolidate refinements in the procedure of the state– diagram demonstrate. In system plan, an essential procedure for understanding the dynamic model is made. Amid question plan, this procedure is apropos decorated for proper usage.
The methodologies for usage of the dynamic model are −
  • Represent State as a Location internal a Program − This is the conventional method driven approach whereby the area of control characterizes the program state. A limited state machine can be executed as a program. A change frames an data explanation, the primary control way shapes the grouping of directions, the branches frame the conditions, and the retrogressive ways shape the circles or cycles.
  • State Machine Engine − This approach specifically speaks to a state machine through a state machine motor class. This class executes the state machine through an arrangement of advances and activities gave by the application.
  • Control as Concurrent Tasks − In this approach, a protest is executed as an undertaking in the programming dialect or the working system. Here, an event is actualized as a between assignment call. It jelly natural Concurrency of genuine items.

Packaging Classes

In any extensive undertaking, careful parceling of a usage into modules or bundles is imperative. Amid question configuration, classes and protests are assembled into bundles to empower various gatherings to work agreeably on an undertaking.
The diverse parts of bundling are −
  • Hiding Internal Data from External View − It enables a class to be seen as a "black box" and allows class execution to be changed without requiring any customers of the class to alter code.
  • Coherence of Elements − A component, for example, a class, an operation, or a module, is intelligible on the off chance that it is sorted out on a predictable arrangement and every one of its parts are characteristically related with the goal that they serve a shared objective.
  • Construction of Physical Modules − The following rules help while building physical modules –
    • Classes in a module should represent similar things or components in the same composite object.
    • Closely connected classes should be in the same module.
    • Unconnected or weakly connected classes should be placed in separate modules.
    • Modules should have good cohesion, i.e., high cooperation among its components.
    • A module should have low coupling with other modules, i.e., interaction or interdependence between modules should be minimum.

Design Optimization

The examination demonstrate catches the intelligent data about the system, while the outline show adds points of interest to help productive data get to. Prior to a plan is actualized, it ought to be upgraded in order to make the execution more effective. The point of streamlining is to limit the cost regarding time, space, and different measurements.
Be that as it may, outline improvement ought not be overabundance, as simplicity of usage, practicality, and extensibility are likewise imperative concerns. It is frequently observed that an impeccably streamlined outline is more productive yet less intelligible and reusable. So the architect must strike a harmony between the two.
The various things that may be done for design optimization are −
  • Add redundant associations
  • Omit non-usable associations
  • Optimization of algorithms
  • Save derived attributes to avoid re-computation of complex expressions
  • Expansion of Redundant Associations

Addition of Redundant Associations

Amid plan streamlining, it is checked if determining new affiliations can diminish get to costs. In spite of the fact that these repetitive affiliations may not include any data, they may build the productivity of the general model.

Omission of Non-Usable Associations

Nearness of an excessive number of affiliations may render a framework unintelligible and consequently diminish the general productivity of the framework. Along these lines, amid advancement, all non-usable affiliations are evacuated.

Optimization of Algorithms

In protest situated frameworks, improvement of information structure and calculations are done in a community oriented way. Once the class configuration is set up, the operations and the calculations should be advanced.
  • Streamlining of calculations is acquired by −
  • Improvement of the request of computational undertakings
  • Inversion of execution request of circles from that set down in the useful model
  • Evacuation of dead ways inside the calculation

Sparing and Storing of Derived Attributes

Determined characteristics are those traits whose esteems are registered as an element of different properties (base qualities). Re-calculation of the estimations of inferred traits each time they are required is a time– expending method. To maintain a strategic distance from this, the qualities can be processed and put away in their figured structures.
In any case, this may posture refresh inconsistencies, i.e., an adjustment in the estimations of base characteristics with no comparing change in the estimations of the determined properties. To stay away from this, the accompanying advances are taken −
  • With each refresh of the base characteristic esteem, the determined trait is additionally re-figured.
  • All the determined characteristics are re-registered and refreshed occasionally in a gathering as opposed to after each refresh.

Design Documentation

Documentation is a fundamental piece of any product advancement process that records the methodology of making the product. The plan choices should be recorded for any non– inconsequential programming framework for transmitting the outline to others.

Usage Areas

Though a secondary product, a good documentation is indispensable, particularly in the following areas −
  • In designing software that is being developed by a number of developers
  • In iterative software development strategies
  • In developing subsequent versions of a software project
  • For evaluating a software
  • For finding conditions and areas of testing
  • For maintenance of the software.


A beneficial documentation should essentially include the following contents −
  • High–level system architecture − Process diagrams and module diagrams
  • Key abstractions and mechanisms − Class diagrams and object diagrams.
  • Scenarios that illustrate the behavior of the main aspects − Behavioural diagrams


The features of a good documentation are −
  • Concise and at the same time, unambiguous, consistent, and complete
  • Traceable to the system’s requirement specifications
  • Well-structured
  • Diagrammatic instead of descriptive

All rights reserved © 2018 Wisdom IT Services India Pvt. Ltd DMCA.com Protection Status

Object Oriented Analysis and Design Topics