Vous êtes sur la page 1sur 12

Software Metrics

Group #8
Affaq ahmed Waseem
Sofia Khalid
Saman Asad
Hammad Sharif

Term Report

Topic: Software Quality model Factor

Factor: Reliability

Submitted to: Dr. Arshad Ali

University of Lahore
Quick review of Software Quality Model and their Factors:

Serial Model Name Year Factors/elements/attributes Reference


No
[1] McCall’s 1977 Maintainability, flexibility, Al-Qutaish, R. E. (2010).
Model testability, correctness, Quality models in software
reliability, efficiency, integrity, engineering literature: an
usability, portability, analytical and comparative
reusability, interoperability study. Journal of American
Science, 6(3), 166-175.
[2] Boehm’s 1978 Maintainability, testability, Deissenboeck, F., Wagner,
Model modifiability, S., Pizka, M., Teuchert, S.,
understandability applicability & Girard, J. F. (2007,
October). An activity-based
quality model for
maintainability. In 2007
IEEE International
Conference on Software
Maintenance (pp. 184-
193). IEEE.
[3] ISO 9126 1986 Functionality, reliability, Al-Kilidar, H., Cox, K., &
Model usability, efficiency, Kitchenham, B. (2005,
maintainability, applicability November). The use and
usefulness of the ISO/IEC
9126 quality standard.
In 2005 International
Symposium on Empirical
Software Engineering,
2005. (pp. 7-pp). IEEE.
[4] Furps Model 1987 Functionality, usability, Sangeetha, M., Arumugam,
reliability, performance, C., Sapna, P. G., & Kumar,
supportability S. K. (2011). A cooperative
approach to ensure
software product
quality. International
Journal of Computer
Science Issues (IJCSI), 8(4),
598.
[5] Bayesian 1990 Efficiency, probabilistic cause - Cooper, G. F. (1990). The
Belief effect model, Security and computational complexity
Networks Casual Network performance of probabilistic inference
using Bayesian belief
networks. Artificial
intelligence, 42(2-3), 393-
405.
[6] Capability 1991 (Attributes in terms of level) Paulk, M. (2002). Capability
maturity Initial level, repeatable level, maturity model for
Model defined level, managed level, software. Encyclopedia of
(CMM) optimizing level Software Engineering.
[7] Ghezzi 1991 Accuracy, flexibility, integrity, Bandinelli, S. C., Fuggetta,
Model usability, maintainability, A., & Ghezzi, C. (1993).
portability, reliability, Software process model
reusability evolution in the SPADE
environment. IEEE
transactions on software
engineering, 19(12), 1128-
1144.
[8] Dromey’s 1995 Maintainability, analyzability, Saini, R., Dubey, S. K., &
Model changeability, stability, Rana, A. (2011). Analytical
testability, flexibility, study of maintainability
extensibility models for quality
evaluation. Indian Journal
of Computer Science and
Engineering, 2(3), 449-454.
[9] Bansiya’s 2002 Functionality, effectiveness, Bansiya, J., & Davis, C. G.
Model reusability, understandability (2002). A hierarchical
extendibility, flexibility model for object-oriented
design quality
assessment. IEEE
Transactions on software
engineering, 28(1), 4-17.
[10] Aspect 2006 Modularity, complexity, Kumar, P. (2012). Aspect-
oriented reusability, functionality, Oriented Software Quality
Quality reliability, usability, efficiency, Model: The AOSQ
Model maintainability, applicability Model. Advanced
Computing: An
International Journal
(ACIJ), 3(2), 105-118.
[11] Component 2008 Predictability, reusability, Kaur, P., & Batolar, N.
based reliability, functionality, (2015). A Review on
software usability, efficiency, Quality Assurance of
development portability, maintainability Component-Based
Quality Software System. IOSR
Model Journals (IOSR Journal of
Computer
Engineering), 1(17), 53-57.
[12] UML 2010 Completeness, clarity, Tilakaratna, P., &
conceptual representational capability, Rajapakse, J. (2012).
Model applicability, usability Assessing the
completeness and clarity of
UML for conceptual
modeling. International
Journal of Innovation,
Management and
Technology, 3(6), 747.
[13] SQUaRE’s 2011 Efficiency, effectiveness, [13] Nakai, Hidenori, et al.
Model portability, maintainability, "A SQuaRE-based software
security, reliability, usability, quality evaluation
compatibility framework and its case
study." 2016 IEEE Region
10 Conference (TENCON).
IEEE, 2016.
Summary table of Software Quality model factors:

