Professional Documents
Culture Documents
Unit 3
Unit 3
Structure:
3.1 Introduction
Objectives
3.2 The Process of Software Development
Implementation, testing and documenting
Deployment and maintenance
3.3 Developing Good Quality Software
3.4 Use Case Driven Approach for Object Oriented Systems Development
Use case driven object oriented analysis
Object oriented design
Prototyping
Implementation: component based development
Incremental testing
3.5 Reusability
3.6 Summary
3.7 Glossary
3.8 Terminal Questions
3.9 Answers
3.1 Introduction
By now you should be familiar with the concepts of objects. In this unit we
will study about object oriented systems development life cycle and the
concepts associated with it.
Object oriented systems development life cycle deals with the task of
making program development faster and much more efficient, resulting in
lesser costs. Components are developed internally or can be obtained from
an external source. In Object Oriented Systems Development (OOSD), we
combine the concepts of systems development life cycle and object oriented
modeling.
The phases of the object oriented systems development life cycle involve
the following tasks:
Page No.: 37
Unit 3
Defining the user requirements for a system Here, we define all the
objects present in the system and the interactions within them. We
define a model of the objects that are part of the users business system
like suppliers, inventory levels, customers and so on.
This unit first defines the systems development life cycle and then explains
an object oriented approach for software development.This unit emphasizes
the importance of the analysis and design part of the software development
life cycle which helps to build high quality software.
Objectives:
After studying this unit you should be able to:
define object oriented systems development life cycle
explain the process of software development
describe the key aspects for building high-quality software
explain object oriented systems development and its associated
concepts
define reusability of software
Page No.: 38
Unit 3
Problem description
analysis
System
Software
Product
Figure 3.1: Process of Software Development
Page No.: 39
Unit 3
2) Design This phase begins with the problem statement and concludes
with a detailed design that can be converted into a functional system.
This conversion covers the details of software development, description
of how the software is built, description of the software development and
also the testing phase.
3) Execution 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
constructed and the complete system is given a functional shape with
adequate testing.
Execution phase has to consider how the system reacts to the program
which is written for the system to work.
One of the models used for the software development process is the water
fall approach which begins with requirements collection. Once the
requirements have been decided, we must decide as to how we can achieve
them. The waterfall approach is illustrated in figure 3.2.
Requirements
Analysis
Modeling
Coding
Testing
Acceptance
Figure 3.2: Waterfall Approach to Software Development
Page No.: 40
Unit 3
In real world scenarios, problems are not well specified. This is one of the
limitations of the waterfall approach. The waterfall model assumes that the
requirements are well known before the design phase commences. But we
need to understand that one needs to work with the product before the
requirements are fully analyzed. It also makes an assumption that the
requirements would continue to be stagnant during the development cycle.
Finally, even though the clear specification is there, it makes an assumption
that the design knowledge would be available to develop the product.
The waterfall model is suitable for a well known product. Generally the
approach is suitable for large projects.
The advantages of the water fall approach are:
It is easier to explain.
The stages and activities are well specified.
It helps to plan and schedule the project.
It includes verification at each stage which ensures early detection of
errors or assumptions.
There are also certain limitations associated with this approach. The
waterfall model assumes that the requirements of a system can be frozen
before the design commences. This is possible for systems which are
designed to automate an existing manual system. But for a newly conceived
system, establishing the requirement is difficult, as the user does not know
the requirements. Therefore, changing only a few requirements is unrealistic
for such a system.
The waterfall model demands that the requirements be completely specified
before the rest of the development can proceed. In some situations it might
be advisable to first develop a part of the system completely, and later
enhance the system in phases.
3.2.1 Implementation, testing and documenting
In the implementation phase, the designs are translated into code.
Computer programs are written using conventional programming techniques
or an application generator. Programming tools such as compilers,
interpreters, and debuggers are used for generating the code. Different high
level programming languages like C, C++, .NET and Java are used for
Page No.: 41
Unit 3
Page No.: 42
Unit 3
Activity 1
Analyze a model used for software development and compare it with the
waterfall model.
Self Assessment Questions
1. The waterfall model assumes that the requirements are well known
before the _____________ commences.
2. Maintenance phase consists of all the activity after the
______________ of software.
3. After the testing phase, _________ for a system is developed.
Page No.: 43
Unit 3
Figure 3.3 shows the quality measures taken for software evaluation.
Verification and validation are very much different from each other and are
independent as well. We can definitely create a product according to the
specification. But if the specification is itself inaccurate, we cannot develop
the correct product. A product may also be definite in its form but may not
satisfy the users needs. After many years a product may be developed that
corresponds to the original design statement but may not match with the
current technology trends and the way the system operates.
Self Assessment Questions
4. The final agenda of building high quality software is to
______________ the user.
5. There are basically __________ ways to perform system testing by
which we can actually test a system.
6. Validation is always __________________ in its approach.
Page No.: 44
Unit 3
QA tests
and user
satisfaction
usability
Construct
object and
dynamic
model
User interface
and prototype
construction
Constructing use
case model
Object
analysis
Methods and
attribute
definition, class
design
Tests and
Validation
The important advantage here is that all the design decisions can be traced
back directly to the user requirements.
Object oriented software development methodology enables us to look at
the problem as a whole. It also encourages incremental development.
Page No.: 45
Unit 3
Page No.: 46
Unit 3
Page No.: 47
Unit 3
Page No.: 48
Unit 3
Page No.: 49
Unit 3
Page No.: 50
Unit 3
Page No.: 51
Unit 3
3.5 Reusability
In the previous section, we studied about object oriented system
development and the concepts associated with it. In this section we will
study about the concept of re-usability and its benefits.
Reusability is one of the major benefits associated with object oriented
system development. It is also one of the most difficult tasks to deliver. If an
object has to be made reusable, more efforts are required to design it. For
the object to be delivered, development team must have up-front time to
plan reusability into the project. Reusability makes the job of development
clear, more reliable, reduces time and cost, and improves consistency.
Existing software elements can be effectively evaluated if the following
questions are answered for the intended applications:
Has my problem partially been solved?
Has my problem completely solved?
How have similar problems been addressed before?
For these questions to be answered, detailed information about the software
components is required. The reuse strategy can be promoted by the
following measures:
Re-usable objects and codes must have a standard for naming and
storing attributes
Sikkim Manipal University
Page No.: 52
Unit 3
The common reuse principle helps in deciding the classes that must be
placed in a package. The classes in a package are always reused together.
Reusable classes work with other classes that are a part of reusable
abstraction.
The enhanced reusability of object-oriented code also increases its
reliability. A class taken from a library is likely to have explored its way into a
variety of different applications and programs. The more the code is being
used, the more likely that the problems will be encountered and fixed. Bugs
that appear to be strange and difficult to find in our program might already
have been located and eliminated.
Self Assessment Questions
10. If an object has to be reusable, more efforts are required to
______________ it.
11. Reusability makes the job of ______________clear.
12. Reusability is one of the major benefits associated with ___________.
3.6 Summary
This chapter discussed system development life cycle (SDLC) in general
and object oriented and use-case driven SDLC in particular. The main idea
involved in software process is the conversion of users requirements
through the application domain. Use case or a set of scenarios can be of
great use for analyzing the users needs. Here, promoting and developing
high quality software is given great importance.
High quality software provides users with an application that satisfies their
requirements. We discussed quality measures like correspondence,
correctness, verification and validation. Correspondence informs us how
well the system responds to the users needs. Correction tells whether the
system is performing correctly and if it is producing the desired results.
Sikkim Manipal University
Page No.: 53
Unit 3
3.7 Glossary
Term
Description
Non Executable
Domain
Repository
Page No.: 54
Unit 3
3.9 Answers
Self Assessment Questions
1. Requirements
2. Installation
3. Documentation
4. Satisfy
5. Two
6. One Sided
7. Version
8. Large
9. Iterative
10. Design
11. Development
12. Object Oriented systems development
Terminal Questions
1. Refer Section 3.2 The process of software development
2. Refer section 3.3 Building good quality software
3. Refer section 3.4.2 Object oriented design
4. Refer section 3.4.3 Prototyping
5. Refer Section 3.4.4 Component based development
6. Refer section 3.4.5 Incremental Testing
7. Refer section 3.5 Reusability
References
Page No.: 55
Unit 3
E-References
www.objectmentor.com/resources/articles/granularity.pdf
http://qwickstep.com/search/waterfall-sdlc.html
Page No.: 56