Page 1

Higher Revision Notes

Software Development Process

Analysis Software specification. - results from the analysis process. - states the cost, timescale, requirements to be met, limits of the software. - has the status of a legal contract. Personnel involved at various stages. Project manager co-ordinates and monitors progress of the software development. System analyst observes working practice, interviews employees and managers, prepares hardware and software specification. Produces flow diagrams and pseudocode. Programmers implement designs by translating them into programming code, tests code. Alpha testers employed by software house. test versions of software to discover bugs and omissions – report back to project manager. Beta testers public or clients who work with software in the field to discover flaws under operating conditions.

Design Design Methodology

Top-down design with stepwise refinement. Iterative process working towards the fine detail.

Design Notation Pseudocode

is how the methodology is represented. program design language – algorithms are represented in a natural language - should be independent of programming language.


Flow diagram uses standard symbols and links to represent algorithms. Structure diagram – shows which procedures are required and how data is shared by them.

Implementation Choices of development language/environment. Procedural

this can mean imperative. The code must include algorithms to dictate every computation and control structure required in order for the software to function.


The method of processing does not need defined. The method of how to process is built into the programming/support software. E.g. Prolog and its

AJN2007 Version 1.0

Higher Revision Notes

Software Development Process

facts and rules, HTML is declarative as the browser processes it. A knowledge base in an expert system is declarative – the expert system shell processes it. Event-driven.

Control of program flow depends upon input from the hardware or messages from other programs. E.g. games are event driven whereas a payroll batch processing program would not be.


translates source code into object code (machine code) that is then linked to the OS to produce standalone programs for final distribution. compiled code is not slowed down by the need for translation. is not portable as it is processor and OS specific. source code can be compiled for different platforms. (cross-compiled) object code is not easily debugged. Source code required to be kept.


translate a line of code and execute it before moving onto the next line. Machine code not retained in memory once the statement has been executed (less demand on working memory). Running programs are slowed down due the translation process during execution. Useful for development since error detection/ edit cycle is shorter than with a compiler. Code produced is portable to variety of platforms provided there is an interpreter available.

Scripting language:

High level language used for customising/enhancing other software. May be built into an application. Not used for developing applications themselves. e.g. JavaScript used in functionalizing web pages. Used for creating macros – user defined modules that work within an application or operating system. Useful to automate repetitive tasks with a single command or simplify processes for inexperienced users. Built using scripting language or automated script generators which record user actions.


Module libraries:

pre-written tested routines/procedures that have been archived and can be added to a project – saves time, reduces errors.


may have features other than those of a simple text editor to help development e.g. highlights keywords, auto-indents loops, find and replace for consistency of variable names etc.


Use of procedures/subroutines/subprograms: advantages as result of structured programming are ease of maintenance, readability, module libraries.

AJN2007 Version 1.0

Higher Revision Notes

Software Development Process

Variables and Parameter passing By reference:

can change the value of the original parameter being passed in so effectively passes back the new value to all procedures where that variable is in scope.

By value:

creates a copy of the parameter being passed to a procedure and so does not change the value of the original out with the procedure. (IN only)

Local variable

is declared and used within a procedure. Does not affect other local variables of same name in other procedures.

Global variable

is available to all procedures where it is in scope. Can lead to undesired side effects in complex programs.

Scope of a variable

refers to the parts of the code when a variable is being used and exists in memory. When that part of the code is not being used the variable does not exist in memory. A global variable exists in memory throughout a whole program. A local variable only exists in memory when the procedure it is declared in, is called. It is often likened to the lifetime of the variable.

User-defined Function. Carries out a very specific computation designed by the software developer and returns a single value to the call. ( Most programming languages have pre-defined functions e.g. MID$. )

High level programming language constructs String operations -

concatenation – joining of strings of text. String slicing - produces substrings (usually Left, Mid , Right functions) formatting of I/O.


CASE (or equivalent multiple outcome selection) IF and Nested IFs


Fixed loops, conditional loops.

AJN2007 Version 1.0

Higher Revision Notes Variable Types

Software Development Process

real Integer Boolean variables Structured data type

store fractions. e.g. 123.456, 123.00 whole numbers 123 store true or false only. 1-D arrays store a ‘list’ where elements are accessed through the array identifier and array index. e.g. DIM studentID(40) as Array of String studentID(13) = “0123256” studentID(i) = “0134556”

Standard algorithms Input validation

Linear search

helps make programs robust by excluding exceptional data – checks data type, range etc. uses conditional loops. locates the occurrence of a piece of data in a structured data type. Can Usually sets a Boolean variable to true if successful. e.g.

Assign value to target Set found to false for currentIndex = 1 to maxIndex if arrayItem(currentIndex) = target then set found to true set location to currentindex end if loop Often used to pick out a corresponding element is an associated array e.g. name(location) <=> phoneno(location). Counting occurrences

using a loop it locates and enumerates the number of items in a list (array) that match the target. Pseudocode: Assign value to target for currentIndex = 1 to length of list If current item in array = target then Add 1 to the count End if Next Can use the multiple selection Case statement to find the occurrence of multiple values in a list to get their frequency.

AJN2007 Version 1.0

Higher Revision Notes Finding min/max

Software Development Process

compares items in a list. Replace the value of the max/min variable if the item is larger/smaller than the current value of max/min. e.g Pseudocode for finding a maximum: set max to first item for second to last item in the list if current item is greater than max then max takes the value of current item loop

Testing Comprehensive Exhaustive Field testing

Using a large range of normal, extreme and exceptional data. Alapha testing. uses all possible inputs. Difficult to achieve - may be done by test software. Beta test - software tested in its working environment. Feedback is used to correct and perfect software.


Technical guide, user guide


produced after testing – may lead to iterative action.

Fit for purpose robustness reliability portability efficiency maintainability

Maintenance Corrective Adaptive Perfective

performs in line with the software specification. ability of the software to perform without crashing. software produces the expected output ability to run or be converted to run on different platforms code is concise and well designed so that software runs quickly and does not use excess memory. source code is structured, modular, readable, well documented. iterative in nature. debugging and amending if not fit for purpose when compared to software specification. Free“Patches”often released. upgrading to meet requirements of new hardware/operating systems/ client needs . May be achieved by modular upgrades. identification of additional features that enhance the software. Probably addressed by release of new versions to be purchased.

Explanation of the iterative nature of the software development process. As modules are tested and issues arise in light of experience, parts may be redesigned, reimplemented and retested to improve the software.

AJN2007 Version 1.0

Higher Software Development Summary  

A summary of the Higher Computing Software Development Unit.

Higher Software Development Summary  

A summary of the Higher Computing Software Development Unit.