Course code: CSE-314 Course title: Principes of Software Engineering Submitted To: M. Vijaya Raju Sir Submitted By: K.Nabachandra Singha Section: K3901 Roll:B58 Topic: Software Quality

Quality: _ Ability of the product/service to fulfill its function _ Hard to define _ Impossible to measure _ Easy to recognize in its absence _ Transparent when present Definitions of quality:

Abstract: The quality of software is assessed by a number of variables. These variables can be divided into external and internal quality criteria. External quality is what a user experiences when running the software in its operational mode. Internal quality refers to aspects that are code-dependent, and that are not visible to the end-user. External quality is critical to the user, while internal quality is meaningful to the developer only.Some quality criteria are objective, and can be measured accordingly. Some quality criteria are subjective, and are therefore captured with more arbitrary measurements.

Characteristics of Quality: _ Quality is not absolute _ Quality is multidimensional _ Quality is subject to constraints _ Quality is about acceptable compromises _ Quality criteria are not independent, but interact with each other causing conflicts.

Software Quality: Kitchen ham (1989 b) refers to software quality “ fitness for needs” and claims quality involves matching expectations. Two features of a piece of quality software: o Conformance to its specification o Fitness for its intended purpose.

Contents: · Views of Quality · Hierarchical Modeling · Boehm and McCall‟ s Models · Quality Criteria · Interrelation · Measuring Quality · Quality Metrics · Overall Measures of Quality

These may be summarized as: · Is it a good solution? · Does it address the right problem? The Department of Defense (DOD, 1985) in the USA defines software quality as “ the degree to which the attributes of the software enable it to perform its intended end use” .

These views are often diverse and may conflict with each other. The views are generally presented in adversarial pairs such as versus designers. The user-based view · Fitness for purpose · Very hard to quantify 4. The manufacturing view · Measures quality in terms of conformance · Zero defects 5.Software was particularly problematical for the following reasons: · Software has no physical existence · The lack of knowledge of client needs at the start · The change of client needs over time · The rapid rate of change on both hardware and software · The high expectations of customers. Garvin (1984) has suggested five different views of quality: 1. the need to provide a solution that matches user needs is often considered as “ design quality” . and efficiency. a three-dimensional solid represents quality. The software project has the following roles _ Project manager _ Business analyst _ Implementation programmer _ Quality auditor _ End user _ Line manager _ Project sponsor In an attempt to classify different and conflicting views of quality. The product-based view · Higher the quality higher the cost · Greater functionality · Greater care in development 3. The transcendent view · Innate excellence · Classical definition 2. It has been classified according to a number of „ views‟ or perspective. whilst ensuring a match to the specification is considered as “manufacturing quality” . Within the software quality area. Views of Quality Views of Quality: Quality is a multidimensional construct. particularly with respect to adaptability. Each view comes from a particular context. reliability. The value-based view · Provides the data with what the customer requires at a price. Quality is people: Quality is determined by people because · It is people and human organizations who have problems to be solved by computer software · It is people who define the problems and specify the solutions · It is still currently people who implement designs and product code. · It is people who test code . Within this metaphor. Each face represents a different aspect of quality such as correctness. It may therefore be considered using a polyhedron metaphor.

THE HIERARCHICAL MODELS OF BOEHM AND MCCALL THE GE MODEL (MCCALL. _ Maintainability is the effort required to locate and fix a fault in the program within its operating environment. McCall‟ s criteria of quality defined _ Efficiency is concerned with the use of resources e. Two principal models of this type. storage. Most are hierarchical in nature. but they are described by a series of questions which define them in terms to non specialist managers.g. _ It was later revised as the MQ model. Product revision : it is concerned with error correction and adaptation of the system and it is most costly part of software development. both qualitatively and quantitatively. . A hierarchical model of software quality is based upon a set of quality criteria. processor time. and it is aimed by system developers to be used during the development process. _ The criteria appear to be technically oriented. operated efficiently And it results are those required by the users. _ Integrity is the protection of the program from unauthorized access. _ In early attempt to bridge the gap between users and developers. Product transition : it is an important application and it is distributed processing and the rapid rate of change in hardware is likely to increase. _ Reusability is the ease of refusing software in a different context. A quantitative assessment is generally made. _ Reliability is its ability not to fail. _ Interoperability is the effort required to couple thesystem to another system. to ensure that it is error-free and meet its specification. the criteria were chosen in an attempt to reflectuser‟s views as well as developer‟ s priorities. one by Boehm (1978) and one by McCall in 1977. _ Flexibility is the ease of making changes required by changes in the operating environment. 1977 AND 1980) _ This model was first proposed by McCall in 1977. It falls into two categories: execution efficiency and storage efficiency. _ Usability is the ease of use of the software. Many model suggested for quality. each of which has a set of measures or metrics associated with it.HIERARCHICAL MODEL OF QUALITY: To compare quality in different situations. along with a more quantified assessment. it is necessary to establish a model of quality. The issues relating to the criteria of quality are: · What criteria of quality should be employed? · How do they inter-relate? · How may the associated metrics be combined into a meaningful overall measure of Quality? The three areas addressed by McCall‟ s model (1977) Product operation : requires that it can be learnt easily. _ Correctness is the extent to which a program fulfils its specification. _ Testability is the ease of testing the programs. _ Portability is the effort required to transfer a program from one environment to another.

