software maintenance and configuration management, software engineering
TRANSCRIPT
![Page 1: Software maintenance and configuration management, software engineering](https://reader036.vdocument.in/reader036/viewer/2022082600/58e786141a28abe7528b5df9/html5/thumbnails/1.jpg)
Unit-8Software Maintenance
and Configuration Management
![Page 2: Software maintenance and configuration management, software engineering](https://reader036.vdocument.in/reader036/viewer/2022082600/58e786141a28abe7528b5df9/html5/thumbnails/2.jpg)
Types of Maintenance•Corrective Maintenance (21%)•making changes to repair defects
•Adaptive Maintenance (25%)•making changes to adapt software to external environment
changes (hardware, business rules, OS, etc.)
•Perfective Maintenance (50%)• extending system beyond its original functional requirements
•Preventative Maintenance (4%) •modifying work products so that they are more easily corrected,
adapted, or enhanced
![Page 3: Software maintenance and configuration management, software engineering](https://reader036.vdocument.in/reader036/viewer/2022082600/58e786141a28abe7528b5df9/html5/thumbnails/3.jpg)
Maintenance Costs•Usually greater than the development costs (2 to 10 times as much in some cases)•Affected by both technical and non-technical factors•Increase as software is maintained and system corruption is introduced•Aging software can have high support costs (e.g. old languages, compilers, etc.)
![Page 4: Software maintenance and configuration management, software engineering](https://reader036.vdocument.in/reader036/viewer/2022082600/58e786141a28abe7528b5df9/html5/thumbnails/4.jpg)
Maintenance Developer Tasks• Understand system.• Locate information in documentation.• Keep system documentation up to date.• Extend existing functions.• Add new functions.• Find sources of errors.• Correct system errors.• Answer operations questions.• Restructure design and code.• Delete obsolete design and code.• Manage changes.
![Page 5: Software maintenance and configuration management, software engineering](https://reader036.vdocument.in/reader036/viewer/2022082600/58e786141a28abe7528b5df9/html5/thumbnails/5.jpg)
Maintenance Cost Factors•Staff turnover• no turnover usually means lower maintenance costs
•Contractual responsibility• developers may have no contractual obligation to maintain the
delivered system and no incentive to design for future change
•Staff skills•maintenance staff are often inexperienced and have limited
domain knowledge
•Program age and structure• as programs age their structure deteriorates, they become harder
to understand and change
![Page 6: Software maintenance and configuration management, software engineering](https://reader036.vdocument.in/reader036/viewer/2022082600/58e786141a28abe7528b5df9/html5/thumbnails/6.jpg)
Maintenance Prediction•Concerned with determining which parts of the system may cause problems and have high maintenance costs•Change acceptance depends on the maintainability of the components affected by the change•Implementing changes degrade system and reduces its maintainability•Maintenance costs depends on number of changes•Costs of change depend on maintainability
![Page 7: Software maintenance and configuration management, software engineering](https://reader036.vdocument.in/reader036/viewer/2022082600/58e786141a28abe7528b5df9/html5/thumbnails/7.jpg)
Configuration Management•Software changes are inevitable•One goal of software engineering is to improve how easy
it is to change software•Configuration management is all about change control.•Every software engineer has to be concerned with how
changes made to work products are tracked and propagated throughout a project.•To ensure quality is maintained the change process must
be audited.
![Page 8: Software maintenance and configuration management, software engineering](https://reader036.vdocument.in/reader036/viewer/2022082600/58e786141a28abe7528b5df9/html5/thumbnails/8.jpg)
Configuration ManagementDefinition: The set of activities that have been developed to manage change throughout the software life cycle.
Purpose: Systematically control changes to the configuration and maintain the integrity and traceability of the configuration throughout the system’s life cycle.
![Page 9: Software maintenance and configuration management, software engineering](https://reader036.vdocument.in/reader036/viewer/2022082600/58e786141a28abe7528b5df9/html5/thumbnails/9.jpg)
Purpose of CM
• Identify Change
• Control Change
• Ensure Change is Properly Implemented
• Report Changes to All the people who need to Know
![Page 10: Software maintenance and configuration management, software engineering](https://reader036.vdocument.in/reader036/viewer/2022082600/58e786141a28abe7528b5df9/html5/thumbnails/10.jpg)
Baseline•Definition: Specification or product that • has been formally reviewed and agreed upon,• serves as the basis for further development, and • can be changed only through formal change control procedures.
•Signals a point of departure from one activity to the start of another activity.•Helps control change without impeding justifiable change.
![Page 11: Software maintenance and configuration management, software engineering](https://reader036.vdocument.in/reader036/viewer/2022082600/58e786141a28abe7528b5df9/html5/thumbnails/11.jpg)
Project Baseline
•Central repository of reviewed and approved artifacts that represent a given stable point in overall system development.•Shared DB for project and kept in consistent state.•Policies allow the team to achieve consistent state and manage the project.
![Page 12: Software maintenance and configuration management, software engineering](https://reader036.vdocument.in/reader036/viewer/2022082600/58e786141a28abe7528b5df9/html5/thumbnails/12.jpg)
Software Configuration Item (SCI)•Definition: Information that is created as part of the software engineering
process.•Examples: •Software Project Plan•Software Requirements Specification• Models, Prototypes, Requirements
•Design document• Protocols, Hierarchy Graphs
•Source code • Modules
•Test suite•Software tools (e.g., compilers)
![Page 13: Software maintenance and configuration management, software engineering](https://reader036.vdocument.in/reader036/viewer/2022082600/58e786141a28abe7528b5df9/html5/thumbnails/13.jpg)
Elements of SCM
There are four elements of SCM:1. Software Configuration Identification2. Software Configuration Control3. Software Configuration Auditing4. Software Configuration Status Accounting
![Page 14: Software maintenance and configuration management, software engineering](https://reader036.vdocument.in/reader036/viewer/2022082600/58e786141a28abe7528b5df9/html5/thumbnails/14.jpg)
SCM Tasks
•Identification•Change control •Version control•Configuration auditing•Status reporting
![Page 15: Software maintenance and configuration management, software engineering](https://reader036.vdocument.in/reader036/viewer/2022082600/58e786141a28abe7528b5df9/html5/thumbnails/15.jpg)
Identification Task• Identification separately names each CSCI and then organizes it in
the SCM repository using an object-oriented approach• Objects start out as basic objects and are then grouped into
aggregate objects• Each object has a set of distinct features that identify it• A name that is unambiguous to all other objects• A description that contains the CSCI type, a project identifier,
and change and/or version information• List of resources needed by the object• The object realization (i.e., the document, the file, the model,
etc.)
![Page 16: Software maintenance and configuration management, software engineering](https://reader036.vdocument.in/reader036/viewer/2022082600/58e786141a28abe7528b5df9/html5/thumbnails/16.jpg)
Change Control Task• Change control is a procedural activity that ensures quality and consistency as
changes are made to a configuration object• A change request is submitted to a configuration control authority, which is usually a
change control board (CCB)• The request is evaluated for technical merit, potential side effects, overall impact on other
configuration objects and system functions, and projected cost in terms of money, time, and resources
• An engineering change order (ECO) is issued for each approved change request• Describes the change to be made, the constraints to follow, and the criteria for review and
audit
• The baselined CSCI is obtained from the SCM repository• Access control governs which software engineers have the authority to access and modify a
particular configuration object• Synchronization control helps to ensure that parallel changes performed by two different
people don't overwrite one another
![Page 17: Software maintenance and configuration management, software engineering](https://reader036.vdocument.in/reader036/viewer/2022082600/58e786141a28abe7528b5df9/html5/thumbnails/17.jpg)
Version Control Task• Version control is a set of procedures and tools for managing the
creation and use of multiple occurrences of objects in the SCM repository• Required version control capabilities• An SCM repository that stores all relevant configuration objects• A version management capability that stores all versions of a configuration
object (or enables any version to be constructed using differences from past versions)• A make facility that enables the software engineer to collect all relevant
configuration objects and construct a specific version of the software• Issues tracking (bug tracking) capability that enables the team to record and
track the status of all outstanding issues associated with each configuration object
• The SCM repository maintains a change set• Serves as a collection of all changes made to a baseline configuration• Used to create a specific version of the software• Captures all changes to all files in the configuration along with the reason for
changes and details of who made the changes and when
![Page 18: Software maintenance and configuration management, software engineering](https://reader036.vdocument.in/reader036/viewer/2022082600/58e786141a28abe7528b5df9/html5/thumbnails/18.jpg)
Configuration Auditing Task• Configuration auditing is an SQA activity that helps to ensure that quality is
maintained as changes are made• It complements the formal technical review and is conducted by the SQA group• It addresses the following questions
• Has a formal technical review been conducted to assess technical correctness?• Has the software process been followed, and have software engineering standards been
properly applied?• Has the change been "highlighted" and "documented" in the CSCI? Have the change
data and change author been specified? Do the attributes of the configuration object reflect the change?• Have SCM procedures for noting the change, recording it, and reporting it been
followed?• Have all related CSCIs been properly updated?
• A configuration audit ensures that• The correct CSCIs (by version) have been incorporated into a specific build• That all documentation is up-to-date and consistent with the version that has been built
![Page 19: Software maintenance and configuration management, software engineering](https://reader036.vdocument.in/reader036/viewer/2022082600/58e786141a28abe7528b5df9/html5/thumbnails/19.jpg)
Status Reporting Task• Configuration status reporting (CSR) is also called status accounting• Provides information about each change to those personnel in an
organization with a need to know• Answers what happened, who did it, when did it happen, and what
else will be affected?• Sources of entries for configuration status reporting• Each time a CSCI is assigned new or updated information• Each time a configuration audit is conducted
• The configuration status report• Placed in an on-line database or on a website for software developers and
maintainers to read• Given to management and practitioners to keep them appraised of important
changes to the project CSCIs
![Page 20: Software maintenance and configuration management, software engineering](https://reader036.vdocument.in/reader036/viewer/2022082600/58e786141a28abe7528b5df9/html5/thumbnails/20.jpg)
Software Configuration Auditing