Skip to main content
   To introduce the quality management process and key
    quality management activities
   To explain the role of standards in quality management
   To explain the concept of a software metric, predictor
    metrics and control metrics
   To explain how measurement may be used in assessing
    software quality and the limitations of software
    measurement
 Process and product quality
 Quality assurance and standards

 Quality planning

 Quality control
 Concerned with ensuring that the required level of
  quality is achieved in a software product.
 Involves defining appropriate quality standards

  and procedures and ensuring that these are
  followed.
 Should aim to develop a ‘quality culture’ where

  quality is seen as everyone’s responsibility.
   Quality, simplistically, means that a product should
    meet its specification.
   This is problematical for software systems
    ◦ There is a tension between customer quality requirements
      (efficiency, reliability, etc.) and developer quality requirements
      (maintainability, reusability, etc.);
    ◦ Some quality requirements are difficult to specify in an
      unambiguous way;
    ◦ Software specifications are usually incomplete and often
      inconsistent.
 We cannot wait for specifications to improve
  before paying attention to quality management.
 We must put quality management procedures into

  place to improve quality in spite of imperfect
  specification.
 Quality management is particularly important for
  large, complex systems. The quality
  documentation is a record of progress and
  supports continuity of development as the
  development team changes.
 For smaller systems, quality management needs

  less documentation and should focus on
  establishing a quality culture.
   Quality assurance
    ◦ Establish organisational procedures and standards for quality.
   Quality planning
    ◦ Select applicable procedures and standards for a particular
      project and modify these as required.
   Quality control
    ◦ Ensure that procedures and standards are followed by the
      software development team.
   Quality management should be separate from project
    management to ensure independence.
Software development
       process               D1            D2               D3   D4   D5




 Quality m anagement
        process




 Standards and     Quality        Quality review repor ts
 procedures        plan
 The quality of a developed product is influenced
  by the quality of the production process.
 This is important in software development as

  some product quality attributes are hard to
  assess.
 However, there is a very complex and poorly

  understood relationship between software
  processes and product quality.
   There is a straightforward link between process and
    product in manufactured goods.
   More complex for software because:
    ◦ The application of individual skills and experience is particularly
      imporant in software development;
    ◦ External factors such as the novelty of an application or the need
      for an accelerated development schedule may impair product
      quality.
   Care must be taken not to impose inappropriate process
    standards - these could reduce rather than improve the
    product quality.
Develop        Assess pr oduct
Define process
                 product            quality




                           No                     Y
                                                  es
                 Improve            Quality            Standar dis e
                 process             OK                  process
 Define process standards such as how reviews
  should be conducted, configuration
  management, etc.
 Monitor the development process to ensure

  that standards are being followed.
 Report on the process to project management and

  software procurer.
 Don’t use inappropriate practices simply because

  standards have been established.
 Standards are the key to effective quality
  management.
 They may be international, national, organizational

  or project standards.
 Product standards define characteristics that all

  components should exhibit e.g. a common
  programming style.
 Process standards define how the software

  process should be enacted.
 Encapsulation of best practice- avoids
  repetition of past mistakes.
 They are a framework for quality assurance

  processes - they involve checking compliance to
  standards.
 They provide continuity - new staff can understand

  the organisation by understanding the standards
  that are used.
 They may not be seen as relevant and up-to-date
  by software engineers.
 They often involve too much bureaucratic form

  filling.
 If they are unsupported by software tools, tedious

  manual work is often involved to maintain the
  documentation associated with the standards.
   Involve practitioners in development. Engineers should
    understand the rationale underlying a standard.
   Review standards and their usage regularly.
    Standards can quickly become outdated and this
    reduces their credibility amongst practitioners.
   Detailed standards should have associated tool
    support. Excessive clerical work is the most
    significant complaint against standards.
   Particularly important - documents are the tangible
    manifestation of the software.
   Documentation process standards
    ◦ Concerned with how documents should be developed, validated
      and maintained.
   Document standards
    ◦ Concerned with document contents, structure, and appearance.
   Document interchange standards
    ◦ Concerned with the compatibility of electronic documents.
Incorporate
      Crea te             Review                                  Re-draft
                                                   review
   initial dr aft          draft                                 docum ent
                                                 comm ents
Stage 1:
Creation                            Appr oved document



    Proofread             Produce                   Check
       text              final dr aft             final dr aft

Stage 2:
Polishing           Appr oved document



     Layout               Review                   Produce         Print
      text                layout                print masters     copies

