Object Oriented Methodology Life Cycle Model
Object Oriented Methodology Life Cycle Model
Model
We live in a world of objects. These objects exist in nature, in man-made entities, in business,
and in the products that we use. They can be categorized, described, organized, combined,
manipulated and created. Therefore, an object-oriented view has come into picture for creation of
computer software. An object-oriented approach to the development of software was proposed in
late 1960s.
In simple terms, Object Modeling is based on identifying the objects in a system and their
interrelationships. Once this is done, the coding of the system is done. Object Modeling is
somewhat similar to the traditional approach of system designing, in that it also follows a
sequential process of system designing but with a different approach. The basic steps of system
designing using Object Modeling may be listed as:
System Analysis
System Design
Object Design
Implementation
System Analysis
As in any other system development model, system analysis is the first phase of development in
case of Object Modeling too. In this phase, the developer interacts with the user of the system to
find out the user requirements and analyses the system to understand the functioning.
Based on this system study, the analyst prepares a model of the desired system. This model is
purely based on what the system is required to do. At this stage the implementation details are
not taken care of. Only the model of the system is prepared based on the idea that the system is
made up of a set of interacting objects. The important elements of the system are emphasized.
System Design
System Design is the next development stage where the overall architecture of the desired system
is decided. The system is organized as a set of sub systems interacting with each other. While
designing the system as a set of interacting subsystems, the analyst takes care of specifications as
observed in system analysis as well as what is required out of the new system by the end user.
As the basic philosophy of Object-Oriented method of system analysis is to perceive the system
as a set of interacting objects, a bigger system may also be seen as a set of interacting smaller
subsystems that in turn are composed of a set of interacting objects. While designing the system,
the stress lies on the objects comprising the system and not on the processes being carried out in
the system as in the case of traditional Waterfall Model where the processes form the important
part of the system.
Object Design
In this phase, the details of the system analysis and system design are implemented. The Objects
identified in the system design phase are designed. Here the implementation of these objects is
decided as the data structures get defined and also the interrelationships between the objects are
defined.
Let us here deviate slightly from the design process and understand first a few important terms
used in the Object-Oriented Modeling.
As already discussed, Object Oriented Philosophy is very much similar to real world and hence
is gaining popularity as the systems here are seen as a set of interacting objects as in the real
world. To implement this concept, the process-based structural programming is not used; instead
objects are created using data structures. Just as every programming language provides various
data types and various variables of that type can be created, similarly, in case of objects certain
data types are predefined.
For example, we can define a data type called pen and then create and use several objects of this
data type. This concept is known as creating a class.
Abstraction: Classes are built on the basis of abstraction, where a set of similar objects are
observed and their common characteristics are listed. Of all these, the characteristics of concern
to the system under observation are picked up and the class definition is made. The attributes of
no concern to the system are left out. This is known as abstraction.
The abstraction of an object varies according to its application. For instance, while defining a
pen class for a stationery shop, the attributes of concern might be the pen color, ink color, pen
type etc., whereas a pen class for a manufacturing firm would be containing the other dimensions
of the pen like its diameter, its shape and size etc.
Inheritance: Inheritance is another important concept in this regard. This concept is used to
apply the idea of reusability of the objects. A new type of class can be defined using a similar
existing class with a few new features. For instance, a class vehicle can be defined with the basic
functionality of any vehicle and a new class called car can be derived out of it with a few
modifications. This would save the developers time and effort as the classes already existing are
reused without much change.
Coming back to our development process, in the Object Designing phase of the Development
process, the designer decides onto the classes in the system based on these concepts. The
designer also decides on whether the classes need to be created from scratch or any existing
classes can be used as it is or new classes can be inherited from them.
Implementation
During this phase, the class objects and the interrelationships of these classes are translated and
actually coded using the programming language decided upon. The databases are made and the
complete system is given a functional shape.
The complete OO methodology revolves around the objects identified in the system. When
observed closely, every object exhibits some characteristics and behavior. The objects recognize
and respond to certain events. For example, considering a Window on the screen as an object, the
size of the window gets changed when resize button of the window is clicked.
Here the clicking of the button is an event to which the window responds by changing its state
from the old size to the new size. While developing systems based on this approach, the analyst
makes use of certain models to analyze and depict these objects. The methodology supports and
uses three basic Models:
Object Model - This model describes the objects in a system and their interrelationships.
This model observes all the objects as static and does not pay any attention to their
dynamic nature.
Dynamic Model - This model depicts the dynamic aspects of the system. It portrays the
changes occurring in the states of various objects with the events that might occur in the
system.
Functional Model - This model basically describes the data transformations of the
system. This describes the flow of data and the changes that occur to the data throughout
the system.
While the Object Model is most important of all as it describes the basic element of the system,
the objects, all the three models together describe the complete functional system.
Reusability - The classes once defined can easily be used by other applications. This is
achieved by defining classes and putting them into a library of classes where all the
classes are maintained for future use. Whenever a new class is needed the programmer
looks into the library of classes and if it is available, it can be picked up directly from
there.
Inheritance - The concept of inheritance helps the programmer use the existing code in
another way, where making small additions to the existing classes can quickly create new
classes.
Programmer has to spend less time and effort and can concentrate on other aspects of the
system due to the reusability feature of the methodology.
Data Hiding - Encapsulation is a technique that allows the programmer to hide the
internal functioning of the objects from the users of the objects. Encapsulation separates
the internal functioning of the object from the external functioning thus providing the
user flexibility to change the external behaviour of the object making the programmer
code safe against the changes made by the user.
The systems designed using this approach are closer to the real world as the real world
functioning of the system is directly mapped into the system designed using this
approach.
Object Oriented Methodology closely represents the problem domain. Because of this, it
is easier to produce and understand designs.
The objects in the system are immune to requirement changes. Therefore, allows changes
more easily.
Object Oriented Methodology designs encourage more re-use. New applications can use
the existing modules, thereby reduces the development cost and cycle time.
Object Oriented Methodology approach is more natural. It provides nice structures for
thinking and abstracting and leads to modular design.