Presentation is loading. Please wait.

Presentation is loading. Please wait.

TCS2411 Software Engineering1 Software Maintenance “Taking care of the software”

Similar presentations


Presentation on theme: "TCS2411 Software Engineering1 Software Maintenance “Taking care of the software”"— Presentation transcript:

1

2 TCS2411 Software Engineering1 Software Maintenance “Taking care of the software”

3 TCS2411 Software Engineering2 Lecture Objectives zTo understand the activities in software maintenance zTo identify the factors that affect the effectiveness of maintenance activities zTo describe the different types of maintenance activities

4 TCS2411 Software Engineering3 A Few Questions z“Have you tried to modify someone else’s program?” z“Would you like someone else to modify your program?” z“How easy is it to update your program?” z“Have you looked at a program that you have completed a few months ago and tried to make changes to it?”

5 TCS2411 Software Engineering4 Software Maintenance zProcess of changing a system after it has been delivered and is in use zLast phase in software engineering process zEvolution of software - changing it to maintain its ability to survive zGoal of software engineering - to ease the maintenance process & reduce costs

6 TCS2411 Software Engineering5 Maintenance Activities zCorrective Maintenance - diagnosis and correction of reported errors zAdaptive Maintenance - modifications to properly interface with changing environments  new hardware, OS, devices zPerfective Maintenance - implementing new system requirements after system is successful

7 TCS2411 Software Engineering6 Maintenance Effort Distribution

8 TCS2411 Software Engineering7 Maintainability zThe ease with which software can be understood, corrected, adapted and/or enhanced zKey goal that guides the SE process zImportant quality to be considered in all activities including design, coding and testing

9 TCS2411 Software Engineering8 Classic Maintenance Problems zDifficult or impossible to trace evolution of software through many versions/releases zDifficult or impossible to trace the process through which software was created zDifficult to understand “someone else’s” program z“Someone else” is often not around to explain

10 TCS2411 Software Engineering9 Classic Maintenance Problems (Continued) zDocumentation doesn’t exist or is awful zMost software is not designed for change zMaintenance has not been viewed as glamorous work

11 TCS2411 Software Engineering10 Maintenance Cost Factors zNon-technical factors yApplication domain yStaff stability yProgram age yExternal environment yHardware stability zTechnical factors yModule independence yProgramming language yProgramming style yProgram Validation yDocumentation yConfiguration Management

12 TCS2411 Software Engineering11 Structured vs Unstructured Maintenance Configuration? Evaluate design Plan approach Modify design Recode Evaluate design Evaluate code Maintenance request ? Review Test and release Software Code

13 TCS2411 Software Engineering12 Structured Maintenance zSoftware configuration exists zTasks include evaluation of design documentation, assessment of change impact, modify design, review, & coding zRegression tests conducted before release zCan be done due to earlier SE approach zAmount of wasted effort reduced, overall quality of change/correction is enhanced

14 TCS2411 Software Engineering13 Unstructured Maintenance zOnly source code available zTasks include evaluation of code, make changes, review zImpact of changes difficult to assess zRegression testing cannot be done because no records of previous testing zDifficulties due to development without well-defined methodology

15 TCS2411 Software Engineering14 Preventive Maintenance zSoftware is changed to improve future maintainability or reliability zMore common term in maintenance of hardware and other physical systems zCharacterised by yreverse engineering yre-engineering

16 TCS2411 Software Engineering15 Software Reverse Engineering zOriginally a process in hardware - disassemble a hardware product to understand the design and specifications zIn software, it’s the process of analysing a program to create a representation at a higher level of abstraction zUsually from the source code or executable code, create the design and specifications of a software

17 TCS2411 Software Engineering16 Reverse Engineering Process System to be re-engineered System information store Traceability materials Data structured diagrams Program structured diagrams Automated analysis Manual annotation Document generation

18 TCS2411 Software Engineering17 Software Re- engineering zTakes information of an existing system and restructures the system to achieve higher quality zUsually takes the result of reverse engineering as starting point zMakes the system more maintainable - improve the structure, create new documentation, and easier to understand

19 TCS2411 Software Engineering18 Re-engineering Activities zSource code translation yLanguage upgrade, new platform, new language zProgram restructuring yStructure corrupted in maintenance, improve logic, program modularisation zData re-engineering yClean up data problems and inconsistencies, database migration

20 TCS2411 Software Engineering19 References z“Software Engineering: A Practitioner’s Approach” 5th Ed. by Roger S. Pressman, Mc-Graw-Hill, 2001 z“Software Engineering” by Ian Sommerville, Addison-Wesley, 2001


Download ppt "TCS2411 Software Engineering1 Software Maintenance “Taking care of the software”"

Similar presentations


Ads by Google