Contents Introduction Requirements Engineering Project Management Software Design

  • Slides: 12
Download presentation
Contents Introduction Requirements Engineering Project Management Software Design Detailed Design and Coding Quality Assurance

Contents Introduction Requirements Engineering Project Management Software Design Detailed Design and Coding Quality Assurance Software Maintenance PVK-HT 06 1

Software change is inevitable o o o New requirements emerge when the software is

Software change is inevitable o o o New requirements emerge when the software is used; The business environment changes; Errors must be repaired; New computers and equipment is added to the system; The performance or reliability of the system may have to be improved. A key problem for organisations is implementing and managing change to their existing software systems. PVK-HT 06 2

Software maintenance Modifying a program after it has been put into use. Maintenance does

Software maintenance Modifying a program after it has been put into use. Maintenance does not normally involve major changes to the system’s architecture. Changes are implemented by modifying existing components and adding new components to the system. PVK-HT 06 3

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 06 Release Change 4

PVK-HT 06 Ian Sommerville 1995 Software Engineering, 5 th edition. 5

PVK-HT 06 Ian Sommerville 1995 Software Engineering, 5 th edition. 5

Types of maintenance Maintenance to repair software faults o Changing a system to correct

Types of maintenance Maintenance to repair software faults o Changing a system to correct deficiencies in the way meets its requirements. Maintenance to adapt software to a different operating environment o Changing a system so that it operates in a different environment (computer, OS, etc. ) from its initial implementation. Maintenance to add to or modify the system’s functionality PVK-HT 06 6 o Modifying the system to satisfy new requirements.

Distribution of maintenance effort PVK-HT 06 7

Distribution of maintenance effort PVK-HT 06 7

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 06 8

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 06 9

Versions /releases Version An instance of a system which is functionally distinct in some

Versions /releases Version An instance of a system which is functionally distinct in some way from other system instances. Release An instance of a system which is distributed to users outside of the development team. PVK-HT 06 10

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

Storing Versions Naive: Separate files for each version Version handling by numbering schemes è Double Maintenance Problem Solution: One original version plus deltas è Shared Data Problem è Simultaneous Update Problem Solution: Check-in/check-out mechanism Still a problem: Merging versions PVK-HT 06 11

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 06 13