Software maintenance is indeed required to

Document Sample
Software maintenance is indeed required to Powered By Docstoc
					                           What do you need
                           to know about
                           Software maintenance?

                          	Alan April                	Alain Abran                 	Reiner Dumke
                            Associate professor         Professor                      Professor
                            of Software                 of Software                    in software
                            Engineering at the          Engineering at                 engineering at
                            École de Technologie        the École de                   the University of
                            Supérieure – ÉTS,           Technologie                    Magdeburg.
                            Université du Québec,       Supérieure – ÉTS,
                            Montréal, Canada. 	         Université du

           Software now accounts for an increasing share of the

                                                                            HAS YOUR PRODUCTION EVER BEEN
           content of modern plant and equipment, and, like                 STOPPED BECAUSE OF A SOFTWARE
           these last, must be maintained to ensure its continued           PROBLEM?

           operational efficiency. Although the maintenance of                      oftware maintenance is indeed required to
           plant is discussed extensively, very little is published                 support many key equipment and product
           about software maintenance and how it affects                            lines throughout their daily operational
                                                                            cycles. For instance, software-related problems
           us. This paper presents an overview of key topics of
                                                                            and modification requests are sent to the supplier
           software engineering maintenance.                                of the product where they are logged and tracked,
                                                                            the impact of proposed changes is determined,
                                                                            software code is modified, testing is conducted,
                                                                            and a new version of the software product is

                                                                            This looks quite simple. But if it were that simple,
                                                                            the software fix would be applied in minutes. So
                                                                            why does it often take days, weeks and sometimes
                                                                            months to do it? Because software is sometimes
                                                                            quite complex and even a seemingly very minor
                                                                            change to an element might have a very extensive
                                                                            impact throughout the whole structure, should
                                                                            such an element be used across the structure
                                                                            of either the software itself or throughout the
                                                                            operation system linked to such software.

                        32 maintenance & asset management • vol 20 no 2
                                                     K Preventive maintenance: Modification
Software maintenance is often perceived merely
                                                       to a software product, after delivery to
as fixing bugs, i.e. merely reactive to errors and
                                                       detect and correct latent faults in the
omissions. However, studies and surveys over the
                                                       software product before they become
years have indicated that there is much more to
                                                       effective faults.
software maintenance than merely fixing bugs.
Some studies have even reported that corrective      In well-managed software organisations, most
software maintenance represents less than 20%        of the changes to software are carried out to
of the maintenance workload. .                       adapt such software to the changing business
The consensus on the key components of               or technology environment. Because the
the software maintenance process has been            business context now moves very quickly the
documented in the International Standard for         equipment must also improve constantly, new
Software Maintenance, ISO/IEC 14764. This            and better functionality needs to be inserted
ISO Standard, although perhaps not as well           into the existing software. The software does not
known as ISO900:2000, is important to software       deteriorate physically with time and does not age
maintainers and to general management for            when it operates. However, due to continuous
understanding better the services provided on        additions or modifications, it gets more complex
the software they own and that they are about to     and patched with the numerous changes and
service or modify.                                   progressively becomes more difficult to maintain.
                                                     These are some of the issues that have to be
                                                     recognised and understood for maintaining
               Correction       Enhancement          management control over the maintenance budget
 Proactive       Preventive        Perfective        of both the software and of the related equipment.
 Reactive        Corrective        Adaptive          So next time you look into the list of software
                                                     problems try to separate them and identify the
Figure 1 ISO14764 software maintenance categories    actual percentage of work involved. You’ll see
                                                     that it does not account for so much. It’s the
                                                     changes that take the most out of your budgets.
This ISO/IEC standard recognises four categories     And changes, by definition, have more to do with
of maintenance work (see Figure 1), viz.             maintenance projects than routine maintenance. It
                                                     becomes evident that some of those requests will
K Corrective maintenance: Reactive
                                                     take longer because they are not routine work!
  modification to a software product,
  performed after delivery to correct the
  problems identified.
                                                     BUT WHY DOES IT TAKE SO LONG TO
K Adaptive maintenance: Modification                 CHANGE THE SOFTWARE ?
  to a software product, performed after             A number of very complex issues must be dealt
  delivery to keep a software product                with to ensure adequate maintenance of software
  usable in a changed or changing                    systems. For example, it is highly challenging
  environment.                                       for a software maintainer to analyse a software
