In the name of God Sharif University of Technology, International Branch, Kish Island Dr. Mohsen Sadighi Moshkenani Chapter 17
Outline Maintenance Why maintenance? Importance of maintenance Types of maintenance Maintenance of a given system Corrective maintenance process Some points Maintainability: preconditions Long-term maintenance
Maintenance Definition Error detection and recovery Change Its start point Requirements Design phase Implementation phase Good finishing(s) as the basis for successful maintenance Maintainability and reuse are related to each other
Why maintenance?
Importance of maintenance سال نسبت هزينه هاي نگهداري تعريفمرجع % > هزينه ي اختصاص يافته براي نگهداري و تكامل به كل هزينه هاي نرم افزار [Erlikh, 2000] % > نسبت هزينه هاي نگهداري به بودجه ي سيستم اطلاعاتي ( در 1000 شركت موفق ) [Eastwood, 1993] % > هزينه ي اختصاص يافته براي نگهداري و تكامل به كل هزينه هاي نرم افزار [Moad, 1990] تا 70% هزينه ي نگهداري به بودجه هاي عملياتي سيستم هاي اطلاعات مديريت (MIS) [Huff, 1990] تا 70% هزينه نگهداري به بودجه هاي عملياتي سيستم هاي اطلاعات مديريت (MIS) [Port, 1988] تا 75% تلاش براي نگهداري نرم افزار به كل تلاش هاي مهندسي نرم افزار [McKee, 1984] % > زماني كه نيروهاي نگهداري صرف كرده اند به كل زمان ( در 487 سازمان ) [Lientz and Swanson, 198 1] % هزينه هاي نگهداري به كل هزينه هاي نرم افزار [Zelkowitz et al., 1979]
Types of maintenance Corrective Adaptive Preventive Figure
Types of maintenance
Maintenance of a given system Be careful! To receive correct resources (documents, code, test reports and data and more) Maintenance of a black box is not simple. Reverse engineering is required, different knowledge and method
Corrective maintenance process Figure 17-1
Some points Separate maintenance agreement Explicit maintenance from the beginning Gradual good test and finishing Clear path for maintenance Document it Special attention to maintenance people Availability of the system Consistency No local solutions for global problems
Maintainability: preconditions Good structure Modular Good modules Consistency with other systems Understandable Readability Simplicity Good documents Requirements, design, implementation, user guide, maintenance reports, error reports
Long-term maintenance Configuration management Versioning New products Role of architecture Role of domain engineering and production lines