11/09/2015dr andy brooks1 msc software maintenance ms viðhald hugbúnaðar fyrirlestrar 1 & 2...

36
04/07/22 Dr Andy Brooks 1 MSc Software Maintenance MS Viðhald hugbúnaðar Fyrirlestrar 1 & 2 The SWEBOK Chapter on Software Maintenance © IEEE http://www.swebok.org/

Upload: scot-newton

Post on 11-Jan-2016

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 11/09/2015Dr Andy Brooks1 MSc Software Maintenance MS Viðhald hugbúnaðar Fyrirlestrar 1 & 2 The SWEBOK Chapter on Software Maintenance © IEEE

21/04/23 Dr Andy Brooks 1

MSc Software MaintenanceMS Viðhald hugbúnaðar

Fyrirlestrar 1 & 2The SWEBOK Chapter on Software Maintenance © IEEE

http://www.swebok.org/

Page 2: 11/09/2015Dr Andy Brooks1 MSc Software Maintenance MS Viðhald hugbúnaðar Fyrirlestrar 1 & 2 The SWEBOK Chapter on Software Maintenance © IEEE

21/04/23 Dr Andy Brooks 2

Software Maintenance

1. SoftwareMaintenance

Fundamentals

2. Key Issues inSoftware

Maintenance

3. MaintenanceProcess

4. Techniques forMaintenance

Definitions andTerminology

Nature ofMaintenance

Need for Maintenance

Majority ofMaintenance Costs

Evolution ofSoftware

Categories ofMaintenance

Technical Issues

Management Issues

Maintenance Cost Estimation

MaintenanceMeasurement

MaintenanceProcesses

MaintenanceActivities

ProgramComprehension

Re-engineering

Reverse Engineering

Page 3: 11/09/2015Dr Andy Brooks1 MSc Software Maintenance MS Viðhald hugbúnaðar Fyrirlestrar 1 & 2 The SWEBOK Chapter on Software Maintenance © IEEE

21/04/23 Dr Andy Brooks 3

1.1 Definitions and Terminology

• The IEEE Standard for Software Maintenance (IEEE 1219) defines maintenance as the modification of a software product after delivery to correct faults, to improve performance or other attributes, or to adapt the product to a modified environment.

• The IEEE/EIA 12207 Standard defines maintenance as modification to code and associated documentation due to a problem or the need for improvement.

1. Software Maintenance Fundamentals

Page 4: 11/09/2015Dr Andy Brooks1 MSc Software Maintenance MS Viðhald hugbúnaðar Fyrirlestrar 1 & 2 The SWEBOK Chapter on Software Maintenance © IEEE

21/04/23 Dr Andy Brooks 4

1.2 Nature of Maintenance

• “Modification requests are – logged and tracked,

– the impact of proposed changes determined,

– code and other software artifacts are modified,

– testing is conducted, – and a new version of the software product released.”

• “Maintainers can learn from the developer´s knowledge of the software.”

1. Software Maintenance Fundamentals

Page 5: 11/09/2015Dr Andy Brooks1 MSc Software Maintenance MS Viðhald hugbúnaðar Fyrirlestrar 1 & 2 The SWEBOK Chapter on Software Maintenance © IEEE

21/04/23 Dr Andy Brooks 5

1.3 Need for Maintenance• “Maintenance must be performed in order to:

– Correct faults– Improve the design– Implement enhancements– Interface with other systems– Adapt programs so that different hardware, software,

system features, and telecommunications facilities can be used

– Migrate legacy software– Retire software”

1. Software Maintenance Fundamentals

Page 6: 11/09/2015Dr Andy Brooks1 MSc Software Maintenance MS Viðhald hugbúnaðar Fyrirlestrar 1 & 2 The SWEBOK Chapter on Software Maintenance © IEEE

21/04/23 Dr Andy Brooks 6

Some things a maintainer does

• “Maintain control over the software´s day-to-day functions

• Maintain control over software modification

• Perfecting existing functions

• Preventing software performance from degrading to unacceptable levels”

1. Software Maintenance Fundamentals

Page 7: 11/09/2015Dr Andy Brooks1 MSc Software Maintenance MS Viðhald hugbúnaðar Fyrirlestrar 1 & 2 The SWEBOK Chapter on Software Maintenance © IEEE

