basic concepts of software quality

Upload: balaram-papana

Post on 05-Apr-2018

225 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/2/2019 Basic Concepts of Software Quality

    1/41

    1

    Basic Concepts of Software QualityDefining Quality

    Presenter

    Ambili P K

  • 8/2/2019 Basic Concepts of Software Quality

    2/41

    2

    In this section, we will discuss quality from the

    perspective of the customer as well as theproducer.

    Introduction

  • 8/2/2019 Basic Concepts of Software Quality

    3/41

    A successful project

    The success of a project is usually measured along the

    following three axes:

    Schedule: Was the project delivered on time?

    Cost: Did the project stay within budget?

    Quality: Was the product of good quality?

    3

  • 8/2/2019 Basic Concepts of Software Quality

    4/41

    4

    The role of quality in a successfulproject

    Most of the times, software project managers tend to focuson the schedule and the cost and just hope the qualitywill be okay.

    This is because the schedule and the cost can be easily

    measured and, therefore, any slippage in these attractsimmediate attention from the management.

    Project managers and software engineers get so busymeeting budgets and deadlines that quality takes a

    backseat.

    Also, because software quality is not visible and measured,problems do not become obvious until they are extremelydifficult to correct.

  • 8/2/2019 Basic Concepts of Software Quality

    5/41

    5

    What do customers want?

    They may even be able to forgive a project that deliverssoftware at a cost that was higher than projected. But nocustomer will ever forgive poor quality.

  • 8/2/2019 Basic Concepts of Software Quality

    6/41

    Customer perspective of quality

    6

    A product is built to meet customer requirements.These requirements are of the following two types:

    Explicit: What the customer states specifically

    Implicit: What the customer does not specify butexpects

    http://www.edistalearning.com/Content/Courses/COU250550621747/files/mod7/les01/topic2/l01_020_090.htmhttp://www.edistalearning.com/Content/Courses/COU250550621747/files/mod7/les01/topic2/l01_020_090.htmhttp://www.edistalearning.com/Content/Courses/COU250550621747/files/mod7/les01/topic2/l01_020_090.htmhttp://www.edistalearning.com/Content/Courses/COU250550621747/files/mod7/les01/topic2/l01_020_090.htmhttp://www.edistalearning.com/Content/Courses/COU250550621747/files/mod7/les01/topic2/l01_020_090.htmhttp://www.edistalearning.com/Content/Courses/COU250550621747/files/mod7/les01/topic2/l01_020_090.htm
  • 8/2/2019 Basic Concepts of Software Quality

    7/41

    Quality is more thanconformance to specifications

    7

    A producer considers a product as a qualityproduct when it meets all the specifications givenby the customer.

    For software, a process is established to assist theproducer in moving from the initial statement ofrequirements to the final product.

    The better the process, the more likely it is thatquality will be achieved. Therefore, softwareproducers should always strive to improve theprocess so that the product created conforms to

    the specifications.

  • 8/2/2019 Basic Concepts of Software Quality

    8/41

    A process-centric view of quality

    8

    A 'process-centric' view of quality by saying that a goodprocess is likely to result in good quality.

    Today, the focus of quality gurus is on achieving totalquality. Most of the organizations are, therefore, adopting

    the approach of Total Quality Management, often referredto as TQM.

  • 8/2/2019 Basic Concepts of Software Quality

    9/41

    9

    According to ISO (ISO 9000:2000), quality is the degree to

    which a set of inherent characteristics fulfills the

    requirements.

    IEEE (Std 610.12-1990) has defined quality as:

    The degree to which a system, component, or process meets

    specified requirements

    The degree to which a system, component, or process meets

    customer or user needs or expectations

    Other viewpoints on quality

  • 8/2/2019 Basic Concepts of Software Quality

    10/41

    10

    Some key points on quality

    Although various people have defined quality differently, all

    viewpoints share the same core concepta quality product must

    meet the specifications and fulfill customer requirements.

    Some key points from various definitions of quality are as follows.

    Meeting explicit as well as implicit customer requirements

    Continually improving the software process

    Removing defects throughout the process

    Developing a product that is fit for use

  • 8/2/2019 Basic Concepts of Software Quality

    11/41

    11

    Some key points on quality

  • 8/2/2019 Basic Concepts of Software Quality

    12/41

    12

    Basic Concepts of Software QualitySoftware Quality Factors

  • 8/2/2019 Basic Concepts of Software Quality

    13/41

    Introduction

    13

    Software professionals, such as projectmanagers, software engineers, and the peoplewho support the development of industry-grade

    software, want to develop high-quality softwareproducts.

  • 8/2/2019 Basic Concepts of Software Quality

    14/41

    What is software quality?

    14

    Some leading experts in the field of software quality havedefined quality in terms of factors such as low defectlevels, good reliability, fitness for use, maintainability, andso forth.

    These factors collectively help us describe what goodquality should be for a specific product.

  • 8/2/2019 Basic Concepts of Software Quality

    15/41

    What are software quality factors?

    15

    To build quality software products, the qualityrequirements of a product need to be clearly defined sothat software engineering can aim to achieve them.

    The quality requirements of a product being developed

    can be specified in terms of the quality factors.Using the framework of quality factors, a project managerdecides which quality factors are relevant for a particularsoftware product.

    Clear understanding of the quality requirements enablesproject managers to focus software engineering activitiestowards meeting these requirements.

  • 8/2/2019 Basic Concepts of Software Quality

    16/41

    Categories of quality factors

    16

    The quality factors are grouped into three broad categories.Product operation - Refers to the operational characteristics of

    a product or how well a product operates

    Product revision - Refers to the extent of ease in changing or

    revising product, that is, its modifiability, to ensure that it remainsuseful

    Product transition - Refers to the ease in the transition from

    one environment to another or how adaptable a product is to a

    new environment

  • 8/2/2019 Basic Concepts of Software Quality

    17/41

    What is product operation?

    17

    The product operation category includes factors that help us tounderstand the operational characteristics of a product. The

    factors in this category are:

    Correctness

    ReliabilityEfficiency

    Integrity

    Usability

    These factors help in determining how well a product works from

    the user's perspective. They impact how the user feels about

    operating the product in a given environment with the current

    functionality.

  • 8/2/2019 Basic Concepts of Software Quality

    18/41

    18

    Product operation: Correctness

    Correctness is the extent to which specifications are metand the customer's mission objectives are fulfilled.

    IEEE, in its definition of correctness, is concerned with the

    degree to which a system or component is fault free, meetsspecified requirements as well as user needs andexpectations (whether specified or not).

    Correctness includes aspects such as consistency and

    completeness.

  • 8/2/2019 Basic Concepts of Software Quality

    19/41

    19

    Product operation: Reliability

    Reliability as the extent to which we can expect a productto perform the intended function with the requiredprecision.

    A product that keeps failing because defects surface is not

    reliable.

  • 8/2/2019 Basic Concepts of Software Quality

    20/41

    20

    Product operation: Efficiency

    Efficiency determines how efficiently the computingresources and code are used.

    Poor efficiency in the use of computer resources affects the

    performance of a system under peak loads and can lead touser inconvenience due to degraded performance, andinability to cope with peak loads.

    The following are some examples of what we can consider

    while assessing efficiency.Usage of processor time, memory, and disk storage

    Speed of access to network resources

    Ability to interact smoothly with other systems

  • 8/2/2019 Basic Concepts of Software Quality

    21/41

    21

    Product operation: Integrity

    Integrity determines how safe the software and data are fromunauthorized access.

    It is necessary to protect a system from inadvertent damageor deliberate mischief and crime.

    Therefore, only authorized people within a defined scope ofactivities should be given access to the system

    Poor integrity leads to virus attacks, loss of privacy of data,and computer crimes.

  • 8/2/2019 Basic Concepts of Software Quality

    22/41

    22

    Product operation: Usability

    The effort required to learn, operate, prepare input, andinterpret output of a program

    Users can easily prepare the input for such products and

    understand the generated outputs. Usability is one of the quality factors that helps indetermining how well the product works from a user's pointof view.

    Usability plays an important role in situations where usersneed to interact with products, especially if there are manyusers with different profiles and training them is not possibleor desirable.

  • 8/2/2019 Basic Concepts of Software Quality

    23/41

    23

    Perception of usability

    The perception of usability is subjective and is oftendependent on the types of users, their background, andtheir experience with the product that is to be used.

    The various aspects to be considered while determining'usability' in a particular context are:

    The type of users

    Costs

    Tradeoffs between the training required before using aproduct and ease of its use

  • 8/2/2019 Basic Concepts of Software Quality

    24/41

    24

    What is product revision?

    The product revision category of framework includes thefactors that contribute to ease in revising a product. Theseare:

    Maintainability

    Testability

    Flexibility

    If a product cannot be revised easily, then:

    Enhancements cannot be made to meet the changing

    requirements.Defects cannot be fixed or are very costly to fix.

    Any changes made might add more defects.

    Any changes made might be difficult to verify.

  • 8/2/2019 Basic Concepts of Software Quality

    25/41

    25

    Product revision: Maintainability

    Maintainability means the effort required to locate and fixdefects.

  • 8/2/2019 Basic Concepts of Software Quality

    26/41

    26

    Possible measures for maintainability

    Maintainability is affected by the way a product isdeveloped. It is difficult when the code is complex, does notinclude comments, and is non-modular in design. Some of

    the possible measures for maintainability are:The average timetaken to fix a problem

    The percentageof fixes made correctly

  • 8/2/2019 Basic Concepts of Software Quality

    27/41

    27

    Product revision: Testability

    Testability means the effort required to execute tests toensure that the product meets the required functionality.

    Testing is done during development and whenever a

    product is revised. It is particularly important during revision,because each change in a product must be tested before itis released.

    Testing involves the following:

    Identifying test cases

    Designing and executing tests

    Checking the actual test results against the expectedresults

  • 8/2/2019 Basic Concepts of Software Quality

    28/41

    28

    Product revision: Flexibility

    Flexibility means the extent of difficulty in modifying anoperational program.

    A good design is typically flexible.

    Well-designed modular programs are easier to modify.

  • 8/2/2019 Basic Concepts of Software Quality

    29/41

    29

    What is product transition?

    The product transition category includes factors related tothe ease of moving software to another environment.These are:

    Portability

    Reusability

    Interoperability

    The factors in this category are concerned with how well a

    product supports possible transition. Transitioning may berequired for various reasons.

  • 8/2/2019 Basic Concepts of Software Quality

    30/41

    30

    Product revision: Maintainability

    McCall defines reliability as the extent to which we canexpect a product to perform the intended function with therequired precision.

    A product that keeps failing because defects surface is notreliable. More pragmatically, it is extremely frustrating to use.

    Inability or difficulty in transitioning means the product is nolonger available.

  • 8/2/2019 Basic Concepts of Software Quality

    31/41

    31

    Product transition: Portability

    McCall defines reliability as the extent to which we canexpect a product to perform the intended function with therequired precision.

    A product that keeps failing because defects surface is notreliable. More pragmatically, it is extremely frustrating to use.

  • 8/2/2019 Basic Concepts of Software Quality

    32/41

    32

    Product transition: Portability

    Portability means the effort required to transfer a programfrom one hardware or software environment to another.

    It may be necessary to port a program from one

    environment to another for various reasons. For example, an organization may be shifting thehardware/software platform or may need to execute thesoftware product on multiple hardware/software platforms.Another reason may be that the existing platform hasbecome obsolete or is no longer supported.

    If a product that needs to be ported cannot be ported, itbecomes useless. It is, therefore, important to checkwhether portability is a relevant factor for a product.

  • 8/2/2019 Basic Concepts of Software Quality

    33/41

    33

    Product transition: Reusability

    Reusability is the extent to which a program or its partscan be reused in other applications.

    While designing a product for reuse, the following aspects

    should be considered.Modularity- Modularity enables reuse.

    Component design - The components should be designedsuch that they can be reused for various applications.

    Documentation-Good documentation is necessary to be

    able to understand possible reuse.

    Libraries of components and a search facility- Libraries enable

    acquiring of the appropriate component for reuse.

  • 8/2/2019 Basic Concepts of Software Quality

    34/41

    34

    Product transition: Interoperability

    McCall defines interoperability as the effort required tocouple one system to another.

    Interoperability is concerned with the exchange of data and

    services between systems.

  • 8/2/2019 Basic Concepts of Software Quality

    35/41

    35

    Types of relationship between qualityfactors

    The relationship between two quality factors is of thefollowing types:

    Indifferent:The quality factors do not affect each other.

    Complementary:The quality factors work in the samedirection.

    Conflicting:An increase in one quality factor reducesthe other.

  • 8/2/2019 Basic Concepts of Software Quality

    36/41

    36

    Measuring quality factors

    Quality cannot be measured directly. However, it is possibleto measure quality indirectly. McCall's framework is usefulfor such measurement. This framework has:

    Software quality factors that are management-and user-oriented

    Software-oriented attributes or criteria

    Metrics for these attributes

    The framework is also called F-C-M (factor-criteria-metric) because of this structure.

  • 8/2/2019 Basic Concepts of Software Quality

    37/41

    37

    Difference between errors anddefects

    Defects are the problems that are found either by thecustomer or by the software professionals after a producthas been delivered.

    These are the problems that the customer encounters orcan encounter.

    Defects lower the customer perspective on product quality.

    We use the term 'error' for the problems that are foundusing formal processes but are detected before the deliveryof a product to the customer.

  • 8/2/2019 Basic Concepts of Software Quality

    38/41

    38

    Categories of metrics for quality

    There are two broad categories of metrics that can beused for quality. These are:

    Technical metricsAfter-the-fact metrics

  • 8/2/2019 Basic Concepts of Software Quality

    39/41

    39

    After-the-fact metrics

    After-the-fact metrics are based on the measures made atthe end of a project.

    They are simple summary metrics and are usually relatively

    easy to collect. They are based on the measures visible to managers anddo not require technical insight into the process.

  • 8/2/2019 Basic Concepts of Software Quality

    40/41

    40

    Technical metrics enable action intime

    Technical metrics are based on measures of the technicalattributes of a product made by software engineers as partof the software process.

    Technical metrics provide a good understanding of thetechnical quality of the product while it is being made.

    Software engineers use technical metrics to improve theway they work and to create better design and code.

  • 8/2/2019 Basic Concepts of Software Quality

    41/41