· Hierarchical models cannot be tested or validated. · The quality criteria are supposedly based upon the user‟ s view. to the product operation. _ Portability vs. integrity (inverse) the general flexible data structures required for flexible and reusable software increase the security and protection problem. It cannot be shown that the metrics accurately reflect the criteria. efficiency (inverse) the generally required for a flexible system. the use if interface routines and the modularity desirable for reusability will all decrease efficiency. _ This model is based upon a much larger set of criteria than McCall‟ s model.HOW THE QUALITY CRITERIA INTERRELATE _ The individual measure of software quality provided do not provide an over all measure of software quality. · The measurement of overall quality is achieved by a weighted summation of the characteristics. Boehm talks of modifiability where McCall distinguishes expandability from adaptability and documentation. integrity (inverse) Coupled system allow more avenues of access to more and different users. efficiency (inverse) Improvements in the human / computer interface may significantly increase the amount of code and power required. _ Usability vs. well-differentiated characteristics of software quality. efficiency (inverse) the use of optimized software or system utilities will lead to decrease in probability. _ The two models share a number of common characteristics are. _ There are two levels of actual quality criteria. _ It is hierarchical in nature but the hierarchy is extended. _ Reusability vs. reusability and interoperability vs. _ The individual measures of quality may conflict with each other. the intermediate level being further split into primitive characteristics which are amenable to measurement. understandability and clarity. reliability (inverse) reusable software is required to be general: maintaining accuracy and error tolerance across all cases is difficult. _ The individual measures must be combined. Some of these relationships are described below: _ Integrity vs. _ Flexibility and reusability vs. _ Maintainability and testability vs. _ According to the uses made of the system and they areclassed into „ general‟ or „ as is‟ and the utilities are a subtype of the general utilities. · The models focus on the parts that designers can more readily analyze. so that quality criteria are subdivided. . The Boehm model (1978) _ It is to provide a set of „ well-defined. efficiency (inverse) Optimized and compact code is not easy to maintain. _ Interoperability vs. efficiency (inverse) the control of access to data or software requires additional code and processing leading to a longer runtime and additional storage requirement. but retains the same emphasis on technical criteria. _ Flexibility.

maintainability. scores are normalized to a range between 0 and 1. _ A predictive metric is used to make predictions about the software later in the lifecycle._ Maintainability vs. _ Portability vs. its conformance to specification does not influence its efficiency. efficiency (neutral) the correctness of code. · Metrics are not same as direct measures. _ Structured ness as it simplest may be calculated in terms of the average length of code modules within the programs. As such. reusability (direct) portable code is likely to be free of environment-specific features. _ Measurement techniques applied to software are more akin to the social sciences. where it is considered at all. Where: n01 = no of modules containing one or zero exit points only ntot = total number of modules _ Generally. _ A typically measurable property on which a metric may be based is structured ness. SOFTWARE METRICS _ Metrics are classified into two types according to whether they are predictive or descriptive. _ Structured ness is measured by questions such as: · Have the rules for transfer of control between modules been followed?(y/n) · Are modules limited in size?(y/n) · Do all modules have only one exit point? (y/n) · Do all modules have only one entry point?(y/n) A well-structured program will produce positive answers to such questions. McCall‟ s approach is more quantities. _ A descriptive metric describes the state of the software at the time of measurement.e. in this approach. _ Maintainability vs. to . is usually expressed in terms of metrics. using scores derived from equations such as MEASURING SOFTWARE QUALITY MEASURING QUALITY Quality measurement. It must: · Be clearly linked to the quality criterion that it seeks to measure · Be sensitive to the different degrees of the criterion · Provide objective determination of the criterion that can be mapped onto a suitable scale. _ Correctness vs. Software metric is a measurable property which is an indicator of one or more of the quality criteria that we are seeking to measure. there are a number of conditions that a quality metric must meet. _ The criteria of quality related to product revision. where properties are similarly complex and ambiguous. i. reusability (direct) wellstructured easily maintainable code is easier to reuse in other programs either as a library of routines or as code placed directly within another program. flexibility (direct) maintainable code arises from code that is well structured. Structured ness is used to predict the maintainability of the software product in use. _ Different authors have taken different approaches to metrics. adaptability and reusability are all related to structured ness of the source code. _ Well-structured code will be easier to maintain or adapt than so called “ spaghetti code” .