Model M Boh IS Fur Bay Ghe Drom Ba Asp Comp U SQ


Names cc em O9 ps esia zzi ey nsi ect onent ml Ua
all 12 n ya Ori based Co RE
6 Beli ent softwa nc
Factors ef ed re ep
Net develo tua
wor pment l
ks
Maintainabili   
        
ty
Flexibility            
Testability            
Reliability            
Efficiency            
Integrity            
Usability            
Portability            
Reusability            
Understanda            
bility
Applicability            
Functionality            
Performance            
Supportabilit            
y
Accuracy            
Changeabilit            
y
Effectiveness            
Complexity            
completenes            
s

Software Quality Factor Reliability : A Survey

Abstract
ANSI defines Software Reliability as “The probability of failure-free software operation for a
specified period of time in a specified environment”. In this survey we are talking about Software
Reliability. It is generally considered a way to solve the software development crisis. When we solve a
problem we try to apply the solution to similar problems because that makes our work easy and simple. To
write this survey, we have go through different survey papers by using snowballing approach to search and
Thematic Analysis Approach to Select and understand the important aspects of software Reliability. But
one thing is for sure software reliability can improve software productivity. Reliable software is hard to
manage time and budget. Some aspects of software reliability are discussed in this paper to make our
survey cohesive and meet our goals.
1. Introduction
In Software Development, High software dependency is been expected by the customer. Some
systems have High Reliability requirements which are being achieved by various special techniques
of software engineering. Non-critical systems usually accept some system failure and low reliability
as well. Software reliability is directly correlated with software defects and failures [1]. Software
reliability is increased by lesser the number of defects. There are certain fault management
strategies through which we can achieve it. These strategies include Fault avoidance, Fault
detection and Removal, and Fault tolerance. Risk Reduction in Software is also one of the ways to
increase reliability. Some measurements are being performed with some metrics at different levels
of software system by which we can estimate software reliability. Reliability can also be estimated
by using mathematical scale from 0 to one. There exists an acceptable standard for reliability.
Reliability represents a user oriented view of software quality. Initially, Software quality was
measured by counting the faults in the program and so this approach is developer Oriented
whereas reliability is user oriented, because, it relates to operation rather than design [2].
Reliability represents an important measurable factor of software quality as defined by various
quality model standards, such as McCall (McCall, Richards, & Walters, 1977), FURPS standing for
Functionality, Usability, Reliability, Performance and Supportability (Grady, 1992) and Dromey
(Dromey, 1996). This factor can be assessed by using appropriate metrics, models and tools that are
highly specialized in the phase of the software life cycle during which they are applicable. There is
no single metric or model or tool that is used in all Situations [3]. This paper is stated as follow.
Section 2 provides already existing review works by research community and then provides a brief
knowledge of primary studies. Finally in Section 3 we sum up the paper and provide conclusion.
Section 4 contains references.
2. Related Work
In paper [1], Author assesses software reliability is the factor which affects the software quality that is
measured by counting the number of faults in the program. Software reliability have different parameters
and factors which directly effects the reliability , then the only hard work left is to measure the value of
the parameters which does affect reliability and to assign the weights to the parameters . A formal
definition is as much lesser the probability of defects higher the reliability of the system is. To analyze a
fault, its fault frequency, kind of fault, no of fault executions, and the effects when a fault occurs must be
measured. Another term which is under consideration with relation to reliability is risk , and to improve the
risk reliability should high.
Some reliability activities are to Construct the new document, Integrate the new document and code
components with reusable document and component held Analysis and remove defects then Prepare the
test cases and test plans after that test the test cases to Identify the all faults and to remove faults and
Validate them by performing inspection after all work done execute the test cases. Software metrics are
classified as process metric, product metric and fault and failure metrics are defined there .Moreover,
following models define the estimation and functionality according to reliability metrics.
Hence, the rising demand for the implementation of software quality, can be concluded that software
reliability will be a major requirement in the software organizations by analyzing the metrics and models
[1].
[2]. In this paper reliability defines a fault free , risk free , error free and less complexity rate in these terms

and standards observed in specified conditions. This paper discusses different practices of software

reliability measurement. Failure describes that the program in its functionality has not met user's

requirements in some ways. Software reliability concerns itself with how well the software functionality

