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

The following text is encoded in base 64. Ik5ldmVyIHRydXN0IGEgY29tcHV0ZXIgeW91IGNhbid0IHRocm93IG91dCBhIHdpbmRvdyIgLSBTdGV2ZSBXb3puaWFr Decode it, and paste the decoded text here
Julian Reply
what to do you mean
Vincent
What is the command to list the contents of a directory in Unix and Unix-like operating systems
George Reply
how can i make my own software free of cost
Faizan Reply
The name of the author of our software engineering book is Ian Sommerville.
Doha Reply
what is software
Sampson Reply
the set of intruction given to the computer to perform a task
Noor
I want to know about prototype model in software engineering
Malli Reply
Prototype Model is a replica model. In this we plan and build a rough application. Further we launch it for users and if they give their feedback or need any enhancement then we add-on requested features as per the system/user requirements.
KUMAR
between JavaScript and html,which is the best to master first?
Njuguna Reply
You have to master HTML first before you do javascript. Actually Html is not a programming language it is used to make a skeleton of a webpage
Alfayo
yaah it so good to start with HTML first
Abel
what is a software
Carren Reply
I am not proficient in any programming language though I am learning python currently, is it necessary to be proficient in programming language before one can undergo this course
Israel Reply
what is software
Arwaz Reply
The reason it all exists
Ruth Reply
Hi
Md
hlo
Ajay
Hii
Biddika
hu
Ajay
what is programming
Nonny Reply
software project scheduling
DEVENDRA Reply
kis chij ka bro
shiv
Green chili
Arwaz
wellcome my friend
my
what is soft ware
my
the soft ware of education
my
hello
Hilal
I'm new here
Hilal
how to communicate with clients
adejoh Reply
hey hi good afternoon sir my name is Mohamed Kamara, I want to understand how to do it sir.
Muhammadosman
ok
Ronald
how are u sir, I want u to teach me please I want to know about softwares.
Muhammadosman
me too I need this knowledge
anthony
me too
Noor
what's up y'all..who is good at java? need help
Adrian
Is it like a unit in software engineering or what?
Njuguna
Which SDLC Model will you select to develop the system as a software engineer and why?
Subrato Reply

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




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