6. Error detection as measure of correctness 4. Kentger (1981) defined a four-level hierarchy of module types: _ Control modules. _ Standardization the metric must be unambiguous and allow for comparison. _ It is also possible to validate whether the dependence of maintainability structured ness in identical to that of adaptability or reusability. Error prediction as a measure of correctness this measure is depends upon the stable software development environment. _ Economy the simpler and therefore. error detection. _ To validate this relationship and determine whether it is a linear relationship or more complex in nature. error prediction. . 9. Complexity as a measure of reliability the assumption underpinning these measures is that as complexity increases. What makes a good metric? Seven criteria for a good metric. _ Management modules for abstract data. Four measures have been suggested. Modularity as a measure of maintainability increased modularity is generally assumed to increase maintainability. Metrics cited in the literature: Metrics available for each criterion (after Watts. the cheaper the measure is to use. so reliability decrease. Readability of code as a measure of maintainability has also been suggested as a measure of maintainability. _ Automation is also desirable. 1. _ Realization modules for abstract data. Mean time to failure (MTTF) as a measure of reliability 5. 2. It must not matter who the measurer is. the Better. _ Problem-oriented modules. _ Validity the metric must measure the correct characteristic. Yau and Collofello (1979) measured “ stability” as the number of modules affected by program modification. Complexity as a measure of maintainability is also indicative of maintainability. _ Usefulness the measure must address a need. _ A further important feature is consistency. 8. 1987) Quality criteria number of metrics cited Maintainability 18 Reliability 12 Usability 4 Correctness 3 Integrity 1 Expandability 1 Portability 1 Efficiency 0 Adaptability 0 Interoperability Reusability 0 0 The metrics cited depends to a very large extent upon just seven distinct measurable properties: readability. not simply measure a property for its own sake. 7. _ Comparability the metric must be comparable with other measures of the same Criterion. _ Reliability the results should be precise and repeatable. and mean time to failure (MTTF). 3. complexity. Testability as a measure of maintainability the ease and effectiveness of testing will have an impact upon the maintainability of a product. Readability as a measure of usability may be applied to documentation in order to assess how such documentation may assist in the usability of a piece of software. after Watts (1987) _ Objectivity the results should be free from subjective influences. modularity. testability. to give unjustified credibility to the results obtained. _ This appears attractive.allow for easier combination and comparison.

