7-+Maintenance+of+Software+Solutions

= Maintenance of Software Solutions =

Modifications to code, macros and scripts are often required. Often these are not made by the original developers. Under these circumstances, original documentation is of importance, as is the structure and self-documentation of the commands to be updated. Students should be given opportunities to modify their own code, macros and scripts and experience modifying the code, macros and scripts of others, supported by varying degrees of documentation.


 * **Students learn about:** || **Students learn to:** ||
 * **Modification of code to meet changed requirements**

• identification of the reasons for change in code, macros and scripts • location of section to be altered • determining changes to be made • implementing and testing solution


 * Documentation of changes**

• source code, macro and script documentation • modification of associated hard copy documentation and online help • use of CASE tools to monitor changes and versions || • read and interpret others’ code, macros and scripts • design, implement and test modifications

• recognise the cyclical approach to maintenance

• document modifications with dates and reasons for change ||

We are going to build a concise summary of notes where each of you will teach each other about your findings. This technique involves individual contribution and group discussion / contribution.

Group One (Rob, Victor, and Joseph) Group Two (Peter, Johnny T, John S) Group Three (Matthew, Jesse, Kyle) Group four (Andre, Thomas and Brendan)

Collaborated document

When you have finished your section with your group, bring your finding back to the whole document that we are all building below. Contribute your section then review a classmates response. Ensure that your review is justified by using supported material and facts.

Each one of you need to find and insert a related question with the suggested solution. was published ||= Extended Question ||= The Suggested Solution || (a) Modifications to the code of an existing software solution are often required. Frequently those modifications are not made by the original software developer.
 * = Your Name ||= HSC Year the Question
 * John S ||  ||   ||   ||
 * Joseph T ||  ||   ||   ||
 * Robinson L || 2009 || Question 23 (20 marks)

(i) Identify reasons for changing the code of an existing software solution.

(ii) Explain how different types of documentation could be used to identify sections of code that need to be modified. || i) • A need for new module resulting from new specifications • Correction of errors in existing code • Desire to improve performance of the software solution • For compatibility with new devices or operating system • Changing Government requirements such as the introduction of the GST • Upgrading the user interface • Changes in the data to be processed • Changing organisational focus • Poorly implemented code

ii) • A structure chart could be used to show the hierarchy of modules and their relationship. These could be used to identify what modules need to be changed, and the potential effect of these changes on other related modules • Internal documentation could be used to identify modules of subprograms, or sections of code that are called and may need modification. • Answers could also include explanations of the use of other forms of documentation || code in each modification to their main software product. Each time a version of the product is created, the information is stored in a sequential file. Below is a small section of the file. The first version recorded is 3.1. VERSION (i) Justify the use of this particular CASE tool. (ii) Using pseudocode, create an algorithm that scans the sequential file and stores the numbers of all the versions that exceed 11 000 lines of code in a sequential file called ‘Results || (d) (i) This part was not answered well by the majority of candidates. Many rewrote the question but failed to add any new or relevant information. Many candidates failed to recognise that they had to use their knowledge to ‘Justify’ their answer. Few candidates found reasons for using this particular CASE tool. (ii) Candidates who performed well on this part showed a good understanding of how to represent file and record structures using algorithms. The poorer responses involved the use of array syntax and array indexing. Many candidates failed to correctly identify the fields in the records to be tested and stored. Few candidates successfully handled opening, closing, reading and writing files. || (a) (i) Define test data **2** (ii) Explain the use of live test data to test a complete solution **3** || (i) Test data are data elements designed to test the operation of an algorithm or problem
 * Victor W ||  ||   ||   ||
 * Brendan B ||  ||   ||   ||
 * Peter T || 2003 || (d) A software developer uses a CASE tool to keep track of the version and lines of
 * Jesse A ||  ||   ||   ||
 * Andre G ||  ||   ||   ||
 * Kyle M ||  ||   ||   ||
 * Matthew A || 2007 || **Question 23** (20 marks)

(ii) The use of live test data to test a complete solution is useful as it can be used to test the operation of program modules and may have little in common with the actual data that has been processed. For example, a computer program or system will not reveal how it handles situations that occur in normal operation until it is subjected to the same conditions it will encounter during normal operation. || (d) Software requires revision and modification over time. For this reason, programmers develop software in a way that allows for subsequent maintenance. Discuss techniques that can be used in development that make software easier to maintain. || //Techniques//Through documentation both intrinsic and extrinsic Meaningful variable names Comments Indented well laid out code Log of modifications Use of standard control structures Use of a modular approach – one logical task per subroutine Use of library routines
 * John T ||  ||   ||   ||
 * Thomas B || 2010 || Question 22 (continued)

//Discussion// Appropriate use of constraints These techniques may be discussed in terms of: • understanding the code • allowing modifications to some code without affecting other parts of code, limiting changes that need to be applied • making software bug-free and hence reducing need for maintenance ||

Summary Notes for Maintenance of software solutions.

Presentation summary: