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

Slides:



Advertisements
Similar presentations
Software Re-engineering
Advertisements

Software Re-engineering
Chapter 27 Software Change.
Chapter 11 Software Evolution
SWE 316: Software Design and Architecture Objectives Lecture # 23 Software Reengineering SWE 316: Software Design and Architecture  To describe the activities.
TCS2411 Software Engineering1 Software Life Cycle “What happens in the ‘life’ of software”
SOFTWARE MAINTENANCE 24 March 2013 William W. McMillan.
TCS2411 Software Engineering1 Software Design Principles “Producing the software blueprint”
Computer-Aided Software Engineering
TCS2411 Software Engineering1 System Engineering and Analysis “What is the role of the software product?”
Data-Flow Oriented Design
1 / 24 CS 425/625 Software Engineering Software Evolution Based on Chapter 21 of the textbook [SE-8] Ian Sommerville, Software Engineering, 8 th Ed., Addison-Wesley,
Software Configuration Management
Software Reuse Building software from reusable components Objectives
Introduction to Software Evolution and Maintenance
Software Evolution Managing the processes of software system change
Dr Kettani, Spring 2002 Software Engineering IIFrom Sommerville, 6th edition Software change l Managing the processes of software system change.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
TCS2411 Software Engineering1 Functional and Behavioural Modeling “What is the software supposed to do?”
Software evolution.
TCS2411 Software Engineering1 Software Design Notations “Documenting the software blueprint”
Software evolution.
TCS2411 Software Engineering1 Software Configuration Management “The only constant is change...”
TCS2411 Software Engineering1 Software Requirements Specification “Writing down the requirements”
TCS2411 Software Engineering1 Course Overview zLectures: attendance compulsory zTutorials: attendance compulsory y(80%) for both lecturer & Tutorial zAssessment.
Driss Kettani Sommerville, 6th edition Software Engineering II Software re-engineering l Reorganising and modifying existing software systems to make them.
Software maintenance Managing the processes of system change.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Chapter 27 Software Change.
Software Reengineering 2003 년 12 월 2 일 최창익, 고광 원.
Software Re-engineering
Chapter 9 – Software Evolution and Maintenance
SEG Software Maintenance1 Software Maintenance “The modification of a software product after delivery to correct faults, to improve performance or.
Lecture # 22 Software Evolution
Software evolution. Objectives l To explain why change is inevitable if software systems are to remain useful l To discuss software maintenance and maintenance.
Software change  Managing the processes of software system change.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Software change l Managing the processes of software system change.
Software Engineering Lecture 20 Software Maintenance.
Software Engineering CS3003 Lecture 3 Software maintenance and evolution.
Chapter 3: Software Maintenance Process Omar Meqdadi SE 3860 Lecture 3 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Software change l Managing the processes of software system change.
SOFTWARE MAINTENANCE 1. TOPICS TO BE DISCUSSED.. Definition of Maintenance Software Maintenance Types of Maintenance Maintenance Process Need of Maintenance.
Manag ing Software Change CIS 376 Bruce R. Maxim UM-Dearborn.
Software evolution l Software evolution is the term used in software engineering (specifically software maintenance) to refer to the process of developing.
Lecture 14 Maintaining the System and Managing Software Change SFDV Principles of Information Systems.
Chapter 3: Software Project Management Metrics
Configuration Management and Change Control Change is inevitable! So it has to be planned for and managed.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution 1.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 1 CO7206 System Reengineering 4.2 Software Reengineering Most slides are Slides.
Chapter 5: Software Re-Engineering Omar Meqdadi SE 3860 Lecture 5 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Software Maintenance Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
HNDIT23082 Lecture 06:Software Maintenance. Reasons for changes Errors in the existing system Changes in requirements Technological advances Legislation.
1 Software Maintenance The process of changing the system after it has been delivered and in operation Software change is inevitable –New requirements.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution 2.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Chapter 9 – Software Evolution 1Chapter 9 Software evolution.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
© SERG Reverse Engineering (Software Maintenance & Reengineering) Software Maintenance Managing the processes of system change.
1 / 14 CS 425/625 Software Engineering Software Change Based on Chapter 27 of the textbook [SE-6] Ian Sommerville, Software Engineering, 6 th Ed., Addison-Wesley,
CS223: Software Engineering Lecture 33: Software Maintenance.
CS223: Software Engineering Lecture 34: Software Maintenance.
Software Development Module Code: CST 240 Chapter 6: Software Maintenance Al Khawarizmi International College, AL AIN, U.A.E Lecturer: Karamath Ateeq.
Software Configuration Management
Environment Assessment
Software Life Cycle “What happens in the ‘life’ of software”
CS 425/625 Software Engineering Software Evolution
Chapter 8 Software Evolution.
Software Maintenance Main issues: why maintenance is such an issue
Lecture 06:Software Maintenance
Software Re-engineering and Reverse Engineering
Presentation transcript:

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

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

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?”

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

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

TCS2411 Software Engineering6 Maintenance Effort Distribution

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

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

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

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

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

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

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

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

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

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

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

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

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