Welcome to
TechRiz
Where tech enthusiasts come for the latest tech news,
Free downloads, free tutorials, articles and how
to's.
Description:
This is the TechRiz Free Tutorials page.
Visit every day to stay informed about the
latest tech news,
from security alerts to Hardware and software
updates. Enjoy your stay.
Week 4
Object Oriented Methodology Life
Cycle 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.
Object-Oriented development requires that
object-oriented techniques be used during the analysis,
and implementation of the system. This methodology asks
the analyst to determine what the objects of the system
are, how they behave over time or in response to events,
and what responsibilities and relationships an object has
to other objects. Object-oriented analysis has the
analyst look at all the objects in a system, their
commonalties, difference, and how the system needs to
manipulate the objects.
Object Oriented
Process
The Object Oriented Methodology of Building
Systems takes the objects as the basis. For this, first
the system to be developed is observed and analyzed and
the requirements are defined as in any other method of
system development. Once this is done, the objects in the
required system are identified. For example in case of a
Banking System, a customer is an object, a chequebook is
an object, and even an account is an object.
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.
Class: A class is a collection of similar
objects. It is a template where certain basic characteristics
of a set of objects are defined. The class defines the basic
attributes and the operations of the objects of that type.
Defining a class does not define any object, but it only
creates a template. For objects to be actually created
instances of the class are created as per the requirement of
the case.
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.
As compared to the conventional system
development techniques, OO modeling provides many
benefits. Among other benefits, there are all the
benefits of using the Object Orientation. Some of these
are:
·
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.
Advantages of Object Oriented Methodology
·
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.
Dynamic System Development Method
(DSDM)
Dynamic System Development Method is another approach to system
development, which, as the name suggests, develops the system
dynamically. This methodology is independent of tools, in that
it can be used with both structured analysis and design
approach or object-oriented approach.
The Dynamic System Development Method (DSDM) is
dynamic as it is a Rapid Application Development method
that uses incremental prototyping. This method is
particularly useful for the systems to be developed in
short time span and where the requirements cannot be
frozen at the start of the application building. Whatever
requirements are known at a time, design for them is
prepared and design is developed and incorporated into
system. In Dynamic System Development Method (DSDM),
analysis, design and development phase can overlap. Like
at one time some people will be working on some new
requirements while some will be developing something for
the system. In Dynamic System Development Method (DSDM),
requirements evolve with time.
Dynamic System Development Method (DSDM) has a
five-phase life cycle as given the following
figure

Feasibility
study
In this phase the problem is defined and the
technical feasibility of the desired application is
verified. Apart from these routine tasks, it is also
checked whether the application is suitable for Rapid
Application Development (RAD) approach or not. Only if
the RAD is found as a justified approach for the desired
system, the development continues.
Business study
In this phase the overall business study of the
desired system is done. The business requirements are
specified at a high level and the information
requirements out of the system are identified. Once this
is done, the basic architectural framework of the desired
system is prepared.
The systems designed using Rapid Application
Development (RAD) should be highly maintainable, as they
are based on the incremental development process. The
maintainability level of the system is also identified
here so as to set the standards for quality control
activities throughout the development process.
Functional Model Iteration
This is one of the two iterative phases of the
life cycle. The main focus in this phase is on building
the prototype iteratively and getting it reviewed from
the users to bring out the requirements of the desired
system. The prototype is improved through demonstration
to the user, taking the feedback and incorporating the
changes. This cycle is repeated generally twice or thrice
until a part of functional model is agreed upon. The end
product of this phase is a functional model consisting of
analysis model and some software components containing
the major functionality
Design and Build Iteration
This phase stresses upon ensuring that the
prototypes are satisfactorily and properly engineered to
suit their operational environment. The software
components designed during the functional modeling are
further refined till they achieve a satisfactory
standard. The product of this phase is a tested system
ready for implementation.
There is no clear line between these two phases
and there may be cases where while some component has
flown from the functional modeling to the design and
build modeling while the other component has not yet been
started. The two phases, as a result, may simultaneously
continue.
Implementation
Implementation is the last and final development
stage in this methodology. In this phase the users are
trained and the system is actually put into the
operational environment. At the end of this phase, there
are four possibilities, as depicted by figure
:
·
Everything was delivered as per the user demand,
so no further development required.
·
A new functional area was discovered, so return
to business study phase and repeat the whole
process
·
A less essential part of the project was missed
out due to time constraint and so development returns to the
functional model iteration.
·
Some non-functional requirement was not
satisfied, so development returns to the design and build
iterations phase.
Dynamic System Development Method (DSDM) assumes
that all previous steps may be revisited as part of its
iterative approach. Therefore, the current step need be
completed only enough to move to the next step, since it
can be finished in a later iteration. This premise is
that the business requirements will probably change
anyway as understanding increases, so any further work
would have been wasted.
According to this approach, the time is taken as
a constraint i.e. the time is fixed, resources are fixed
while the requirements are allowed to change. This does
not follow the fundamental assumption of making a perfect
system the first time, but provides a usable and useful
80% of the desired system in 20% of the total development
time. This approach has proved to be very useful under
time constraints and varying requirements.
DSDM Model Limitations
·
It is a relatively new model. It is not very common. So it is
difficult to understand.
DSDM Model Advantages
·
Active user participation throughout the life of
the project and iterative nature of development improves
quality of the product.
·
DSDM ensures rapid deliveries.
·
Both of the above factors result in reduced
project costs
Preliminary
Analysis
The main objectives of preliminary analysis is to identify the
customer's needs, evaluate system concept for feasibility,
perform economic and technical analysis, perform cost benefit
analysis and create system definition that forms the foundation
for all subsequent engineering works. There should be enough
expertise available for hardware and software for doing
analysis.
While performing analysis, the following
questions arise.
·
How much time should be spent on it?
As such, there are no rules or formulas available to decide on
this. However, size, complexity, application field, end-use,
contractual obligation are few parameters on which it should be
decided.
·
Other major question that arises is who should
do it.
Well an experienced well-trained analyst should do it. For
large project, there can be an analysis team.
After the preliminary analysis, the analyst
should report the findings to management, with
recommendations outlining the acceptance or rejection of
the proposal.
|