Unit 2 Software Engineering-208 (Bca IV Sem)
Unit 2 Software Engineering-208 (Bca IV Sem)
COURSE : BCA
SEMESTER : FOURTH SEMESTER
SUBJECT CODE : BCA- 208
NAME OF SUBJECT : S/W ENGINEERING
Chanderprabhu Jain College of Higher Studies & School of Law
Plot No. OCF, Sector A-8, Narela, New Delhi – 110040
(Affiliated to Guru Gobind Singh Indraprastha University and Approved by Govt of NCT of Delhi & Bar Council of India)
UNIT-2
THE MANAGEMENT SPECTRUM
The management spectrum describes the management of a software project. The
management of a software project starts from requirement analysis and finishes
based on the nature of the product, it may or may not end because almost all
software products faces changes and requires support. It is about turning the project
from plan to reality.
The management spectrum focuses on the four P’s; people, product, process and
project. Here, the manager of the project has to control all these P’s to have a
smooth flow in the progress of the project and to reach the goal. Effective software
project management focuses on the four P’s. The order is not arbitrary. The
manager who forgets that software engineering work is an intensely human
endeavor will never have success in project management.
Chanderprabhu Jain College of Higher Studies & School of Law
Plot No. OCF, Sector A-8, Narela, New Delhi – 110040
(Affiliated to Guru Gobind Singh Indraprastha University and Approved by Govt of NCT of Delhi & Bar Council of India)
Chanderprabhu Jain College of Higher Studies & School of Law
Plot No. OCF, Sector A-8, Narela, New Delhi – 110040
(Affiliated to Guru Gobind Singh Indraprastha University and Approved by Govt of NCT of Delhi & Bar Council of India)
The People:
People of a project includes from manager to developer, from customer to end user.
But mainly people of a project highlight the developers. It is so important to have
highly skilled and motivated developers that the Software Engineering Institute has
developed a People Management Capability Maturity Model (PM-CMM),
“to enhance the readiness of software organizations to undertake increasingly
complex applications by helping to attract, grow, motivate, deploy, and retain the
talent needed to improve their software development capability”
Organizations that achieve high levels of maturity in the people management area
have a higher likelihood of implementing effective software engineering practices.
Chanderprabhu Jain College of Higher Studies & School of Law
Plot No. OCF, Sector A-8, Narela, New Delhi – 110040
(Affiliated to Guru Gobind Singh Indraprastha University and Approved by Govt of NCT of Delhi & Bar Council of India)
The people management maturity model defines the following key practice areas
for software people: recruiting, selection, performance management, training,
compensation, career development, organization and work design, and team/culture
development. Organizations that achieve high levels of maturity in the people
management area have a higher likelihood of implementing effective software
engineering practices.
The Product:
The product is the ultimate goal of the project. This is any types of software
product that has to be developed. To develop a software product successfully, all
the product objectives and scopes should be established, alternative solutions
should be considered, and technical and management constraints should be
identified beforehand. Lack of these information, it is impossible to define
reasonable and accurate estimation of the cost, an effective assessment of risks, a
realistic breakdown of project tasks or a manageable project schedule that
provides a meaningful indication of progress.
Chanderprabhu Jain College of Higher Studies & School of Law
Plot No. OCF, Sector A-8, Narela, New Delhi – 110040
(Affiliated to Guru Gobind Singh Indraprastha University and Approved by Govt of NCT of Delhi & Bar Council of India)
The software developer and customer must meet to define product objectives and
scope. In many cases, this activity begins as part of the system engineering or
business process engineering and continues as the first step in software
requirements analysis . Objectives identify the overall goals for the product (from
the customer’s point of view) without considering how these goals will be chieved.
Scope identifies the primary data, functions and behaviors that characterize the
product, and more important, attempts to bound these characteristics in a
quantitative manner.
Once the product objectives and scope are understood, alternative solutions are
considered. Although very little detail is discussed, the alternatives enable
managers and practitioners to select a "best" approach, given the constraints
imposed by delivery deadlines, budgetary restrictions, personnel availability,
technical interfaces, and myriad other factors.
Chanderprabhu Jain College of Higher Studies & School of Law
Plot No. OCF, Sector A-8, Narela, New Delhi – 110040
(Affiliated to Guru Gobind Singh Indraprastha University and Approved by Govt of NCT of Delhi & Bar Council of India)
The Process:
A software process provides the framework from which a comprehensive plan for
software development can be established. A number of different tasks sets— tasks,
milestones, work products, and quality assurance points—enable the framework
activities to be adapted to the characteristics of the software project and the
requirements of the project team. Finally, umbrella activities overlay the software
process model. Umbrella activities are independent of any one framework activity
and occur throughout the process.
Chanderprabhu Jain College of Higher Studies & School of Law
Plot No. OCF, Sector A-8, Narela, New Delhi – 110040
(Affiliated to Guru Gobind Singh Indraprastha University and Approved by Govt of NCT of Delhi & Bar Council of India)
A software process provides the framework from which a comprehensive plan for
software development can be established. A small number of framework activities
are applicable to all software projects, regardless of their size or complexity. A
number of different task sets—tasks, milestones, work products, and quality
assurance points—enable the framework activities to be adapted to the
characteristics of the software project and the requirements of the project team.
Finally, umbrella activities—such as software quality assurance, software
configuration management, and measurement—overlay the process model.
Umbrella activities are independent of any one framework activity and occur
throughout the process.
Chanderprabhu Jain College of Higher Studies & School of Law
Plot No. OCF, Sector A-8, Narela, New Delhi – 110040
(Affiliated to Guru Gobind Singh Indraprastha University and Approved by Govt of NCT of Delhi & Bar Council of India)
The Project:
The project is the complete software project that includes requirement analysis,
development, delivery, maintenance and updates. The project manager of a project or
sub-project is responsible for managing the people, product and process. The
responsibilities or activities of software project manager would be a long list but that
has to be followed to avoid project failure.
A software project could be extremely complex and as per the industry data the
failure rate is high. Its merely due to the development but mostly due to the steps
before development and sometimes due to the lack of maintenance.
Chanderprabhu Jain College of Higher Studies & School of Law
Plot No. OCF, Sector A-8, Narela, New Delhi – 110040
(Affiliated to Guru Gobind Singh Indraprastha University and Approved by Govt of NCT of Delhi & Bar Council of India)
We conduct planned and controlled software projects for one primary reason—it is
the only known way to manage complexity. And yet, we still struggle. In 1998,
industry data indicated that 26 percent of software projects failed outright and 46
percent experienced cost and schedule overruns . Although the success rate for
software projects has improved somewhat, our project failure rate remains higher
than it should be.
In order to avoid project failure, a software project manager and the software
engineers who build the product must avoid a set of common warning signs,
understand the critical success factors that lead to good project management, and
develop a commonsense approach for planning, monitoring and controlling the
project.
Chanderprabhu Jain College of Higher Studies & School of Law
Plot No. OCF, Sector A-8, Narela, New Delhi – 110040
(Affiliated to Guru Gobind Singh Indraprastha University and Approved by Govt of NCT of Delhi & Bar Council of India)
SIZE ESTIMATION
Estimation of the size of software is an essential part of Software Project
Management. It helps the project manager to further predict the effort and time
which will be needed to build the project. Various measures are used in project size
estimation. Some of these are:
1. Lines of Code
2. Number of entities in ER diagram
3. Total number of processes in detailed data flow diagram
4. Function points
Chanderprabhu Jain College of Higher Studies & School of Law
Plot No. OCF, Sector A-8, Narela, New Delhi – 110040
(Affiliated to Guru Gobind Singh Indraprastha University and Approved by Govt of NCT of Delhi & Bar Council of India)
Advantages:
•Universally accepted and is used in many models like COCOMO.
•Estimation is closer to developer’s perspective.
•Simple to use.
Disadvantages:
•Different programming languages contains different number of lines.
•No proper industry standard exist for this technique.
•It is difficult to estimate the size using this technique in early stages of project.
Chanderprabhu Jain College of Higher Studies & School of Law
Plot No. OCF, Sector A-8, Narela, New Delhi – 110040
(Affiliated to Guru Gobind Singh Indraprastha University and Approved by Govt of NCT of Delhi & Bar Council of India)
4. Function Point Analysis: In this method, the number and type of functions
supported by the software are utilized to find FPC(function point count). The steps
in function point analysis are:
1. Count the number of functions of each proposed type.
2. Compute the Unadjusted Function Points(UFP).
3. Find Total Degree of Influence(TDI).
4. Compute Value Adjustment Factor(VAF).
5. Find the Function Point Count(FPC).
Count the number of functions of each proposed type: Find the number of
functions belonging to the following types:
Chanderprabhu Jain College of Higher Studies & School of Law
Plot No. OCF, Sector A-8, Narela, New Delhi – 110040
(Affiliated to Guru Gobind Singh Indraprastha University and Approved by Govt of NCT of Delhi & Bar Council of India)
Find Total Degree of Influence: Use the ’14 general characteristics’ of a system to
find the degree of influence of each of them. The sum of all 14 degrees of
influences will give the TDI. The range of TDI is 0 to 70. The 14 general
characteristics are: Data Communications, Distributed Data Processing,
Performance, Heavily Used Configuration, Transaction Rate, On-Line Data Entry,
End-user Efficiency, Online Update, Complex Processing Reusability, Installation
Ease, Operational Ease, Multiple Sites and Facilitate Change.
Each of above characteristics is evaluated on a scale of 0-5.
Compute Value Adjustment Factor(VAF): Use the following formula to calculate
VAF
VAF = (TDI * 0.01) + 0.65
Find the Function Point Count: Use the following formula to calculate FPC
FPC = UFP * VAF
Chanderprabhu Jain College of Higher Studies & School of Law
Plot No. OCF, Sector A-8, Narela, New Delhi – 110040
(Affiliated to Guru Gobind Singh Indraprastha University and Approved by Govt of NCT of Delhi & Bar Council of India)
Advantages:
It can be easily used in the early stages of project planning.
It is independing on the programming language.
It can be used to compare different projects even if they use different
technologies(database, language etc).
Disadvantages:
It is not good for real time systems and embedded systems.
Many cost estimation models like COCOMO uses LOC and hence FPC must be
converted to LOC.
Chanderprabhu Jain College of Higher Studies & School of Law
Plot No. OCF, Sector A-8, Narela, New Delhi – 110040
(Affiliated to Guru Gobind Singh Indraprastha University and Approved by Govt of NCT of Delhi & Bar Council of India)
COST ESTIMATION
Cost estimation simply means a technique that is used to find out the cost estimates.
The cost estimate is the financial spend that is done on the efforts to develop and test
software in Software Engineering. Cost estimation models are some mathematical
algorithms or parametric equations that are used to estimate the cost of a product or a
project. Several estimation procedures have been developed and are having the
following attributes in common.
•Project scope must be established in advanced.
•Software metrics are used as a support from which evaluation is made.
•The project is broken into small PCs which are estimated individually.
To achieve true cost & schedule estimate, several option arise.
•Delay estimation
•Used symbol decomposition techniques to generate project cost and schedule
estimates.
•Acquire one or more automated estimation tools.
Chanderprabhu Jain College of Higher Studies & School of Law
Plot No. OCF, Sector A-8, Narela, New Delhi – 110040
(Affiliated to Guru Gobind Singh Indraprastha University and Approved by Govt of NCT of Delhi & Bar Council of India)
Various techniques or models are available for cost estimation, also known as Cost
Estimation Models as shown below :
Chanderprabhu Jain College of Higher Studies & School of Law
Plot No. OCF, Sector A-8, Narela, New Delhi – 110040
(Affiliated to Guru Gobind Singh Indraprastha University and Approved by Govt of NCT of Delhi & Bar Council of India)
Chanderprabhu Jain College of Higher Studies & School of Law
Plot No. OCF, Sector A-8, Narela, New Delhi – 110040
(Affiliated to Guru Gobind Singh Indraprastha University and Approved by Govt of NCT of Delhi & Bar Council of India)
Heuristic Technique –
Heuristic word is derived from a Greek word that means “to discover”. The heuristic
technique is a technique or model that is used for solving problems, learning, or
discovery in the practical methods which are used for achieving immediate goals.
These techniques are flexible and simple for taking quick decisions through shortcuts
and good enough calculations, most probably when working with complex data. But
the decisions that are made using this technique are necessary to be optimal.
In this technique, the relationship among different project parameters is expressed
using mathematical equations. The popular heuristic technique is given
by Constructive Cost Model (COCOMO). This technique is also used to increase or
speed up the analysis and investment decisions.
Chanderprabhu Jain College of Higher Studies & School of Law
Plot No. OCF, Sector A-8, Narela, New Delhi – 110040
(Affiliated to Guru Gobind Singh Indraprastha University and Approved by Govt of NCT of Delhi & Bar Council of India)
COCOMO Model
Cocomo (Constructive Cost Model) is a regression model based on LOC,
i.e number of Lines of Code. It is a procedural cost estimate model for software
projects and often used as a process of reliably predicting the various parameters
associated with making a project such as size, effort, cost, time and quality. It was
proposed by Barry Boehm in 1970 and is based on the study of 63 projects, which
make it one of the best-documented models.
The key parameters which define the quality of any software products, which are
also an outcome of the Cocomo are primarily Effort & Schedule:
Effort: Amount of labor that will be required to complete a task. It is measured in
person-months units.
Schedule: Simply means the amount of time required for the completion of the
job, which is, of course, proportional to the effort put. It is measured in the units of
time such as weeks, months.
Different models of Cocomo have been proposed to predict the cost estimation at
different levels, based on the amount of accuracy and correctness required.
Chanderprabhu Jain College of Higher Studies & School of Law
Plot No. OCF, Sector A-8, Narela, New Delhi – 110040
(Affiliated to Guru Gobind Singh Indraprastha University and Approved by Govt of NCT of Delhi & Bar Council of India)
Intermediate COCOMO takes these Cost Drivers into account and Detailed
COCOMO additionally accounts for the influence of individual project phases, i.e
in case of Detailed it accounts for both these cost drivers and also calculations are
performed phase wise henceforth producing a more accurate result.
Intermediate Model –The basic Cocomo model assumes that the effort is only a
function of the number of lines of code and some constants evaluated according to
the different software system. However, in reality, no system’s effort and schedule
can be solely calculated on the basis of Lines of Code. For that, various other
factors such as reliability, experience, Capability. These factors are known as Cost
Drivers and the Intermediate Model utilizes 15 such drivers for cost estimation.
Chanderprabhu Jain College of Higher Studies & School of Law
Plot No. OCF, Sector A-8, Narela, New Delhi – 110040
(Affiliated to Guru Gobind Singh Indraprastha University and Approved by Govt of NCT of Delhi & Bar Council of India)
Detailed Model –
Detailed COCOMO incorporates all characteristics of the intermediate version with
an assessment of the cost driver’s impact on each step of the software engineering
process. The detailed model uses different effort multipliers for each cost driver
attribute. In detailed cocomo, the whole software is divided into different modules
and then we apply COCOMO in different modules to estimate effort and then sum
the effort.The Six phases of detailed COCOMO are:
1. Planning and requirements
2. System design
3. Detailed design
4. Module code and test
5. Integration and test
6. Cost Constructive model
The effort is calculated as a function of program size and a set of cost drivers are
given according to each phase of the software lifecycle.
Chanderprabhu Jain College of Higher Studies & School of Law
Plot No. OCF, Sector A-8, Narela, New Delhi – 110040
(Affiliated to Guru Gobind Singh Indraprastha University and Approved by Govt of NCT of Delhi & Bar Council of India)
Risk Management
A software project can be concerned with a large variety of risks. In order to be
adept to systematically identify the significant risks which might affect a software
project, it is essential to classify risks into different classes. The project manager can
then check which risks from each class are relevant to the project.
There are three main classifications of risks which can affect a software project:
1. Project risks
2. Technical risks
3. Business risks
Chanderprabhu Jain College of Higher Studies & School of Law
Plot No. OCF, Sector A-8, Narela, New Delhi – 110040
(Affiliated to Guru Gobind Singh Indraprastha University and Approved by Govt of NCT of Delhi & Bar Council of India)
3. Business risks: This type of risks contain risks of building an excellent product
that no one need, losing budgetary or personnel commitments, etc.
Chanderprabhu Jain College of Higher Studies & School of Law
Plot No. OCF, Sector A-8, Narela, New Delhi – 110040
(Affiliated to Guru Gobind Singh Indraprastha University and Approved by Govt of NCT of Delhi & Bar Council of India)
Risk Identification
It is a systematic attempt to specify threats to the project plans.
Two different types of risk:
1. Generic risksThese risks are a potential threat to each software project.
2. Product-specific risksThese risks are recognized by those with a clear
understanding of the technology, the people and the environment which is specific
to the software that is to be built.
A method for recognizing risks is to create item checklist.