CyberArmy University | Open Source Institute | CyberArmy Intelligence & Security | CyberArmy Services & Projects

[Programming] Object Oriented Analysis and Design


[Reply] [View by Thread] [Help]
[Back To Article Discussion Forum]

Posted by Author Elastic Reality On 2007-04-29 10:02:31




View and vote on the article here: Object Oriented Analysis and Design


Object Oriented Analysis and Design

Category
Programming
Summary
Body
Object Oriented Analysis and Design

The complete process of software development is a complex one. In fact, there is a separate field, known as software engineering, dedicated to such research.

In this article, I would try to introduce the Object Oriented System Development model. This article assumes that you have a little prior knowledge of an object oriented programming language like C++ or know the theoritical concepts of the Object Oriented Paradigm.

Traditionally, software coders tend to think of programs as functions that act on data. This is known as procedure oriented programming.

The classic software life cycle, which is the foundation for procedure oriented development, is based on an underlying model called the 'waterfall model'.

This is implemented using the functional decomposition technique also known as top-down modular approach. It is called so because the program is split into modules or functions which are made separately to complete the program.

There are many stages or phases in the 'waterfall' development model :-
  1. Problem Definition (why)
  2. Analysis (what)
  3. Design (how)
  4. Coding (how)
  5. Testing (what and how)
  6. Maintainence
Several flaws were found out in the classic waterfall model like there is not much provision for evolutionary changes and extensive reusability of code.

Thus came up the concept of Object Oriented System Development Model. It states that a system can be viewed as a collection of entities that interact together to accompolish certain objectives. In object oriented analysis, the entities are called objects.

Object Oriented Analysis (OOA) refers to the method of specifying requirements of the software in terms of real world objects, their behaviour and interactions.

Object Oriented Design (OOD) turns the software requirements into specifications for objects and derives class hierarchies from which objects can be created.

Thus Object Oriented Analysis and Design replaces the classic 'waterfall' model with the 'fountain' model, using the bottom up approach in construction of class modules.

The Object Oriented Analysis stage consists of the following steps :-
  1. Understanding the problem definition
  2. Making the software requirement specification
  3. Identifying the objects, their properties and behaviours
  4. Identifying the interface for each object
  5. Establishing collaborations between the objects
The design phase is concerned with the mapping of objects in the problem space into objects in the solution space while constructing the architectural and computational model of the system.

The object oriented design phase consists of the following steps :-
  1. Review of objects created in the analysis phase
  2. Specification of dependencies of classes
  3. Class hierarchy organisation
  4. Class design
  5. Member function design
  6. Design of main program
After the analysis and design phase comes the coding part also known as Object Oriented Programming. Some commonly used object oriented programming languages are :-
  1. C++
  2. JAVA
  3. SmallTalk
A good practice is to develop a working model of the system to be built. This model is called the prototype and is extremely useful for understanding the system design and implications of the changes that are going to be made in the system. The prototype is generally used only for experimentation and is thrown away after its served its purpose.

A large number of tools have been made to assist the process of object oriented analysis and design. Some of these are :-
  1. Inheritance graphs
  2. Objects relationship charts
  3. Data flow diagrams
  4. State change diagrams
  5. Ptech diagrams
  6. Coad/Yourdon charts
To be successful at Object Oriented Analysis and Design, one requires a deep conceptual understanding of the Object Oriented Paradigm and the meaning of classes and objects. Some knowledge of coding in an object oriented programming language like C++ also helps a great deal.

Written by Elastic Reality (Feb 24 2004)

Member of CAU Knowledge-Bank Tutorial Writers


This article was imported from the CyberArmy University site. (original author: ElasticReality)


There are no replies to this post yet.



Guest:
Subject:
Message:
Signature:
Optional Image Link:
http://

CyberArmy::Forum v0.6
Generated In 0.02134 seconds


About Us | Privacy Policy | Mission Statement | Help