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.