21/04/23 Dr Andy Brooks 7

1.4 Majority of Maintenance Costs

• “Maintenance consumes a major share of software life cycle financial resources.”

• But studies and surveys have shown that “over 80% of the maintenance effort is used for non-corrective actions”.

• Quality of software design, construction, documentation, and testing affects software maintenance costs.

1. Software Maintenance Fundamentals

Page 8: 11/09/2015Dr Andy Brooks1 MSc Software Maintenance MS Viðhald hugbúnaðar Fyrirlestrar 1 & 2 The SWEBOK Chapter on Software Maintenance © IEEE

21/04/23 Dr Andy Brooks 8

1.5 Evolution of Software

• Lehman has studied software maintenance and evolution for over 20 years, leading to ‘Lehman´s Laws’.

E.g.Increasing complexity — As a program is evolved, its complexity increases unless work is done to maintain or reduce it.

1. Software Maintenance Fundamentals

Page 9: 11/09/2015Dr Andy Brooks1 MSc Software Maintenance MS Viðhald hugbúnaðar Fyrirlestrar 1 & 2 The SWEBOK Chapter on Software Maintenance © IEEE

21/04/23 Dr Andy Brooks 9

1.6 Categories of Maintenance

• “Corrective maintenance: reactive modification of a software product performed after delivery to correct discovered problems.”

• “Adaptive maintenance: Modification of a software product performed after delivery to keep a software product usable in a changed or changing environment.”

1. Software Maintenance Fundamentals

Page 10: 11/09/2015Dr Andy Brooks1 MSc Software Maintenance MS Viðhald hugbúnaðar Fyrirlestrar 1 & 2 The SWEBOK Chapter on Software Maintenance © IEEE

21/04/23 Dr Andy Brooks 10

1.6 Categories of Maintenance

• “Perfective maintenance: Modification of a software product after delivery to improve performance or maintainability.”

• “Preventive maintenance: Modification of a software product after delivery to detect and correct latent faults in the software product before they become effective faults.”

1. Software Maintenance Fundamentals

Page 11: 11/09/2015Dr Andy Brooks1 MSc Software Maintenance MS Viðhald hugbúnaðar Fyrirlestrar 1 & 2 The SWEBOK Chapter on Software Maintenance © IEEE

21/04/23 Dr Andy Brooks 11

2.1.1 Limited Understanding

• How quickly can maintainers make changes or corrections to software that they did not write?

• 40%-60% of the maintenance effort is devoted to understanding the software.

• Comprehension is difficult in the absence of documentation and when the original developers are unavailable...

2. Key Issues in Software Maintenance 2.1 Technical Issues

Page 12: 11/09/2015Dr Andy Brooks1 MSc Software Maintenance MS Viðhald hugbúnaðar Fyrirlestrar 1 & 2 The SWEBOK Chapter on Software Maintenance © IEEE

21/04/23 Dr Andy Brooks 12

2.1.2 Testing

• Repeating all the the testing after a modification can be very expensive in terms of time and money.

• Regression testing (selective retesting) is important to maintenance.

• Testing needs to be coordinated when different problems are being worked on at the same time.

2. Key Issues in Software Maintenance 2.1 Technical Issues

Page 13: 11/09/2015Dr Andy Brooks1 MSc Software Maintenance MS Viðhald hugbúnaðar Fyrirlestrar 1 & 2 The SWEBOK Chapter on Software Maintenance © IEEE

21/04/23 Dr Andy Brooks 13

2.1.3 Impact Analysis

• “... the objectives of impact analysis are:– Determination of the scope of the change in

order to plan and implement the work– Development of accurate estimates of

resources needed to perform the work– Analysis of the cost/benefits of the requested

change– Communication to others of the complexity of

a given change”

2. Key Issues in Software Maintenance 2.1 Technical Issues

Page 14: 11/09/2015Dr Andy Brooks1 MSc Software Maintenance MS Viðhald hugbúnaðar Fyrirlestrar 1 & 2 The SWEBOK Chapter on Software Maintenance © IEEE

21/04/23 Dr Andy Brooks 14