633) =0. POLARITY PROFILING: _ In this scheme. Weighted scoring This scheme allows the user to weight each criterion according to how important they consider them to be. reliability and efficiency are still not up to the required standard. _ In the first case. The Kepner-Tregoe method (1981) The criteria are divided into „ essential‟ and „ desirable‟ . they tend to improve the product further in these areas.660 Product transition weighted mean = 0. 2. Each criterion is evaluated to produce a score between 0 and 1. each product is ranked in order. 3. . _ The required quality may be represented and compared to the actual quality achieved. Unfortunately.„ Suitable‟ software is then judged by use of the weighting factor method. 1975) This method is designed with comparative evaluation is mind.65 4. each criterion is allocated a score. quality is represented by series of ranges from -3 to +3. Example of simple and weighted scoring methods The phased weighting factor method Product operation weighted mean = 0. Phased weighting factor method This is an extension of weighted scoring. A minimum value is specified for each essential criterion and any software failing to reach these scores is designated unsuitable. _ Two different outcomes result.660) + ((1/3) x0. _ Worse. The Cologne combination method (Schmitz. Using the chosen criteria. _ This effort wasted. The overall quality is given by the mean of the individual scores. and a further improvement does not improve their overall view of the quality of the product. the user‟s needs still have not been met in other critical areas. and usability was already considered satisfactory. _ When a user complains of poor quality. leading to tensions between the developers and users.The metrics dependence upon seven measurable properties An overall measure of quality Much of the work in this area has been concerned with simple reduction of a set of scores to a single „ figure-of-merit‟ . usability is improved. Simple scoring In this method. 5. Five such methods are detailed by Watts (1987) as part of the MQ approach. A weighting is assigned to a group characteristics before each individual weighting is considered.633 Overall measure by PWF method = ((2/3) x0. _ Often the product has already exceeded the user‟s expectations in these areas. Each score is weighted before summation and the resulting figure reflects the relative importance if the different factors. 1. _ It is a common problem amongst software developers that they focus upon particular aspects of quality.

org/wiki/software_quality www. REFERENCES: en.thedacs.) Software requirements are the foundation from which Software Quality is measured.ocoudert. improvements in reliability and efficiency are traded for a reduction in adaptability and maintainability. CONCLUSION: Software Quality should emphasize three important points: 1. 2.) Specified standards define a set of development criteria that guide the manner in which software is engineered.com/databases/url/key/3494 www. perhaps by„ tweaking‟ the code.com/blog/2011/04/09/what-issoftware-quality/ www.wikipedia.com/ . 3. _ The consequence is that all criteria are now at the required level.softwarequalitymethods. resulting in an overall perception of quality and satisfied users.) There is a set of implicit requirements that often goes unmentioned._ In the second case.

043430095439 .24/:08..3  4.

0434300397 5439 ..3  4.24/:08.

8  070 3 344124/:08. 398.94388:.70 3472.9:70/5747.5574..38078948:.0/174206:.0.6:089438  .30-09003 .2574/:.439. 8.7.5574.4708.3/ 94 ..3:2-074124/:08 *0307.39908 :83 8.0 5489..3343047074 095439843 3949949..3  0 897:.824706:. 8.4708/07.0/94.

20.20 790743  *.3..7907.39.574/:.70 09039:543:8980.943.-9  39074507.425.-9 4:720.20.0. 300/ 34982520.8:7041:8.42509 .943347/0794 ..39.5079020.44/2097.843/. !479.-9./.50.:2039.392094 1.2:89-0 .3:2-07412097.59.8.80/24/:.59.998   ":..8.0 94.//7088.3910.78.39.39. $0.90/ .39.990708:9884:/-017001742 8:-0.3.14:7 0.70/0.943.9.3.93088 39079 5.-0.941.550/94/4.998   * -0.7/.44/2097.39.8:7041 .8.7.8:702:89.-0 57450790870.-9.820.8.8.-9900..0-003 8:0890/ .2:89-0 :3.-9  42509.8:7041 2..-9  #0:8.   %089.0203924/:08147.9.:70 %% 24/:.2:8920.9.-941..-9.790743 .  *#0.031:03.0:3:8910/ .-9   4/:.90090790 /0503/03.943902097.4/0.3/90701470 90 .-9902097.3.7843  *425.-897.8:708/0503/8:543 9089.8:7041 2.03.42-3.0..-0  *'.798 0307.80 2.0  *1:790725479.574507914798 438.425033.9438.3/.70.70   7747570/.4388903.-947 70:8. .425.9:708.8.9.8:7041 2.9.909870.8:70.8:70894:80 9009907  *&801:30889020.-9   #0.8.7843  *%8.8:704170.-941.  *:942.8808848:..041 2.39.80   42509.70.8889 390:8.80 .  *$9.0 07.-9 07747570/.0452039 03.84-0038:0890/.325.39..845488-094.-09490720.79 9089.:.3/0110.8:7.9.8.-9  .20.9432.  /.8.-9 4770.-08419.943 ..08 92:893492.9:70 097.20.3/.3//0907230 090798.20.0418419.03088 4190893.7432039   7747/090.3/44104   20..43429082507.-9897:.-9 2.8:704170.-98..4147.3.8:7041 2.425.-01470.90/390907.3.9/./.:2039. 30883/039.8:7041 .770.-0  097.807.8903:2-0741 24/:08.88:20/943.550.9:54390 2..110.9  .425093..4770.3.-9 .4124/:09508 *4397424/:08  *!74-02 470390/24/:08  *.9/..3920941.79.8:70412.08.1907./4.03/893..8:70/ 89.9:70  *98.-9 /0./.9.8..70.3/ .9.8:7078  *#0.-9 90.943 07747 /090.224/1.943  03907  /0130/.7.94385.3.3/7050../.8:70841908./.8 .-9  %02097.03.8:7090 .8.90//0503/894.3./9902097.41470. 20.:70 %% .-93.8.-897.-9   #0.949.997.920.9907 49020.4770.8:708 89.94385472470 ..0412.-9 11.9..3.3/20.20..93088  0.92..9.7.7907.-941.30/  *%4.4770.930889820.943.70/-99490708:984-9.-9 &8.88:25943:3/075333908020.8:708.1907 .808 8470.-9 #0.