meets to the requirements of the customer. Software reliability has these phase integration and testing,

useful life and obsolete . while on the other hand hardware reliability has burn in , useful life and wear out.

For increasing the reliability fault and failures are removed and these faults are removed from testing or

requirement phase to improve the reliability of the system . Many metrics are used for this requirement

reliability metric which requirement should accurate and obvious then the other metric is design and code

metric for reliability, the next is testing reliability metric which have further types(process, product, project

management and fault &failure metric). So at each development phase, some quality attributes are

described and the reliability and quality of the software can be improved by applying software metrics at

each of these development phases. This metrics measures software reliability in Requirements analysis,

Design and coding, and testing phases [2].

[3]. In this a initial mapping study is held for reliability according to which Reliability is an important
measurable factor of software quality as defined by various quality model and standards such as McCall,
FURPS standing for Functionality, Usability, Reliability, Performance and Supportability and Dromey . A
Systematic Mapping Study (SMS) is a methodology
that provides a means to systematically analyze a research topic .This reliability factor can be assessed by
using metrics, models and tools that are highly specialized in the phase of the software life cycle during
which they are applicable.
The methodology used in has the phases and activities such as protocol definition, conducting the search,
studies selection , Data extraction and analysis and map building . In the protocol definition phase
research questions are defined and requirement and sources are selected and then the criteria for
selection is defined. In the next phase search string is defined such as document title "reliability" and
abstract is "metric". Then study selection phase in which inclusion and exclusion criteria is defined . Then
data is filtered and classified finally map is build which is the overall product of the process which must be
less faulty and more reliable. Moreover the user play a role in the measurement of software quality any
further the user have the direct and equal impact on the factors of reliability improve the effectiveness of
reliability as a metric by using the realistic data [3].
In paper [4], Author concludes that Software reliability depends on three main activities i) error prevention
ii) fault detection and removal iii )Measurements to maximize reliability, specifically by combining the first
two activities. Software and hardware reliability are discussed in this software reliability is probabilistic
functionality while hardware is direct function of time. Bath tub curve is used for software and hardware
reliability which has two major differences One difference is that in the last phase, software does not have
an increasing failure rate as hardware does. Therefore, the failure rate will not change. The second
difference is that in the useful-life phase, software will experience a huge increase in failure each time
when get upgraded .
MTTF is also defined as a reliability metric which is used to measure the interval between successive
failures. We can combine MTTF &MTTR(mean time to repair) metrics to get the MTBF(mean time between
failure) metric MTBF = MTTF + MTTR. Moreover process metric such as Effort required in the process
,Time to produce the product, Effectiveness of defect removal during development, Number of defects
found during testing and project management metric , fault and failure metric ,code and reliability metric
,and finally testing and reliability metric are explained which clearly define that the reliability can be
improved in agile process by using and calculating and evaluating all the metric and fault decreasing
techniques [4].
[5]. In this reliability is defined as a most important concern for the measurement of software metrics by
using a new framework ,that guarantee the level of satisfaction of customer by comparing the intensity of
failure with other desired system. Reliability measurement define different elements such as model and
metrics ,techniques related to reliability as a quality factor. Reliability is an external quality attribute which
define the probability that how a system operates in specified conditions . Reliability metric measure
reliability by using syntactic and semantic metrics both are quantitative metrics applied on source code
and knowledge based program understanding is used for these metrics. In the basic reliability process first
of all reliability objective is defined for operational profile and then models, then measure reliability , and
at the end validate reliability for a field. Basic process works according to iterative approach , and this
measurement process focus only on reliability models to estimate reliability in testing and operation
phases of SDLC not on the metrics and technique which can be applied in requirement phase
Finally the described framework works according to desired system in SDLC on both testing phase and
requirement phase [5].

[6] The IEEE defines dependableness as "The ability of a system or part to perform its needed functions
below expressed conditions for a nominative amount of your time." To most project and code
development managers, dependableness is equated to correctness, that is, they appear to testing and also
the variety of "bugs" found and stuck. Whereas finding and fixing bugs discovered in testing is critical to
assure dependableness, a far better approach is to develop a strong, top quality product through all of the
stages of the code lifecycle. That is, the dependableness of the delivered code is expounded to the
standard of all of the processes and merchandise of code development; the wants documentation, the
code, test plans, and testing. Software dependableness isn't further outlined as hardware dependableness,
however the code Assurance Technology Center (SATC) at National Aeronautics and Space Administration
is effort to spot and apply metrics to code merchandise that promote and assess dependableness. This
paper discusses however National Aeronautics and Space Administration comes, in conjunction with the
SATC, square measure applying code metrics to boost the standard and dependableness of code
merchandise. Dependableness could be a by-product of quality, and code quality are often measured.
We’ll demonstrate however these quality metrics assist within the analysis of code dependableness. We
tend to conclude with a quick discussion of the metrics being applied by the SATC to gauge the
dependableness[6].

