IEEE Paper Template in A4 (V1)

advertisement
MAINTAINING PROCESSES AND STRAGIES
Mohamed EL-Muwaqqat (Mohamed Muaket)
Mohamed EL-Muwaqqat
Sr. IT-Architect
Short Summery - ISO/IEC 12207, ISO/IEC
14764
V1. First Draft
MAINTAINING PROCESSES AND STRAGIES
Mohamed EL-Muwaqqat
Abstract— The importance of software maintenance during the
life-cycle of software system cannot be over emphasized. The
maintenance tasks were focused on delivering system
improvements, fixing software defects and preventing software
problems from happening. The International Organization for
Standardization (ISO) provides guidance for the maintenance of
software. The basis for Maintenances Process and its activities
comes from the definition of ISO/IEC 12207. It defines the
activities and tasks of software maintenance, and provides
maintenance planning requirements. This process also includes
the migration and retirement of the software. While ISO/IEC
12207 describes the process of what activities and tasks to do to
provide guidance to Maintenance Process, ISO/IEC 14764
provides guidance on the management of how to perform the
Maintenance Process.
There are several models and approaches of how to perform
software maintenance process. Organizations should seek to
adopt maintenance strategies depending on their business’ need
and, of course, capabilities. IT-manager should examine the key
elements of their software structure beforehand implementing
software maintenance process. This paper aimed to describe
ISO/IEC 14764 which defines a clear emphasis on software
maintenance process. In this study, I will also examine some of
the software maintenance strategies/process that are used by
organization and determine if there was improvement in the
competitive measures of cost, quality and productivity.
Keywords—
ISO/IEC 12207, ISO/IEC 14764, What
activities and How to perform
I. INTRODUCTION
Software development life cycle (SDLC) has many phases.
This include, requirement gathering, system design,
implementation, testing/QA, migration and maintenance. The
importance of software maintenance during the life-cycle of
software system cannot be overestimated. The maintenance
tasks were focused on delivering system improvements, fixing
software defects and preventing software problems from
happening. Maintenance phase in software development life
cycle has widely recognized as the highest cost phase of
SDLC with estimated costs of 60% to 80% of the total
organization budged (Pigoski, 1997). Clearly, the task of
maintaining software applications is very challenging and
costly. Thus for, many organization (small and large) are
looking at their maintenance process as an area for
competitive advantage.
companies are implementing Maintenance Strategy to increase
profitability, effectiveness and quality.
II. MAINTENANCE PROCESSES
In my research, I found many scholarly papers that have
proposed several process models for software maintenance. I
found all of these models share common sequence of related
core of activities or phases. Each of these maintenance
processes defines the order in which these phases or activities
are executed. Usually, the process begins with process
implementation activity (where the maintenance process is
preformed) and ends with the software retirement process in
the maintenance life cycle. Both ISO/IEC 12207 and 14764
for example, have addressed software maintenance process in
their standards. In the following pages, I will describe the
maintenance processes defined by above standards.
III. ISO/IEC 14764 MAINTENANCE PROCESS
ISO/IEC 14764 provides guidance of software maintenance.
The basis of this software maintenance process activity comes
from ISO/IEC 12207.
It provides guidance on the
management of how to perform the Maintenance Process.
ISO/IEC 14764 defines software maintenance process as “the
activities and tasks necessary to modify an existing software
product while preserving its integrity”. Software maintainer is
responsible for performing these activities and tasks and
ensures that the Maintenance Process exists and is functional
prior to development/deployment of any software product.
ISO/IEC 14764 organizes the maintenance process in six
activities, as demonstrated in figure 1. These processes are
Process Implementation, Problem and Modification Analysis,
Modification
Implementation,
Maintenance
Review/Acceptance, Migration and Retirement Processes
(2006). In this section, I will provide more detailed
description of each of the above categories.
The primary goals of this paper are: First, to describe
software Maintenance Process offered by ISO/IEC 14764
(2006). Second, explain the Maintenance Strategy that
ISO/IEC 14764 offers with regards to software
implementation process. Finally, examine how different
Mohamed EL-Muwaqqat (Mohamed Muaket)
Fig. 1 (Software Engineering — Software Life Cycle- Maintenance, 2006)
A. Process Implementation
The first phase is Process Implementation: this phase
includes set of activities and tasks for developing plans and
procedures for software maintenance. According to Pigoski,
process implementation begins in the very early stage in the
system life cycle. It includes code modification and
documentation generation due to software defects or need for
enhancement. In this stage, the maintainer establishes set of
practices to receive record and track maintenance requests and
establish an organizational interface with the configuration
management process. Adding, it is important for the
maintainer to develop firm Maintenance Plans in parallel with
the development of the Development Plan.
B. Problem and Modification Analysis
Problem and Modification Analysis is the second phase of
Maintenance Process. Usually, the maintainer executes this
phase to analyze defect reports, enhancement requests or
modification request (PR/MR). The maintainer is responsible
to check its validity, investigate the issue/request, determine
its scope in term of size, costs and time required to accomplish
the task and proposes a solution. After the analysis is
completed and documented, the maintainer responsible to
obtain all required authorizations to apply the modifications.
C. Modification Implementation
The third phase of maintenance process is Modification
Implementation. During this phase, the maintainer develops a
test plan for the software modification once they have
approved trough the Process Implementation and Problem and
Modification Analysis phases. In this task, the maintainer
usually performs similar activities as migration task. It is the
maintainer responsibility to ensure that the end result of the
modification must not impact the current system performance
and/or future system implementations.
D. Maintenance Review/Acceptance
Next, in Maintenance Review/Acceptance phase; the
maintainer conducts reviews with other project stockholders
authorizing the modification and ensuring the integrity of the
modified system. In short, this phase can be best described as
validation and verification process designed to ensure that the
modifications to the system are made in acceptable manner.
F. Software Retirement
The last maintenance activity is Software Retirement. In
this phase, software maintainers do lots of visibility studies to
determine the economic cost of keeping or maintaining the
system. If cost-advantage is found by moving to a newer and
maintainable system, software maintainers execute software
retirement plan. This includes, develop retirement strategy,
notify end-users of this strategy, conduct parallel operations of
adapting the new system and, finally, ensuring the old data is
accessible.
As stated in ISO/IEC 14764, determining the maintenance
concept “should be the first step in developing the software
maintenance strategy” (2006, p42). To achieve best software
maintenance strategy, the maintenance concept should be
developed when the initial software product needs are first
expressed. As indicated in ISO, this strategy should define
scope of work, the process that should be used, estimated cost
to do the work and who is doing the work (internal staff or
external staff). As we observed above, ISO/IEC 14764
provides managerial strategies that can support the high
standards of engineering in software maintenance.
In investigating maintenance concepts and strategies
outside of software engineering domain, I found a paper by
Baglee & Knowles (2010) which discusses maintenance
strategy development in small and medium sized enterprises
(SME’s). The paper focus on how high productivity and
quality can be achieved by means of well-developed
maintenance strategies. The authors provided several methods
to improve system availability through better utilization of
maintenance and production resources. Total Productive
Maintenance (TPM) is one of the examples that have been
developed to allow organizations to strategically direct their
resources to the maintenance tasks. According the author,
many organizations have claimed improvement in their
system availability, reliability and substantial reduction on
maintenance cost when they implemented TPM (Blanchard,
1997; Cooke, 2000). In essence, “TPM is an approach which
seeks to develop maintenance practices through a combination
of measurement, planning, training, and the active
involvement of a broader range of employees in addition to
maintenance personnel in maintenance related activities”
(Baglee & Knowles 2010) . According to Percy and Kobbacy,
this approach worked very well within large organizations.
Yet, the paper, also, identifies the barriers to the
implementation of TPM within small and medium sized
organization due to the absence of case studies concerning
TPM implementation within SMEs. Also, the paper pointed
out several barriers to implementation of TPM within SMEs.
That includes lack of finance, time consuming, lack of skilled
staff and lack of management awareness.
E. Migration
Following, the Migration accrues when the software is fully
tested and moved from the development environment into
production (or pre-production). Software maintainer in this
phase develops well written migration plan and schedule. Also,
An interesting maintenance methodology was, also,
end-users are usually introduced to the modification or system mentioned in the paper that could better implemented within
enhancements in the new environment and end-user trainings SMEs; The Advanced Integrated Maintenance Management
are provided.
System (AIMMS) succeeds through focusing on specific
Mohamed EL-Muwaqqat (Mohamed Muaket)
maintenance tasks that will maximize gains based upon the
inherent barriers within SMEs (Baglee, & Knowles 2010).
According to the authors, Total Productive Maintenance
(TPM) is predominantly used because it integrates production
and maintenance functions, but, more importantly, redefines
the roles of the operators and maintainers. Finally, the paper
examines the implementation process in one of the SEM’s
companies. The results indicate that AIMMS supports
strategic maintenance decisions, and helps increase system
effectiveness by prioritizing system criticality and focusing on
specific resources that will maximize gains based upon a
return on investment (Baglee, Trimble & MacIntyre, 2007).
IV. CONCLUSIONS
The importance of software maintenance during the lifecycle of software system cannot be over emphasized. Clearly,
the task of developing and executing maintenance concepts
and strategies is very challenging. Yet; if maintenance process
correctly implemented, organizations can realize improvement
in their software availability, reliability and substantial
reduction on maintenance cost. ISO/IEC 14764 provides
managerial strategies that can support the high standards of
engineering in software maintenance process. In the paper, I
did describe the six phases of maintenance processes as
defined by ISO/IEC 14764. These processes are Process
Implementation, Problem and Modification Analysis,
Modification
Implementation,
Maintenance
Review/Acceptance, Migration and Retirement Processes.
This paper has also presented a software maintenance concept
and strategy outside of software engineering domain. A paper
by Baglee & Knowles (2010) discusses maintenance strategy
development in small and medium sized enterprises (SME’s).
The paper focus on how high productivity and quality can be
achieved by means of well-developed maintenance strategies.
The authors provided several methods to improve system
availability through better utilization of maintenance and
production resources. Total Productive Maintenance (TPM) is
one of the examples that have been developed to allow
organizations to strategically direct their resources to the
maintenance tasks.
As pointed out above, there are several models and
approaches of how to perform software maintenance process.
Organizations should seek to adopt maintenance strategies
depending on their business’ need, size and capabilities. ITmanager should examine the key elements of their software
structure beforehand implementing software maintenance
process.
ACKNOWLEDGMENT
This is first draft ONLY - I would like to thank the
anonymous reviewers for their valuable comments and
suggestions to improve the quality of this short paper. I am
also grateful to Dr. Kevin M. Adams for his support and
guidance.
Mohamed EL-Muwaqqat (Mohamed Muaket)
REFERENCES
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
Baglee, D., & Knowles, M. (2010). Maintenance strategy development
within SMEs: the development of an integrated approach. Control &
Cybernetics, 39(1), 275-303.
Pigoski, Thomas. (1997) . Practical Software Maintenance. New York,
NY: John Wiley & Sons, Inc.
IEEE 1219 (1998). IEEE Standard 1219: IEEE Standard for Software
Maintenance. New York: The Institute of Electrical and Electronics
Engineers.
ISO/IEC 12207 (2008) and IEEE 12207 (2008). International standard:
Software engineering – Software life cycle processes. New York:
International Organization for Standardization and Institute of
Electrical and Electronics Engineers.
ISO/IEC 14764 (2006) and IEEE 14764 (2006). International standard:
Software engineering – Software life cycle processes – Software
maintenance.
New
York:
International
Organization
for
Standardization and Institute of Electrical and Electronics Engineers.
(2002) The IEEE website. [Online]. Available: http://www.ieee.org/
M. Shell. (2002) IEEEtran homepage on CTAN. [Online]. Available:
http://www.ctan.org/texarchive/macros/latex/contrib/supported/IEEEtran/
ISO/IEC 15288 (2008) and IEEE 15288 (2008). International Standard:
Systems and Software Engineering –System Life Cycle Processes.
New York: International Organization for Standardization and Institute
of Electrical and Electronics Engineers.
Download