Download as pdf or txt
Download as pdf or txt
You are on page 1of 10

Werabe University IT Department

Chapter 1: Object Orientation the new software paradigm

INTRODUCTION
Software development is dynamic and always undergoing major change. Today a vast
number of tools and methodologies are available for system development.
System development refers to all activities that go into producing information system
solution. System development activities consist of system analysis, modelling, design,
implementation, testing and maintenance. A software development methodology is
series of processes that, if followed, can lead to the development of an application. The
original goal based on the system requirements.

What is Object-Oriented (OO) systems development?


It is a way to develop software by building self-contained modules that can be more
easily replaced, modified and reused.

Object Oriented System Development Methodology:


 OO development offers a different model from the traditional software
development approach. This is based on functions and procedures.
 To develop s/w by building self-contained modules or objects that can be easily
replaced, modified and reused.
 In OO environment, s/w is a collection of discrete object that encapsulate their
data as well as the functionality to model real world ―objects.
 Each object has attributes (data) and method (function).
 Objects grouped in to classes and object are responsible for itself.

Software Process

A software process (also known as software methodology) is a set of related activities


that leads to the production of the software. These activities may involve the
development of the software from the scratch, or, modifying an existing system.

Software Process Models

1. The Waterfall Model


2. The Spiral Model
3. Iterative, Incremental Frameworks

Object Oriented System Analysis & Design 1


Werabe University IT Department

1. The Waterfall Model


The waterfall model prescribes that each stage must be complete before the next stage
can commence. One phase is started when the previous phase is completed.
Backtracking is strictly forbidden.

Figure 1- The Waterfall Model


Advantages
1. Simple and easy to manage.
2. We can concentrate only on one stage of the lifecycle.
3. More applicable/best for small projects. The project is done with small number of
people and complete within few days.
Disadvantages
1. It takes time
2. Risk is pushed forward. Major problems often emerge at the latter stages of the
process-especially during system integration. Ironically, the cost to rectify errors
increase exponentially as time progresses.
3. Technical requirement changes cannot be easily integrated
4. The process will begin to break down as the complexity of the system increase.

2. The Spiral Model


An alternative approach is the spiral model. In this approach, we attack the project in
a series of short lifecycles, each one ending with a release of executable software:

Figure 2 - Spiral Model

Object Oriented System Analysis & Design 2


Werabe University IT Department

Here, the project has been divided into different phases, each phase building on the
previous one and with a running release of software produced at the end of each phase
Advantages
1. The development team will work on all the stages
 The team are able to work on the entire lifecycle (Analysis, Design, Code, Test)
rather than spending years on a single activity
2. Early feedback can be obtained
 We can receive early and regular feedback from the customer, and spot potential
problems before going too far with development
3. Risks can easily be solved
 We can attack risks up-front. Particularly risky iterations (for example, an
iteration requiring the implementation of new and untested technology) can be
developed first
4. The scale and complexity of work can be discovered earlier
5. New requirements and technological change can easily be integrated
 Changes in technology can be incorporated more easily
6. It boosts the morale of the user and developer
 A regular release of software improves morale
7. The status of the project (e.g.- how much of the system is complete.) can be assessed
more accurately
8. Mostly used for complex system
Disadvantages
1. It is accompanied by RAD
 The process is commonly associated with Rapid Application Development, so the
user must know RAD to give good feedback.
2. The process is much more difficult to manage.
 The Waterfall Model fits in closely with classic project management techniques
such as Gantt charts, but spiral processes require a different approach.

3. Iterative, Incremental Frameworks


The Iterative, Incremental Framework is a logical extension to the spiral model, but is
more formal and rigorous. It has four phases Inception; Elaboration; Construction
and Transition.
These phases are performed in sequence, but the phases must not be confused with
the stages in the waterfall lifecycle. This section describes the phases and outlines the
activities performed during each one.

Object Oriented System Analysis & Design 3


Werabe University IT Department

Figure 3 - The four phases of an Iterative, Incremental Framework

A. Inception
The inception phase is concerned with establishing the scope of the project and
generally defining a vision for the project. For a small project, this phase could be a
simple chat over coffee and an agreement to proceed; on larger projects, a more
thorough inception is necessary.
Possible deliverables/Artifacts from this phase are:
 A Vision Document
 An initial exploration of the customer’s requirements
 A first-cut project glossary
 A Business Case (including success criteria and a financial forecast, estimates of
the Return on Investment, etc)
 An initial risk assessment
 A project plan
B. Elaboration
The purpose of elaboration is to analyze the problem, develop the project plan further,
and eliminate the riskier areas of the project. By the end of the elaboration phase, we
aim to have a general understanding of the entire project, even if it is not necessarily a
deep understanding (that comes later, and in small, manageable chunks).

Possible deliverables/Artifacts from this phase are


 Refined project plan
 Use case model
o The Use Case Model helps us to understand the customer’s requirements
 Class diagram