[7] In order to determine the quality of software reliability is an important factor. For guessing the
reliability of the software we must follow some statistical method. It is one of the main function during the
development of software. This paper is a review based research in which the authors give a critical analysis
of successful reliability prediction. This research also delivers many trials and keys of reliability assessment
during software development process.
Software reliability can be measured as the extent to which errors are removed from the software. The
model must be chosen carefully. This paper evaluates the performance of the already developed software
reliability growth and prediction models and their capabilities for predicting the software reliability. This
paper offered the practices of the soft calculating methods for software reliability. An initial stage software
reliability prediction model is essential of today’s world. This initial stage reliability prediction model
promote developers in achieving the faith of customer as well as in market of software [7].
[8] The Software-Defined Network (SDN) approach decouples management and forwarding planes. Such
separation introduces responsibility style problems with the SDN management network, since
disconnection between the management and forwarding planes might cause severe packet loss and
performance degradation. This paper addresses the matter of putting controllers in SDNs, thus on
maximize the responsibility of management networks. When presenting a metric to characterize the
responsibility of SDN management networks, many placement algorithms are developed. We have a
tendency to assess these algorithms and any quantify the impact of managementler range on the
responsibility of control networks victimization real topologies. Our approach will considerably improve
the responsibility of SDN management networks while not introducing unacceptable latencies [8].
[9] The ancient software package dependableness models aim to explain the temporal behavior of
software package fault-detection processes with solely the fault information, however fail to include some
important test-metrics information discovered in software package testing. During this paper we have a
tendency to develop a helpful modeling framework to assess the quantitative software package
dependableness with time-dependent covariate similarly as software-fault information. The fundamental
ideas utilized here area unit to introduce the separate proportional hazard model on a additive Bernoulli
trial method, and to represent a generalized fault-detection processes having time-dependent covariate
structure. The ensuing random models area unit thought to be combos of the proportional hazard models
and therefore the acquainted non-homogeneous Poisson processes. We have a tendency to compare
these metrics-based software package dependableness models with some typical non-homogeneous
Poisson method models, and measure quantitatively each goodness-of-fit and prophetical performances
from the point of view of knowledge criteria. As a very important result, the accuracy on dependableness
assessment powerfully depends on the type of software package metrics used for analysis and might be
improved by incorporating time-dependent metrics information in modeling [9].
[10] The initial software reliability examination is very valuable for refining the excellence of software at
less testing struggle. Software fault density pointer forecast in the initial stages delivers a chance for the
initial recognition of budget overrun, software development method matters and best development plans.
In this paper, a model is projected to forecast the software defect density indicator of initial phases of SDLC
using fuzzy logic and the reliability relevant software metrics of initial items. The given model is
implemented on twenty real software projects. It is detected that the requirement analysis phase defect
density indicator value is relatively greater than that of the design and coding artifacts.
In this paper, a fuzzy logic based model is projected for forecasting software defect density indicator at
initial phase of the SDLC. The given model studies only reliability applicable software metrics of the early
phase of the SDLC. The predicted defect for 20 software projects are found very close to the real defects
noticed during testing. The predicted defect density indicators are very helpful to analyze the defect
rigorousness in different artifacts of SDLC of a software project. This delivers a standard to the software
manager for initial identification of cost overruns, schedules mismatch, software development process
issues, software resource allocation and release decision making etc. [10].
[11] Software Testing (ST) is a crucial part of software development. Good testing training is thus of
supreme importance. Indeed, the simple explanation to ST information might have an influence on
programming abilities. In specific, it can inspire the making of further precise - and thus reliable - code.
Even though the consequence of testing knowledge on computer programmer appears to be spontaneous,
to the finest of our information, there is no empirical evidence to support it. This study with students
delivers indication that ST knowledge can considerably influence on programming skills in terms of
reliability.
This paper offers scientific indication for such an assertion. An experiment is showed to prove the influence
that testing knowledge has on programming skills, in terms of reliability. The results recommended that
after knowing simple testing ethics and methods, developers are more than twice more likely to produce
correct applications. Furthermore, the data proposes that even though the code produced afterwards is
more reliable, it does not tend to be significantly larger. This indicates that the introduction to testing
knowledge can make developers produce more reliable applications with around the same amount of
code. The performance of two control groups taking a Software Engineering and an OO design course was
very different. In fact, for these groups the learned knowledge did not seem to impact on the subjects’
programming skills with respect to reliability [11].
[12] This paper states various techniques in order to estimate the reliability of software’s that depend
upon the component of structure code. Component base development (CBD) is discussed in the paper
which leads to higher quality results by reducing Cost and Time for complicated systems, improving quality
of software and detection of defects within system. CBD is used to construct complicated systems
according to software architecture of a system. Complicated systems are Decomposition, Layered,
Process, Deployment and client based systems. CBD helps in master development and a trusted Third Party
Method is also used for component detection. Components have different type of interfaces a data
interface, User interface and an infrastructure interface. CORBA component base model with Enterprise
Java Beans is used. Quality components identified in this paper are i.e. Functionality, Interface, Usability,
Testability and Reliability. Size, Complexity, Reuse Frequency and reliability are classified on the basis of
metrics. It further states that Component Reliability model is best reliability model of a system. Cost and
Time are estimated much accurately by using black box testing and CRM [12].