794190".43.90/94574/:.8830/94.. .250418250.85.473 2094/8  %05.0730/9825070/:.3.:.80/0931.90789.8.70/09.4.3  ..470 %04..419047398.020.3990 .470-09003 .5574.8:7.438/0790294-0 ./:..2094/8.438/070/  . 0938.9.997.80/0931.07.8:70-!2094/ .0:54380.8-014700.8.989070..3/  .3   !74/:.790743.9 :.998   .4890:80794090.8/0503/03.6:.9478   !./:.341903/.70.943090/20.7.94341.98.0190/11070391.3/090/8.0/-.3/90708:931:707010.8.4708090/-014708:22..8-003 .20.47/394425479...0 25479.7907438 0.38943090/20..470894..   $2508.3090384341090/8...7907438.07.0 8:.80941 8...90/.473 3982094/ 0..07..9472094/ !74/:. 8.03 20.4708   090/8.20.94507.943 .0.74:5 .03-90 20.8:70416:..3/.%02097..473  0938.473 %88.-0574507908  34.830 1:70 41 2079  .9472094/ %88.


:8:5435./0/394 088039.38419.041906:..02039/4083492574.90808.0 0.30/347/07     ! #%!#  *3988.70 /0..7 ..790743..70.9  *03.090574/:..42243574-02.9.0/  *98.-0 8419.70/..0.70 89349:59490706:70/89.9432094/ $..0349-003 20934907.438/070/ 8.:.70/9490.80 :8.8 .947 2094/   %04430.384154476:.3/.90/ :38:9.3/:8078  *%4/11070394:9.3/.3/011../0.29   %82094/8/0830/9.0907 4..70.3/.987.70 1./.90 70..3/..3/ :8.045078.3081742 94   *%0706:70/6:.943839080.8.03.0/  &31479:3.70.7907.. 0.4803 .981.243898419.-9. .425..0450789.425.99014.3/ /087.574/:.708903 :/0/-:8041900931.94190574/:.-07057080390/ .7/ .70.020 6:.07.6:.8  * 190390574/:..47088/083.8.:807. 1470.890/  *4780 90:807 8300/889.9  90903/942574.850.7907.-0 $:9.8 0.4208708:9  *3901789.42-3.9:./394 9038438-0900390/0..70.98416:.-0  232:2. 1:79072574.00/0/ 90:807 8050.79.:08850.39470.-982574..425.9.91:79073 9080.9  *%8011479.9.92..943823/ &8390.947  .:.-9.088039.987057080390/- 80708417..      %005307 %70402094/   %0.

9706:7020398 9..-9 507.9:/0902.-9.9.8094125..03.8:70/   $50.07.3/ 2.7080330070/   %0708.089.39.3 90 ./.9820.8419.507.7907.4/0  *%0./0/147.0 708:933.7097.*39080.-9.3/8.0452039.43806:03.70":.70706:7020398.0203983 70.05943416:.990706:70/0.3307 3.3 4.7/8/0130.3954398  $419.3.9810/ :8078    &$  $419..9.709014:3/.943 1742. 47.80 2574.$419.3/011.80941 /0.809700 25479.7907.70 34.59.984:/025. 70/:.3/.941903408:32039430/   ##$ 03 50/.43/..58- 90.9433.9.70":.10/89.


42.70*6:.4:/079 .8419.9  4.





9.9 8 8419..70 6:.

.8 .42.  90/.




92094/8 .42.706:.  8419.


Sign up to vote on this title
UsefulNot useful