o Class Diagram to explore the major concepts our customer understands
C. Construction
At the construction phase, we build the product. This phase of the project is not carried
out in a linear fashion- rather, the product is built in the same fashion as the spiral
model, by following a series of iterations. Each iteration is our old friend, the simple
waterfall. By keeping each iteration as short as possible, we aim to avoid the nasty
problems associated with waterfalls.

Object Oriented System Analysis & Design 4


Werabe University IT Department

Figure 4 - The Construction Phase consists of a series of "mini waterfalls"

At the end of as many iterations as possible, we will aim to have a running system
(albeit, of course, a very limited system in the early stages). These iterations are called
Increments, hence the name of the framework!

D. Transition
The final phase is concerned with moving the final product across to the customers.
Typical activities in this phase include:
 Beta-releases for testing by the user community
 Factory testing, or running the product in parallel with the legacy system that the
product is replacing
 Data take on (i.e. converting existing databases across to new formats, importing
data, etc.)
 Training the new users
 Marketing, Distribution and Sales
The Transition phase should not be confused with the traditional test phase at the end
of the waterfall model. At the start of Transition, a full, tested and running product
should be available for the users. As listed above, some projects may require a beta test
stage, but the product should be pretty much complete before this phase happens.

Complexity of Software
System: Systems are constructed by interconnecting components (Boundaries,
Environments, Characters, Emergent Properties), which may well be systems in their
own right. The larger the number of these components and relationships between them,
higher will be the complexity of the overall system.

Object Oriented System Analysis & Design 5


Werabe University IT Department

Complexity: Complexity depends on the number of the components embedded in them


as well as the relationships and the interactions between these components which
carry;
o Impossible for humans to comprehend fully
o Difficult to document and test
o Potentially inconsistent or incomplete
o Subject to change
o No fundamental laws to explain phenomena and approaches
The Structure of Complex Systems
The structure of personal computer, plants and animals, matter, social institutions are
some examples of complex system.
The structure of a Personal Computer: A personal computer is a device of moderate
complexity. Major elements are CPU, monitor, keyboard and some secondary storage
devices. CPU encompasses primary memory, an ALU, and a bus to which peripheral
devices are attached. An ALU may be divided into registers which are constructed from
NAND gates, inverters and so on. All are the hierarchical nature of a complex system.
The structure of Plants: Plants are complex multicellular organism which are
composed of cells which is turn encompasses elements such as chloroplasts, nucleus,
and so on. For example, at the highest level of abstraction, roots are responsible for
absorbing water and minerals from the soil. Roots interact with stems, which transport
these raw materials up to the leaves. The leaves in turn use water and minerals provided
by stems to produce food through photosynthesis.
All parts at the same level of abstraction interact in well-defined ways. For example, at
the highest level of abstraction, roots are responsible for observing water and minerals
from the soil. Roots interact with stems, which transport these raw materials up to
leaves. The leaves in turn use the water and minerals provided by the stems to produce
food through photosynthesis.
The structure of Animals: Animals exhibit a multicultural hierarchical structure in
which collection of cells form tissues, tissues work together as organs, clusters of organs
define systems (such as the digestive system) and so on.
The structure of Matter: Nuclear physicists are concerned with a structural hierarchy
of matter. Atoms are made up of electrons, protons and neutrons. Elements and
elementary particles but protons, neutrons and other particles are formed from more
basic components called quarks, which eventually formed from pro-quarks.
The structure of Social institutions: In social institutions, group of people join
together to accomplish tasks that cannot be done by made of divisions which in turn
contain branches which in turn encompass local offices and so on.

Object Oriented System Analysis & Design 6


Werabe University IT Department

The Inherent Complexity of Software


The complexity of software is an essential property not an accidental one. The inherent
complexity derives from four elements. They are
1. The complexity of the problem domain
2. The difficultly of managing the developmental process
3. The flexibility possible through software
4. The problems of characterizing the behavior of discrete systems
1. The complexity of the problem domain
The first reason has to do with the relationship between the application domains for
which software systems are being constructed and the people who develop them. Often,
although software developers have the knowledge and skills required to develop
software they usually lack detailed knowledge of the application domain of such
systems. This affects their ability to understand and express accurately the
requirements for the system to be built which come from the particular domain. Note,
that these requirements are usually themselves subject to change. They evolve during
the construction of the system as well as after its delivery and thereby they impose a
need for a continuous evolution of the system. Complexity is often increased as a result
of trying to preserve the investments made in legacy applications. In such cases, the
components which address new requirements have to be integrated with existing legacy
applications. This results into interoperability problems caused by the heterogeneity of
the different components which introduce new complexities.
2. The Difficulty of Managing the Development Process
The second reason is the complexity of the software development process. Complex
software intensive systems cannot be developed by single individuals. They require
teams of developers. This adds extra overhead to the process since the developers have
to communicate with each other about the intermediate artifacts they produce and
make them interoperable with each other. This complexity often gets even more difficult
to handle if the teams do not work in one location but are geographically dispersed. In
such situations, the management of these processes becomes an important subtask on
its own and they need to be kept as simple as possible. None person can understand
the system whose size is measured in hundreds of thousands, or even millions of lines
of code. Even if we decompose our implementation in meaningful ways, we still end up
with hundreds and sometimes even thousand modules. The amount of work demands
that we use a team of developers and there are always significant challenges associated
with team development more developer’s means more complex communication and
hence more difficult coordination.

