Академический Документы
Профессиональный Документы
Культура Документы
Development
INTRODUCTION
Metrics are management tools that are used to estimate the cost and resource
requirements of a project. In order to conduct a successful software project, we must
understand the scope of work to be done, the risks incurred, the resource required,
the tasks to be accomplished, the milestones to be tracked, the cost and the
schedule to be followed. Before a project can be planned, objectives and scope
should be established, alternative solution should be identified. This information is
required to estimate costs, project tasks, and a project schedule. [David Calvert,
1996]
Metrics helps to understand the technical process that is used to develop a product.
The process is measured to improve it and the product is measured to increase the
quality. Software metrics play a huge role in assessing and improving software
reliability in complex software systems. Effective control processes require
measurements that targets specific Life Cycle (LC) in a systematic and cohesive
manner, Experts at software Reliability Research has identified some of the most
important de-facto software metrics that are best suited for different applications.
These most effective best-in-the-class metrics are used around the world. [Software
Reliability Research, 2008].
Software metrics can be classified into three categories: product metrics, process
metrics, and project metrics. Product metrics describe the characteristics of the
product such as size, complexity, design features, performance, and quality level.
Process metrics can be used to improve software development and maintenance.
Examples include the effectiveness of defect removal during development, the
pattern of testing defect arrival, and the response time of the fix process. Project
metrics describe the project characteristics and execution. Examples include the
number of software developers, the staffing pattern over the life cycle of the
software, cost, schedule, and productivity. Some metrics belong to multiple
1.2 MEASUREMENTS
Measurements can be either direct or indirect. Direct measures are overtaken from a
feature of an item (eg. length). Indirect measures associate a measure to a feature of
the object being measured (e.g. quality is based upon counting rejects)
Direct measures in a product include lines of code (LOC), execution speed, memory
size, and defects reported. Indirect measures include functionality, quality,
complexity, efficiency, reliability, and maintainability. Direct measures are generally
easier to collect direct measures of Software Engineering output and quality.
Function-oriented metrics provide indirect measures.
Software measurements are quantified as schedule, work effort, product size, project
status, and quality performance. [Karl E. Wiegers, 2006]
methods.
Size-oriented metrics are direct measures of software and the process by which it is
developed. These metrics can include effort (time), money spent, KLOC (1000’s
lines of code). Pages of documentation created, errors, and people on the project.
Cost= cost/KLOC
Documentation=pages of documentation/LOC
Size-oriented metrics are not universally accepted. The use of LOC as a key
measure is the centre of the conflict.
• Metrics allow an organization to identify the causes of defects that have the
greatest effect on software development.
RESEARCH DESIGN
Jenkins 1984, Phan 1988, Bergeron 1992, Heemstra and Kusters 1989, Ledrer and
Prasad [1995, 1993] have surveyed the topic of estimation accuracy. These studied
have addressed either the frequency of overruns, or the average accuracy, or both.
Bergeron and St-Arnaud 1992 found that 58% of the projects surveyed had cost
Study (First Author) Jenkins [3] Phan [8] Heemstra [2] Ledrer [14] Sauer [10]
Publication
After schedule
Project completed 4% 3%
before schedule
Software processes have an important influence on the quality of the final software
product, and it has motivated companies to be more and more concerned about
software process improvement when they are promoting the improvement of the final
products. The management of software processes is a complex activity due to the
great number of different aspects to be considered and, for this reason it is useful to
establish a conceptual architecture, which includes all the aspects necessary for the
Quality software development has been based on the study of lines of implemented
code. Software is usually evaluated by means of metrics coming from programming
languages. On the other hand, regarding the great importance of the early stages of
development, metrics must be defined from higher level of abstraction.
Consequently, high-level metrics to be defined and validated in this work come from
specification languages. On the other hand, the concept of quality has subjective
aspects leading to numerous proposals for its assurance. Typically, they can be
classified in process-centric and product-centric methods. This framework is a
methodological approach to software quality assurance based on an object-oriented
conceptual modeling method including automatic code generation [Jose Romero,
SEC's XBRL Voluntary Program on Edgar: The Case for Quality Assurance (July 19,
2008)].
Software companies are becoming more and more concerned about software
process improvement, when they are promoting the improvement of the final
products. One of the main reasons of the growing interest in software metrics has
been the perception that software metrics are necessary for software process
improvement. Measurement is essential for understanding, defining, managing, and
controlling the software development and maintenance process and it is not possible
to characterize the various aspects of development in a quantitative way without
having a deep understanding of software development activities and their
relationships. These metrics are focused on the main elements included in a model
of software processes, and may provide the quantitative base necessary to evaluate
the changes in the software processes in companies with high maturity levels. [Felix
Garcia, Francisco Ruiz, Mario Piattini, 2004, “Definition and empirical Validation of
Effective software project estimation is one of the most challenging and important
activities in software development. Proper project planning and control is not
possible without a sound and reliable estimate. As a whole, the software industry
doesn’t estimate projects well and doesn’t use estimates appropriately. Under-
An accurate estimate of the size of the software to be built is the first step to an
effective estimate. Sources of information regarding the scope of the project should,
wherever possible, start with formal descriptions of the requirements- for example, a
customer’s requirements specification or request for later phases of the project’s
lifecycle, design documents can be used to provide additional detail. [Kathleen
Peters, Software Reliability: Measurement, Prediction, Application, Professional
Edition: Software Engineering Series, McGraw Hill, 2005, pp 390- 408].
Once the size of the product is estimated, effort estimate can be derived. This
conversion from software size to total project effort can only be done if software
development lifecycle is defined and development that follow to specify, design,
develop, and test the software. A software development project involves far more
than simply coding the software in fact, coding is often the smallest part of the overall
effort. Writing and reviewing documentation, implementing prototypes, designing the
deliverables, and reviewing and testing the code take up the larger portions of
overall project effort. [Kathleen Peters, Software Reliability: Measurement,
Prediction, Application, Professional Edition: Software Engineering Series, McGraw
Hill, 2005, pp 390- 408].
There are many factors to consider when estimating the total cost of a project. These
include labor, hardware and software purchases or rentals, travel for meeting or
Problems reported from the software projects for various organizations are listed
below,
• Certain project doesn’t meet the quality standards expected by the customer.
.objectives include: -
3. To find out the cost savings of system testing time by implementing software
metrics
• Longitudinal.
• Crosse-sectional design.
A sample size of 40 software companies, which are implemented software for their
technical functioning, is taken for the study. The sampling method used for the data
collection is non-probability convenience sampling.
Data sources for the project are mainly primary and secondary data. Primary data’s
are collected through mailing and directly from the respondents by means of
conducting survey. The survey was conducted to know the effectiveness of software
metrics in software product development.
The questionnaire was designed in such a way to meet the requirements of the
objectives. Various types of questions such as open ended, close ended, multiple
choice questions were used in the questionnaire,
The statistical tool used for the data analysis is Frequency Analysis.
With additional extensive help is taken using Bar Charts, Pie Chart, and Histogram.
India has emerged as a major exporter of software in the international economy. This
remarkable feat has been accomplished through the extraordinary growth of Indian
Software, which, in the last five year expanded at a compound annual rate of 59%
[Ashish Arora et.al, 2004]. Software industry is one of the most innovative and
fastest growing sectors of the global economy, generating revenues of more than
$150 billion every year. Software companies are becoming more and more
concerned about software process improvement, when they are promoting the
improvement of the final products.
The Indian software industry has focused primarily on providing software services in
almost all possible areas: System Software, telecommunications, e-commerce,
medical systems, automative software, Web-based development and multimedia
applications, and applications software for the insurance, banking and retail
industries.
The initial growth of the software service industry was facilitated by the enlightened
‘hands off’ policies of the government of India. The number of companies that
produce software or employ software developers is much greater than the set of
firms commonly thought of as software firms, such as Microsoft or oracle. [ Ashish
Arora et.al, 2004]. The growth of software exports from a country like India because
of lower labor cost. Table 1.1 shows the growth of software revenues in India
Growth ($ million)
1989 22 --
1990 26 --
1991 38 --
1992-93 54 --
1993-94 105.4 --
2001-02 2,650 --
India’s comparative advantage in the software industry, generated from its relative
abundance of qualified software engineers, coupled with the government’s timely
national action plan for rapidly improving communications infrastructure has played a
key role in creating confidence among buyers of Indian software products and
related services. As it is evidenced by the rapid growth in their demand, Indian
software engineers have carved out a name in the world market for providing an
unbeatable combination of quality software at a low cost; software developers offer a
cost advantage of 40%-60% over their American counterpart. [Vijayan, 2004].
The growth of Indian software industry has been a phenomenal success when
measured against standard indicators such as growth in sales, employment and
exports, and especially when contrasted with the performance of other industrial
sectors in India. Even measured against successful new exporters of software, such
as Israel and Ireland, the Indian software industry stands out in terms of the volume
of employment created and the indigenous nature of its growth. [Suma S.Athreye,
2008].
The largely untold story of the Indian software industry centers on the abilities of the
pioneer firms in the industry who learnt how to transform the programming skills of
their force into firm-specific capabilities, and to become rivals of firms such as
Accenture, EDS, and IBM services in the outsourced-software market. The particular
strength of Indian firms was their ability to assemble teams of talented engineers and
deliver a technical, outsourced service to extracting and different customers
anywhere in the world.
The growth and prominence of the Indian software industry has been so
phenomenal over the last ten years that the country competes with US as the world’s
major exporter of software. This success is widely attributed to the growth of a
commercial industry. Indeed Oxford Analytical notes that the initial growth of the
software industry in India “was entirely driven by private enterprise” and minimal
regulation in key areas. [“Oxford Analytical National IT Development: Explaining
Success India”]
Our clients have always found us to be professional and consistent at meeting their
expectations; pleased with the performance of the software solutions we develop for
them, impressed with our speed of execution and qualitative service.
INTERPRETATION
The companies that have implemented CMMI level-1 are 5%, those who have
implemented CMMI Level-2 are 15%, CMMI Level-3 are 32.5%, CMMI Level-4 are
17.5%, CMMI Level-5 level are 20%, CMMI level are 10%.
INFERENCE
The market research was carried out in the software companies, which are
implemented the software metrics. From the above frequency analysis it is evident
that most of the respondents (32.5%) are having CMMI Level-3 certification.
INTERPRETATION
From the (Table 4.2, the following information’s are extracted regarding the kind of
infrastructure requirement.
TRAINING: 57.5%
AUDITING: 37.5%
OTHERS: 5.0%
The market research was carried out in the software companies, which have
implemented the Software Metrics.
INFERENCE
From the above frequency analysis it is evident that the mostly used infrastructure is
training method (57.5%).
From the (Table 4.3), the following information’s are extracted regarding the
schedule estimation accuracy.
Yes - 35.0%
No - 20.0%
Sometimes - 45.0%
INFERENCE
From the above frequency analysis it is found that, the schedule estimation accuracy
sometimes improved. It is measured by 45% of the total respondent.
INTERPRETATION
INFERENCE
From the above frequency analysis it is evident that software metrics mainly helps in
improving the Quality and Timeliness. It is measured by 62.5% of the total
respondent
INTERPRETATION
INFERENCE
From the above frequency analysis it is found that System Testing Time which helps
in reducing the cost. From the table 4.5, it is indicated that 35.0% of the total
respondent prefers System Testing Time.
INTERPRETATION
Monthly : 30.0%
Quarterly : 50.0%
Half-Yearly : 15.0%
INFERENCE
From the above frequency analysis it is inferred that, function point analysis will be
updated on a quarterly basis. It is measured by 50.0% of the total respondent. Fig
4.6 shows the frequency analysis of function point.
INTERPRETATION
Accurate - 20.0%
Approximate - 72.5%
Others - 7.5%
INFERENCE
From the above frequency analysis it’s inferred that, the effectiveness of software
metrics in estimating project resource requirement is found to be approximate. It is
measured by 72.5% of the total respondents. Fig 4.7 shows the estimate of project
requirements.
INTERPRETATION
From the table 4.8, the following information’s are extracted regarding the
identification of processes in software metrics,
Mandatory :35.3%
Essential :64.7%
Optional : 2.5%
INFERENCE
From the above frequency analysis it is inferred that, the effectiveness of software
metrics in identifying the processes is found to be essential. It is measured by
64.7% of the total respondent.
INTERPRETATION
From the table 4.9, the following information’s are extracted regarding code and
design complexities are,
Yes :25.0%
No :45.0%
Sometimes :30.0%
INFERENCE
From the above frequency analysis it is found that software metrics does not helps
in bringing down code and design complexity. It is measured by 45.0% of the total
respondent.
INFERENCE
From the table 4.8, the following information’s are extracted regarding the system
testing time
Others : 7.5%
INTERPRETATION
From the above frequency analysis it is found that, the software metrics reduces the
system testing time by 2-3 Weeks. It is measured by 47.5% of the total respondent.
INTERPRETATION
From the table 4.11, the following information’s are extracted regarding the Top
management support,
Supportive : 52.5%
INFERENCE
From the above frequency analysis it is found that, the top management support for
implementing software metrics is supportive (52.5%).
INTERPRETATION
From the above frequency analysis the key process for implementing software
metrics is found to be focus on business needs, selection of appropriate
INFERENCE
From the above frequency analysis the critical success factors for implementing
software metrics is found to be the product size. It is measured by 17.5% of the total
respondent. Fig 4.13 shows the critical success factors for implementing software
metrics.
5.1 FINDINGS
1. From the frequency analysis, it is found that most of the companies are
having CMMI level 3 certifications (Table 4.1).
2. The frequency analysis reveals that the mostly used infrastructure is training
method (Table 4.2)
3. From the frequency analysis it is found that, the schedule estimation accuracy
sometimes improved (Table 4.3).
7. The frequency analysis shows that the metrics does not help in bringing down
code and design complexity (table 4.9).
5.2 CONCLUSION
The key process identified for implementing software metrics are focus on business
needs, selection of appropriate measurement process and configuration
management. Most of the software companies are using function-oriented metrics for
their software product development. The major infrastructure required for
implementing software metrics is training method. Software metrics mainly helps in
reducing the system testing time. It helps in reducing the system testing time by 2 to
3 weeks. It improves the schedule estimation accuracy only sometimes. Software
metrics does not helps in bringing down the code and design complexity. It helps in
improving the quality and timeliness. It is found that the effectiveness of software
metrics in estimating project requirements is found to be approximate. It indicates
that many software organizations are updating their function point analysis on a
quarterly basis. Finally, the software metrics helps in planning. Software metrics is
essential for all the organizations to improve the quality and reduce the maintenance
cost during the product development.
5.3 SUGGESTIONS
• Software metrics should reduce the system testing time by 1-2 weeks.
• Project training should also be an important key process area for software
metrics.
BIBLIOGRAPHY
Text Books
Research Papers
1. Ashish Arora and Suma Athreye, “The software industry and its economic
development”, June 2009.
5. Felix Garcia, Francisco Ruiz, Mario Piattini (2004), “Definition and empirical
Validation of metrics for software Process Models” Alarcos Research Group, Spain
pp 146-158.
8. Peter Liggemeyer, 2000, “A set of complexity metrics for guiding the software
test process” Corporate Research and Development, Germany, Volume 4, pp 257-
273.
9. Brady, Tim and Hobday, Michael, A Fast Method for Analysing and
Improving Complex Software Processes. R&D Management, Vol. 30, No. 1,
January 2000
ANNEXURE
The following annexure are to be provided as a part of the report at the end after
Bibliography.
• Questionnaire
APPENDIX – 1
Address :
a) Yes ( ) b) No ( )
CMM Level-1 ( )
CMM Level-2 ( )
CMM Level-3 ( )
CMM Level-4 ( )
CMM Level-5 ( )
CMMI ( )
2. Please Choose the Key Process Areas for implementing Software Metrics
Project training ( )
Configuration Management ( )
Product size ( )
Test cases ( )
Documentation ( )
Requirements ( )
Size-oriented metrics ( )
KLOC ____________________
No of files _____________________
Highly Supportive ( )
Supportive ( )
Less Supportive ( )
No Support ( )
Training ( )
Auditing ( )
8. By how much does Software Metrics reduce the System Testing time?
a) Yes ( ) b) No ( )
c) Sometimes ( )
10. Does Software Metrics help in bringing down Code and Design
Complexity?
a) Yes ( ) b) No ( )
c) Sometimes ( )
11. Does Software Metrics help in analyzing the impacts on these attributes?
Requirements?
a) Accurate b) Approximate
a) Mandatory b) Essential
c) Optional
14. How often Software Metrics monitor the effectiveness of your software
delivery?
a) Monthly b) Quarterly
c) Half-Yearly d) Others
15. How does Software Metrics monitor the effectiveness of your software
delivery?