maintenance - ida.liu.setddd30/timetable/maintenance.pdfdefinition of maintenance all changes done...

23
Maintenance Basic concepts

Upload: others

Post on 15-Mar-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Maintenance - ida.liu.seTDDD30/timetable/Maintenance.pdfDefinition of maintenance All changes done to software after delivery (IEEE Std 1219) Modifications due to a problem or need

Maintenance

Basic concepts

Page 2: Maintenance - ida.liu.seTDDD30/timetable/Maintenance.pdfDefinition of maintenance All changes done to software after delivery (IEEE Std 1219) Modifications due to a problem or need

Definition of maintenance

All changes done to software after delivery (IEEE Std 1219) Modifications due to a problem or need of improvement

(IEEE/EIA Std 12207) What about products in different releases over a long period?

Page 3: Maintenance - ida.liu.seTDDD30/timetable/Maintenance.pdfDefinition of maintenance All changes done to software after delivery (IEEE Std 1219) Modifications due to a problem or need

Categories of maintenance

Correction Enhancement

Proactive Preventive Perfective

Reactive Corrective Adaptive

0%

10%

20%

30%

40%

50%

60%

Cost

PerfectiveAdaptiveCorrective

Page 4: Maintenance - ida.liu.seTDDD30/timetable/Maintenance.pdfDefinition of maintenance All changes done to software after delivery (IEEE Std 1219) Modifications due to a problem or need

ProcessChange request

Identification

Classification

Time stamp

Impact analysisUnderstanding

Requirementsanalysis

Design

Implementation

Tests at different levels

Configurationmanagement

Delivery

Scheduling

Postponed

Refused

Decision

Answer

Page 5: Maintenance - ida.liu.seTDDD30/timetable/Maintenance.pdfDefinition of maintenance All changes done to software after delivery (IEEE Std 1219) Modifications due to a problem or need

Hypothesis-Driven Understanding Process During Corrective Maintenance of Large Scale Software

byAnneliese von Mayrhauser

andA. Marie Vans

International Conference on Software Maintenance, October 1-3, Bari, Italy, 1997.

Page 6: Maintenance - ida.liu.seTDDD30/timetable/Maintenance.pdfDefinition of maintenance All changes done to software after delivery (IEEE Std 1219) Modifications due to a problem or need

Theory

A Goal or Question drives the process of understanding They can be explicit or implicit According to a certain Strategy, Hypothesis are formed A Strategy can be: Systematic Opportunistic Cross-referencing

Page 7: Maintenance - ida.liu.seTDDD30/timetable/Maintenance.pdfDefinition of maintenance All changes done to software after delivery (IEEE Std 1219) Modifications due to a problem or need

Design of study

Four professional programmers Software at least 40 KLOC 2 hour video/audio recording Think aloud Corrective maintenance Transcription Coding: Actions: stating a goal, stating a hypothesis, supporting actions X

program, top-down (domain), situation (algorithm) Hypothesis type: what, why, how Resolution: confirmed, abandoned, rejected

Page 8: Maintenance - ida.liu.seTDDD30/timetable/Maintenance.pdfDefinition of maintenance All changes done to software after delivery (IEEE Std 1219) Modifications due to a problem or need

Type of hypotheses

Domain level: most in localising faults, procedure/function concepts, environment and tools

Program model: statement execution order, code correctness, variable

Situation model: functionality at procedure level (abstracted from program)

Types: few Why (attitude: I’ll do my part?)

Page 9: Maintenance - ida.liu.seTDDD30/timetable/Maintenance.pdfDefinition of maintenance All changes done to software after delivery (IEEE Std 1219) Modifications due to a problem or need

Hypothesis resolution

Surprisingly many abandoned Explanation: Flexible in approach to comprehension ”Arsenal” approach

Earlier study in porting programs generated fewer hypotheses (38/51). More things unknown in corrective maintenance.

Page 10: Maintenance - ida.liu.seTDDD30/timetable/Maintenance.pdfDefinition of maintenance All changes done to software after delivery (IEEE Std 1219) Modifications due to a problem or need

Hypothesis switching

More than half of hypotheses caused a switch Confirms the belief that the situation model is a bridge between