2.1.4 Maintainability

• “IEEE [IEEE610.12-90] defines maintainabiliy as the ease with which software can be maintained, enhanced, adapted, or corrected to satisfy specified requirements.”

• “... the presence of systematic and mature processes, techniques, and tools helps to enhance the maintainability of a system.”

2. Key Issues in Software Maintenance 2.1 Technical Issues

Page 15: 11/09/2015Dr Andy Brooks1 MSc Software Maintenance MS Viðhald hugbúnaðar Fyrirlestrar 1 & 2 The SWEBOK Chapter on Software Maintenance © IEEE

21/04/23 Dr Andy Brooks 15

2.2.1 Alignment with organizational objectives

• The return on investment for software maintenance is less clear than the initial development.

• “... the view at senior management level is often a major activity consuming significant resources with no clear quantifiable benefit for the organization.”

2. Key Issues in Software Maintenance 2.2 Management Issues

Page 16: 11/09/2015Dr Andy Brooks1 MSc Software Maintenance MS Viðhald hugbúnaðar Fyrirlestrar 1 & 2 The SWEBOK Chapter on Software Maintenance © IEEE

21/04/23 Dr Andy Brooks 16

2.2.2 Staffing

• “Maintenance is often not viewed as glamorous work.”

• “Software maintenance personnel are frequently viewed as second-class citizens and morale therefore suffers.”

2. Key Issues in Software Maintenance 2.2 Management Issues

Page 17: 11/09/2015Dr Andy Brooks1 MSc Software Maintenance MS Viðhald hugbúnaðar Fyrirlestrar 1 & 2 The SWEBOK Chapter on Software Maintenance © IEEE

21/04/23 Dr Andy Brooks 17

2.2.3 Process

• “A software process is a set of activities, methods, practices, and transformations which people use to develop and maintain software and the associated products.”

• “At the process level, software maintenance activities share much in common with software development (for example, software configuration management is a crucial activity in both).

2. Key Issues in Software Maintenance 2.2 Management Issues

Page 18: 11/09/2015Dr Andy Brooks1 MSc Software Maintenance MS Viðhald hugbúnaðar Fyrirlestrar 1 & 2 The SWEBOK Chapter on Software Maintenance © IEEE

21/04/23 Dr Andy Brooks 18

2.2.4 Organizational aspects of maintenance

• “The team that develops the software is not necessarily assigned to maintain the software once it is operational.”

• “many pros and cons”

• “What is important is the delegation or assignment of the maintenance responsibility to a single group or person, regardless of the organization´s structure.”

2. Key Issues in Software Maintenance 2.2 Management Issues

Page 19: 11/09/2015Dr Andy Brooks1 MSc Software Maintenance MS Viðhald hugbúnaðar Fyrirlestrar 1 & 2 The SWEBOK Chapter on Software Maintenance © IEEE

21/04/23 Dr Andy Brooks 19

2.2.5 Outsourcing

• Software maintenance which is not mission critical can be outsourced.

• “Outsourcing companies typically spend a number of months assessing the software before they will enter into a contractual relationship.”

• One report states that “50% of outsourcers provide services without any clear service-level agreement”.

2. Key Issues in Software Maintenance 2.2 Management Issues

Page 20: 11/09/2015Dr Andy Brooks1 MSc Software Maintenance MS Viðhald hugbúnaðar Fyrirlestrar 1 & 2 The SWEBOK Chapter on Software Maintenance © IEEE

21/04/23 Dr Andy Brooks 20

2.3.1 Cost Estimation

• Impact analysis identifies systems and products affected by a software change request and yields an estimate of the resources required.

• ISO/IEC14764 states “the two most popular approaches to estimating resources for software maintenance are the use of parametric models and the use of experience”.

2. Key Issues in Software Maintenance 2.3 Maintenance Cost Estimation

Page 21: 11/09/2015Dr Andy Brooks1 MSc Software Maintenance MS Viðhald hugbúnaðar Fyrirlestrar 1 & 2 The SWEBOK Chapter on Software Maintenance © IEEE

21/04/23 Dr Andy Brooks 21

2.3.2 Parametric models

• Expert judgement and analogical reasoning can be used to complement the output from parametric models in reaching an estimate.