Object Oriented System Analysis & Design 7


Werabe University IT Department

3. The flexibility possible through software


Software is flexible and expressive and thus encourages highly demanding
requirements, which in turn lead to complex implementations which are difficult to
assess. The third reason is the danger of flexibility. Flexibility leads to an attitude where
developers develop system components themselves rather than purchasing them from
somewhere else. Unlike other industrial sectors, the production depth of the software
industry is very large. The construction or automobile industries largely rely on highly
specialized suppliers providing parts. The developers in these industries just produce
the design, the part specifications and assemble the parts delivered. 2
The software development is different: most of the software companies develop every
single component from scratch. Flexibility also triggers more demanding requirements
which make products even more complicated.
Software offers the ultimate flexibility. It is highly unusual for a construction firm to
build an on-site steel mill to forge (create with hammer) custom girders (beams) for a
new building. Construction industry has standards for quality of raw materials, few
such standards exist in the software industry.
4. The problem of characterizing the behavior of discrete systems
The final reason for complexity according to Booch is related to the difficulty in
describing the behavior of software systems. Humans are capable of describing the
static structure and properties of complex systems if they are properly decomposed, but
have problems in describing their behavior. This is because to describe behavior, it is
not sufficient to list the properties of the system. It is also necessary to describe the
sequence of the values that these properties take over time
The five Attributes of a complex system:
There are five attributes common to all complex systems. They are as follows:
1. Hierarchic Structure
Frequently, complexity takes the form of a hierarchy, whereby a complex system is
composed of interrelated subsystems that have in turn their own subsystems and so
on, until some lowest level of elementary components is reached.
The fact that many complex systems have a nearly decomposable, and hierarchic
structure is a major facilitating factor enabling us to understand, describe, and even
"see" such systems their parts.
2. Relative Primitives
The choice of what components in a system are primitive is relatively arbitrary and is
largely up to the discretion of the observer of the system class structure and the object
structure are not completely independent each object in object structure represents a
specific instance of some class.

Object Oriented System Analysis & Design 8


Werabe University IT Department

3. Separation of Concerns
Hierarchic systems decomposable because they can be divided into identifiable parts;
he calls them nearly decomposable because their parts are not completely independent.
This leads to another attribute common to all complex systems:
Intra-component linkages are generally stronger than inter-component linkages. This
fact has the involving the high frequency dynamics of the components-involving the
internal structure of the components – from the low frequency dynamic involving
interaction among components.
4. Common Patterns
Hierarchic systems are usually composed of only a few different kinds of subsystems in
various combinations and arrangements. In other words, complex systems have
common patterns.
These patterns may involve the reuse of small components such as the cells found in
both plants and animals, or of larger structures, such as vascular systems, also found
in both plants and animals.
5. Stable intermediate Forms
A complex system that works is invariably bound to have evolved from a simple system
that worked. A complex system designed from scratch never works and can't be patched
up to make it work. You have to start over, beginning with a working simple system.
Structured Approach vs. Object-Oriented Approach
The following table explains how the object-oriented approach differs from the
traditional structured approach:

Structured system analysis and Object oriented system analysis and


design design

1. Data flow methodology 1. Object modeling

2. Complements the structured


2. Compliments object oriented programming
programming
3. Can repeatable, measurable and
3. Can repeatable, measurable and
automated. (ROSE, VISIO and Argo UML tools
automated (CASE tools)
)
4. Functional perspective of problem
4. Object perspective of problem domain
domain

5. Describe the real world as data


5. Describes the real worlds by its objects,
flowing through IS, being transformed
attributes, services and relationships
from inputs to outputs.

Object Oriented System Analysis & Design 9


Werabe University IT Department

6.. Data and functionalities encapsulated


6. Separates data from its functionality
together

Potential benefits of Object Oriented (Advantages of Object Oriented)

1. Increased reusability
2. Increased extensibility
3. Improved quality
4. Increased chance of project success
5. Reduced maintenance burden
6. Managed complexity
7. Financial benefits (allow the above advantages contribute to financial benefits)

Potential drawback of Object Oriented (Disadvantages of Object Oriented)

1. Object oriented requires greater concentration on requirements, analysis and


design.
2. Developers must work closely with users. In this case users is highly involved
in the development project.
3. Object oriented requires a complete change in mindset on the part of individuals
& organization.
4. Object oriented demands upfront investment in training, educations and tools
5. Many Object oriented benefits are long term
6. Object oriented techniques do not guarantee you will build the right system
7. Object oriented necessities increased testing
8. Object oriented is more than just programming
9. Object oriented is part of the solution
10. Object oriented requires the development culture of your IS department to
change

Object Oriented System Analysis & Design 10

You might also like