Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Development Module Code: CST 240 Chapter 6: Software Maintenance Al Khawarizmi International College, AL AIN, U.A.E Lecturer: Karamath Ateeq.

Similar presentations


Presentation on theme: "Software Development Module Code: CST 240 Chapter 6: Software Maintenance Al Khawarizmi International College, AL AIN, U.A.E Lecturer: Karamath Ateeq."— Presentation transcript:

1 Software Development Module Code: CST 240 Chapter 6: Software Maintenance Al Khawarizmi International College, AL AIN, U.A.E Lecturer: Karamath Ateeq

2 Chapter 6: Software Maintenance2 Topics: Chapter 6 6.1 Maintenance Process 6.2 System Documentation 6.3 Program evolution dynamics 6.4 Maintenance Cost 6.5 Maintainability measurement Al Khawarizmi International College, Al Ain, U.A.E

3 Chapter 6: Software Maintenance3 Software Maintenance The process of changing a system after it has been delivered and is in use is called software maintenance. The changes may be like –simple changes to correct coding errors, – more extensive changes to correct design errors – significant enhancement to correct specification error – adding new requirement. Al Khawarizmi International College, Al Ain, U.A.E

4 Chapter 6: Software Maintenance4 Types of software maintenance 1.Corrective Maintenance 2.Adaptive Maintenance 3.Perfective Maintenance 4.Preventive Maintenance Al Khawarizmi International College, Al Ain, U.A.E

5 Chapter 6: Software Maintenance5 Corrective maintenance It is concerned with fixing reported errors in the software. Coding errors are usually relatively cheap to correct, design errors are more expensive as it involves the rewriting of several program components. Requirements errors are the most expensive to repair because of the extensive system redesign which may be necessary. Al Khawarizmi International College, Al Ain, U.A.E

6 Chapter 6: Software Maintenance6 Adaptive maintenance It means changing the software to some new environment such as a different hardware platform or for use with a different operating system. Al Khawarizmi International College, Al Ain, U.A.E

7 Chapter 6: Software Maintenance7 Perfective Maintenance It involves implementing new functional or non-functional system requirements. These requirements are given by the customers as the organization or business changes or expands. Al Khawarizmi International College, Al Ain, U.A.E

8 Chapter 6: Software Maintenance8 Preventive Maintenance Activities which change software to improve future maintainability or reliability or to provide better basis for future enhancement is known as preventive maintenance. Al Khawarizmi International College, Al Ain, U.A.E

9 Chapter 6: Software Maintenance9 Maintenance Process The maintenance process is triggered by a set of change requests from system users management or customers. The cost and impact of these changes are assessed. If the proposal changes are accepted, a new release of the system is planned. This release will usually involve elements of adaptive, corrective and perfective maintenance. The change are implemented and validated and a new version of the system is released. The process then iterates with a new set of changes proposed for the new release. Al Khawarizmi International College, Al Ain, U.A.E

10 Chapter 6: Software Maintenance10 Maintenance Process Change Requests Impact analysis System release planning Change implementation System release Corrective Maintenance Adaptive Maintenance Perfective Maintenance Al Khawarizmi International College, Al Ain, U.A.E

11 Chapter 6: Software Maintenance11 Emergency fault repair process Change requests sometimes relate to system problem that must be tackled urgently. For example, a fault in a customer’s system may have to be quickly corrected to allow normal business to continue. An emergency repair approach is sometimes necessary if the reported problems affect system availability. Al Khawarizmi International College, Al Ain, U.A.E

12 Chapter 6: Software Maintenance12 Emergency fault repair process Change Requests Analyse source code Modify source code Deliver repaired system Al Khawarizmi International College, Al Ain, U.A.E

13 Chapter 6: Software Maintenance13 Disadvantages of emergency repair approach This approach is that the design documents are not updated. The repair should be completed as quickly as possible. A workable solution should be obtained as quickly as possible which may not be the best solution. Further changes becomes more difficult. Al Khawarizmi International College, Al Ain, U.A.E

14 Chapter 6: Software Maintenance14 Maintenance as Iterative Development Instead of viewing maintenance as a separate process, it should normally be considered as an iteration of the development process. New requirements must be formulated and validated, components of the system must be redesigned and implemented and part or all of the system must be tested. Al Khawarizmi International College, Al Ain, U.A.E

15 Chapter 6: Software Maintenance15 Change Requests Change Analyse Requirements update Software development Maintenance as Iterative Development Al Khawarizmi International College, Al Ain, U.A.E

16 Chapter 6: Software Maintenance16 System Documentation Properly produced and maintained system documentation is the main aim of maintenance engineer. The system documents includes all of the documents describing the implementation of the system from the requirements specification to the final acceptance test plan. Al Khawarizmi International College, Al Ain, U.A.E

17 Chapter 6: Software Maintenance17 System Documentation Documents that are produced to aid the maintenance process include: The requirement document A document describing overall system architecture For each program in the system, a description of the architecture of that program. Al Khawarizmi International College, Al Ain, U.A.E

18 Chapter 6: Software Maintenance18 System Documents Program source code with comments where ever necessary. Validation documents describing how each program is validated and how the validation information relates to the requirements. A system maintenance guide. Al Khawarizmi International College, Al Ain, U.A.E