top-down model and program model

Page 11: Maintenance - ida.liu.seTDDD30/timetable/Maintenance.pdfDefinition of maintenance All changes done to software after delivery (IEEE Std 1219) Modifications due to a problem or need

Dynamic resolution process

Within area of expertise: Many abandoned hypotheses Large steps ”Arsenal” behaviour

Outside expertise: Hard to abandon hypotheses Small steps

Page 12: Maintenance - ida.liu.seTDDD30/timetable/Maintenance.pdfDefinition of maintenance All changes done to software after delivery (IEEE Std 1219) Modifications due to a problem or need

Conclusion

Corrective maintenance has a need to understand software at all levels

There is lot of switching between levels Goal completion is sequential. Support cross-referencing Support flexible starting points

Page 13: Maintenance - ida.liu.seTDDD30/timetable/Maintenance.pdfDefinition of maintenance All changes done to software after delivery (IEEE Std 1219) Modifications due to a problem or need

Method for improvement by understanding the dynamic behaviour in distributed systems

By Johan Moe

Page 14: Maintenance - ida.liu.seTDDD30/timetable/Maintenance.pdfDefinition of maintenance All changes done to software after delivery (IEEE Std 1219) Modifications due to a problem or need

Applications

Page 15: Maintenance - ida.liu.seTDDD30/timetable/Maintenance.pdfDefinition of maintenance All changes done to software after delivery (IEEE Std 1219) Modifications due to a problem or need

Toolbox

Page 16: Maintenance - ida.liu.seTDDD30/timetable/Maintenance.pdfDefinition of maintenance All changes done to software after delivery (IEEE Std 1219) Modifications due to a problem or need

Visualisation

Page 17: Maintenance - ida.liu.seTDDD30/timetable/Maintenance.pdfDefinition of maintenance All changes done to software after delivery (IEEE Std 1219) Modifications due to a problem or need

Traceability

analysis design implementation

Page 18: Maintenance - ida.liu.seTDDD30/timetable/Maintenance.pdfDefinition of maintenance All changes done to software after delivery (IEEE Std 1219) Modifications due to a problem or need

Benefits from good traceability

Fulfilment of requirements can be assured Design rationale can be sought in affected requirements Change impact analysis forwards and backwards Cost estimations are made possible System understanding becomes easier Maintenance and testing are facilitated

Page 19: Maintenance - ida.liu.seTDDD30/timetable/Maintenance.pdfDefinition of maintenance All changes done to software after delivery (IEEE Std 1219) Modifications due to a problem or need

Practical investigation in traceability

From Lindvall and Sandahl: Practical Implications of Traceability, Software – Practice and Experience, 26(10), 1161-1180.

Conducted at Ericsson’s PMR project Example of successful project Method and tool: Forward engineering, Objectory SE (forerunner of

UML and IBM Rational Updating of models was emphasised by the project leader

Page 20: Maintenance - ida.liu.seTDDD30/timetable/Maintenance.pdfDefinition of maintenance All changes done to software after delivery (IEEE Std 1219) Modifications due to a problem or need

Are these the same models?

Page 21: Maintenance - ida.liu.seTDDD30/timetable/Maintenance.pdfDefinition of maintenance All changes done to software after delivery (IEEE Std 1219) Modifications due to a problem or need

Three-to-one traceability

Page 22: Maintenance - ida.liu.seTDDD30/timetable/Maintenance.pdfDefinition of maintenance All changes done to software after delivery (IEEE Std 1219) Modifications due to a problem or need

Tracing non-functional requirements in models

Elicitation

Analysis

Design

#subscribers#messages

#managedObjects#invocations

#instances#bps

Use Case

State

Class

Interaction

Deployment

UML Diagrams

Capacity Budget:Use Case may use X% CPUMax latency given throughput requirement

Page 23: Maintenance - ida.liu.seTDDD30/timetable/Maintenance.pdfDefinition of maintenance All changes done to software after delivery (IEEE Std 1219) Modifications due to a problem or need

Design for maintenance

Configuration management Change control Identify change-prone properties Factor out parameters Explicitly handle rules and equations

Low coupling High cohesion Low McCabe complexity