Chapter 2 - Development

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

Software Engineering-I (CS504)

Software Engineering - I
An Introduction to Software Construction Techniques for Industrial
Strength Software

Chapter 2 – Introduction to Software Development

© Copy Rights Virtual University of Pakistan 1


Software Engineering-I (CS504)

Software Development
We have seen in our previous discussion that software engineering is nothing but a
disciplined approach to develop software. Now we will look at some of the activities
involved in the course of software development. The activities involved in software
development can broadly be divided into two major categories first is construction and
second is management. The construction activities are those that are directly related to the
construction or development of the software. While the management activities are those
that complement the process of construction in order to perform construction activities
smoothly and effectively. A greater detail of the activities involved in the construction
and management categories is presented below.

Construction
The construction activities are those that directly related to the development of software,
e.g. gathering the requirements of the software, develop design, implement and test the
software etc. Some of the major construction activities are listed below.
• Requirement Gathering
• Design Development
• Coding
• Testing

Management
Management activities are kind of umbrella activities that are used to smoothly and
successfully perform the construction activities e.g. project planning, software quality
assurance etc. Some of the major management activities are listed below.
• Project Planning and Management
• Configuration Management
• Software Quality Assurance
• Installation and Training

As we have said earlier that management activities are kind of umbrella activities that
surround the construction activities so that the construction process may proceed
smoothly. This fact is empathized in the figure 1. The figure shows that construction is
surrounded by management activities. That is, all construction activities are governed by
certain processes and rules. These processes and rules are related to the management of
the construction activities and not the construction itself.

© Copy Rights Virtual University of Pakistan 2


Software Engineering-I (CS504)

• Project planning and


management
• Configuration
management
Management
• Quality assurance
• Installation and
training
Construction etc.

• Requirements
• Design
• Coding
• Testing
• Maintenance
etc.

Figure1: Development activities

A Software Engineering Framework


Any Engineering approach must be founded on organizational commitment to quality.
That means the software development organization must have special focus on quality
while performing the software engineering activities. Based on this commitment to
quality by the organization, a software engineering framework is proposed that is shown
in figure 2. The major components of this framework are described below.

Quality Focus: As we have said earlier, the given framework is based on the
organizational commitment to quality. The quality focus demands that processes be
defined for rational and timely development of software. And quality should be
emphasized while executing these processes.

Processes: The processes are set of key process areas (KPAs) for effectively manage and
deliver quality software in a cost effective manner. The processes define the tasks to be
performed and the order in which they are to be performed. Every task has some
deliverables and every deliverable should be delivered at a particular milestone.

Methods: Methods provide the technical view to carryout these tasks. There could be
more than one technique to perform a task and different techniques could be used in
different situations.

Tools: Tools provide automated or semi-automated support for software processes,


methods, and quality control.

© Copy Rights Virtual University of Pakistan 3


Software Engineering-I (CS504)

Method T
O
Task Set Process O
L
Quality Focus S

Figure 2: A Software Engineering Framework

Software Development Loop


Let’s now look at software engineering activities from a different perspective. Software
development activities could be performed in a cyclic and that cycle is called software
development loop which is shown in figure 3. The major stages of software development
loop are described below.

Problem Definition: In this stage we determine, what is the problem? What we are going
to develop? Here we try to completely comprehend the issues and requirements of the
software system to build.

Technical Development: In this stage we try to find the solution of the problem on
technical grounds and base our actual implementation on it. This is the stage where a new
system is actually developed that solves the problem defined in the first stage.

Solution Integration: If there are already developed system(s) available with which our
new system has to interact then those systems should also be the part of our new system.
All those existing system(s) integrate with our new system at this stage.

Status Quo: After going through the previous three stages successfully, when we actually
deployed the new system at the user site then that situation is called status quo. But once
we get new requirements then we need to change the status quo.

After getting new requirements we perform all the steps in the software development
loop again. The software developed through this process has the property that this could
be evolved and integrated easily with the existing systems.

© Copy Rights Virtual University of Pakistan 4


Software Engineering-I (CS504)

Problem
Definition

Technical
Status Quo
Development

Solution
Integration

Figure 3: Software Development Loop

Software Construction
Here once again look at the construction activities of the software from a different
perspective. This section provides with a sequence of questions that have to answer in
different stages of software development.

1. What is the problem to be solved?


2. What are the characteristics of the entity that is used to solve the problem?
3. How will the entity be realized?
4. How will the entity be constructed?
5. What approach will be used to uncover errors that were made in the design and
construction of the entity?
6. How will the entity be supported over the long term, when users of the entity request
corrections, adaptations, and enhancements?

Software Engineering Phases


There are four basic phases of software development that are shown in Figure 4.

Vision: Here we determine why are we doing this thing and what are our business
objectives that we want to achieve.

Definition: Here we actually realize or automate the vision developed in first phase. Here
we determine what are the activities and things involved.

Development: Here we determine, what should be the design of the system, how will it
be implemented and how to test it.

Maintenance: This is very important phase of software development. Here we control


the change in system, whether that change is in the form of enhancements or defect
removal.

© Copy Rights Virtual University of Pakistan 5


Software Engineering-I (CS504)

Vision Definition Development Maintenance

Figure 4: Software Engineering Phases

Maintenance
Maintenance means Correction, adaptation or enhancement. For most large, long lifetime
software systems, maintenance cost normally exceeds development cost by factors
ranging from 2 to 3.

Boehm (1975) quotes a pathological case where the development cost of an avionics
system was $30 per line of code but the maintenance cost was $4000 per instruction.

Summary
• Software development is a multi-activity process. It is not simply coding.
• Software construction and management
• Software Engineering Framework
• Software development loop
• Software engineering phases
• Importance of Maintenance

© Copy Rights Virtual University of Pakistan 6

You might also like