3. CONCLUSION
In this survey, we reviewed some estimation techniques, assessment approaches, Reliability issues
and reliable process models. By sum up our survey observation, the most dependable software for
reliability is component based software. This survey presents all the benefits, in the long term, can
dramatically increase productivity in an organization, and decrease the overall risk of product
development. We are sure that this survey will motivate researchers to develop more advance
reliable process models.
4. Reference:
[1]. Jatain, A., & Mehta, Y. (2014, February). Metrics and models for software reliability: A systematic
review. In 2014 International Conference on Issues and Challenges in Intelligent Computing Techniques
(ICICT) (pp. 210-214). IEEE.
[2]. Kaur, K., & Anand, S. (2013). Review on Software and Hardware Reliability and Metrics. International
Journal of Science, Engineering and Technology Research (IJSETR) Volume, 2.
[3]. Ronchieri, E., & Canaparo, M. METRICS FOR SOFTWARE RELIABILITY: AN INITIAL SYSTEMATIC MAPPING
STUDY.
[4]. Kaur, G., & Bahl, K. (2014). Software reliability, metrics, reliability improvement using agile
process. International Journal of Innovative Science, Engineering & Technology, 1(3), 143-147.
[5]. Amara, D., & Rabai, L. B. A. (2017). Towards a new framework of software reliability measurement

based on software metrics. Procedia Computer Science, 109, 725-730.

[6]. Rosenberg, L., Hammer, T., & Shaw, J. (1998, November). Software metrics and reliability. In 9th

international symposium on software reliability engineering.

[7]. Sahu, K., & Srivastava, R. K. (2019). Revisiting Software Reliability. In Data Management, Analytics and

Innovation (pp. 221-235). Springer, Singapore.

[8] Hu, Y., Wendong, W., Gong, X., Que, X., & Shiduan, C. (2013, May). Reliability-aware controller

placement for software-defined networks. In 2013 IFIP/IEEE International Symposium on Integrated

Network Management (IM 2013) (pp. 672-675). IEEE.

[9] Shibata, K., Rinsaka, K., & Dohi, T. (2006, November). Metrics-based software reliability models using

non-homogeneous Poisson processes. In 2006 17th International Symposium on Software Reliability

Engineering (pp. 52-61). IEEE.

[10] Yadav, H. B., & Yadav, D. K. (2017). Early software reliability analysis using reliability relevant software

metrics. International Journal of System Assurance Engineering and Management, 8(4), 2097-2108.

[11] Lemos, O. A. L., Silveira, F. F., Ferrari, F. C., & Garcia, A. (2018). The impact of Software Testing

education on code reliability: An empirical assessment. Journal of Systems and Software, 137, 497-511.
[12] Sheakh, Dr.Tariq. (2014). Software Reliability Analysis- A New Approach. IJSR - INTERNATIONAL

JOURNAL OF SCIENTIFIC RESEARCH. Volume : 3 | Issue : 2 | February 2014 • ISSN No 2277 - 8179.

Vous aimerez peut-être aussi