Professional Documents
Culture Documents
ACFr Og C8 Icn Au Jo OQGYQdim ZWYme KZOkary Oz VOgx JIJOMCNCY1 X8 AG631 B PUkc F
ACFr Og C8 Icn Au Jo OQGYQdim ZWYme KZOkary Oz VOgx JIJOMCNCY1 X8 AG631 B PUkc F
1
Software Project Management
2
Software Project Management
• It measures the meantime to failure (MTTF) which may be defined as the probability of
failure during a particular interval of time.
Many models have been developed to determine software defects/failures. All these models
describe the occurrence of defects/failures as a function of time. This allows us to define
reliability. These models are based on certain assumptions which can be described below:
➢ The failures are independent of each other, i.e., one failure has no impact on another
failure (s).
➢ The inputs are random samples.
➢ Failure intervals are independent and all software failures are observed.
➢ The time between failures is exponentially distributed.
The following formula gives the cumulative number of defects observed at a time ‘t’.
D(t) = Td (1 – e –bct)
D(t) = Cumulative number of defects observed at a time t
Td = Total number of defects
‘b’ and ‘c’ are constants and depend on historical data of similar software for which the
model is being applied.
We may find the mean time to failure (MMFT) as below:
MTTF(t) = e bct / c Td
5.3.2. Maintainability metrics
Complexity metrics are used to determine the maintainability of software.
The complexity of software can be measured from its control flow.
Consider the graph in Figure 1. Each node represents one program segment and edges
represent the control flow. The complexity of the software module represented by the graph
can be given by simple formulae of graph theory as follows:
V (G) = e – n + 2 where
V (G): is called Cyclomatic complexity of the program
e = number of edges
n = number of nodes
Applying the above equation the complexity V (G) of the graph is found to be 3.
The cyclomatic complexity has been related to programming efforts, maintenance efforts, and
debugging efforts. Although cyclomatic complexity measures program complexity, it fails to
measure the complexity of a program without multiple conditions. The information flow
within a program can provide a measure of program complexity.
5.3.3 Integrity.
Software integrity has become increasingly important in the age of hackers and firewalls.
This attribute measures a system's ability to withstand attacks (both accidental and
3
Software Project Management
intentional) to its security. Attacks can be made on all three components of software:
programs, data, and documents. To measure integrity, two additional attributes must be
defined: threat and security. The threat is the probability (which can be estimated or derived
from empirical evidence) that an attack of a specific type will occur within a given time.
Security is the probability (which can be estimated or derived from empirical evidence) that
the attack of a specific type will be repelled.
The integrity of a system can then be defined as
Integrity = summation [(1 – threat)* (1 – security)]
Where threat and security are summed over each type of attack.
5.3.4 Correctness.
A program must operate correctly or it provides little value to its users. Correctness is the
degree to which the software performs its required function. The most common measure for
correctness is defects per KLOC, where a defect is defined as a verified lack of conformance
to requirements. When considering the overall quality of a software product, defects are those
problems reported by a user of the program after the program has been released for general
use. For quality assessment purposes, defects are counted over a standard period of time,
typically one year.
5.3.5 Usability
The catchphrase "user-friendliness" has become ubiquitous in discussions of software
products. If a program is not user-friendly, it is often doomed to failure, even if the functions
that it performs are valuable. Usability is an attempt to quantify user-friendliness and can be
measured in terms of four characteristics:
(1) The physical and or intellectual skill required to learn the system,
(2) The time required to become moderately efficient in the use of the system,
(3) The net increase in productivity (over the approach that the system replaces) is measured
when the system is used by someone who is moderately efficient, and
(4) A subjective assessment (sometimes obtained through a questionnaire) of users' attitudes
toward the system.
5.3.5 Defect Removal Efficiency:
A quality metric that provides benefit at both the project and process level is defect removal
efficiency (DRE). In essence, DRE is a measure of the filtering ability of quality assurance
and control activities as they are applied throughout all process framework activities.
When considered for a project as a whole, DRE is defined in the following manner:
DRE = E/(E + D)
Where E is the number of errors found before delivery of the software to the end-user and D
is the number of defects found after delivery.
The ideal value for DRE is 1. That is, no defects are found in the software.
5.4 Important Parameters for Measurement of Software Quality
➢ To the extent it satisfies user requirements; they form the foundation to measure software
quality.
➢ Use of specific standards for building the software product. Standards could be the
organization’s standards or standards referred to in a contractual agreement.
➢ Implicit requirements are not stated by the user but are essential for quality software.
4
Software Project Management
5
Software Project Management
6
Software Project Management
to oversee software processes, and training programs are used to ensure understanding
and compliance.
➢ SEI-CMM Level 4: Metrics are used to track productivity, processes, and products.
Project performance is predictable, and quality is consistently high.
➢ SEI-CMM Level 5: The focus is on continuous process improvement. The impact of new
processes and technologies can be predicted and effectively implemented when required.
5.9 THE INTERNATIONAL ORGANISATION FOR STANDARDISATION (ISO)
➢ The International Organisation for Standardisation (ISO) developed the ISO 9001:2000
standard (which replaces the previous set of three standards of 1994) that helps the
organization to establish, operate, maintain and review a quality management system that
is assessed by outside auditors.
➢ The standard is generic and can be applied to any organization involved in the production,
or manufacturing service including an organization providing software services.
➢ It covers documentation, design, development, production, testing, installation, servicing,
and other processes.
➢ It may be noted that ISO certification does not necessarily indicate quality products.
➢ It only indicates that the organization follows a well-documented established process.
7
Software Project Management
8
Software Project Management
9
Software Project Management
testing? The answer is NO. The high-quality software development process is most
important for the development of quality software products. Software quality involves
functionality for software usability, reliability, performance, scalability, support, and security
Integrated CASE tools:
• help the development of the quality product as they support standard methodology and
process of software development
• supports an exhaustive change management process
• contains easy-to-use visual modeling tools incorporating continuous quality assurance.
Quality in such tools is represented in all life cycle phases viz., Analysis/ Design
development, test, and deployment. Quality is essential in all the life cycle phases:
Analysis: A poor understanding of analysis requirements may lead to a poor product.
CASE tools help in reflecting the system requirements, accurately, and in a simple way.
CASE tools support the requirements analysis and coverage also as we have modeled. CASE
also helps in ambiguity resolution of the requirements, thus making high-quality
requirements.
Design: In design, the prime focus of quality starts with the testing of the architecture of
the software. CASE tools help in detecting, isolating, and resolving structure deficiency
during the design process. On average, a developer makes 100 to 150 errors for every
thousand lines of code. Assuming only 5% of these errors are serious, if the software has
ten thousand lines of code you may still have around 50 serious coding errors in your
system. One of the newer software development processes called the Agile process helps
in reducing such problems by asking the developer to design their test items first before
the coding.
A very good approach that is supported by CASE tools especially running time
development of C, C++, JAVA, or .NET code is to provide a set of automatic run-time
Language tools for the development of reliable and high-performance applications.
Testing: Functionality and performance testing is an integrated part of ensuring a high-
quality product. CASE supports automated testing tools that help in testing the software,
thus, helping in improving the quality of testing. CASE tools enhance the speed breadth
and reliability of these design procedures. The design tools are very important specifically
in the case of a web-based system where scalability and reliability are two major issues of
design.
Deployment: After proper testing software goes through the phase of deployment where
a system is made operational. A system failure should not result in a complete failure of
the software on restart. CASE tools also help in this particular place. In addition, they
support configuration management to help any kind of change thus to be made in the
software.
Quality is teamwork: It involves the integration of workflow of various individuals. It
establishes traceability and communication of information, all that can be achieved by
sharing workload documents and keeping their configuration items
10
Software Project Management
11