2.3.3 Experience

• Data from past projects are used to develop models.

2. Key Issues in Software Maintenance 2.3 Maintenance Cost Estimation

Page 22: 11/09/2015Dr Andy Brooks1 MSc Software Maintenance MS Viðhald hugbúnaðar Fyrirlestrar 1 & 2 The SWEBOK Chapter on Software Maintenance © IEEE

21/04/23 Dr Andy Brooks 22

2.4.1 Specific Measures

• Analyzability– “Measures of the maintainer´s effort or

resources expended in trying to diagnose deficiencies or causes of failure, or in identifying parts to be modified.”

• Changeability– “Measures of the maintainer´s effort associated

with implementing a specified modification.”

2. Key Issues in Software Maintenance 2.4 Software Maintenance Measurement

Page 23: 11/09/2015Dr Andy Brooks1 MSc Software Maintenance MS Viðhald hugbúnaðar Fyrirlestrar 1 & 2 The SWEBOK Chapter on Software Maintenance © IEEE

21/04/23 Dr Andy Brooks 23

2.4.1 Specific Measures

• Stability– “Measures of the unexpected behavior of

software, including that encountered during testing.”

• Testability– “Measures of the maintainers´ and users´ effort

in trying to test the modified software.”

2. Key Issues in Software Maintenance 2.4 Software Maintenance Measurement

Page 24: 11/09/2015Dr Andy Brooks1 MSc Software Maintenance MS Viðhald hugbúnaðar Fyrirlestrar 1 & 2 The SWEBOK Chapter on Software Maintenance © IEEE

21/04/23 Dr Andy Brooks 24

3.1 Maintenance Processes3. Maintenance Process

Classification&

Identification

Analysis

Design

Implementation

System Test

Acceptance Test

Delivery

The IEEE 1219-98 Maintenance Process Activities

ModificationRequest

Page 25: 11/09/2015Dr Andy Brooks1 MSc Software Maintenance MS Viðhald hugbúnaðar Fyrirlestrar 1 & 2 The SWEBOK Chapter on Software Maintenance © IEEE

21/04/23 Dr Andy Brooks 25

3.2.1 Unique Activities3. Maintenance Process 3.2 Maintenance Activities

• Transition– “sequence of activities during which software is

transferred progressively from the developer to the maintainer”

• Modification Request acceptance/rejection– “work over a certain size/effort/complexity may be

rejected by maintainers and rerouted to a developer”• Modification Request and Problem Report Help

Desk– “end-user support function that triggers the

assessment, prioritization, and costing of modification requests”

Page 26: 11/09/2015Dr Andy Brooks1 MSc Software Maintenance MS Viðhald hugbúnaðar Fyrirlestrar 1 & 2 The SWEBOK Chapter on Software Maintenance © IEEE

21/04/23 Dr Andy Brooks 26

3.2.1 Unique Activities3. Maintenance Process 3.2 Maintenance Activities

• Impact Analysis• Software Support

– “help and advice to users concerning a request for information (for example, business rules, validation, data meaning and ad-hoc requests/reports)”

• “Service Level Agreements and specialized (domain-specific) maintenance contracts which are the responsibility of the maintainers”

Page 27: 11/09/2015Dr Andy Brooks1 MSc Software Maintenance MS Viðhald hugbúnaðar Fyrirlestrar 1 & 2 The SWEBOK Chapter on Software Maintenance © IEEE

21/04/23 Dr Andy Brooks 27

3.2.2 Supporting Activities3. Maintenance Process 3.2 Maintenance Activities

• software maintenance planning, software configuration management, verification and validation, software quality assurance, reviews, audits, and user training...

Page 28: 11/09/2015Dr Andy Brooks1 MSc Software Maintenance MS Viðhald hugbúnaðar Fyrirlestrar 1 & 2 The SWEBOK Chapter on Software Maintenance © IEEE

21/04/23 Dr Andy Brooks 28

3.2.3 Maintenance Planning Activity3. Maintenance Process 3.2 Maintenance Activities

• “Release/version planning activity– Collect the dates of availability of individual

requests– Agree with users on the content of subsequent

releases/versions– Identify potential conflicts and develop