K Perfective maintenance: Modification               system comprising 500,000 or 2,000,000 lines
  to a software product, after delivery to           of code (that the maintainer did not develop
  improve performance or maintainability.            himself) in order to find a hidden defect or
                                                     to identify where a specific change must be

                                                     maintenance & asset management • vol 20 no 2 33
                  What do you need to know about
                  Software maintenance?

            implemented. Furthermore, software engineering         suffers from lack of management attention
            is far from being a mature discipline and, unlike      and then from lack of resources, which often
            mechanical engineering, there is still too little      leads to lower quality. For instance, when a
            provided in terms of professional and accredited       compromise must be made in a situation of
            training to the software maintainers. Instead, it is   schedule compression it is often in software that
            often observed that software maintainers have a        the development cuts occur rather than in the
            limited understanding of the products they must        more visible hardware-related components. Of
            maintain. Over the years, both practitioners and       course, software vendors are part of the problem,
            researchers have reported that up to 60% of the        in making you believe that their software is better,
            time spent on maintenance is actually devoted to       faster and more maintainable (but with little
            developing a good understanding the software to        supporting evidence).
            be modified, prior to initiating any change to it.
            This, of course, leaves much less time to carry out    The software maintainability issue is often
            the change itself and to test it extensively.          referred to in the Information Technology
                                                                   industry. The IEEE Standard Glossary of Software
                                                                   Engineering Terminology

‘Too often, software is developed in uncontrolled                  (IEEE610.12) defines ‘maintainability’ as the
                                                                   ease with which software can be maintained,
             environments (e.g. in ‘hackers’ style’) and           enhanced, adapted, or corrected to satisfy
             not to professional engineers’ standards.   ’         specified requirements, while the ISO9126
                                                                   standard ‘Information Technology – Software
                                                                   Quality Characteristics’ defines it as one of the
                                                                   main quality characteristics of a software.
            WHOSE IS IT?                                           Maintainability of software must be specified,
            Why is software so hard to maintain? Many              reviewed and controlled during the software
            of the difficulties can be traced back to the          development activities if we wish ever to
            software development process itself, which often       properly manage the maintenance process and
            does not take into account the maintainability         subsequently reduce the maintenance costs. If this
            requirements. Too often, software is developed         is done successfully the quality of maintenance
            in uncontrolled environments (e.g. in ‘hackers’        of the software (its maintainability) will likely
            style’) and not to professional engineers’             improve. Unfortunately, there is often a lack of
            standards. In industry, if a product or an item        attention to maintainability during the software
            of plant is not built to the proper quality            development process. Often software disregards
            standard, and without adequate maintenance             this key business and engineering requirement.
            documentation, then the maintenance effort             Time and time again software is implemented
            required will be abnormally large when                 and sent to Operations without adequate
            compared to that required by products or plant         maintenance documentation, later on unduly
            developed to the highest maintenance standards.        adding considerable maintenance cost wherever a
                                                                   software change has to be implemented.
            Because software is often embedded (i.e. ‘hidden’)
            in industrial products it lacks visibility, and

               34 maintenance & asset management • vol 20 no 2
      What do you need to know about
      Software maintenance?

AREN’T THERE BEST PRACTICES FOR                   K    Regression testing: maintainers need to
IMPROVING SOFTWARE MAINTENANCE?                       ‘perform regression tests on the software
The needs and benefits of mature engineering           so that the new changes do not introduce
processes, including software development,             errors into the parts of the software that
are well documented. Similarly, there is a well        were not altered’.
recognised link between the level of process
maturity and the costs savings in software
maintenance. For example, the Software            The SMCMM has been developed from a customer
Maintenance Capability Maturity model (SMCMM)     perspective. The ultimate objective of software
identifies the best practices associated with     maintenance improvement programmes initiated
the software processes unique to a maintainer.    as a result of an SMCMM assessment is increased
SMCMM was designed as a customer-focused          customer (and shareholder) satisfaction, rather
benchmark for either:                             than rigid conformance to such a model.
                                                  A higher capability level, in the SMCMM context,
K   auditing the software maintenance
                                                  means, for customer organisations:
    capability of a software maintenance
    service supplier or outsourcer; or
                                                   (a) reaching the target service levels and
K   internal software maintenance                      delivering on customer priorities;
                                                   (b) implementation of the best practices
                                                       available to software maintainers;
Some of the activities unique to software
maintainers are –                                  (c) obtaining transparent software
                                                       maintenance services at costs that are
