Object oriented methodologies

What are benefits of OO Methodology? Give overview of different OO Methodologies in brief.

What is Object Oriented Methodology?
  • It is a new system development approach, encouraging and facilitating re-use of software components.
  • It employs international standard Unified Modeling Language (UML) from the Object Management Group (OMG).
  • Using this methodology, a system can be developed on a component basis, which enables the effective re-use of existing components, it facilitates the sharing of its other system components.
  • Object Oriented Methodology asks the analyst to determine what the objects of the system are?, What responsibilities and relationships an object has to do with the other objects? and How they behave over time?
There are three types of Object Oriented Methodologies

1. Object Modeling Techniques (OMT)
2. Object Process Methodology (OPM)
3. Rational Unified Process (RUP)

1. Object Modeling Techniques (OMT)
  • It was one of the first object oriented methodologies and was introduced by Rumbaugh in 1991.
  • OMT uses three different models that are combined in a way that is analogous to the older structured methodologies.

OMT

a. Analysis
  • The main goal of the analysis is to build models of the world.
  • The requirements of the users, developers and managers provide the information needed to develop the initial problem statement.
b. OMT Models

I. Object Model
  • It depicts the object classes and their relationships as a class diagram, which represents the static structure of the system.
  • It observes all the objects as static and does not pay any attention to their dynamic nature.
II. Dynamic Model
  • It captures the behavior of the system over time and the flow control and events in the Event-Trace Diagrams and State Transition Diagrams.
  • It portrays the changes occurring in the states of various objects with the events that might occur in the system.
III. Functional Model
  • It describes the data transformations of the system.
  • It describes the flow of data and the changes that occur to the data throughout the system.
c. Design
  • It specifies all of the details needed to describe how the system will be implemented.
  • In this phase, the details of the system analysis and system design are implemented.
  • The objects identified in the system design phase are designed.
2. Object Process Methodology (OPM)
  • It is also called as second generation methodology.
  • It was first introduced in 1995.
  • It has only one diagram that is the Object Process Diagram (OPD) which is used for modeling the structure, function and behavior of the system.
  • It has a strong emphasis on modeling but has a weaker emphasis on process.
  • It consists of three main processes:
I. Initiating: It determines high level requirements, the scope of the system and the resources that will be required.

II. Developing: It involves the detailed analysis, design and implementation of the system.

III. Deploying: It introduces the system to the user and subsequent maintenance of the system.

3. Rational Unified Process (RUP)
  • It was developed in Rational Corporation in 1998.
  • It consists of four phases which can be broken down into iterations.
    I. Inception
    II. Elaboration
    III. Construction
    IV. Transition
  • Each iteration consists of nine work areas called disciplines.
  • A discipline depends on the phase in which the iteration is taking place.
  • For each discipline, RUP defines a set of artefacts (work products), activities (work undertaken on the artefacts) and roles (the responsibilities of the members of the development team).
Objectives of Object Oriented Methodologies
  • To encourage greater re-use.
  • To produce a more detailed specification of system constraints.
  • To have fewer problems with validation (Are we building the right product?).
Benefits of Object Oriented Methodologies

1. It represents the problem domain, because it is easier to produce and understand designs.

2. It allows changes more easily.

3. It provides nice structures for thinking, abstracting and leads to modular design.

4. Simplicity:
  • The software object's model complexity is reduced and the program structure is very clear.
5. Reusability:
  • It is a desired goal of all development process.
  • It contains both data and functions which act on data.
  • It makes easy to reuse the code in a new system.
  • Messages provide a predefined interface to an object's data and functionality.
6. Increased Quality:
  • This feature increases in quality is largely a by-product of this program reuse.
7. Maintainable:
  • The OOP method makes code more maintainable.
  • The objects can be maintained separately, making locating and fixing problems easier.
8. Scalable:
  • The object oriented applications are more scalable than structured approach.
  • It makes easy to replace the old and aging code with faster algorithms and newer technology.
9. Modularity:
  • The OOD systems are easier to modify.
  • It can be altered in fundamental ways without ever breaking up since changes are neatly encapsulated.
10. Modifiability:
  • It is easy to make minor changes in the data representation or the procedures in an object oriented program.
11. Client/Server Architecture:
  • It involves the transmission of messages back and forth over a network.