alternatives– Assess the risk of a given release and develop

a back-out plan in case problems arise– Inform all the stakeholders”

Page 29: 11/09/2015Dr Andy Brooks1 MSc Software Maintenance MS Viðhald hugbúnaðar Fyrirlestrar 1 & 2 The SWEBOK Chapter on Software Maintenance © IEEE

21/04/23 Dr Andy Brooks 29

3.2.3 Maintenance Planning Activity3. Maintenance Process 3.2 Maintenance Activities

• “A software maintenance plan should specify how users will request software modifications or report problems.”

• “At the highest level, the maintenance organization will have to conduct business planning activities (budgetary, financial, and human resources) just like all other divisions of the organization.”

Page 30: 11/09/2015Dr Andy Brooks1 MSc Software Maintenance MS Viðhald hugbúnaðar Fyrirlestrar 1 & 2 The SWEBOK Chapter on Software Maintenance © IEEE

21/04/23 Dr Andy Brooks 30

3.2.4 Software Configuration Management3. Maintenance Process 3.2 Maintenance Activities

• “Software configuration management procedures should provide for the verification, validation, and audit of each step required to identify, authorize, implement, and release the software product.”

• “It is not sufficient to simply track Modification Requests or Problem Reports. The software product and any changes made to it must be controlled.”

Page 31: 11/09/2015Dr Andy Brooks1 MSc Software Maintenance MS Viðhald hugbúnaðar Fyrirlestrar 1 & 2 The SWEBOK Chapter on Software Maintenance © IEEE

21/04/23 Dr Andy Brooks 31

3.2.5 Software Quality3. Maintenance Process 3.2 Maintenance Activities

• “The activities and techniques for Software Quality Assurance (SQA), V&V, reviews, and audits must be selected in concert with all the other processes to achieve the desired level of quality.”

Page 32: 11/09/2015Dr Andy Brooks1 MSc Software Maintenance MS Viðhald hugbúnaðar Fyrirlestrar 1 & 2 The SWEBOK Chapter on Software Maintenance © IEEE

21/04/23 Dr Andy Brooks 32

4.1 Program Comprehension4. Techniques for Maintenance

• “Programmers spend considerable time in reading and understanding programs in order to implement changes.”

• “Code browsers are key tools for program comprehension.”

• “Clear and concise documentation can aid in program comprehension.”

Page 33: 11/09/2015Dr Andy Brooks1 MSc Software Maintenance MS Viðhald hugbúnaðar Fyrirlestrar 1 & 2 The SWEBOK Chapter on Software Maintenance © IEEE

21/04/23 Dr Andy Brooks 33

4.2 Reengineering4. Techniques for Maintenance

• “... defined as the examination and alteration of software to reconstitute it in a new form”

• “It is often not undertaken to improve maintainability, but to replace aging legacy software.”

Page 34: 11/09/2015Dr Andy Brooks1 MSc Software Maintenance MS Viðhald hugbúnaðar Fyrirlestrar 1 & 2 The SWEBOK Chapter on Software Maintenance © IEEE

21/04/23 Dr Andy Brooks 34

4.3 Reverse engineering4. Techniques for Maintenance

• “... is the process of analyzing software to identify the software´s components and their inter-relationships and to create representations of the software in another form or at higher levels of abstraction.”

• “Reverse engineering is passive:it does not change the software, or result in new software.”

Page 35: 11/09/2015Dr Andy Brooks1 MSc Software Maintenance MS Viðhald hugbúnaðar Fyrirlestrar 1 & 2 The SWEBOK Chapter on Software Maintenance © IEEE

21/04/23 Dr Andy Brooks 35

4.3 Reverse engineering4. Techniques for Maintenance

• “... data reverse engineering has gained in importance over the last few years where logical schemas are recovered from physical databases.”

Page 36: 11/09/2015Dr Andy Brooks1 MSc Software Maintenance MS Viðhald hugbúnaðar Fyrirlestrar 1 & 2 The SWEBOK Chapter on Software Maintenance © IEEE

21/04/23 Dr Andy Brooks 36

Refactoring4. Techniques for Maintenance

• “Refactoring is program transformation which reorganizes a program without changing its behavior... that seeks to improve program structure.”