19 Chapter 6: Software Maintenance19 Program Evolution Dynamics Program evolution dynamics is the study of system change. The majority of work in this area has been carried out by Lehman and Belady(1985). From these studies, they proposed a set of ‘laws’ (Lehman’s laws) concerning system change. Al Khawarizmi International College, Al Ain, U.A.E

20 Chapter 6: Software Maintenance20 Lehman’s Laws Continuing change: a program that is used in a real-world environment necessarily must change or it will become less useful in that environment. Increasing complexity: as an evolving program changes, its structure tends to become more complex. Extra resources must be used to preserve and simplify the structure. Al Khawarizmi International College, Al Ain, U.A.E

21 Chapter 6: Software Maintenance21 Large Program evolution: Program evolution is a self-regulating process. System attribute such as size, time between releases and the number of reported errors are different for each system release. Organizational stability: Over a program’s lifetime, its rate of development is approximately constant and independent of the resources devoted to system development. Lehman’s Laws Al Khawarizmi International College, Al Ain, U.A.E

22 Chapter 6: Software Maintenance22 Conservation of familiarity: Over the lifetime of a system, the incremental change in each release is approximately constant. Lehman’s Laws Al Khawarizmi International College, Al Ain, U.A.E

23 Chapter 6: Software Maintenance23 Maintenance Cost Maintenance cost are related to a number of product, process and organizational factors. The principle technical and non-technical factors which affect maintenance are: 1.Module independence: it should be possible to modify one component of a system without effecting other system components. Al Khawarizmi International College, Al Ain, U.A.E

24 Chapter 6: Software Maintenance24 Maintenance cost 2.Programming language: Programs written in high-level language is easier to maintain than the programs written in low level language. 3.Programming style: the way a program is written contributes to its understanding and hence the ease with which it can be modified. Al Khawarizmi International College, Al Ain, U.A.E

25 Chapter 6: Software Maintenance25 Maintenance cost 4.Program validation and testing: If the more time is spent on design validation and program testing, the fewer error in program. So there will be less corrective maintenance. 5.The quality of program documentation: program maintenance will be less for well- documented system compared to systems with poor or incomplete documentation. Al Khawarizmi International College, Al Ain, U.A.E

26 Chapter 6: Software Maintenance26 Maintenance cost 6.Application domain: if the application domain is well understood, the system requirement are likely to be complete. Hence less perfective maintenance will be required. 7.Staff stability: maintenance cost will be reduced if system developers are responsible for maintaining their own programs as they don’t have to spend time to understand the system. Al Khawarizmi International College, Al Ain, U.A.E

27 Chapter 6: Software Maintenance27 Maintenance cost 8.Age of program: as a program is maintained its structure is degraded. The older the program, the maintenance will be more expensive. 9.Dependence of the program on its external environment: if a program is dependent on its external environment it must be modified as the environment changes. Al Khawarizmi International College, Al Ain, U.A.E

28 Chapter 6: Software Maintenance28 Maintenance cost 10.Hardware security: Programs must often be changed /modified to use new hardware which replaces old hardware. Al Khawarizmi International College, Al Ain, U.A.E

29 Chapter 6: Software Maintenance29 cost estimate Estimating the cost involves answering the following questions. 1.How much effort is required to complete each activity? 2.How much time is needed to complete each activity? 3.What is the total cost of each activity? Al Khawarizmi International College, Al Ain, U.A.E

30 Chapter 6: Software Maintenance30 Software cost estimation has 3 uses: To determine the feasibility of the project and to set a price for the customer. In the project planning stage the number of engineers needed must be decided and a schedule must be developed. To make sure how much of work is already been accomplished and how much is left to do. i.e to control the budget. Al Khawarizmi International College, Al Ain, U.A.E

31 Chapter 6: Software Maintenance31 Organizations rely on many techniques and approaches to arrive at the cost estimate. It is necessary to develop a “Model” of cost estimation.There are two types of models- (i) cost models-Eg: cocomo (ii) constraint model- Eg: SLIM. Al Khawarizmi International College, Al Ain, U.A.E

32 Chapter 6: Software Maintenance32 Maintainability measurement A maintainability metric can help management make an informal decision on whether a component should be maintained or completely rewritten to reduce future maintenance costs. Maintainability metric do not measure the cost of making a particular change to a system nor do they predict whether or not a particular component will have to be maintained. But they measure the program complexity. If complexity is high then the maintenance will be very difficult. Al Khawarizmi International College, Abu Dhabi, U.A.E

33 Chapter 6: Software Maintenance33 Maintainability Measurement Process metric may be useful for assessing maintainability. Examples of process metric are: 1.Number of Request for corrective maintenance 2.Average time required for impact analysis. 3.Average time taken to implement a change request. 4.Number of outstanding change request. Al Khawarizmi International College, Al Ain, U.A.E


Download ppt "Software Development Module Code: CST 240 Chapter 6: Software Maintenance Al Khawarizmi International College, AL AIN, U.A.E Lecturer: Karamath Ateeq."

Similar presentations


Ads by Google