Contents Requirements Introduction Analysis Specification Requirements Planning Design

  • Slides: 17
Download presentation
Contents Requirements Introduction Analysis Specification Requirements Planning Design Engineering Coding Project Management Testing Software

Contents Requirements Introduction Analysis Specification Requirements Planning Design Engineering Coding Project Management Testing Software Design Installation Detailed Design and Coding Operation and Maintenance Quality Assurance Software Maintenance PVK-HT 03 bella@cs. umu. se 1

Software Maintenance Process The most expensive part of the software lifecycle! Requirements Change Request

Software Maintenance Process The most expensive part of the software lifecycle! Requirements Change Request Impact Analysis Release Planning Change Design Implementation Test PVK-HT 03 bella@cs. umu. se Release Change 2

Ian Sommerville 1995 Software Engineering, 5 th edition. 3

Ian Sommerville 1995 Software Engineering, 5 th edition. 3

Impact Analysis An Impact Analysis o identifies all systems/system products affected by a change

Impact Analysis An Impact Analysis o identifies all systems/system products affected by a change request developing an estimate of the resources needed to accomplish the change o Steps: 1. Evaluate Change Requests 2. Estimate Resources PVK-HT 03 bella@cs. umu. se 4

Types of Maintenance Corrective Adaptive Perfective Preventive PVK-HT 03 bella@cs. umu. se 5

Types of Maintenance Corrective Adaptive Perfective Preventive PVK-HT 03 bella@cs. umu. se 5

Corrective Maintenance Focuses on fixing defects Is a reactive process 1. I. E. Defects

Corrective Maintenance Focuses on fixing defects Is a reactive process 1. I. E. Defects generally need to be corrected either immediately or in the near future Defects o Refer to the system not performing as originally intended or as specified in the requirements PVK-HT 03 bella@cs. umu. se 6

Adaptive Maintenance Includes all work related to how the software functions o I. E.

Adaptive Maintenance Includes all work related to how the software functions o I. E. Relates to enhancing software functionality Includes all changes to meet the evolving needs of the user and the environment o I. E. System changes, additions, insertions, deletions, modifications, extensions and enhancements PVK-HT 03 bella@cs. umu. se 7

Perfective Maintenance Includes all efforts to improve the quality of the software Includes restructuring

Perfective Maintenance Includes all efforts to improve the quality of the software Includes restructuring code, creating and updating documentation, improving reliability or efficiency PVK-HT 03 bella@cs. umu. se 8

Preventive Maintenance Preventing system performance from degrading to unacceptable levels “Occurs when software is

Preventive Maintenance Preventing system performance from degrading to unacceptable levels “Occurs when software is changed to improve future supportability or reliability, or to provide the basis for future enhancements. ” Pressman, 1992 Maintenance work in the above categories is often performed concurrently PVK-HT 03 bella@cs. umu. se 9

Use of Maintenance Time *See [Schach 97]. **See [Somm 96]. ***See [Pfleeger 98]. PVK-HT

Use of Maintenance Time *See [Schach 97]. **See [Somm 96]. ***See [Pfleeger 98]. PVK-HT 03 bella@cs. umu. se 10

Maintenance Metrics Control complexity Data complexity Length of identifier names Program comments Coupling Cohesion

Maintenance Metrics Control complexity Data complexity Length of identifier names Program comments Coupling Cohesion Degree of user interaction PVK-HT 03 bella@cs. umu. se 11

Software Maintenance Summary o There are 4 categories of maintenance o corrective, adaptive, perfective,

Software Maintenance Summary o There are 4 categories of maintenance o corrective, adaptive, perfective, preventative o There is a defined maintenance process, which ensures the delivery of quality software o A procedure with 7 steps. PVK-HT 03 bella@cs. umu. se 12

Configuration Management New versions of software systems are created as they change o For

Configuration Management New versions of software systems are created as they change o For different machines/OS o Offering different functionality o Tailored for particular user requirements Configuration management is concerned with managing evolving software systems o System change is a team activity o CM aims to control the costs and effort involved in making changes to a system PVK-HT 03 bella@cs. umu. se 13

Version and release management Invent identification scheme for system versions Plan when new system

Version and release management Invent identification scheme for system versions Plan when new system version is to be produced Ensure that version management procedures and tools are properly applied Plan and distribute new system releases PVK-HT 03 bella@cs. umu. se 14

Storing Versions Naive: Separate files for each version Version handling by numbering schemes Double

Storing Versions Naive: Separate files for each version Version handling by numbering schemes Double Maintenance Problem Solution: One original version plus deltas o Forward deltas o Backward deltas o Forward and backward deltas è Shared Data Problem è Simultaneous Update Problem q Solution: Check-in/check-out mechanism q Still a problem: Merging versions PVK-HT 03 bella@cs. umu. se 15

Tools for Version and Configuration Control General: o File comparators o Patch generators o

Tools for Version and Configuration Control General: o File comparators o Patch generators o History- and log-files o Hierarchical file systems o. . . Configuration control: Version Control: o o o Modification tracking Control of development branches Efficient storage and retrieval Access control Merging versions. . . SCCS, RCS, CVS, . . . PVK-HT 03 bella@cs. umu. se o Dependency management and control o System creation o Integration with version control o. . . Make, makefile generators, . . . 16

Software Rejuvenation Redocumentation: static analysis adds more information Restructuring: transform to improve code structure

Software Rejuvenation Redocumentation: static analysis adds more information Restructuring: transform to improve code structure Reverse engineering: recreate design and specification information from the code Reengineering: reverse engineer and then make changes to specification and design to complete the logical model; then generate new system from revised specification and design PVK-HT 03 bella@cs. umu. se 17