Software maintenance involves enhancing software, adapting it to new environments, and fixing problems. It makes up 70% of total software lifecycle costs. Maintainability is improved through clarity, modularity, and documentation. Maintenance includes corrective, adaptive, perfective, and preventive changes. Successful maintenance requires managerial and technical skills like tracking requests, review by analysts and a change control board, quality assurance, and configuration management of versions. Computer-aided software engineering (CASE) provides automated tools to support various software engineering activities throughout the lifecycle.
Software maintenance involves enhancing software, adapting it to new environments, and fixing problems. It makes up 70% of total software lifecycle costs. Maintainability is improved through clarity, modularity, and documentation. Maintenance includes corrective, adaptive, perfective, and preventive changes. Successful maintenance requires managerial and technical skills like tracking requests, review by analysts and a change control board, quality assurance, and configuration management of versions. Computer-aided software engineering (CASE) provides automated tools to support various software engineering activities throughout the lifecycle.
Software maintenance involves enhancing software, adapting it to new environments, and fixing problems. It makes up 70% of total software lifecycle costs. Maintainability is improved through clarity, modularity, and documentation. Maintenance includes corrective, adaptive, perfective, and preventive changes. Successful maintenance requires managerial and technical skills like tracking requests, review by analysts and a change control board, quality assurance, and configuration management of versions. Computer-aided software engineering (CASE) provides automated tools to support various software engineering activities throughout the lifecycle.
Software maintenance involves enhancing software, adapting it to new environments, and fixing problems. It makes up 70% of total software lifecycle costs. Maintainability is improved through clarity, modularity, and documentation. Maintenance includes corrective, adaptive, perfective, and preventive changes. Successful maintenance requires managerial and technical skills like tracking requests, review by analysts and a change control board, quality assurance, and configuration management of versions. Computer-aided software engineering (CASE) provides automated tools to support various software engineering activities throughout the lifecycle.
Download as PPTX, PDF, TXT or read online from Scribd
Download as pptx, pdf, or txt
You are on page 1of 16
Unit - 5
SOFTWARE TESTING, MAINTENANCE
PHASE & CASE Tools SOFTWARE MAINTENANCE PHASE Definition – The term “Software Maintenance” is used to describe the software engineering activities that occur after the delivery of software product to the customer. – Maintenance activities involve making enhancements to the software product, making it adaptable to the new environment and correcting problems – Usually software maintenance constitute about 70% of total software life-cycle costs and the development process requires about 30%. – The primary goal of software development should be the production of maintainable software systems. – Maintainability can be expressed in terms of attributes that are built into the software product like – a) Clarity, b) Modularity and c) Good internal documentation of the source code with additional supporting documents. – The maintenance phase focuses in change that is associated with :- • Error correction. • Adaptation to the new environment. • Changes due to enhancements. – The maintenance phase reapplies the steps of definition and development phases on the existing software. Software maintenance is basically categorized as follows :- • Corrective maintenance :- It takes place when the changes are made to the existing software for correcting defects. • Adaptive maintenance :- Its done when modifications are made to the existing software so that it can adapt the change in the external environment ( ex., change in technology). • Perfective maintenance or Enhancement :- Its done to provide customer specific benefits by extending the software’s original functionalities or by adding extra functionalities. • Preventive maintenance :- Its done in order to make the software more maintainable, adaptable, Software Maintenance from Managerial point of view
• A successful software maintenance activity
requires a combination of both Managerial skills and technical skills. Management of software maintenance:- 1) One of the most important aspects of the software maintenance involves tracking and control of maintenance activities. Maintenance activity for a software product usually occurs in response to a request filled by the user for creating changes in the existing product. 2) A Request for Change is first reviewed by an Analyst. In cases where the Analyst evaluates that the user problem is not caused due to the software but instead of some misinterpretation, then the Analyst notifies the user and with taking the user in to confidence closes the Change Request. 3) After evaluating a Request for Change by the user if the Analyst finds it genuine then he submits the following to the Change Control Board :- – The Change Request. – The proposed solution. – Estimate of the resources required to satisfy the request. 4) Change Control Board (SCM):- – It reviews all the requests for change and decides to deny or approve the requests. It may also recommend a modifies version of the change. – The Analyst works as a mediator between the Change Control Board and the request initiator. – Approved changes are forwarded to the Maintenance Programmers for necessary action in accordance with the priority and constraints established by the board. – After prescribed modifications, revalidations the software is again submitted to the board for approval. After proper approval from the board the master records are updated along with the external documents. The modified software is distributed to the user. – The Change Control Board may consist of several high-level managers from both software and non-software areas of the maintenance and user organizations. Some times it may consist of a Quality Assurance Representative. 5) The Quality Assurance Group (SQA) :- – Its primary function during software maintenance is to ensure that quality does not degrade as a result of maintenance activities. – This group conducts audits and spot checks to determine that external documents are properly updated to indicate the new modifications. – It also ensures that the structure and internal documentation of the source code is not degraded as a result of small modifications. – It also ensures that the master tapes are properly updated and protected (logically and physically) and the requests for changes are catered in a timely manner. Configuration Management during Maintenance • It’s concerned with tracking and controlling of the work products that constitute a software product. • When a work product passes a milestone, it’s placed under configuration control; hence any subsequent changes to the work product can be made only with formal agreement of both the customer and the developer group. • A work product placed under configuration control is said to be “Base-Lined” or “Bench-Marked”. • During software maintenance, a configuration management plan and configuration management tools are required to track and control various versions the software product. CASE • COMPUTER AIDED SOFTWARE ENGINEERING (CASE) • Computer Aided Software Engineering (CASE) is a set of automated tools for implementing software engineering activities and standards during software development process. Following is an brief overview of CASE architecture • The environment architecture is composed of the hardware platform and operating system support which includes networking and database management software, this forms the basic ground for CASE. • A set of portability services provides a bridge between CASE tools and their integration framework along with the environment architecture. • The integration framework is a collection of specialized programs that enable individual CASE tools to communicate with each other, to create a project database and to exhibit the same lookup for the software engineer as he would feel when doing the software engineering procedures manually. • Portability services provide CASE tools and their integration framework to become portable and migrate along different hardware platforms and operating systems without much change. • The CASE framework provides a very large range of tools for conducting all the possible software engineering activities. Here is a listing of some of the commonly used tools provided by a CASE framework :- 1) Information Engineering tools :-These tools model business information as it moves between various organizations. They represent – a) Business data objects, b) Relationships between various business data objects and c) The flow of business data objects between organizations.
2) Process Modeling and Management tools :-These tools
provide – a) Key elements of a process for better understanding of the process, b) Links to the description of work tasks related to a process and c) Links to other related process management tools. 3) Project Planning tools :- They provides tools related to – a) Software project effort and cost estimation, b) Project scheduling.
4) Risk Analysis tools :- They provide information
and methods to a project manager in the following areas – a) Building risk analysis tables, and b) Provide guidance for risk identification and analysis. 5) Project Management tools :- These tools provides a project manager the following help – a) Creating, tracking and monitoring project plans and schedules, and b) Providing metrics to estimate & evaluate project and product quality factors.
6) Documentation tools :- These tools help in the
following manner – a) Document production, and b) Desk-top publishing of the documents. 7) System software tools : -These tools include – a) E- mails, b) Electronic bulletin boards, and c) Network communication software. 8) Software Configuration Management tools :- These tools help in the following areas of SCM – a) Identification, b) Version control, c) Change control, d) Auditing and e) Status accounting. 9) PRO / SIM tools :- These are a set of Prototyping and Simulation tools for predicting the behavior of a real-time system before its production. They help the software engineers to build prototypes of the systems for analyzing the functionality, operation and response of the system. 10) Test Management tools :- These tools help in the process of control and coordination for software testing procedures. It has a Test Driver that reads one or more test cases from a testing file, formats the test data to fit to the needs of the software under test, and then invokes the software to be tested.