7. Maintaining software solutions Flashcards
Define Maintainability
A measure of the ease with which source code can be understood and modified
Changing user requirements
Modifying code to include new functionality due to change in users’ requirements
Upgrading the user interface
The user interface is often the most significant influence on the ongoing success of a software product. Changes to the user interface can cause problems for users skilled in the use of the existing product. Care must be taken to maintain consistency between subsequent versions of software products. It is significantly preferable for user interfaces to evolve without significantly altering their structure.
Changes in the data to be processed
Modifications to software are often required when the structure or format of the input data changes
Introduction of new hardware or software
Software developers must modify their products if they wish to use new features of hardware
Changing organisational focus
Software applications often require modification to cater to the changes in organisations. Custom designed solutions often require continual modification.
Changes in government requirements
Government legislation covers many areas that can affect software applications. As legislation and laws are changed by government these software applications must be modified to comply.
Poorly implemented code
Testing and evaluating software solutions aims to ensure that software applications are bug free and perform their tasks efficiently. Maintenance is required to correct problems as they are discovered.
Define plagiarism
Copying or imitating the work of another and claiming it to be your own
Use of variables or constants instead of literal constants
Programmers overcame the problem of replacing every occurrence of a value by assigning literal constants to variables.
Meaningful names for variables
Meaningful variable names greatly increases the readability and hence the maintainability of source code. Meaningful identifiers should also be used for subroutines. Code that uses meaningful identifiers is said to be self-documenting.
Explanatory comments in the code
Comments within the source code should explain what the code does rather than how it does it. Comments that describe the detail of the processing will be incorrect if the processing is altered. Comments should also be used to document changes made to the code.
A clear and uncluttered mainline
The mainline or main program of a software solution should include minimal actual processing. The mainline of many programs will essentially be a series of calls to subroutines.
One logical task per subroutine
Subroutines that accomplish a single logical task increase the maintainability of the product. The longer the subroutine is, the more difficult it will be to understand, test, and subsequently maintain. Short routines that accomplish single, well-defined tasks are generally easier to understand, test, reuse and consequently maintain.
Documentation to the user
Before modifying a product, it is important that the developers understand the operation of the existing product from the user’s perspective. Types of user documentation include installation guides, user manuals, reference manuals, online help and tutorials.