Stage 3:
Production
   Document identification standards
    ◦ How documents are uniquely identified.
   Document structure standards
    ◦ Standard structure for project documents.
   Document presentation standards
    ◦ Define fonts and styles, use of logos, etc.
   Document update standards
    ◦ Define how changes from previous versions are reflected
      in a document.
   Interchange standards allow electronic documents to be
    exchanged, mailed, etc.
   Documents are produced using different systems and on
    different computers. Even when standard tools are used,
    standards are needed to define conventions for their use
    e.g. use of style sheets and macros.
   Need for archiving. The lifetime of word processing
    systems may be much less than the lifetime of the
    software being documented. An archiving standard may
    be defined to ensure that the document can be accessed
    in future.
 A quality plan sets out the desired product
  qualities and how these are assessed and defines
  the most significant quality attributes.
 The quality plan should define the quality

  assessment process.
 It should set out which organisational standards

  should be applied and, where necessary, define
  new standards to be used.
   Quality plan structure
    ◦   Product introduction;
    ◦   Product plans;
    ◦   Process descriptions;
    ◦   Quality goals;
    ◦   Risks and risk management.
   Quality plans should be short, succinct documents
    ◦ If they are too long, no-one will read them.
 This involves checking the software development
  process to ensure that procedures and standards
  are being followed.
 There are two approaches to quality control

    ◦ Quality reviews;
    ◦ Automated software assessment and software
      measurement.
   This is the principal method of validating the quality of a
    process or of a product.
   A group examines part or all of a process or system and
    its documentation to find potential problems.
   There are different types of review with different
    objectives
    ◦ Inspections for defect removal (product);
    ◦ Reviews for progress assessment (product and process);
    ◦ Quality reviews (product and standards).
Review type         Principal purpose
Design or program   To detect detailed errors in the requirements, design or code. A checklist of
inspections         possible errors should drive the review.
Progress reviews    To provide information for management about the overall progress of the
                    project. This is b oth a process and a product review and is concerned with
                    costs, plans and schedules.
Quality reviews     To carry out a t echnical analysis of product components or documentation to
                    find mismatches between the specification and the component design, code or
                    documentation and to ensure that defined quality standards have been followed.
   A group of people carefully examine part or all
    of a software system and its associated
    documentation.
   Code, designs, specifications, test plans,
    standards, etc. can all be reviewed.
   Software or documents may be 'signed off' at a
    review which signifies that progress to the next
    development stage has been approved by
    management.
 Quality function - they are part of the general
  quality management process.
 Project management function - they provide

  information for project managers.
 Training and communication function - product

  knowledge is passed between development team
  members.
 The objective is the discovery of system defects
  and inconsistencies.
 Any documents produced in the process may be

  reviewed.
 Review teams should be relatively small and

  reviews should be fairly short.
 Records should always be maintained of quality

  reviews.
   Comments made during the review should be
    classified
    ◦ No action. No change to the software or documentation is
      required;
    ◦ Refer for repair. Designer or programmer should correct an
      identified fault;
    ◦ Reconsider overall design. The problem identified in the
      review impacts other parts of the design. Some overall
      judgement must be made about the most cost-effective way of
      solving the problem;
   Requirements and specification errors may
    have to be referred to the client.
   Software measurement is concerned with deriving a
    numeric value for an attribute of a software product or
    process.
   This allows for objective comparisons between
    techniques and processes.
   Although some companies have introduced
    measurement programmes, most organisations still don’t
    make systematic use of software measurement.
   There are few established standards in this area.
   Any type of measurement which relates to a software
    system, process or related documentation
    ◦ Lines of code in a program, the Fog index, number of person-
      days required to develop a component.
   Allow the software and the software process to
    be quantified.
   May be used to predict product attributes or to control
    the software process.
   Product metrics can be used for general predictions or to
    identify anomalous components.
Softw are       Softw are
   process         product



   Contr ol       Predictor
measur ements   measur ements



Mana gement
 decisions
   A software property can be measured.
   The relationship exists between what we can
    measure and what we want to know. We can only
    measure internal attributes but are often more interested
    in external software attributes.
   This relationship has been formalised and
    validated.
   It may be difficult to relate what can be measured to
    desirable external quality attributes.
Number of procedur e
                      par ameters
Maintaina bility

                   Cyclomatic comple xity

  Relia bility
                    Prog ram siz e in lines
                           of code
  Por tability
                      Number of error
                        messa ges
   Usability

                   Length of user man ual
 A software measurement process may be part of
  a quality control process.
 Data collected during this process should be

  maintained as an organisational resource.
 Once a measurement database has been

  established, comparisons across projects become
  possible.