K   Transition: a controlled and co-ordinated
    sequence of activities during which a
    system is transferred progressively from       (d) the shortest possible software
    the developer to the maintainer.                   maintenance service lead times.
K   Service level agreements (SLAs) and
    specialised maintenance contracts:
    maintainers negotiate SLAs and domain-        For a software maintenance organisation,
    specific contracts.                           achieving a higher capability can result in –
K   Help-desk handling of modification
    requests (MRs) and problem reports (PRs):      (a) lower maintenance and support cost;
    maintainers use a problem-handling             (b) shorter cycle time and intervals;
    process to prioritise, document and route
    the requests they receive.                     (c) increased ability to achieve service
K   Acceptance/rejection of MRs: maintainers
    will not accept modification requests          (d) increasing ability to meet quantifiable
    work over a certain size, effort-required          quality objectives at all stages of the
    or complexity and will re-route these              maintenance process and services.
    requests to a developer.
K   Impact analysis.

                                                  maintenance & asset management • vol 20 no 2 35
      What do you need to know about
      Software maintenance?

Figure 2 A classification of the software maintainer’s key processes

In the SMCMM model the key software                      The key operational processes (also called
maintenance processes have been grouped into             primary processes) that a software maintenance
three classes (see Figure 2), viz.                       organisation uses must be initiated at the start
                                                         of software project development and then
 (a) primary processes (operational);                    maintained subsequently, beginning with the
 (b) support processes (supporting the                   transition process (i.e. ensuring that the software
     primary processes);                                 project is controlled and that a structured
                                                         and co-ordinated approach is used to transfer
 (c) organisational processes offered by
                                                         the software to the maintainer) in which the
     the IT unit or by other departments of
                                                         maintainer will focus on the maintainability of
     the organisation (e.g. finance, human
                                                         this new software.
     resources, purchasing).

  36 maintenance & asset management • vol 20 no 2
       What do you need to know about
       Software maintenance?

Once the software has become the responsibility        something unusual happens and judge whether or
of the maintainer, the Issue and Service Request       not it is an instance of service degradation which
Management process handles all the daily issues,       needs to be investigated.
problem reports, change requests and support
requests. These are the daily services that must be    A process which is used, when required, by an
managed efficiently. The first step in this process    operational process is said to be an operational
is to assess whether a request is to be addressed,     support process. In this classification, we include –
re-routed or rejected (on the basis of the service-
level agreement and the nature of the request           (a) the many maintenance planning
and its size). Accepted requests are documented,            processes;
prioritised, assigned and processed in one of the       (b) the maintainer’s education and training;
following service categories –                          (c) the maintenance environments and
  (1) Operational support process (which                (d) management of the contractual aspects
      typically does not necessitate any                    and service level agreements;
      modification of software);
                                                        (e) rejuvenation or retirement of software;
  (2) Software correction process;                      (f) resolution of problems.
  (3) Software evolution process.
                                                       These are all key activities, which are available to
 It is to be noted that a number of service requests   support some operational process activities.
 do not lead to any modification to the software.
 In the SMCMM model, these are referred to as          Organisational processes are typically offered by
‘Operational Support’ activities, and consist of –     the IT department and by other departments in
                                                       the organisation (e.g. human resources, finance,
  (a) answering questions;                             quality assurance and ISO9001). While it is
                                                       important to measure and assess them, it is often
  (b) providing information and counselling;
                                                       easier for the maintainer to start defining the
  (c) helping customers to better understand           operational and operational support processes.
      the software, a transaction or its
      documentation.                                   This generic model should help understand and
                                                       position the various key software maintenance
                                                       processes. What is important is that these be
The final two main operational processes are           explicitly listed and classified according to their
the Version Management process (moving items           type (operational, support or organisational).
to production in a controlled fashion) and the         The SMCMM model was developed in an industrial
Production Surveillance process (ensuring that the     environment with practices recognised as useful.
operational environment has not been degraded).
Maintainers must also monitor the behaviour of         In summary, software maintenance is not all that
the operational system and its environments for        simple and a maturity model might be helpful at
signs of degradation. They will quickly warn other     assessing your supplier’s maintenance maturity.
support groups (operators, technical support,          It’s proven … in engineering, better maintenance
scheduling, networks and desktop support) when         leads to lower operational costs.

                                                       maintenance & asset management • vol 20 no 2 37

Shared By:
Description: Software maintenance is indeed required to