ArticlePDF Available

Analysis Of Software Maintenance Cost Affecting Factors And Estimation Models

Authors:

Abstract

Software maintenance is a very broad activity that includes improvements in capabilities, error correction, optimization, and removal of obsolete capabilities. Normal operate of basic work and accurate cost estimation is to ensure the normal maintenance of necessary software tools. Due to this various researchers have been attracted towards the research on various factors affective the productivity of software development. The motive behind the identification of those factors that affect productivity helps management to take steps for removing it and saving the maintenance cost of the software. The objective behind this work is to analyze the various activities in accordance with the current software development environment and understanding the key factors that affect the maintenance cost of the software. Along with types of software maintenance estimation, various software maintenance activities are classified into three categories. The other section contains the review on work done by various researchers on the maintenance cost of software and various factors that affects it. These factors are classified into technical and non-technical factors.
INTERNATIONAL JOURNAL OF SCIENTIFIC & TECHNOLOGY RESEARCH VOLUME 8, ISSUE 09, SEPTEMBER 2019 ISSN 2277-8616
276
IJSTR©2019
www.ijstr.org
Analysis Of Software Maintenance Cost Affecting
Factors And Estimation Models
Chamkaur Singh, Neeraj Sharma, Narender Kumar
Abstract: Software maintenance is a very broad activity that includes improvements in capabilities, error correction, optimization, and removal of
obsolete capabilities. Normal operate of basic work and accurate cost estimation is to ensure the normal maintenance of necessary software tools. Due
to this various researchers have been attracted towards the research on various factors affective the productivity of software development. The motive
behind the identification of those factors that affect productivity helps management to take steps for removing it and saving the maintenance cost of the
software. The objective behind this work is to analyze the various activities in accordance with the current software development environment and
understanding the key factors that affect the maintenance cost of the software. Along with types of software maintenance estimation, various software
maintenance activities are classified into three categories. The other section contains the review on work done by various researchers on the
maintenance cost of software and various factors that affects it. These factors are classified into technical and non-technical factors.
Index Terms: Software maintenance, Maintenance cost of software, Software development environment, Maintenance activities, Technical
factors, Non-technical factors, Cost estimation Models.
————————————————————
1 INTRODUCTION
Software maintenance is a very broad activity that includes
improvements in capabilities, error correction, optimization,
and removal of obsolete capabilities. There is the need to
develop a mechanism for evaluating, controlling and
making changes due to the predictable nature of change
[1]. So during usage of software, if work is done to amend it
then it is considered as maintenance work. Over the period
the new technologies are used to maintain the value of
software. In this meeting additional requirements are
expanded to make it more efficient. While developing
software there is a need to prepare an appropriate plan for
maintenance activity that is considered as important aspect
of software maintenance, in which modifications are to be
done is specified by their plan. Due to a change in any
requirement cost should be included to develop the budget
of software [2]. This means maintenance cost will increase,
not only due to poor design but change in customer
environmental and expectations needs in which system has
been developed. Further software maintenance is a plan in
which scope of maintenance, maintenance team or person
and cost estimation of software maintenance is included in
it. After delivery software can be modify comes under
maintenance in which the faults are corrected and improves
the performance or other attributes. Making products to
adapt change in the environment also comes under it.
There is a very large workload of software maintenance
even if there is variation in the costs of maintenance for
different application. Even though for large software costs of
maintenance is four times larger than the costs of software
development. For maintaining the existing software around
60% of the manpower will be used by foreign countries
software development organizations. This percentage is still
getting an increase day by day in the number of software
tools and manpower. Most of the time users and developers
face the problem by software maintenance [3]. In
understanding the software maintenance, prior arrangement
and cost by developers and users played an important role
in accurate estimation of software maintenance costs. In
this paper, we have given a review on maintenance cost
software estimation. In the second section of paper, a brief
detail about maintenance cost estimation models is given
that contains Phase, release and task level maintenance
estimation models. The third section contains the type of
software maintenance in which we have given an
explanation of five activities related to the maintenance cost
of the software. The fourth section contains a review on
work done by various researchers in the field of
maintenance cost. Before concluded a list of various factors
that affect the maintenance cost of software is given by
dividing it into technical and non-technical factors.
2 MAINTENANCE COST ESTIMATION
MODELS
As compared to new development less attention is received
by area of software maintenance estimation. To estimate
the maintenance costs various models are introduced and
applied by giving importance of software maintenance [4].
Various sets of software maintenance work are addressed
by these models that cover for instance, error rectifications,
functional enhancements, technical renovations and re-
engineering. On the basis of granularity level of estimation
focus it is classified into three types:
Phase maintenance estimation models
Release maintenance estimation models
Task level maintenance estimation models
__________________________
Chamkaur Singh , Research scholar of I.K. Gujral Punjab
Technical University, Jalandhar, Punjab, India. E-mail:
dhillon.chamkur@gmail.com
Dr. Neeraj Sharma ,Professor, Gian Jyoti Institue of Management
& Technology , Mohali. E-mail: nrjsharma@yahoo.com
Dr. Narender Kumar, Assistant Professor, HNB Garhwal
University, Srinagar Garhwal Uttarakhand, India. E-mail:
narenrawal@gmail.com
INTERNATIONAL JOURNAL OF SCIENTIFIC & TECHNOLOGY RESEARCH VOLUME 8, ISSUE 09, SEPTEMBER 2019 ISSN 2277-8616
277
IJSTR©2019
www.ijstr.org
2.1 PHASE-LEVEL MODELS
The effort of routine maintenance work for either whole
phase or certain period of software maintenance is focused
by set of maintenance methods. After it is delivered all
activities performed during the operation of a software
system refers to routine maintenance work. In this,
technical improvement, minor functional changes, fault
corrections and enhancement are involved in which main
purpose is regular operation of the system. In this kind
SLIM, SEER-SEM, KnowledgePlan, PRICE-S, and
COCOMO is integrated into maintenance models. When
developed an estimating cost of a new system then
produce a maintenance cost is usually a part of the
estimates [5]. To estimate maintenance effort key input is
the size of the system and additional cost drivers are used
in these models that are specific to software maintenance.
The level of the unfamiliarity of the programmer (UNFM)
and software understanding (SU) are two drivers used by
COCOMO for its sizing the maintenance work. In its
maintenance cost calculations, such parameters are used
as maintenance rigor and maintenance size growth over
time in SEER-SEM. For architectures of making investment
and trade-off analysis decisions on the system a
maintenance cost for a system is estimating the
development cost. Due to number of assumptions made
about the system an accurate estimation of cost of system
maintenance becomes difficult. In order to compare and
evaluate the estimation accuracies of these models there is
no empirical study done by any researchers. Another
possible reason is that these models, with the exception of
COCOMO, are proprietary and their details have not been
fully published, making them difficult to be investigated in
the research context.Methods are provided by SLIM,
SEER-SEM, KnowldgePlan, COCOMO and PROCE-S to
resize the work and estimate the reuse and adaptation work
to compute the schedule and effort. For estimating the new
software development the same models are developed by
computing the schedule and effort. The characteristics of
new software development and reuse and adaptation work
are the same in these models. Unfortunately, this
assumption has never been validated empirically.
2.2 RELEASE-LEVEL MODELS
At finger grained level groups of models focuses on the
maintenance cost instead of estimating the cost of the
maintenance that estimate the effort of a planned release
and planned set of maintenance tasks. This approach
usually takes data from the past releases and analyzing the
changes to estimate the cost for the next release.The
simple regression model is described by Basili et al., along
with the characterizing the effort distribution of maintenance
releases to estimate the effort for different types such as
error correction and enhancement. SLOC, single variable is
used by model that was measured as sum of deleted,
modified and added SLOC that also includes blanks and
comments. The prediction accuracy was not reported
although the coefficient of determination was relatively high
(R2 = 0.75), indicating that SLOC is a good predictor of the
maintenance effort.After the initial delivery of the system, a
maintenance work is considered as being organized into
sequences of operational releases and linear regression
models are evaluated and introduced by Lehman and Ramil
to estimate the required effort to evolve the system from a
release to the next. All necessary maintenance tasks to
grow the system are taken into account by their models that
include functional enhancements, error corrections, and
technical improvements. The size metrics, subsystems, and
the number of changes to modules plus all changed
modules are measured at coarse granularity levels are
predicted by the model.
2.3 TASK-LEVEL MODELS
The cost of implementing each maintenance task is
estimated by task level model that comes in the form of
change requests and error reports. Small effort estimates
are mainly deals with this type of model that usually range
from a few hours to a month. SoftCalc toll and seven-step
process are introduced by sneed that helps in estimating
the required cost and size to implement maintenance tasks
[Sneed 1995]. Various size measures are used by this
model:
SLOC: Physical lines of code and statements
Function Points
Object Points
Data points
On the basis of quality, complexity and project influence
factors a proportion of the affected software was
determined the size of the impact domain. The productivity
index and adjusted size are used to compute the
maintenance effort. Classification of maintenance change
requests is beneficial as compared to generating an exact
effort estimate in terms of levels of difficulty or level of
required effort. Briand and Basili proposed a modeling
approach to building classification models for the
maintenance effort of change requests. Four level steps are
involved in modeling procedures:
Identifying predictable metrics
Identifying significant predictable metrics
Generating a classification function
Validating the model
Each predictable effort and the variable range are divided
into intervals and difficulty index number is used to
represent it. The effort range has five intervals (below one
hour, between one hour and one day, between one day and
one week, between one week and one month, above one
month) which were indexed, from 1 to 5 respectively. Then
from four different projects at the NASA Goddard Space
flight center, 163 change requests dataset was used by
Briand and Basili in order to evaluate the proposed
approach. The approach produced the classification models
with classification correctness from 74% to 93%.
3 THE TYPES OF SOFTWARE MAINTENANCE
According to International Electro-technical commission
activities, there are mainly five categories of software
maintenance according to the needs of software
maintenance. These are maintenance repair, Preventive
maintenance, Integrity of maintenance, adaptability of
maintenance and evolution of maintenance. These five
software maintenance activities are merge by software
maintenance activities [7]. As the integrity of maintenance
contain improvement, evolution and correction of
maintenance that contains repair of maintenance and
preventive maintenance. In this section of the paper, we
INTERNATIONAL JOURNAL OF SCIENTIFIC & TECHNOLOGY RESEARCH VOLUME 8, ISSUE 09, SEPTEMBER 2019 ISSN 2277-8616
278
IJSTR©2019
www.ijstr.org
have given a brief detail about these three categories in
which all the software maintenance activities are divided.
The integrity of Maintenance: It expands the functionality,
improves performance and does needful expansion and
changes to meet the change in needs of users. To improve
the performance enhancement and changes done to make
the ease of maintenance are the main contents. Adaptability
Maintenance: To do changes in software so that it can
adapt the changes comes by operating environment. The
impact of the system of rules, hardware configuration,
structure of text volume, rules and laws, data format,
system software are main changes included in it.
Correction of maintenance: The errors can’t be find out by
inspection and testing that comes by the maintenance of
the system running in the development process. This
includes coding errors, data errors, design errors, and
documentation errors, etc. According to stats taken from
abroad [2], there is 54 to 72% of integrity maintenance,
from total maintenance of activities there is 18 to 25% of
adaptive maintenance and only 17 to 21% of correction
activity. If errors are not find out by acceptance and testing
early in software applications that result in more
maintenance workload with fewer errors. On the other hand
when the software is running then an error will be less and
less need for maintenance workload to correct it. Adaptive
maintenance of software applications early in less time with
the application of the growth of the workload will increase
changes will not be particularly significant. There is rapid
growth in workload by integrity to maintain the growth over
time.
4 RELATED WORK
Various researchers have attracted towards the research on
various factors affects the productivity of software
development. The motive behind the identification of those
factors that affect productivity helps management to take
steps for removing the negative effects. R. D. Banker, et.al,
(2000), have used the frontier estimation method to explore
the possibility of developing an estimated model of software
development [8]. In their approach, they have used the
output metrics of project quality metrics and the entire
project life cycle. Before moving towards it they did a review
on various factors affecting the productivity of software
maintenance. From empirical analysis of pilot data it has
been concluded that by high project quality it is not
necessary that project productivity will get reduced. Various
factors that give positive change in productivity are:
The capability of the project team
Good system response time
On the other hand, factors that put negative effects on
productivity are:
Lack of team application experience
High project staff loading
They have seen that short term productivity gets reduced
using new structured design methodology and analysis. By
analyzing the software architecture critical success factors
along with their benefits and cost drivers pitfalls and
potential of software architecture investments perspective
can be gained. By identifying and exploiting an appropriate
positive cost benefit relationships a potential investment of
software architecture can be found. According to B. Boehm,
et.al, (2007), pitfalls come from neglecting critical success
factors or from making unrealistic assumptions about their
associated cost drivers [9]. Majority of software total cost
can be estimated by considering the software maintenance
that is considered as an important software engineering
activity. By understanding the factors that influence the cost
of software maintenance tasks helps maintainers to take
decisions about their work. The student's programmers
controlled experiment of performing maintenance tasks on
C++ program has been described by V. Nguyen, et.al,
(2010) [10]. The main objective of them was to assess the
maintenance effort, size, and three different maintenance
types of efforts. Another main objective was to predict the
programmer's effort spent on maintenance tasks to
describe the estimation models. To perform their objectives
they have performed an experiment by the participation of
around 23 graduate students and senior majoring in
computer science. All of them have to perform the tasks of
maintenance required for one of the three task groups.
Then they have divided the collected data into four
estimation models to check the impact of different LOC on
maintenance effort. From the experiment, they have
predicted that there is very less productivity of corrective
maintenance as compared to reductive and enhancive
maintenance and there is need of very less around 50% of
the total effort in programming comprehensive activities.
And the best software effort model is able to estimate the
time of around 79% of the programmers with 30% or less
error. Normal operation of basic work is ensured by
software maintenance that gives accurate cost estimation
and ensures the normal maintenance of the necessary
software tools. In Y. Ren, et.al., (2011), the article they have
described the various types of software maintenance and
analyse the impact of technical and non-technical factors on
software maintenance costs [11]. They have also given the
basic cost estimation model for software maintenance and
improvement of cost estimation models and from it; they
have listed the cost factors that affect the workload of
maintaining weight. To estimate the cost of basic
maintenance the annual changes in the development
project costs are multiplied with the basic cost estimation
model. The accuracy of software maintenance cost gets
improved by appropriate adjustment of software
maintenance workload weight factors. For software
maintenance cost estimation users and software
developers, a method was proposed in their article In
software engineering effort estimation of software
development is an important sub-discipline that has to gain
the interest of various researchers. By the introduction of
component-based software development (CBSD) a
software development turned into engineering. In the place
of traditional software development paradigms use of CBSD
gives better results along with that it comes with various
challenges to software effort estimation. The effort
estimation of CBSD has become an important area of
research due an increase in its use. So, T.
Wijayasiriwardhane, et.al, (2011), did a review on work
done by various researchers on predicting the effort of
CBSD [5]. They have surveyed the approaches by
considering various things like the types of estimation
provided by researchers, level of acceptability, type of data
required for their use and life cycle activities covered with
regards to any validation. The main motive by them to give
INTERNATIONAL JOURNAL OF SCIENTIFIC & TECHNOLOGY RESEARCH VOLUME 8, ISSUE 09, SEPTEMBER 2019 ISSN 2277-8616
279
IJSTR©2019
www.ijstr.org
a better understanding of schedule and cost of CBSD
estimation approaches. Then P. Marounek, (2012), has
introduced a software maintenance and support from the
perspective of effort estimation [12]. The set of activities
need for cost effective support of IT solution is software
maintenance and mainly focus is given to best practices
and delivery strategies and delivery process that cover in
effort estimation. One of the researchers has concluded that
in most of the cases estimating models are not used for
estimation work due to its complexity and instead of it a
pure expert estimate is used. So, P. Marounek, has
introduced an extending PERT formula-based approach for
measuring the effort estimation in software maintenance.
The PERT formula is about the quality of historical
experience and quality of estimator. To verify both
supporting mortgage IS formulas a sub-competence center
is used that gives better results as compared to PERT
estimate. The results achieved are 98.8 and 91.8% against
pure PERT 90.1%. From the last few years, great success
is achieved by the software industry and production and
maintenance are two phases of the entire life of the
software There very much increase in the cost of software
maintenance and around 90% of software life cost is related
to its maintenance phase. The extraction and consideration
of factors affecting the software maintenance cost help in
estimating the cost and its reduction by controlling those
factors. S. M. H. Dehaghani, et.al, (2013), have determined
the various factors affecting the software maintenance cost
and then ranked them on the basis of their priority and also
presented the ways to reduce the maintenance cost [13].
For experiment purpose, they have selected 40 members
from medical software maintenance team and determined
various factors affecting maintenance cost by taking their
interview. From it, they have obtained the 32 factors that
are further classified into six groups from the projects that
have the highest priority in maintenance cost. They have
concluded that longevity of software can be increased and
reduce the maintenance cost by considering the major
elements like full documentation, careful feasibility of IT
projects and accompany the designers in the maintenance
phase. In order to predict the reliability, project planning,
adaptability, productivity improvement and controlling of the
software the cost estimation phase is important. And
Functional point, SLIM, COCOMO, etc are various
traditional software models to estimate the maintenance
cost but no work is done on estimating the maintenance
cost using fourth-generation language environment. So, M.
Islam, et.al, (2014), have proposed a systematic approach
and development for software maintenance cost estimation
in which they have used fourth-generation language
environment on the basis of COCOMO II [14]. Annual
change traffic, SMCE with fourth-generation language
environment, technical and non-technical factors are three
parameters based on the model that affect the maintenance
cost. By implementation of model, favourable results can be
achieved.
5 VARIOUS FACTORS AFFECTING
MAINTENANCE COST OF SOFTWARE
The maintenance cost of software can be affected by
various factors. In this section, we have given some of the
technical and non-technical factors that affect it [15].
5.1 Technical factors:
Software complexity: There is a need for more time
to modify or read a program if there is a more
complicated structure of software that results in a
significant increase in maintenance workload.
Development of Human capacity: There is a
reduction in maintenance workload by full analysis
done by system analyst. If programmers have a
good style of programming then an easy to
understand or read software can be program by
them. A significant reduction is existed in software
errors when testing is done using advanced
methods.
Document Quality: Make documents for software
maintenance support in which a detail description
of the software system is given by maintenance
personnel that gives help to other people to get
familiar with the system. This also helps further in
identification and correction of errors and improving
the system that meets the changes in requirements
of users or adapts changes in the system
environment. There is a reduction in the cost of
maintenance if clear, complete and concise
documentation is available for support.
Configuration management technology: This
includes configuration identification, change
control, status reports, the configuration of the
program, version management, configuration
auditing. The maintenance costs get reduced by
effective control of software configuration
management technology that strengthens and
maintain the management of the maintenance
work.
Modern Programming Specifications: Follow the
methods of software engineering principles and
system engineering [16]. And use the modern
programming practices that include variable
naming, preparation of single entry and exit
modules, documentation and use structured
development methods to reduce coupling and
improve cohesion. The cost of maintenance
workload will get significantly increased if the
software is a unified programming specification.
Database Size: To maintain a database there is lot
of work done by software maintenance and
maintenance workload as it get affected by
database size. There is a significant increase in
maintenance workload by an increase in data or re-
organizing the database and reconstruction of it.
Component Reusability: This means the amount of
developed code can be used in the system and
defines the extent of code reusability. Different
weight values are given to it according to its
usability in work.
Component Performance: In the case of
component-based software their performance
depends on the performance of individual software.
There should be a need of minimal performance
when there are some integration and adaptation in
a component or when it is composed into a system.
INTERNATIONAL JOURNAL OF SCIENTIFIC & TECHNOLOGY RESEARCH VOLUME 8, ISSUE 09, SEPTEMBER 2019 ISSN 2277-8616
280
IJSTR©2019
www.ijstr.org
5.2 Non-Technical Factors:
Application Experience: There is a need for less maintenance
by application areas of software development when a
definition of system requirements can be completely accurate
[17]. On the other hand, there is very difficult in understanding
the demand when the software is in new areas and there will
be a huge change in demand for adaptive maintenance
workload. Staff Stability: If for maintaining any part of the
development a developer is responsible and no need to spend
time by any other software engineers to know the code then
there will be a reduction in maintenance costs. Application of
time: Early in the software applications, coding errors comes
when there is concentration of the emergence of a larger
correction of maintenance workload [18]. There is more
difficulty in maintaining the structure when older procedures
are used to run the software and can’t handle the integrity and
adaptability of the heavy workload that result in increase of
maintenance cost. External Environment: Workflow, reports,
business rules, etc are some of the soft environment or some
of the external environment. There is a need to do appropriate
changes in the external environment overreliance software if
there is a change in the environment. Support Environment: To
accommodate new support environment there is a need to do
changes in the software if the support environment is running
by software [19]. The changes need to be done in network,
system software and hardware to accommodate the new
support environment and adaptation to maintain the workload.
User needs: Users of the software is the gradual
understanding of hair. The performance and functionality of
software need to be deeper when the software is running and
for perfection, there is need of higher requirements for
performance and functionality that results in an increase of
maintenance workload [20].
6 CONCLUSION
As compared to new development less attention is received by
area of software maintenance estimation. Due to importance
of software maintenance various models are introduced and
applied to estimate the maintenance costs. On the basis of the
granularity level of estimation focus, it is classified into Phase,
Release and Task level maintenance estimation models.
Majority of software total cost can be estimated by considering
the software maintenance that is considered as an important
software engineering activity. That’s why we have given a brief
detail about various activities associated with the current
software development environment. By understanding the
factors that influence the cost of software maintenance tasks
helps maintainers to take decisions about their work. So,
various factors associated with it also given in detail. In this
work, we have classified those factors into the technical and
non-technical part and both contain the number of factors that
influences the maintenance cost of the software. Review on
work done by various researchers indicates that prior work on
estimating the maintenance cost using a better model and
considering various factors that affect it can result in a
reduction of cost. In the future, we can implement it using
various models.
REFERENCES
[1]. P. Abrahamsson, R. Moser, W. Pedrycz, A. Sillitti, G.
Succi, "Effort Prediction in Iterative Software
Development Processes -- Incremental Versus Global
Prediction Models", Proceedings of the First
International Symposium on Empirical Software
Engineering and Measurement (ESEM), 2007
[2]. F. Fioravanti, P. Nesi, ―Estimation and prediction
metrics for adaptative maintenance effort of object-
oriented systems‖, IEEE Transactions on Software
Engineering, vol. 27 (12), 10621084, 2001.
[3]. J. Choudhari, U. Suman, ―Phase wise Effort Estimation
for Software Maintenance: An Extended SMEEM
Model‖, Proceedings of the CUBE International
Information Technology Conference, pp. 397-402,
2012.
[4]. M. Benaroch, ―Understanding Factors Contributing to
the Escalation of Software Maintenance Costs‖, Thirty
Fourth International Conference on Information
Systems, pp. 1-15, 2013.
[5]. Y. Ren, T. Xing, X. Chen, X. Chai, ―Research on
Software Maintenance Cost of Influence Factor
Analysis and Estimation Method‖, IEEE, pp. 1-4, 2011.
[6]. Buchmann, S. Frischbier, D. Putz, ―Towards an
Estimation Model for Software Maintenance Costs‖,
2011 15th European Conference on Software
Maintenance and Reengineering, 313-316, 2011
[7]. M. Jorgensen, ―A review of studies on expert
estimation of software development effort‖, The Journal
of Systems and Software, vol. 70, pp. 37-60, 2004.
[8]. R. D. Banker, S. M. Datar, C. F. Kemerer, ―Factors
Affecting Software Maintenance Productivity: An
Exploratory Study‖, pp. 160-165, 2000.
[9]. B. Boehm. Software Architectures: ―Critical Success
Factors and Cost Drivers‖, IEEE transactions on
Software Engineering, 2007: 965-971.
[10]. Nguyen, B. Boehm, P. Danphitsanuphan, ―A Controlled
Experiment in Assessing and Estimating Software
Maintenance Tasks‖, APSEC Special Issue,
Information and Software Technology Journal, pp. 681-
692, 2010.
[11]. T. Wijayasiriwardhane, R. Lai, K.C. Kang, ―Effort
Estimation of Component based software
development‖, a survey IET Software, vol. 5, pp. 216-
228, 2011.
[12]. P. Marounek, Simplified approach to effort estimation
in software maintenance‖, Journal of Systems
Integration, pp. 51-63, 2012.
[13]. S. M. H. Dehaghani, N. Hajrahimi, Which Factors
Affect Software Projects Maintenance Cost More?‖,
Acta Informatica Medica, pp. 63-66, 2013.
[14]. M. Islam, Dr. V. Katiyar, ―Development of A Software
Maintenance Cost Estimation Model: 4 Th Gl
Perspective‖, International Journal of Technical
Research and Applications, pp. 65-68, 2014.
[15]. Y. C. Ren, ―Research on Software Cost Estimation and
Its Expert System,‖ Doctor’s degree of Liaoning
Technical University, 2008.
[16]. Ravi, Nonequilibrium Simulated Annealing-Algorithm
Applied to Reliability Optimization of Complex
Systems, IEEE Transactions on Reliability, vol. 46,
no. 22, pp. 233-239, 2007.
INTERNATIONAL JOURNAL OF SCIENTIFIC & TECHNOLOGY RESEARCH VOLUME 8, ISSUE 09, SEPTEMBER 2019 ISSN 2277-8616
281
IJSTR©2019
www.ijstr.org
[17]. Q. Tang, Approach to Improve the Software Cost
Estimation Accuracy, Science Technology and
Engineering, vol. 6, no. 4, pp. 455-461, 2006.
[18]. J. D. Zhu, C. H. Qi, X. M. Hou, Estimating software
cost based on grey theory,Computer Engineering and
Applications, vol. 46, no. 16, pp. 71-73, 2010.
[19]. J. Li, G. Ruhe, A. AlEmran, ―S A Flexible Method for
Effort Estimation by Analogy,‖ Empirical Software
Engineering, vol. 12, no. 1, pp. 65-10, 2006.
[20]. S. M. LiM. HeD. Yang, "Software Cost Estimation
Method and Application," Journal of Software, vol. 18,
no. 4, pp. 775-795, 2007
... Software maintenance is defined as « the totality of activities required to provide costeffective support to a software product » (ISO/IEC 14764) [4]. Software maintenance activities are identified [11] as: « process implementation; problem and change analysis; change implementation; maintenance review/acceptance; migration; and retirement. » Software maintenance is the field of Software Engineering which have been ignored over the last period. ...
... Many issues that are related to software maintenance can be traced to the requested changes [11]. It is difficult to predict how the system will respond if the software code is changed for maintenance purposes, which can lead to overestimation. ...
... Several factors (Technical/Non-technical factors) can affect the prediction results such as the size of the database (technical factor) [11]. For this reason, several research studies used a single dataset while other research studies used more than one dataset [92]. ...
... Penelitian yang membahas perbandingan Flutter dan React Native pada segi performance sudah pernah dilakukan sebelumnya (Jagiełło, 2019;Wu, 2018 (Sommerville, 2016). Semakin tinggi maintainability suatu perangkat lunak, semakin mudah aplikasi untuk dirawat, yang berarti biaya, waktu, dan usaha yang dikeluarkan untuk perawatan aplikasi akan berkurang (Dehaghani & Hajrahimi, 2013;Jang & Kim, 2021;Ren et al., 2011;Singh et al., 2019). Rata-rata perusahaan pengembang perangkat lunak menghabiskan waktu kerja sebanyak 40% untuk pengembangan tahap awal, dan 60% untuk tahap perawatan setiap satu bulannya (Dehaghani & Hajrahimi, 2013;Jang & Kim, 2021;Ren et al., 2011;Singh et al., 2019). ...
... Semakin tinggi maintainability suatu perangkat lunak, semakin mudah aplikasi untuk dirawat, yang berarti biaya, waktu, dan usaha yang dikeluarkan untuk perawatan aplikasi akan berkurang (Dehaghani & Hajrahimi, 2013;Jang & Kim, 2021;Ren et al., 2011;Singh et al., 2019). Rata-rata perusahaan pengembang perangkat lunak menghabiskan waktu kerja sebanyak 40% untuk pengembangan tahap awal, dan 60% untuk tahap perawatan setiap satu bulannya (Dehaghani & Hajrahimi, 2013;Jang & Kim, 2021;Ren et al., 2011;Singh et al., 2019). Biaya yang diperlukan untuk perawatan perangkat lunak juga mengalami peningkatan dari 50% menjadi 90% dari keseluruhan biaya pengembangan perangkat lunak pada dua dekade terakhir (Dehaghani & Hajrahimi, 2013;Jang & Kim, 2021;Ren et al., 2011;Singh et al., 2019). ...
... Rata-rata perusahaan pengembang perangkat lunak menghabiskan waktu kerja sebanyak 40% untuk pengembangan tahap awal, dan 60% untuk tahap perawatan setiap satu bulannya (Dehaghani & Hajrahimi, 2013;Jang & Kim, 2021;Ren et al., 2011;Singh et al., 2019). Biaya yang diperlukan untuk perawatan perangkat lunak juga mengalami peningkatan dari 50% menjadi 90% dari keseluruhan biaya pengembangan perangkat lunak pada dua dekade terakhir (Dehaghani & Hajrahimi, 2013;Jang & Kim, 2021;Ren et al., 2011;Singh et al., 2019). ...
Article
Full-text available
Setiap tahunnya, jumlah pengguna aplikasi seluler terus bertambah. Hal ini menyebabkan pengembang aplikasi seluler dituntut untuk mengembangkan produknya dengan cepat. Framework antarmuka pengguna lintas platform Flutter dan React Native menjadi sangat populer karena kemampuannya untuk dikompilasi ke berbagai jenis sistem operasi perangkat seluler. Namun, di antara kedua framework tersebut, belum diketahui manakah yang memiliki maintainability yang lebih baik. Tahap perawatan perangkat lunak merupakan tahap yang memakan paling banyak waktu, tenaga, dan usaha. Sehingga, penting untuk mengetahui framework mana yang basis kodenya lebih mudah dirawat. Pada penelitian ini, aplikasi media komunikasi untuk taman kanak-kanak dengan kompleksitas use-case yang beragam digunakan sebagai bahan untuk membandingkan maintainability Flutter dan React Native. Basis kode yang dikembangkan masing-masing diukur menggunakan A Code Quality Metrics Model for React-Based Web Applications. Hasil penelitian menunjukkan bahwa basis kode yang ditulis menggunakan Flutter memiliki maintainability lebih tinggi dibandingkan React Native. Faktor yang mempengaruhinya adalah bahasa pemrograman yang digunakannya, yaitu Dart untuk Flutter dan JavaScript untuk React Native, serta cara penulisan komponen yang berbeda antara Flutter dan React Native Mobile phone users are increasing every year. This demands mobile application developers to speed up their development time. Flutter and React Native, which are cross-platform user interface framework, become more popular due to their ability to compile to any mobile operating system. But, it is not yet known which of the two frameworks have the better maintainability. Maintenance is a step in software development process that consumes most of the development effort. So, it is important to know which framework produces the more maintainable code base. In this research, a communication media application for kindergarten with diverse use case complexity is used for comparing maintainability between Flutter and React Native. Each code base are measured using A Code Quality Metrics Model for React-Based Web Applications. The result is code base that are developed using Flutter has more maintainability than React Native. The influencing factors are programming languages used, which are Dart for Flutter and JavaScript for React, as well as how components in each frameworks are written.
... Studies have shown that 50-90% of software effort goes into maintaining systems. Maintainability strongly influences maintenance teams' productivity [2]. The reasons for this very high cost are multiple and often misunderstood. ...
... Most of the software development time is devoted to the maintenance phase. Improving an application's maintainability quality positively influences the latter's cost [2]. Thus, one of the main objectives of software engineers is the development of easily maintainable software. ...
Article
Full-text available
The maintainability index (MI) has been proposed to calculate a single number which expresses the maintainability of a system. This article presents a model for evaluating the maintainability of software products. The model improves the shortcomings observed in the maintainability assessment approaches in the quality assessment models SQuaRE (ISO25000), ISO 9126, Squale and the FCM standard. Its main innovation is to take into account the importance of entities in the system when calculating the maintainability score. This implies that the same type of defect will have a different score depending on the entity presenting it. Seven experts with several years of experience evaluated the model. They confirmed the effectiveness and usability of the model. Then, we compared our model with the Squale maintainability index and the classical maintainability index. The results show no correlation between these models. The implications are that each method gives a slightly different view of maintainability.
... Problema de Pesquisá E recorrente de projetos grandes com mais de um programador que o código final não esteja bem organizado ou seguindo apenas um padrão de escrita, uma vez que cada programador poderá programar de acordo com o seu estilo de escrita. Isso evidentemente afetará diretamente nos custos envolvidos em manutenção do software [Singh et al. 2020]. Além disso, há outros fatores técnicos que impactam nos custos de manutenção, como a complexidade do software e sua estrutura e a capacidade humana de analisar o código e interpretá-lo [Singh et al. 2020], fatores que também estão ligadosà existência de padronização do código ou não. ...
... Isso evidentemente afetará diretamente nos custos envolvidos em manutenção do software [Singh et al. 2020]. Além disso, há outros fatores técnicos que impactam nos custos de manutenção, como a complexidade do software e sua estrutura e a capacidade humana de analisar o código e interpretá-lo [Singh et al. 2020], fatores que também estão ligadosà existência de padronização do código ou não. ...
Conference Paper
Este trabalho trata do desenvolvimento de um software capaz de auxiliar na programação de programas em geral ao possibilitar que programadores criem e definem padrões e modelos de código a serem gerados dinamicamente com a existência de trechos de código variáveis com o intuito de agilizar o processo de desenvolvimento.
... However, those taxonomies of strategic cost drivers do not include nowadays' IT perspective. Information system (IS) researchers also make use of the analysis and evaluation of cost drivers: they investigate IT cost drivers for the cost estimation in software development [15,16], software maintenance [17], or for measuring the cost of scrum activities [18]. IT cost driver research focuses on subsections or individual IT solutions [19] and thereby neglects the interaction of systems and information technology as a whole. ...
Conference Paper
Nowadays, information technology (IT) is a strategic asset for organizations. As a result, the IT costs are rising and there is a need for transparency about their root causes. Cost drivers as an instrument in IT cost management enable a better transparency and understanding of costs. However, there is a lack of IT cost driver research with a focus on the strategic position of IT within organizations. The goal of this paper is to develop a comprehensive overview of strategic drivers of IT costs. The Delphi study leads to the identification and validation of 17 strategic drivers. Hence, this paper builds a base for cost driver analysis and contributes to a better understanding of the causes of costs. It facilitates future research regarding cost behavior and the business value of IT. Additionally, practitioners gain awareness of levers to influence IT costs and consequences of managerial decisions on their IT spend.
... Other factors that put negative effects on productivity are lack of team experience and high project staff loading [31]. These issues can lead to tasks overlap which can last for an indefinite time. ...
Article
Full-text available
Zusammenfassung IT-Kosten machen heute einen immer größeren Anteil an den Gesamtkosten von Unternehmen aus. Die Verantwortlichen sind aufgefordert die IT-Kosten zu senken oder zumindest ein effizientes Management sicherzustellen. Oftmals fehlt es dafür an Transparenz und Verständnis für diese Ausgaben. Die Analyse der IT-Kostentreiber ermöglicht ein tieferes Verständnis der Ursachen und Auswirkungen strategischer Entscheidungen. Dieser Beitrag zielt darauf ab, die strategischen IT-Kostentreiber bezüglich des Wirkungshorizonts und des Entscheidungsortes zu analysieren. Die durchgeführte Delphi-Studie zeigt, dass Entscheidungen über diese Kostentreiber größtenteils mittel- bis langfristige Auswirkungen haben. Zudem wird deutlich, dass die IT-Abteilung zwar in den Entscheidungsprozess eingebunden ist, während die finalen Entscheidungen häufig stärker im Fachbereich liegen. Zusammenarbeit und effektive Kommunikation sind deshalb entscheidend und die Verantwortung für IT-Kosten sollte von allen EntscheidungsträgerInnen getragen werden. Dieser Beitrag erweitert die Forschung im IT-Kostenmanagement und sensibilisiert PraktikerInnen für Kostenbeeinflussungshebel und die strategische Diskussion über IT-Kosten und das Wertversprechen der IT.
Article
Full-text available
This study introduces a pioneering structural equation modeling (SEM)-based framework to assess BIM-DT adoption readiness in sustainable construction. The research’s approach delves into the intricate correlation between key success factors (KSFs) and sustainable parameters (SPs), fostering BIM-DT deployment. This interdisciplinary perspective provides a holistic understanding of the impact of KSFs on BIM-DT adoption. The research aims to identify KSFs and parameters, prioritize their relative weights for BIM-DT implementation, analyze KSFs and SPs correlations, and offer practical insights into the findings. The results revealed the importance of sustainability considerations in BIM-DT adoption, with cost optimization and resource management playing pivotal roles. The findings also revealed that the readiness of the organization to adopt the technology, availability of technology operators, availability of standards and codes for the new technology, availability of knowledge, skills, and competencies to adopt the technology, and availability of funds and financial investment are the top-ranked KSFs contributing to the successful adoption of BIM-DT.
Chapter
Nowadays, information technology (IT) is a strategic asset for organizations. As a result, the IT costs are rising and there is a need for transparency about their root causes. Cost drivers as an instrument in IT cost management enable a better transparency and understanding of costs. However, there is a lack of IT cost driver research with a focus on the strategic position of IT within organizations. The goal of this paper is to develop a comprehensive overview of strategic drivers of IT costs. The Delphi study leads to the identification and validation of 17 strategic drivers. Hence, this paper builds a base for cost driver analysis and contributes to a better understanding of the causes of costs. It facilitates future research regarding cost behavior and the business value of IT. Additionally, practitioners gain awareness of levers to influence IT costs and consequences of managerial decisions on their IT spend.KeywordsDelphi StudyStrategic Cost DriversIT Cost DriversCost BehaviorInformation Technology
Article
Full-text available
The software industry has made significant progress in recent years. The entire life of software includes two phases: Production and Maintenance. Software maintenance cost is increasingly growing and estimates showed that about 90% of software life cost is related to its maintenance phase. Extraction and considering the factors affecting software maintenance cost help to estimate the cost and reduce it by controlling the factors. Cost estimation of the maintenance phase is necessary to predict reliability and improve the productivity, project planning, control, and adaptability of the software. Though there are various models to estimate the maintenance cost of traditional software like COCOMO, SLIM, Function Point, etc., till now there is no such model to estimate the maintenance cost using a fourth-generation language environment. Software maintenance will continue to exist in the fourth-generation environment, as systems will still be required to evolve. In this kind of situation, there is needed to develop a model to estimate the maintenance cost using a fourth-generation environment. We propose a systematic approach and development for a software maintenance cost estimation model using a fourth-generation language environment based on COCOMO II. This model is based on three parameters: SMCE with Fourth Generation Language Environment, ACT (Annual Change Traffic), and Technical and Non-Technical factors that affect the maintenance cost. The favorable results closely match and it can be achieved by using model implementation.
Conference Paper
Full-text available
We examine the main drivers of software maintenance effort and cost. We use the ‘Distributed Cognition’ framework to hypothesize about how ‘discovery work’ in maintenance is effected by two types of cost drivers: system attributes (size, complexity, age, etc.) and personnel attributes (number of maintainers, location dispersion, etc.). We test our hypotheses using archival data about over 5,000 maintenance projects carried out between 2009 and 2011 on 412 different operational systems in a large financial institution. We find that personnel attributes are significantly more influential than system attributes. In particular, a marginal change in personnel factors is associated with effort growing much faster than cost, indicating an escalating marginal cost of spreading maintenance work across more maintainers and site locations. We also find, counter to expectation, that two system attributes are negatively linked to maintenance effort and cost. Implications of these findings for research and practices are discussed.
Article
Full-text available
This article introduces software support and maintenance from effort estimation perspective. Software maintenance is a set of activities needed for cost-effective support of IT solution. More or less, delivery strategies and best practices focus mostly on delivery process and only some of them partially cover effort estimation. Magne Jørgensen in his work formulated conclusions that 83 to 84% of all estimation is done by pure expert estimates and estimating models are not used basically due to their complexity. Author introduced his simplified, easy to use approach to effort estimation in software maintenance based on extending PERT formula about quality of estimator and historical experience. Both formulas were verified in sub-competence center for supporting mortgage IS with significantly better result than only pure PERT estimate (98.8% and 91.8% against pure PERT 90.1%).
Article
Full-text available
Effort estimation by analogy uses information from former similar projects to predict the effort for a new project. Existing analogy-based methods are limited by their inability to handle non-quantitative data and missing values. The accuracy of predictions needs improvement as well. In this paper, we propose a new flexible method called AQUA that is able to overcome the limitations of former methods. AQUA combines ideas from two known analogy-based estimation techniques: case-based reasoning and collaborative filtering. The method is applicable to predict effort related to any object at the requirement, feature, or project levels. Which are the main contributions of AQUA when compared to other methods? First, AQUA supports non-quantitative data by defining similarity measures for different data types. Second, it is able to tolerate missing values. Third, the results from an explorative study in this paper shows that the prediction accuracy is sensitive to both the number N of analogies (similar objects) taken for adaptation and the threshold T for the degree of similarity, which is true especially for larger data sets. A fixed and small number of analogies, as assumed in existing analogy-based methods, may not produce the best accuracy of prediction. Fourth, a flexible mechanism based on learning of existing data is proposed for determining the appropriate values of N and T likely to offer the best accuracy of prediction. New criteria to measure the quality of prediction are proposed. AQUA was validated against two internal and one public domain data sets with non-quantitative attributes and missing values. The obtained results are encouraging. In addition, acomparative analysis with existing analogy-based estimation methods was conducted using three publicly available data sets that were used by these methods. Intwo of the three cases, AQUA outperformed all other methods.
Conference Paper
Full-text available
Estimation of development effort without imposing overhead on the project and the development team is of paramount importance for any software company. This study proposes a new effort estimation methodology aimed at agile and iterative development environments not suitable for description by traditional prediction methods. We propose a detailed development methodology, discuss a number of architectures of such models (including a wealth of augmented regression models and neural networks) and include a thorough case study of Extreme Programming (XP) in two semi-industrial projects. The results of this research evidence that in the XP environment under study the proposed incremental model outperforms traditional estimation techniques most notably in early phases of development. Moreover, when dealing with new projects, the incremental model can be developed from scratch without resorting itself to historic data.
Article
Full-text available
Many software systems built in recent years have been developed using object-oriented technology and, in some cases, they already need adaptive maintenance in order to satisfy market and customer needs. In most cases, the estimation and prediction of maintenance effort is performed with difficulty due to the lack of metrics and suitable models. In this paper, a model and metrics for estimation/prediction of adaptive maintenance effort are presented and compared with some other solutions taken from the literature. The model proposed can be used as a general approach for adopting well-known metrics (typically used for the estimation of development effort) for the estimation/prediction of adaptive maintenance effort. The model and metrics proposed have been validated against real data by using multilinear regression analysis. The validation has shown that several well-known metrics can be profitably employed for the estimation/prediction of maintenance effort
Article
This paper provides an extensive review of studies related to expert estimation of software development effort. The main goal and contribution of the review is to support the research on expert estimation, e.g., to ease other researcher’s search for relevant expert estimation studies. In addition, we provide software practitioners with useful estimation guidelines, based on the research-based knowledge of expert estimation processes. The review results suggest that expert estimation is the most frequently applied estimation strategy for software projects, that there is no substantial evidence in favour of use of estimation models, and that there are situations where we can expect expert estimates to be more accurate than formal estimation models. The following 12 expert estimation “best practice” guidelines are evaluated through the review: (1) evaluate estimation accuracy, but avoid high evaluation pressure; (2) avoid conflicting estimation goals; (3) ask the estimators to justify and criticize their estimates; (4) avoid irrelevant and unreliable estimation information; (5) use documented data from previous development tasks; (6) find estimation experts with relevant domain background and good estimation records; (7) Estimate top-down and bottom-up, independently of each other; (8) use estimation checklists; (9) combine estimates from different experts and estimation strategies; (10) assess the uncertainty of the estimate; (11) provide feedback on estimation accuracy and development task relations; and, (12) provide estimation training opportunities. We found supporting evidence for all 12 estimation principles, and provide suggestions on how to implement them in software organizations.
Article
This paper applies an improved nonequilibrium simulated-annealing (I-NESA) technique to find: (1) the global optimum of system cost of two kinds of complex systems subject to constraints on system reliability, and (2) the optimum number of redundancies which maximize the system reliability, subject to constraints on system cost, weight, and volume in a multistage mixed system. The efficacy of I-NESA in solving both varieties of problems is demonstrated by comparing its results with those of simulated annealing (SA). I-NESA, using the Glauber algorithm and an exponential cooling schedule, provides a stable global solution to all the problems considered. The essential features of I-NESA, (1) the nonequilibrium concept while coming out of an inner iteration, and (2) incorporation of the simplex-like heuristic, make it very fast and stable in obtaining the global solution when compared to the traditional SA. Fast convergence was observed in all the problems studied. I-NESA is a useful alternative to either indirect optimization methods or to some random search techniques, in solving problems like those in this paper
  • Y Ren
  • T Xing
  • X Chen
  • X Chai
Y. Ren, T. Xing, X. Chen, X. Chai, -Research on Software Maintenance Cost of Influence Factor Analysis and Estimation Method‖, IEEE, pp. 1-4, 2011.
Software Architectures: -Critical Success Factors and Cost Drivers‖
  • B Boehm
B. Boehm. Software Architectures: -Critical Success Factors and Cost Drivers‖, IEEE transactions on Software Engineering, 2007: 965-971.