<< Chapter < Page Chapter >> Page >

Finally, at the highest level, the maintenance organization will have to conduct business planning activities (budgetary, financial, and human resources) just like all the other divisions of the organization.

Software configuration management

The IEEE Standard for Software Maintenance, IEEE 1219, describes software configuration management as a critical element of the maintenance process. Software configuration management procedures should provide for the verification, validation, and audit of each step required to identify, authorize, implement, and release the software product.

It is not sufficient to simply track Modification Requests or Problem Reports. The software product and any changes made to it must be controlled. This control is established by implementing and enforcing an approved software configuration management (SCM) process. SCM for software maintenance is different from SCM for software development in the number of small changes that must be controlled on operational software. The SCM process is implemented by developing and following a configuration management plan and operating procedures. Maintainers participate in Configuration Control Boards to determine the content of the next release/version.

Software quality

It is not sufficient, either, to simply hope that increased quality will result from the maintenance of software. It must be planned and processes implemented to support the maintenance process. The activities and techniques for Software Quality Assurance (SQA), V&V, reviews, and audits must be selected in concert with all the other processes to achieve the desired level of quality. It is also recommended that the maintainer adapt the software development processes, techniques and deliverables, for instance testing documentation, and test results.

Techniques for maintenance

This subarea introduces some of the generally accepted techniques used in software maintenance.

Program comprehension

Programmers spend considerable time in reading and understanding programs in order to implement changes. Code browsers are key tools for program comprehension. Clear and concise documentation can aid in program comprehension.

Reengineering

Reengineering is defined as the examination and alteration of software to reconstitute it in a new form, and includes the subsequent implementation of the new form. Dorfman and Thayer state that reengineering is the most radical (and expensive) form of alteration. Others believe that reengineering can be used for minor changes. It is often not undertaken to improve maintainability, but to replace aging legacy software. Arnold provides a comprehensive compendium of topics, for example: concepts, tools and techniques, case studies, and risks and benefits associated with reengineering.

Reverse engineering

Reverse engineering is the process of analyzing software to identify the software’s components and their interrelationships and to create representations of the software in another form or at higher levels of abstraction. Reverse engineering is passive; it does not change the software, or result in new software. Reverse engineering efforts produce call graphs and control flow graphs from source code. One type of reverse engineering is redocumentation. Another type is design recovery. Refactoring is program transformation which reorganizes a program without changing its behavior, and is a form of reverse engineering that seeks to improve program structure.

Questions & Answers

draw and explain state and activity diagram of library management system
Prashant Reply
hii
Sonu
explain association and generalisation with library system diagram
Prashant Reply
what do you mean by functional and non functional requirements
RICHA Reply
functional - describes what a software system should do . non functional - place constraints on how the will do so
rubi
non functional requirement include: quility . reliability . response time . security . privacy . effectiveness . maintainability . robustness scalability . fault tolerance . extensibility . efficiency . portability . resilience ... .
rubi
🙏🙏🙏🙏🙏
Sonu
🙏🙏🙏🙏🙏
Sonu
hello
Akhand
🇨🇮🇨🇮🇨🇮
Sonu
What does encapsulation mean?
Sravanthi Reply
Encapsulation in Java is a process of wrapping code and data together into a single unit, for example, a capsule which is mixed of several medicines. ... Now we can use setter and getter methods to set and get the data in it. The Java Bean class is the example of a fully encapsulated class.
Hello
What is software Engineering
Jakisay Reply
Sofyware engineering is the application of principles used in the field of engineering which usually deals with phsical systems to the design, testing, development, deployment and management of software systems
Remie
what is cocomo model
Shrudhi Reply
The Constructive Cost Model is a procedural software cost estimation model developed by Barry W. Boehm. The model parameters are derived from fitting a regression formula using data from historical projects
Tilak
Please is there any scholarship for African students undergraduate for now
Awal Reply
4 generation technology
RICHA Reply
Richa, what is your question?
Darrell
what is the work of software engineer
mercy Reply
DilipDas
Dili
steps of developing a software
latest Reply
Present
win
bamori project
Rajendra
which approach used to reduce number of test cases
Harshdeep Reply
I wish to ask what is the mean of a data model
Ateke Reply
explanation of working of computer
Gulfam Reply
Hi
Yaw
hello.
Martins
What is software engineering
parfait Reply
explain basic path testing for triangle problem?
Janavi Reply

Get the best Software engineering course in your pocket!





Source:  OpenStax, Software engineering. OpenStax CNX. Jul 29, 2009 Download for free at http://cnx.org/content/col10790/1.1
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Software engineering' conversation and receive update notifications?

Ask