Choose                                                           Analy se
measur ements                                                      anomalous
 to be made                                                       com ponents

                     Select                          Identify
                components to                      anomalous
                  be assessed                     measur ements

                                   Measur e
                                 component
                                characteristics
 A metrics programme should be based on a set of
  product and process data.
 Data should be collected immediately (not in

  retrospect) and, if possible, automatically.
 Three types of automatic data collection

    ◦ Static product analysis;
    ◦ Dynamic product analysis;
    ◦ Process data collation.
   Don’t collect unnecessary data
    ◦ The questions to be answered should be decided in
      advance and the required data identified.
   Tell people why the data is being collected.
    ◦ It should not be part of personnel evaluation.
   Don’t rely on memory
    ◦ Collect data when it is generated not after a project has
      finished.
   A quality metric should be a predictor of
    product quality.
   Classes of product metric
    ◦ Dynamic metrics which are collected by measurements made of a
      program in execution;
    ◦ Static metrics which are collected by measurements made of the
      system representations;
    ◦ Dynamic metrics help assess efficiency and reliability; static
      metrics help assess complexity, understandability and
      maintainability.
   Dynamic metrics are closely related to software quality
    attributes
    ◦ It is relatively easy to measure the response time of a system
      (performance attribute) or the number of failures (reliability
      attribute).
   Static metrics have an indirect relationship with quality
    attributes
    ◦ You need to try and derive a relationship between these metrics
      and properties such as complexity, understandability and
      maintainability.
Software metric                                             Description
Fan in/Fan-out          Fan-in is a measure of the number of functions or methods that call some other function
                        or method (say X). Fan-out is the number of functions that are called by function X. A
                        high value for fan-in means that X i s tightly coupled to the rest of the design and
                        changes to X will have extensive knock-on effects. A high value for fan-out suggests
                        that the overall complexity of X m ay be high because of the complexity of the control
                        logic needed to coordinate the called components.
Length of code          This is a measure of the size of a program. Generally, the larger the size of the code of a
                        component, the more complex and error-prone that component is likely to be. Length of
                        code has been shown to be one of the most reliable metrics for predicting error-
                        proneness in components.
Cyclomatic complexity   This is a m easure of the control complexity of a p rogram. This control complexity may
                        be related to program understandability. I discuss how to compute cyclomatic
                        complexity in Chapter 22.
Length of identifiers   This is a measure of the average length of distinct identifiers in a p rogram. The longer
                        the identifiers, the more likely they are to be m eaningful and hence the more
                        understandable the program.
Depth of conditional    This is a measure of the depth of nesting of if-statements in a program. Deeply nested if
nesting                 statements are hard to understand and are potentially error-prone.
Fog index               This is a measure of the average length of words and sentences in documents. The higher
                        the value for the Fog index, the more difficult the document is to understand.
Object-oriented        Description
metric
Depth of inheritance   This represents the number of discrete levels in the inheritance tree where sub-
tree                   classes inherit attributes and operations (methods) from super-classes. The
                       deeper the inheritance tree, the more complex the design. Many different object
                       classes may have to be understood to understand the object classes at the leaves
                       of the tree.
Method fan-in/fan-     This is directly related to fan-in and fan-out as described above and means
out                    essentially the same thing. However, it may be appropriate to make a
                       distinction between calls from other methods within the object and calls from
                       external methods.
Weighted methods       This is the number of methods that are included in a class weighted by the
per class              complexity of each method. Therefore, a simple method may have a complexity
                       of 1 and a large and complex method a much higher value. The larger the value
                       for this metric, the more complex the object class. Complex objects are more
                       likely to be more difficult to understand. They may not be logically cohesive so
                       cannot be reused effectively as super-classes in an inheritance tree.
Number of              This is the number of operations in a super-class that are over-ridden in a sub-
overriding             class. A high value for this metric indicates that the super-class used may not be
operations             an appropriate parent for the sub-class.
   It is not always obvious what data means
    ◦ Analysing collected data is very difficult.
 Professional statisticians should be consulted if
  available.
 Data analysis must take local circumstances into

  account.
   Reducing the number of faults in a program leads
    to an increased number of help desk calls
    ◦ The program is now thought of as more reliable and so
      has a wider more diverse market. The percentage of
      users who call the help desk may have decreased but
      the total may increase;
    ◦ A more reliable system is used in a different way from a
      system where users work around the faults. This leads to
      more help desk calls.
 Software quality management is concerned with
  ensuring that software meets its required
  standards.
 Quality assurance procedures should be

  documented in an organisational quality manual.
 Software standards are an encapsulation of best

  practice.
 Reviews are the most widely used approach for

  assessing software quality.
 Software measurement gathers information about
  both the software process and the software
  product.
 Product quality metrics should be used to identify

  potentially problematical components.
 There are no standardised and universally

  applicable software metrics.