Vce Software Development Core Techniques and Principles Compressed
Vce Software Development Core Techniques and Principles Compressed
Vce Software Development Core Techniques and Principles Compressed
Many perceive the role of the software developer as one that is both solitary and mechanical. This
could not be further from the truth. Software development is an art. It is a highly creative field in which
programmers strive for innovative solutions to problems that range in complexity, scope and
application. It is a rare project that is undertaken by a single software developer as many projects are
large enough in scale to require teams of programmers working on aspects that need to be integrated
at a later stage. There are of course a number of stakeholders involved in the software development
process – the key one being the client. A good software developer needs to have communication skills
that will enable them to marry the client’s needs to the product and a mechanism by which the
solution can be refined.
This text has been written to support the VCE Software Development Units 3&4 course from 2020-
2024. The text follows the study design closely and explains the process of undertaking the Problem-
Solving Methodology – which can be used to develop a solution to a specified problem. This text has
been structured to follow the Areas of Study. At the beginning of each chapter, you will find a list of
the Key Knowledge dot points that are covered as well as a diagram showing where the chapter fits
into the course as a whole. This text contains questions to test your knowledge as well as practice
exam questions from each of the Areas and Study and is designed to be the comprehensive resource
for all students undertaking VCE Software Development.
i|Page
Published in 2020 by
ii | P a g e
CONTENTS
Software Development: Core Techniques and Principles 4rd Edition
iii | P a g e
For Dad.
iv | P a g e
Chapter 1
Approaches to Problem Solving
Key terms: information problem, Problem Solving Methodology, analysis, design, development,
evaluation, solution requirements, constraints, scope, coding, validation, testing, documentation,
efficiency, effectiveness, functional and non-functional components.
Study roadmap
Unit 3 Unit 4
Ch Area of study 1 – Area of study 2 – Area of study 1 - Area of study 2 -
Programming Analysis and Design Development and Cybersecurity: software
Evaluation security
1
2
3
4
5
6
7
8
9
10
information system. A software developer will The way that the PSM is implemented is known
follow this process to ensure that a design as the ‘development model’ and the different
addresses the problems that exist, performs choices that are available will be discussed in
within specifications, integrates if needed with detail in Chapter 4. For now, let’s just become
the existing system and can be achieved within familiar with the stages and activities
budget and on time. We will define four stages, associated with each stage.
each with a number of activities within them.
The first stage of the PSM is analysis.
The four stages we define are:
1. Analysis
1. Analysis
2. Design The analysis stage is where the information
3. Development system is examined to determine what
4. Evaluation problems exist or how new elements can be
added. There are a number of tools that can be
It is important to note that the PSM is not used to analyse a system, but it is important to
necessarily a linear process. In reading the remember that an information problem
stages and sub-stages in Figure 1, the order is involves users, processes, equipment and data
fairly clear. While a project would start out and all of these must be considered. Analysis is
executing the stages in this order, and would often about asking targeted questions;
aim to proceed from one to the next without together the answers help to build a picture of
any deviation, this does not normally occur. what is required. Analysis involves three main
activities in preparing a solution: determining
2|Page
Chapter 1: Approaches to problem solving
the solution requirements, identifying the gathered, how it is being used and by whom,
solution constraints and determining the and what information is being produced. By
solution scope, all of which are influenced by examining the information problem in this
the needs of the stakeholders (any parties that way, it can be easier to find out what additional
have a valid link or interest in the system or data will be needed to produce the software
information problem). These activities are solution that is required and what functions
often documented in the form of a Software the solution needs to provide.
Requirements Specification (SRS) which is a
type of report that is used by software The requirements of a software solution can be
developers to document the analysis of an classified as either functional or non-
information problem and to enable the design functional. Functional requirements are
stage to begin. directly related to what the software solution
is required to do. Non-functional requirements
are related to the attributes of the software
solution, such as user-friendliness, response
Systems thinking: A holistic approach to
rates, reliability, portability, robustness and
the identification and solving of
problems. Systems thinking involves maintainability. For example, the digital blood
analysing the interactions and pressure monitor shown in Figure 2 performs
interrelationships between components two very specific functions (taking a person’s
of individual information systems (data, blood pressure and their pulse). These are the
processes, people and digital systems), functional requirements of the software that is
to identify how they are influencing the
functioning of the whole system. This
running on the device. However, the software
approach enables students to has a number of non-functional requirements
understand whole systems and work relating to the way in which the information
with complexity, uncertainty and risk. needs to be presented and the way the device
responds. The device displays the pulse as a
VCAA VCE IT Study Design 2020-2023 flashing heart icon and the blood pressure is
Glossary
displayed in a timely manner (usually less than
a minute). The monitor is very easy to use with
a start and stop function (user friendly) as well
Determining the solution requirements as a recall function that immediately displays
the last blood pressure reading (response
In determining the solution requirements, the rate).
key question that needs to be asked is: What
does the solution need to provide?
3|Page
Software Development: Core Techniques and Principles 4th edition
Two terms that are important to understand the PSM, they will be provided with an SRS
are efficiency and effectiveness. Efficiency can which outlines all of the important aspects
be measured by examining factors such as the from the analysis stage. The format and
time it takes to complete common tasks, the content of an SRS will be discussed in detail in
cost of maintaining the system and the effort Chapter 5.
required to produce the required information.
Effectiveness can be measured by examining The design stage consists of two main
whether the goals of the system have been activities: planning how the solution will
met, that is, how accurate the solution is. function given the requirements (the solution
design) and determining the criteria that will
2. Design be used to evaluate the solution.
4|Page
Chapter 1: Approaches to problem solving
5|Page
Software Development: Core Techniques and Principles 4th edition
both the valid and invalid possibilities of the of it (as can happen when new software
software’s use. solutions are introduced). An evaluation can
(and should) contain many different elements.
When undertaking this task, the first step is to There are two key activities involved in this
list all of the tests that will be undertaken. This stage: evaluating the software solution and
list can be quite long as it will be designed to determining a strategy that will be used to find
cover all of the combinations of valid and out the extent that the solution meets the
invalid input as well as use of the software. required needs.
Test data will be constructed to perform each
of these tests and often the expected Evaluating the solution
behaviour or output from each will be
documented. The tests will then be carried out In the design stage, a set of evaluation criteria
and the behaviour of the software solution were created that can now be drawn upon to
compared to the expected result in each case. evaluate how well the solution has met
requirements, needs or opportunities. In
There is some argument that the best time to framing the evaluation of these criteria, it is
compile a list of tests is during the design stage. important to consider the overall efficiency
Doing so gives those coding the solution a and effectiveness of the solution. For that
valuable insight into the exact parameters of reason, criteria that have been written in a
both the input and output. quantifiable way containing efficiency and
effectiveness measures, will enable a software
The final step of the testing process is developer to quickly determine the extent to
correcting those errors that have been which a software solution has been a success
detected, after which the test data that initially or what its deficits are.
triggered the incorrect result is tested again to
ensure that the software solution has been Determining a strategy
fixed.
What are the best ways to find out if the
Documentation software solution has met the required needs?
A strategy to determine this will include a
Documentation is then written to support the timeline for the evaluation, what data will be
variety of users of the software solution. collected using what methods and how the
Documentation can take a number of forms. data relates to the evaluation criteria set out in
Internal documentation is placed inside the the design stage. Note that this activity is more
program code and assists future programmers complex than simply asking a series of
who wish to modify the software solution. questions of the users.
System support documentation can be in
electronic or hardcopy form. Different types of
system support documentation can be
produced for different groups from those using
the system to those maintaining it.
4. Evaluation
6|Page
Chapter 1: Approaches to problem solving
Context Questions
• Imagine you are beginning the process of writing this text from scratch, using the PSM as the
method that will guide you. Write down what you envision you would be completing at each
stage and each activity within the PSM. Compare this to what others have and discuss any
different approaches that become evident.
At the conclusion of this chapter, you should be able to address the following key skills. Mark each off
as you can achieve them.
7|Page
Software Development: Core Techniques and Principles 4th edition
The following sample examination questions can be attempted to test your knowledge of the content
of this chapter.
Question 1
The purpose of the Problem Solving Methodology is:
A. To give form to what goes on in completing a task
B. To document a process within an organisation
C. To create a solution to a problem
D. To provide a structure by which a solution can be found to an information problem
Question 2
Which of the following lists contain measures of efficiency?
A. readability, cost, attractiveness
B. speed of processing, cost, level of automation
C. speed of processing, usability, accuracy
D. cost, productivity, timeliness
Question 3
Which of the following is a functional requirement of a solution?
A. User friendly
B. Robust
C. Calculates the tax payable for the financial year
D. Can be easily maintained
Question 4
The four stages of the Problem Solving Methodology are:
A. Analysis, Design, Implementation, Feedback
B. Design, Implementation, Feedback, Packaging
C. Analysis, Development, Evaluation, Construction
D. Analysis, Design, Development, Evaluation
Question 5
With reference to the stages of the Problem Solving Methodology, the stage that involves writing
evaluation criteria is called the ___________________ stage.
1 mark
Question 6
With reference to the stages of the Problem Solving Methodology, validation takes place within the
___________________ stage.
1 mark
8|Page
Chapter 1: Approaches to problem solving
Question 7
What is the difference between efficiency and effectiveness?
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
2 marks
Question 8
Paul is beginning the process of developing an App that will be used for podcasting. He starts by
gathering some data from both the presenters and listeners about what they would like to see
included. For each of these groups, list one functional requirement that may be put forward as well as
one non-functional requirement.
Group Requirements
Presenters Functional:
Non-functional:
Listeners Functional:
Non-functional:
4 marks
9|Page
Software Development: Core Techniques and Principles 4th edition
Question 1
Answer: D
Question 2
Answer: B
Question 3
Answer: C
Question 4
Answer: D
Question 5
Answer: Design
Question 6
Answer: Development
Question 7
Efficiency is a measure of how well a task is done while effectiveness is a measure of how correctly it
is done.
Efficiency and effectiveness are mentioned frequently in the study design and feature in the exam.
Often it will not be in a question as simple as this one. It is important to use these terms in your answers
but at the same time ensure that you use them in context and explain why. For example, stating that
a new system is efficient will not earn you any marks, but stating that a new system will increase
efficiency by reducing processing time, will.
Question 8
Group Requirements
Presenters Functional: Sound quality is high.
Non-functional: Easy for listeners to find their show
and listen to it
Listeners Functional: Easy to navigate and select shows for
their play-list
Non-functional: Reliable / doesn’t crash or lose where
they are up to in their play-list
Functional and non-functional requirements are a common exam question and it is important to not
only know the difference between them, but to be able to list things that come under each category.
10 | P a g e
Chapter 2
The Structure of a programming language
Key terms: binary, kilobyte, data types, boolean, floating point, integer, string, date, control structure,
sequence, selection, repetition (iteration), subroutine, function, method, event, class, internal
documentation, naming convention, mock-ups, data dictionary, object descriptions, algorithm, top-
down design.
Study roadmap
Unit 3 Unit 4
Ch Area of study 1 – Area of study 2 – Area of study 1 - Area of study 2 -
Programming Analysis and Design Development and Cybersecurity: software
Evaluation security
1
2
3
4
5
6
7
8
9
10
Soon the amount of binary numbers that we VCAA VCE IT Study Design 2020-2023
were storing grew larger, as did the width of Glossary
the computer bus on the motherboard. By
increasing the size of the bus, computers were
able to move more data around more quickly. An understanding of the data types that can be
Larger units were needed to represent these utilised in a programming language is
greater quantities. paramount to the creation of an efficient
software solution. Many would argue that as
A kilobyte represents 1000 bytes (‘kilo’ means memory capacities and CPU clock speeds have
1000). Technically speaking, as binary is a base increased, the need for the careful selection of
2 number, a kilobyte is not exactly 1000 bytes, data types has become less of an issue.
but is equal to 1024 bytes (which is 2 to the However, the choice of variables used in a
power of 10). ‘Kilo’ was adopted as the prefix software solution has direct implications for
as the number was so close to ‘1000’ that it storage sizes, processing times and accuracy.
was the most convenient measure. Each The larger the program being developed, the
increase of scale (by 1000) has seen a different more influence these choices have on the
unit defined. Figure 3 summarises the ones efficiency (running time and memory used) of
that are used commonly today (or soon will the finished solution.
be).
Figure 4 on the next page lists some of the
different variable types and their typical
Units of storage
Name Abbreviation Size Power of 2
Byte None 8 bits 8
Kilobyte KB 1,024 bytes 10
Megabyte MB 1,048,576 bytes 20
Gigabyte GB 1,073,741,824 bytes 30
Terabyte TB 1,099,511,627,776 bytes 40
Petabyte PB 1,125,899,906,842,624 bytes 50
Exabyte EB 1,152,921,504,606,846,976 bytes 60
12 | P a g e
Chapter 2: The Structure of a Programming Language
ranges. Different names can be used for these Languages are often classified as being either
types in each language and their storage size high or low level languages. The distinction
and value range can vary. There are also many between these is based on the amount of
other data types that are available, but our translation that is needed to take the language
focus in this chapter is on the standard types from its entered form to binary code (known as
listed in this table. compiling). The more translation required, the
“higher” the level of language. It used to be the
Some of the ranges in Figure 4 may appear case that if a software developer wanted to
quite strange. They are however, not arbitrary achieve higher levels of efficiency, they would
values, but are determined by calculating the code in a lower level language so that they
maximum number that can be stored using could better control what was happening at
that many binary digits. machine level. This is still true, but many of the
modern programming languages strike a good
balance between ease of use and allowing the
The structure of a user to access machine level control if they
programming language wish.
13 | P a g e
Software Development: Core Techniques and Principles 4th edition
Figure 5: Overlaid diagrams showing how Object oriented (OO) programming languages
libraries, subroutines and methods are often (4GL) work in a very non-sequential way, as
represented opposed to many of the 3GL languages.
Although languages such as Visual Basic.Net
have their origins in the third generation, they
work in a fundamentally different way,
To aid in flexibility, subroutines can also accept
triggering instead on events and utilising
parameters to vary the way they operate.
methods within the code.
These parameters can be passed by value or by
reference, which basically means the
14 | P a g e
Chapter 2: The Structure of a Programming Language
Methods and events are similar in ways and in press a button on the dog’s back a number of
this sense hard to separate. Events usually times to give it commands, pat the dog, ‘give’
refer to those things that happen while the the dog a toy bone or pick up the dog. All of
program is running that are triggered by a these interactions are recognised by the robot
user’s interaction or by another object. When dog and can be considered to be ‘events’. The
an event is triggered, the program executes robot dog is also able to perform a number of
the code that is contained under the heading specific actions. The dog can walk, run, heel,
of the object and event in question. In this beg and ‘bark’. All of these actions can be
sense, events are usually the equivalent to considered to be the ‘methods’ that belong to
subroutines in 3GLs. For example, a button the dog (that is, what the robot dog can do). All
object may contain code in several different of these things can be considered to form the
event procedures, one of which could be a class of robot dog.
‘click’ event. When the user of the program
clicks on the button, the code inside the click If another robot dog were to be created using
event procedure would be executed. this class of robot dog, it too would be able to
be interacted with in the same ways and would
Methods are commands that can be used to be able to perform the same actions. It would
interact directly with objects to change their however act independently from the first
behaviour or have them perform a particular robot dog and any other robot dogs that were
function. Every object in an OO programming obtained and placed in the same environment.
language will have certain behaviours Most 3GL or 4GLs have the ability to define
associated with it that can be accessed via a classes and doing so is a powerful way of
method. As the type of object can be quite building sophisticated software solutions
varied, these methods are usually quite drawing on previous code and structures
specific to the object type in question. The rather than writing everything from scratch.
important aspect of this to understand is that
methods belong to objects. All objects have The role of internal documentation
specific methods that belong to them, and in
some cases, these methods may be unique. As well as writing documentation to enable the
users to use the program effectively, it is
Classes equally important to write internal
documentation in the program’s code.
Bringing these concepts together, is the object Although there may not be many
known as a class. A class is a definition of an circumstances in which programmers other
object that has a number of
methods and events associated
with it. It can be duplicated and
used independently of the other
instances of itself. Just as a
variable can be declared to be of
a particular type, an object can
be created that is of a particular
class and named in a unique
fashion that allows it to be
referenced on its own.
15 | P a g e
Software Development: Core Techniques and Principles 4th edition
than those that coded a program initially will Communicate the intended purpose
want to examine the code, internal
documentation is a vital element in the Make sure that when you are writing internal
software development process. If the program documentation, you are explaining what the
has been created by a programmer while code should be doing as opposed to what
employed by a company, the company owns function individual statements have. These
the program and may wish to make changes two things may seem to be the same, but to
long after the original programmer has left the another developer trying to understand what
company. Similarly, some aspects of a program the code is doing, it will be easier for them if
can be quite complex, and even the original they know what the purpose of the statements
programmer may have trouble interpreting are as opposed to simply what they do.
uncommented code if they need to make
changes to it in the future. Write your comments for someone else
Internal documentation should describe the In many cases, internal documentation will be
function of key variables and procedures and used by the software developers that wrote
should also include an explanation of the the original code. However, there will be many
naming and coding conventions that have times when developers are called upon to
been used. It is also usual to include any write modifications to existing code within an
references to code that has been sourced from organisation. With this in mind, internal
places other than the author or the company documentation should always be written
itself as well as include revision information clearly and professionally.
describing who has contributed to the
software development and when. Naming conventions for solution elements
Internal documentation does not have any Whether writing an algorithm or writing code,
effect on the efficiency of a software solution it is very important to decide on a naming
as the compilation process ignores all convention that will be used for all the
comment lines and does not convert them to variables and subroutines within the program.
machine language. This convention should then be applied
consistently throughout and documented in
Good internal documentation practices some fashion, possibly through internal
documentation and certainly in some hard
Header comments copy format.
At the beginning of a module or software The use of a naming convention is preferred for
solution, a number of lines can be used to state a number of reasons. In the long run, a naming
the name (or names) of those that have convention aids the programmer by reminding
written the code, the date that the code was them of the function of variables and
last updated, the version number of the code subroutines that they may not have used or
and a general description of its purpose. Doing accessed for a while in the development of the
this gives another developer some initial software. In addition to this, naming
information about the code and may aid their conventions aid those who are reading the
understanding. program with a view to understanding or
modifying it later on.
Use of white space
16 | P a g e
Chapter 2: The Structure of a Programming Language
17 | P a g e
Software Development: Core Techniques and Principles 4th edition
Usually, it lists the names of the variables, their Both data dictionaries and object descriptions
type, size (in characters), scope and a can be represented in a wide variety of ways.
description of their function. Data dictionaries There is not one standard for representing
can be created that contain more information these types of design tool, but the important
than this depending on personal preference. thing is that you understand the purpose and
An example is shown in Figure 8. function of both.
18 | P a g e
Chapter 2: The Structure of a Programming Language
Sequence
19 | P a g e
Software Development: Core Techniques and Principles 4th edition
1 Start … Stop These should be used to indicate the beginning and end
Or of any program or subprogram. It does not matter which
Begin … End pair is used, as long as there is consistency throughout
the algorithm.
2 Action 1 Sequence is represented by writing statements
Action 2 underneath each other as shown.
3 If Condition Selection is represented like this. If the condition is true,
Then then the statement(s) following the ‘then’ are carried
Action 1 out.
Action 2
End If
4 If Condition Expanded version of the above convention. If the
Then condition is true, then the statement(s) following the
Action 1 ‘then’ are carried out. Otherwise, if the condition is false,
Action 2 a set of different actions are taken.
Else
Action 3
Action 4
End If
5 Case of variable A ‘Case’ statement can be used to simplify conditions
value1: Action 1 where there are many different values that are being
value2 to value3: Action 2 checked. An action can be performed if the variable is a
value4+: Action 4 specific value, within a range or greater than a certain
End Case value.
6 Count ß number Assigning values to variables is done with an arrow, which
serves to show the flow of data. Note that conditions
should still use the ‘=’ sign when two objects are
compared to each other.
7 For Count ß first to last Repetition can be performed in a variety of ways, and
Action 1 pseudocode has a different way of representing each.
Action 2 This is a fixed loop that repeats a set number of times.
Next Count
8 Repeat This is used to continually repeat a loop until some
Action 1 condition becomes true. This is an example of the ‘test at
Action 2 end’ type of repetition discussed earlier.
Until Condition
9 While Condition Do This loop is used when a condition must be true before
Action 1 starting the loop. This is an example of the ‘test at
Action 2 beginning’ type of repetition also discussed earlier.
End While
10 Process, Display, Increment These are some examples of the more commonly used
Add, Multiply, Divide, Subtract pseudocode terms. It is not important to use all of these,
Calculate, Sum but consistency is important. ‘<>’ is used to indicate ‘not
Input, Output equal to’.
<>, >, <, <=, >=
Figure 10: Pseudocode conventions
Note that the main difference between the The example in Figure 11 on the next page, is a
‘test at end’ and ‘test at beginning’ repetition typical algorithm which starts by setting a
structures, is that if the condition is such that variable ‘Pass’ to ‘unlucky’. The user is then
the loop will end, the ‘test at end’ structure will prompted to enter a password and this is
still execute what is inside it once while the placed into the variable ‘Password’. A ‘test-at-
‘test at beginning’ will not execute what is beginning’ loop compares the password that
inside it at all. has been entered to the one held in the
variable ‘Pass’. If they are not the same, the
20 | P a g e
Chapter 2: The Structure of a Programming Language
21 | P a g e
Software Development: Core Techniques and Principles 4th edition
Context Questions
At the conclusion of this chapter, you should be able to address the following key skills. Mark each off
as you can achieve them.
List and explain the differences between the main data types
structures
22 | P a g e
Chapter 2: The Structure of a Programming Language
The following sample examination questions can be attempted to test your knowledge of the content
of this chapter.
Question 1
The process of breaking a problem down into smaller parts is known as:
A. an algorithm
B. top down design
C. bottom up design
D. sideways refinement
Question 2
A character data type stores data that is:
A. A single ASCII character
B. A prime number
C. A positive integer
D. True or false
Question 3
Which of the following is not a benefit of writing an algorithm?
A. Find errors in logic before coding
B. Test features of the user interface
C. Makes the processing more efficient
D. Makes it easy to divide the project amongst members of a team
Question 4
Which of the following is not a structure available in an algorithm?
A. Manipulation
B. Sequence
C. Iteration
D. Selection
Question 5
Internal documentation is:
A. A user guide which is included inside the code of a software solution
B. Documentation that is only intended for those internal to the organisation
C. Documentation intended for those that might make changes to the code
D. Documentation that is opened by typing an administrator password
btnProcess
Name Type Description
btnProcess_Click Event Calculate the final result
23 | P a g e
Software Development: Core Techniques and Principles 4th edition
Question 6
The tool displayed above can best be described as a:
A. Context Table
B. Data Flow Diagram
C. Object Description
D. Data Dictionary
Question 7
The person coding this object wants to add a tool tip that will appear when the mouse hovers over
the object. This would be classified as:
A. A method
B. A variable
C. A boolean value
D. An event
Question 8
The tool displayed above can best be described as a:
A. Context Table
B. Data Flow Diagram
C. Variable List
D. Data Dictionary
Question 9
The maximum number of unique ‘ID’ numbers that could be stored would be:
A. 16
B. 256
C. 255
D. 2056
Question 10
A Boolean data type stores data that is:
A. Encrypted
B. A prime number
C. A positive integer
D. True or false
Question 11
It is always good programming practice to use a naming convention.
a. Describe one naming convention that can be used when naming variables.
__________________________________________________________________________________
__________________________________________________________________________________
1 mark
24 | P a g e
Chapter 2: The Structure of a Programming Language
Advantage 1: _______________________________________________________________________
__________________________________________________________________________________
Advantage 2: _______________________________________________________________________
__________________________________________________________________________________
2 marks
c. Explain how not using a naming convention can lead to increased development costs in the
future.
__________________________________________________________________________________
__________________________________________________________________________________
1 mark
Question 12
a. What is internal documentation?
__________________________________________________________________________________
1 mark
b. Describe a situation in which not having any internal documentation would be a problem.
__________________________________________________________________________________
__________________________________________________________________________________
1 mark
c. Martin and Julee are having a debate about internal documentation. Martin believes that
every line of code should be accompanied by at least one line of internal documentation. Julee
argues that a few lines of documentation per event procedure is enough.
__________________________________________________________________________________
__________________________________________________________________________________
__________________________________________________________________________________
__________________________________________________________________________________
__________________________________________________________________________________
4 marks
25 | P a g e
Software Development: Core Techniques and Principles 4th edition
Question 13
A variable type that can only have two values: ‘true’ or ‘false’ is called ___________________.
1 mark
Question 14
Consider the diagram shown below:
__________________________________________________________________________________
1 mark
__________________________________________________________________________________
1 mark
c. At what stage of the Problem Solving Methodology would a diagram such as this be made?
__________________________________________________________________________________
1 mark
d. List two benefits of producing a diagram of this type (as opposed to not producing one at
all).
Benefit 1: _________________________________________________________________________
Benefit 2: _________________________________________________________________________
2 marks
Question 15
What is the difference between a method and a function?
__________________________________________________________________________________
__________________________________________________________________________________
2 marks
26 | P a g e
Chapter 2: The Structure of a Programming Language
Question 1
Answer: B
Question 2
Answer: A
Though programming languages used across schools vary, the standard data types listed in the study
design are the ones that you need to be familiar with.
Question 3
Answer: B
The design of a user interface, while it also takes place in the design stage, is a different process to
writing an algorithm.
Question 4
Answer: A
Manipulation is something that gets done in an algorithm, but rather this is spelled out using sequence,
selection and iteration.
Question 5
Answer: C
Question 6
Answer: C
Question 7
Answer: D
This question is aimed at the difference between methods and events. Events are (generally) triggered
when objects are interacted with, though events can also be triggered by other objects or the object
itself. A method is contained within the definition of the object and can be used to change its function
or appearance.
Question 8
Answer: D
Question 9
Answer: B
1 byte has a maximum number of 255 – plus 0, makes 256 different numbers.
Question 10
Answer: D
27 | P a g e
Software Development: Core Techniques and Principles 4th edition
Question 11
a. Hungarian convention.
b. i – Makes it easier to debug the program, ii – Makes it easier to see the function of variables
(their type, scope and purpose)
c. Anyone doing further development on the program will need to decipher what the variables
do and this will take time – leading to an increase in costs.
Question 12
When a question uses the stem ‘discuss’, this means that you need to discuss the pros and cons of two
alternatives. This is also reflected in the marks for the question which are set at 4 – meaning that the
examiners will be expecting you to make 4 points.
Question 13
Answer: Boolean
Question 14
a. annotated diagram or a mock up
b. software developer
c. design
d. 1: have a clear idea of what the solution will look like and how it will be laid out
2: can be used to show the client and gain feedback on the design
Question 15
A function is a subroutine that returns a value. A method is a subroutine that is associated with a
specific object.
28 | P a g e
Chapter 3
Data structures and data manipulation
Key terms: data structure, one-dimensional array, record, file, associative array, hash table, linear
search, binary search, selection sort, quick sort, files, CSV, TXT, XML, validation, existence check, range
check, type check, testing, syntax error, logic error, run-time error, debug, trace table, testing table,
test data.
Study roadmap
Unit 3 Unit 4
Ch Area of study 1 – Area of study 2 – Area of study 1 - Area of study 2 -
Programming Analysis and Design Development and Cybersecurity: software
Evaluation security
1
2
3
4
5
6
7
8
9
10
data type, it can consist of multiple data types represented like the diagram shown in Figure
(as is possible in some languages). 15 below.
Number
Index 0 1 2 3
Number3 Number4 Value 20
30 | P a g e
Chapter 3: Data structures and data manipulation
Customer_Details
Name Surname Address Suburb State Telephone
In an algorithm, values could be placed into the different parts of this record like this:
Customer_Details.Name ß “Phillip”
Customer_Details.Surname ß “Rivers”
Customer_Details.Address ß “217 Williams Rd.”
Customer_Details.Suburb ß “South Yarra”
Customer_Details.State ß “Vic.”
Customer_Details.Telephone ß “0414297564”
31 | P a g e
Software Development: Core Techniques and Principles 4th edition
A record like this is quite useful, but as it A hash table is a type of implementation of an
stands, it is storing one set of information. In associative array.
practice, records are placed into arrays so that
large sets of information can be stored (which Hash tables
is effectively the same as a database table).
A hash table is essentially a way of
Using data structures to organise data implementing an associative array in an array
of a smaller size than the known set of key
Associative arrays (or dictionaries) values. If an associative array is able to be used
in an array that is the same size as the total
An associative array is essentially a way of number of key values, then using a hash table
connecting two pieces of information is not really required. Let me illustrate this with
together. It will not be the main repository for an example.
the data within a system, but will instead aid in
the organisation of that data by associating a
transaction or event to it. The way that it does “Room101” : “Jameson, Elaine”
this is by using the main key value used to “Room105” : “Phillips, Mike”
index the data and then connecting it to “Room106” : “Canter, Judy”
another value to form a (key, value) pair. Key “Room204” : “Jameson, Elaine”
values do not have to be all represented in the “Room209” : “Le, Jenny”
associative array, but by definition, should be “Room210” : “Teo, Manti”
unique identifiers.
Figure 18: Storing information in an
Let’s say that we need to record the names of associative array
people that are staying in a hotel (by the room
number). If a person is staying in a room, then
we record their name against the room The hotel room associative array would not be
number, otherwise we don’t record the room a good candidate for a hash table as the
number in our array at all. An associative array number of rooms in the hotel is a known
to represent this might look like the one below. quantity and is also relatively small. The
There are a few things to note about overhead in storage and processing time is
associative arrays that are illustrated by this miniscule in a situation like this. However, let’s
example. instead imagine that we want to record the
occurrence of a word in an essay (not how
Firstly, an association consists of a binding and many times a word has appeared but just that
this is often shown by using a ‘:’. Some the word has been used). The number of words
programming languages (PHP for example) in the English language is now just over
actually make use of the ‘:’ character in their 1,025,000. We could make an array of this size
implementation of associative arrays. so that we could represent a strict key:value
binding for every single word. While that
The second thing to note is that not all of the would work, there are some problems with
rooms in the hotel are represented. In fact, it is doing this. Firstly, the number of words in the
not clear how many rooms are present in the English language is increasing, so our data
hotel. structure would require frequent modification
to stay in line with this. In addition, it is highly
The third thing to note is that a person can unlikely that an essay would use every single
effectively book more than one hotel room word in the English language. A typical essay
under their name. The ‘key’ cannot be may only have a few hundred unique words, so
repeated but the ‘value’ can be. the use of an array of over one million
elements will mean there is a lot of wasted
32 | P a g e
Chapter 3: Data structures and data manipulation
33 | P a g e
Software Development: Core Techniques and Principles 4th edition
34 | P a g e
Chapter 3: Data structures and data manipulation
available to all companies as it incurs extra the entire code before they execute the
cost. program.
Logic errors
Automated testing can help to limit the
time involved in formally testing software Logic errors are much harder to detect than
solutions. Automated testing software is syntax errors as they may not occur every time
a category of software that can run a the program is run and they do not cause the
series of pre-determined tests on
software solutions using test data and
program to crash. They occur when data
modelling keystrokes and mouse causes the program to operate in a way that
movements. Packages can be expensive, was not intended. For example, the program
but make the testing process cheaper in may give an incorrect answer to a calculation
the long term. or retrieve the wrong record from a database.
Run-time errors
The costs of improper testing Run-time errors (or exceptions) occur when
something happens that was not planned for,
Despite the fact that IT is a relatively young
causing the program to crash. Common
field in terms of world history, there have been
examples of this sort of error are when an
some infamous examples of the effect that
index is used that is outside the bounds of an
improper testing can have. The Therac-25 was
array or a number is placed into a variable that
a medical computer used to control radiation
has not been allocated enough space to hold it.
therapy. A bug in its code caused at least two
What follows is a brief description of some of
deaths between 1985 and 1987 due to massive
the most commonly occurring errors. Most of
exposures to radiation (over 100 times the
these errors are run-time errors, but some are
intended dose). A bug in the guidance system
logic errors.
of the European rocket Ariane-5 caused the
rocket to explode one minute after take-off,
Arithmetic overflow and underflow
costing over one billion US dollars. The
software within the guidance system
Arithmetic overflow happens when the result
attempted to store a 64-bit number in a
of a calculation or process causes a variable to
memory location of only 16-bits.
become too large for the location in which it is
stored. Underflow can occur when a number is
Types of errors too small to be represented in the variable
type being used. This may be hard to visualise,
Before discussing how we can test a module or
but as small numbers are represented as
coded solution for errors, it is useful to have an
exponents, small numbers have an exponent
understanding of the different types of errors
which is a large negative number.
that can occur. Generally speaking, errors are
classified as syntax errors, logic errors or run-
Memory leak
time errors.
As programs create variables and allocate
Syntax errors memory to resources, they consume more of
the processing power of the computer on
Syntax errors are errors with the spelling or
which they are running. If these resources are
format of specific commands. As such, they do
not ‘freed’ up when they are no longer needed
not occur very frequently in finished programs
by the program, there is the potential for the
as most good programming language
program to increasingly use more and more
interfaces will detect them in the development
memory. This may lead to reduced
stage. Compiled languages check the syntax of
performance for all the programs being used at
35 | P a g e
Software Development: Core Techniques and Principles 4th edition
the time and at its most extreme will cause the Off-by-one error
computer to crash. Many programming
languages now include ‘garbage collectors’ This type of error is a very common one in
whose sole function is to free up those areas of which a loop within a program either loops one
memory that are no longer needed by the too few or one too many times. This may or
program. may not cause the program to crash, instead
possibly causing an output or function to be
Handle leak incorrect. Often the cause for this problem is a
programmer failing to take into account that
A similar type of error to the memory leak, a an array begins at ‘0’ as opposed to ‘1’. This
handle leak occurs when a program allocates a error can also be caused by a comparison that
‘handle’ to a resource (such as the screen, is out by one (for example, ‘less than’ instead
printer or other peripheral) and does not ‘free’ of ‘less than or equal to’).
up this handle on completing the task. The
program may then assign multiple handles to Race hazard
the same device, which will slow the computer
down and may eventually cause a crash. A race hazard can occur when one process that
is dependent upon the output from another
Buffer overflow process, executes before that data is received.
36 | P a g e
Chapter 3: Data structures and data manipulation
wrong, only to find a dead moth in-between been done, go through the algorithm line by
one of the relays! They affixed the bug to the line, and as the variables change, you should
error log and wrote underneath “First actual write their new values under the relevant
case of bug being found”. The original log column. You should also leave a space at the
(complete with the moth taped to it) can be bottom of the table for anything that is output
found in the Naval Surface Warfare Center to the screen.
Computer Museum at Dahlgren, Virginia, USA.
The technicians were reputedly the first to coin Note that columns are only modified when the
the term ‘debugged’. value of a variable is changed. This way, when
reading the trace table, the current state of the
module or coded solution can be found by
examining the bottom row. If a variable does
not have a value entered in this row, the
current stored value of the variable is the
bottom most one.
37 | P a g e
Software Development: Core Techniques and Principles 4th edition
specifications. Once focus moves to the testing collections of data (such variable defaults or
of the coded solution as a whole, the use of program statistics) into a TXT file. In doing so,
trace tables and watch lists becomes hard as the software developer will be ensuring that
the number of variables can be extremely they write information and read information in
large. the same order and insert any separators that
they require. This lack of structure often means
Testing will be further discussed in Chapter 8, that software developers will instead opt for
where we will focus our attention on the ways one of the two other formats listed next.
in which solutions are tested and evaluated.
CSV file format
Procedures and techniques for One of the most common file formats is a CSV
handling and managing files or Comma Separated Value format. As the
name suggests, a CSV file is a text file in which
A number of procedures and techniques are the items of data are separated by commas.
often used when managing files. As files are Many applications are able to produce CSV files
easily corrupted, it is often best to leave them as their output and accept CSV files for input. A
‘open’ for the shortest time possible. From a CSV file can fairly easily replicate what is held
programming perspective the best way to do in a spreadsheet as its format and structure is
this is to ‘open’ the file, read in its contents and very similar. Though it is more common to
then ‘close’ the file. If the file is ‘open’ and the encounter a comma delimited file, the
software solution experiences an unexpected character that is placed between the different
crash, it is quite likely that the file will be data items can be varied. If a software solution
damaged. Opening files for prolonged periods is using the file exclusively, then the choice of
can also mean that other users cannot access character (known as the delimiter) does not
the file. matter. However, if the data is going to be
passed between software packages, the choice
Input files should be located in a folder that is of delimiter is obviously very important.
specific to the software solution so that they
are easy to locate and are grouped with the XML file format
solution when files are backed up. This can also
be achieved by including an import feature in XML or Extensible Markup Language is a
the software that copies a file from any method of encoding data in a file that is both
location to a secure folder within the solution. well organised and accessible for software
solutions as well as easy to read. It is standards
Naming of files is also important. A specific file based and used extensively by software
extension may be chosen so that files are not developers, especially when sharing of data
misinterpreted as belonging to another over the Internet is required. It shares a similar
software package. Files should be named in structure to HTML, which also uses ‘markups’
ways that identify them and distinguish them in the form of tags in its structure. One of the
from previous versions. most useful aspects of representing data in
XML file format, is that the format itself defines
Common file formats the data and how it is structured. This is in
contrast to a CSV file where the exact number
TXT file format and data types would need to be known in
advance for a software package to read them.
While all files are technically saved in a plain
text format, a TXT file has no special structure An example of an XML file is shown on the next
to it (other than one that the software page.
developer imposes via their code). It is very
common for software developers to save small
38 | P a g e
Chapter 3: Data structures and data manipulation
39 | P a g e
Software Development: Core Techniques and Principles 4th edition
Let’s examine how a binary search would locate some items contained the list below:
Index 0 1 2 3 4 5 6 7 8 9 10 11 12
List(Index) 3 5 8 9 12 17 27 28 30 42 44 47 50
Note that the array shown above has already been sorted.
We will start by searching for the number ‘12’. Two variables - ‘Low’ and ‘High’ will be used to keep
track of the two ends of the list we are examining. Another variable – ‘Middle’ will be used to point to
the item we are comparing to our search item.
At the beginning of the search, ‘Low’ is set to the index of the start of the list (in this case ‘0’) and ‘High’
is set to the index of the end of the list (in this case ‘12’). ‘Middle’ is set to the middle index between
‘Low’ and ‘High’ (rounded down). If ‘Middle’ is the item we are looking for, the search is finished. In
this case, it is not, so we continue to the next comparison. The variables for comparison ‘1’ are shown
below:
Index 0 1 2 3 4 5 6 7 8 9 10 11 12
List(Index) 3 5 8 9 12 17 27 28 30 42 44 47 50
L M H
If the item we are looking for is smaller than the item at position ‘Middle’ then we set ‘High’ to be equal
to ‘Middle’ minus one. If it is larger, then ‘Low’ is set to be equal to ‘Middle’ plus one. This way, we
have halved the list. ‘Middle’ is reset to the mid-point between ‘Low’ and ‘High’. The variables for the
second comparison are shown below:
Index 0 1 2 3 4 5 6 7 8 9 10 11 12
List(Index) 3 5 8 9 12 17 27 28 30 42 44 47 50
L M H
Note that ‘Middle’ has been set to ‘2’ as it is the value of ‘High’ – ‘Low’ divided by 2 and rounded down.
Once again, the item at ‘Middle’ is not the item we are looking for. As our search item is higher, we set
‘Low’ to be equal to ‘Middle’ plus one. We also reset ‘Middle’ to the mid-point between ‘Low’ and
‘High’. The variables for the third comparison are shown below:
Index 0 1 2 3 4 5 6 7 8 9 10 11 12
List(Index) 3 5 8 9 12 17 27 28 30 42 44 47 50
L M H
‘Middle’ is now pointing to the item we are searching for, so we are now finished. It has taken three
comparisons in this case. Using a linear search method, on average it would take 6.5 comparisons. A
binary search would take a maximum of 10 comparisons to find an item in a list of 1,000 items, and a
maximum of 20 comparisons to find an item in a list of 1,000,000! For those that are mathematically
minded, the formula to work out the number of comparisons is log n (base 2) + 1 (where n is the
number of items in the array).
40 | P a g e
Chapter 3: Data structures and data manipulation
Variables
41 | P a g e
Software Development: Core Techniques and Principles 4th edition
when the data set being sorted is particularly examining each item in the array and finding
large and efficiency gains are required. the smallest one (in the case of sorting from
lowest to highest). Once found, this item is
There are a large number of different sorting swapped with the item at the start of the array.
routines. A quick search of the Internet will The sort then examines the items from the
uncover many of these – and will probably also next position to the end of the array, looking
raise the question: Why so many? Each sorting again for the smallest item. Once found, it is
routine that has been developed has resulted swapped with the item at the second position.
in gains in the number of comparisons within Each subsequent pass gets smaller by one – as
the routine and/or the number of times array the sorted portion of the array gets larger.
elements need to be swapped around –
ultimately leading to a quicker result. Most A selection sort is an easy sort to write and
sorting routines are designed to move the understand. Despite its relative simplicity, it is
array elements around rather than copy the not a bad sorting routine and can perform
array to another place in memory. This can be quite adequately if the situation is right.
important when the size of the array to be
sorted is very large. Sorting algorithms will Selection sorts do a large number of
almost always utilise a small number of comparisons (of the order of n2 where n is the
temporary variables so that swaps can be number of array elements being sorted). One
made. of the things that is very consistent about a
selection sort is the number of swaps and
For the purposes of this study, we will examine passes it will do. It will always perform n-1
two sorting routines. The array of data shown swaps as well as n-1 passes.
in Figure 26 below will be used to compare
each of them. Note that the data set starts at Some sorts have what is known as an ‘exit
array index ‘0’. clause’. Some sorting algorithms are able to
Index 0 1 2 3 4 5 6 7 8 9
List(Index) 35 20 15 30 28 45 17 3 49 32
Each time the array is cycled through, we call detect whether an array has become sorted
this a ‘pass’. Each time two array elements are and then exit the sort earlier. A selection sort
compared to each other, we call this a is not able to do this. In fact, an array that is
‘comparison’. Each time two array elements already sorted will take just as long to ‘sort’
are swapped, we call this a ‘swap’. Each of using a selection sort as one that is in reverse
these is an important measure in determining order (for example). Many of the more
if a sorting routine is performing well. sophisticated sorting routines move the array
elements towards a sorted state in the process
Let’s look at our first sorting routine (also one of doing simple comparisons – which a
of the simplest ones) known as a selection sort. selection sort does not do.
42 | P a g e
Chapter 3: Data structures and data manipulation
Below is the array of data that we will be using as a starting point for our sorting comparisons.
Index 0 1 2 3 4 5 6 7 8 9
List(Index) 35 20 15 30 28 45 17 3 49 32
On our first pass through the array, we look for the smallest number – which is ‘3’.
Index 0 1 2 3 4 5 6 7 8 9
List(Index) 20 35 15 30 28 45 17 3 49 32
We have now identified which number needs to go at the beginning of the array. So all we need to do
is swap it with the number that is there (‘20’) and our first pass is complete.
End of Pass 1
Index 0 1 2 3 4 5 6 7 8 9
List(Index) 3 35 15 30 28 45 17 20 49 32
Now we can start the second pass through the array. As we now have the first element in place, we can
start our loop from position ‘1’ instead of ‘0’. Again we are looking for the smallest element – which
this time is ‘15’.
Index 0 1 2 3 4 5 6 7 8 9
List(Index) 3 35 15 30 28 45 17 20 49 32
To end the second pass, we swap this element into its correct place in element ‘1’.
End of Pass 2
Index 0 1 2 3 4 5 6 7 8 9
List(Index) 3 15 35 30 28 45 17 20 49 32
Let’s do the rest of the passes in quick succession, now that you can see how each pass is done.
End of Pass 3
Index 0 1 2 3 4 5 6 7 8 9
List(Index) 3 15 17 30 28 45 35 20 49 32
End of Pass 4
Index 0 1 2 3 4 5 6 7 8 9
List(Index) 3 15 17 20 28 45 35 30 49 32
End of Pass 5
Index 0 1 2 3 4 5 6 7 8 9
List(Index) 3 15 17 20 28 45 35 30 49 32
43 | P a g e
Software Development: Core Techniques and Principles 4th edition
End of Pass 6
Index 0 1 2 3 4 5 6 7 8 9
List(Index) 3 15 17 20 28 30 35 45 49 32
End of Pass 7
Index 0 1 2 3 4 5 6 7 8 9
List(Index) 3 15 17 20 28 30 32 45 49 35
End of Pass 8
Index 0 1 2 3 4 5 6 7 8 9
List(Index) 3 15 17 20 28 30 32 35 49 45
In the final pass of a selection sort, the last two array elements are compared and swapped (if
required). This then completes the sort.
End of Pass 9
Index 0 1 2 3 4 5 6 7 8 9
List(Index) 3 15 17 20 28 30 32 35 45 49
For an array of 10 elements, a selection sort will execute 9 passes. In general terms, for an array of size
‘n’, a selection sort will execute ‘n-1’ passes.
44 | P a g e
Chapter 3: Data structures and data manipulation
Variables
A quick sort starts by setting a ‘pivot’ value Let’s see how this works in practice.
which is the item at the start of the list. As this
routine works by examining smaller and
smaller lists, we will define variables to keep
track of the current ‘start’ and ‘end’ of the list
we are examining.
45 | P a g e
Software Development: Core Techniques and Principles 4th edition
Here is our array of data that we used in the selection sort example.
Index 0 1 2 3 4 5 6 7 8 9
List(Index) 35 20 15 30 28 45 17 3 49 32
For the array above, ‘start’ and ‘up’ are set to ‘0’ and ‘end’ and ‘down’ are set to ‘9’. This would make
the ‘pivot’ value equal to ‘35’, which is the value at ‘start’. As we move through the array, we will be
comparing items to ‘35’.
Let’s begin. The value at ‘up’ is compared to the ‘pivot’ value. In this case ‘35’ is equal to ‘35’ and so
we will leave it in place. ‘Up’ is incremented and the next value is compared to ‘35’. ‘20’ is less than
‘35’ so leave it in place. ‘Up’ is incremented again. ‘15’ is also less than ‘35’. We keep incrementing ‘up’
until we find a value that is greater than ’35’. This happens when ‘up’ is pointing to index ‘5’ which is
‘45’. We have now found our first value to swap. ‘Down’ is now moved down the list. ‘32’ is less than
‘35’ which means we have our second value to swap. ‘32’ and ‘45’ are now swapped.
Index 0 1 2 3 4 5 6 7 8 9
List(Index) 35 20 15 30 28 32 17 3 49 45
‘Up’ now continues to move up the list till it finds a value that is greater than the pivot. ‘49’ is greater
than the pivot, so ‘up’ stops at index ‘8’. ‘Down’ is moved down the list until it finds a value that is less
than the pivot, or it becomes smaller than ‘up’. ‘Down’ does become smaller than ‘up’ when it has a
value of ‘7’. When this happens, this signals that the pass is over. The last thing to do is to swap the
‘pivot’ value with ‘down’. ‘35’ is swapped with ‘3’ and the array looks like the one below.
End of Pass 1
Index 0 1 2 3 4 5 6 7 8 9
List(Index) 3 20 15 30 28 32 17 35 49 45
The ‘pivot’ is now in its correct place in the array. You will notice that all the values below the ‘pivot’
are smaller and all the values above the ‘pivot’ are larger.
We now divide the list into two sub-lists, each of which we sort using the same routine. The sub-lists
are defined as being either side of the ‘pivot’ value (pointed to by ‘down’). If a sub-list consists of one
or no elements, we consider it sorted. In this case, we would have two sub-lists. The first list would
start at ‘0’ and go to ‘down’ – 1 (which in this case is ’6’). The second sub-list would start at ‘down’ + 1
(which is ‘8’) and go to the ‘end’ of the list.
As the quick sort routine works by sorting smaller and smaller sub-lists, we will consider the completion
of each sub-list to be a pass. Let’s sort the second sub-list first. The ‘start’ of this list would be ‘8’ and
the ‘end’ would be ‘9’. As this list has only two elements, we only need to sort these. In this case,
swapping ‘49’ and ‘45’ completes the sorting of this sub-list.
End of Pass 2
Index 0 1 2 3 4 5 6 7 8 9
List(Index) 3 20 15 30 28 32 17 35 45 49
46 | P a g e
Chapter 3: Data structures and data manipulation
Let’s now look at the first sub-list. The ‘start’ of this sub-list is ‘0’ (which makes the ‘pivot’ equal to ‘3’)
and the ‘end’ is ‘6’. ‘Up’ is set to ‘0’ and ‘down’ is set to ‘6’. ‘Up’ is now moved up the list until it finds
a value that is greater than the ‘pivot’ – which it does at index ‘1’. ‘Down’ is now moved down the list
till it finds a value that is less than the ‘pivot’ – which it does not do. ‘Down’ now has a value of ‘0’ and
as it is less than ‘up’, the ‘pivot’ is swapped with ‘down’ (which is not really a swap at all).
End of Pass 3
Index 0 1 2 3 4 5 6 7 8 9
List(Index) 3 20 15 30 28 32 17 35 45 49
As before, we try to split what is either side of the ‘pivot’ into two sub-lists. The first sub-list will be
from ‘start’ to ‘down’ – 1. This is a list of zero length, so we can ignore it. The second sub-list will be
from ‘down’ + 1 (which is ‘1’) to ‘end’ (which is ‘6’).
Once again, ‘start’ is set to the start of this list (‘1’) and ‘end’ is set to the end of this list (‘6’). The ‘pivot’
value in this case is ‘20’. ‘Up’ is set to ‘1’ and ‘down’ is set to ‘6’. ‘Up’ begins to move up the list again
till it finds a value that is greater than the ‘pivot’. This happens when ‘up’ is ‘3’ (which contains the
value ‘30’). ‘Down’ is now moved down the list till it finds a value that is less than the ‘pivot’, which
happens immediately. ‘30’ and ‘17’ are swapped. ‘Up’ continues to move up the list, this time stopping
at ‘28’. ‘Down’ continues to move down and passes ‘up’. At this stage, ‘up’ has a value of ‘4’ and ‘down’
has a value of ‘3’. As ‘down’ is now less than ‘up’, the ‘pivot’ and ‘down’ are swapped which places the
‘pivot’ in the correct place and ends the current pass.
End of Pass 4
Index 0 1 2 3 4 5 6 7 8 9
List(Index) 3 17 15 20 28 32 30 35 45 49
Hopefully now this process is clearer to you. To speed the process up, the remaining passes will be
shown to you – but I would encourage you to work them out for yourself first to check your
understanding.
End of Pass 5
Index 0 1 2 3 4 5 6 7 8 9
List(Index) 3 17 15 20 28 32 30 35 45 49
End of Pass 6
Index 0 1 2 3 4 5 6 7 8 9
List(Index) 3 17 15 20 28 30 32 35 45 49
End of Pass 7
Index 0 1 2 3 4 5 6 7 8 9
List(Index) 3 15 17 20 28 30 32 35 45 49
The list is now sorted. With a small list such as this, the size of the sub-lists was sometimes very small
(1 or 2 array elements). With larger lists, the sub-lists are divided and further divided and the sort works
backwards once it reaches these finishing points.
47 | P a g e
Software Development: Core Techniques and Principles 4th edition
Figure 31 below shows an algorithm for a quick should always have an end point, after which
sort (using recursion). Before we discuss how it time it will begin to work its way back through
works, let’s touch on the topic of recursion. the many procedure calls that have been
made. Now that you know how a quick sort
Recursion is the process by which a function or works, you can see that it divides the array into
procedure calls itself. This can be a very useful sub-lists, each of which is sorted using the
tool as it can make a complex process simpler quick sort routine.
and easier to code. A recursive procedure
Variables
Function Quicksort(List)
Begin
If length(array) > 1 Then
Pivot ß first element of the array List
Start ß first index of List
End ß last index of List
While Start <= End
While List(Start) < Pivot
Start ß Start + 1
End While
While List(End) > Pivot
End ß End -1
End While
If Start <= End Then
Swap List(Start) with List(End)
Start ß Start + 1
End ß End – 1
End If
End While
Quicksort(List from first index to End)
Quicksort(List from Start to last index)
End If
End
This algorithm is quite complex and hard to Alternatively, code the algorithm and test it
understand by simply reading through it. To out with some large unsorted lists to see what
come to grips with the way that it works, happens and how quickly the list is able to be
perhaps put some test data together and sorted.
perform a desk check of the algorithm.
48 | P a g e
Chapter 3: Data structures and data manipulation
Context Questions
1. What condition must be met for a binary search algorithm to be used successfully on a
collection of data?
2. Define the terms ‘pass’, ‘comparison’ and ‘swap’.
3. Of the terms above, which do you think would have the greatest negative effect on the
efficiency of a sorting algorithm?
4. If the program shown in Figure 15 were redesigned to read one million numbers into a suitably
sized array, how many additional lines of code would be required?
5. What is a data structure?
6. Why does the index of a 1D array typically begin at zero?
7. An array has been declared as having a maximum index of 10. How many elements does it
consist of?
8. What advantages does the use of arrays have when designing programs that deal with large
quantities of data?
9. What is a record?
10. Explain the term ‘Garbage In, Garbage Out’.
11. Describe ways in which a well designed user interface can minimise the amount of validation
code that is required.
12. Explain why it is logical to perform an existence check before a type check.
13. Suggest a suitable range check that could be used on a person’s birth date.
• Create a program of your own that will generate a list of 10 thousand random numbers and
then sort them using a selection sort and a quick sort. It should display the time and number
of passes once sorted.
At the conclusion of this chapter, you should be able to address the following key skills. Mark each off
as you can achieve them.
Compare the differences between TXT, CSV and XML file formats
Explain how a linear search is conducted and what must be done to use a
binary search
Describe how data can be validated using existence checking, range checking
Explain how test data can be constructed to test that modules work correctly
49 | P a g e
Software Development: Core Techniques and Principles 4th edition
The following sample examination questions can be attempted to test your knowledge of the content
of this chapter.
Question 1
A hash function can be used to:
A. sort data
B. make data in a list easier to find
C. remove data that is no longer current
D. create a copy of a set of data
Question 2
The validation process known as type checking is:
A. Used to prevent data of the incorrect variable type being accepted as input
B. Only effective if used as a method after a range check
C. Is used to check to see if a number has been entered with the correct number of decimals
D. Is only applicable when considering postcodes
Question 3
A difference between CSV and XML file formats is:
A. XML files are much harder to visually read than CSV files
B. CSV files do not contain any delimiters
C. CSV files are much larger than XML files for the same data set
D. XML contains tags which define field names and structure
Question 4
If the array above were to be searched using a linear search method, the maximum number of
comparisons to find an item would be:
A. 5
B. 12
C. 13
D. 11
Question 5
For the array above to be searched using a binary search, it must first be:
A. Copied to another array
B. Sorted
C. Placed into a hash table
D. Analysed for duplicates
50 | P a g e
Chapter 3: Data structures and data manipulation
Question 6
If the array of data was prepared correctly for a binary search, the maximum number of comparisons
to find an item would be:
A. 1
B. 3
C. 4
D. 5
Question 7
If the array above was prepared correctly for a binary search, the maximum number of comparisons
to determine if an item was not present would be:
A. 1
B. 3
C. 4
D. 5
Question 8
After being alerted to an issue by a customer, Emily examines some code in a software solution that
has been published by one of her employees. Emily is very surprised to find a number of syntax errors
as well a large logic error in a financial year tax calculation.
The logic error would most likely have meant that when the software was run without syntax errors:
A. It would have crashed
B. It would not have performed the calculation at all
C. It would have run a number of times and then stopped
D. It would have given the incorrect results to the tax calculation
Question 9
The data shown above is in which file format?
A. CSV
B. HTML
C. Javascript
D. XML
51 | P a g e
Software Development: Core Techniques and Principles 4th edition
Question 10
This is not a complete file. It is easy tell this because:
A. There is no closing ‘catalog’ tag
B. The last item listed begins with ‘G’ and this is not close to the end of the alphabet
C. The file states that there are 7 items in total
D. The arrow at the side of the main tag has not been expanded
Question 11
The <YEAR> field would most likely be of type:
A. Character
B. Text
C. Number
D. Date
Question 12
Client.Surname could be an example of a piece of code you might see when dealing with:
A. a one dimensional array
B. a hash table
C. a data dictionary
D. a record
Question 13
When coding a search for data in an array, Joey decides to start at the beginning and check each array
element in turn. This is called a:
A. linear search
B. brute force
C. binary search
D. hash function
Question 14
What is a trace table and what is its’ main purpose?
__________________________________________________________________________________
__________________________________________________________________________________
2 marks
Question 15
Consider the following array of numbers that is to be sorted in ascending order using a selection sort.
The sort is programmed to move through the array from left to right.
Index 0 1 2 3 4
List(Index) 65 23 45 62 27
a. On the first pass through the array, what number would be selected?
Value: ______________________________________________________________________
1 mark
b. How many passes will it take to sort this array?
Value: ______________________________________________________________________
1 mark
52 | P a g e
Chapter 3: Data structures and data manipulation
c. If this array had 1000 elements, how many passes would it take to sort this array?
Value: ______________________________________________________________________
1 mark
d. If this array had 1000 elements, how many comparisons would it take to sort this array?
Value: ______________________________________________________________________
1 mark
Question 1
Answer: B
A hash function on its own does not sort data. Best response in this case is option B.
Question 2
Answer: A
Question 3
Answer: D
Question 4
Answer: C
Must consider the possibility that the item is not contained in the array at all.
Question 5
Answer: B
Question 6
Answer: C
Question 7
Answer: C
Answer to Q6 and Q7 is the same. It takes the same number of comparisons to determine if a number
is present or not.
Question 8
Answer: D
Question 9
Answer: D
Question 10
Answer: A
Question 11
Answer: C
53 | P a g e
Software Development: Core Techniques and Principles 4th edition
Question 12
Answer: D
Question 13
Answer: A
Question 14
A trace table is a way of recording the current values of variables in an algorithm as it is tested.
The main purpose of a trace table is in testing – the benefit being that a software developer
can see all of the values and how they change line by line.
Question 15
a. 23
b. 4
c. 999
d. 499,500
54 | P a g e
Chapter 4
From planning to analysis
Key terms: design brief, mission statement, goals, objectives, information system, quantitative,
qualitative, solution requirements, functional requirements, non-functional requirements, constraints,
scope, project management, tasks, resources, critical path, developmental models, waterfall, agile,
spiral.
Study roadmap
Unit 3 Unit 4
Ch Area of study 1 – Area of study 2 – Area of study 1 - Area of study 2 -
Programming Analysis and Design Development and Cybersecurity: software
Evaluation security
1
2
3
4
5
6
7
8
9
10
56 | P a g e
Chapter 4: From planning to analysis
Typical examples of goals for organisations simply consisting of hardware and software.
include the following things: The processes that are used by the
organisation, the data within the system and
• profit (for commercial organisations the roles that people play are just as important
only) (if not more so) and have a significant impact
• achieving a specified percentage of on the creation of a software solution.
market share
• service to a cause (for non-profits
organisations)
• quality products Information system: the combination of
• excellent customer service (for non- digital hardware, software and network
components (digital systems), data,
profits this may well be their main
processes and people that interact to
goal) create, control and communicate ideas and
• excellent reputation data in digital solutions.
• the price and reliability of products
• the care and development of staff. VCAA VCE Computing Study Design 2020-
2023 Glossary
As goals are very broad statements (generally),
it can be difficult for an organisation to know
Information systems within organisations
the best way to act on them. In addition to this,
support the goals and objectives of the
it is important to be able to reflect on and
organisation. If an information system is not
assess the success of these goals – that’s where
doing this or not doing it well, then its function
organisational objectives come into play.
needs to be re-evaluated.
Organisational objectives are often
quantifiable statements that expand upon the
goals of an organisation in a way that allows
them to be assessed.
57 | P a g e
Software Development: Core Techniques and Principles 4th edition
The information systems that deal primarily • student enrolments for the year
with the processing of transactions are (input)
grouped together as their function is similar. • GAT results (input)
These systems are categorised by their ability • SAC results (input)
58 | P a g e
Chapter 4: From planning to analysis
• moderated scores (output) There are a number of ways in which this can
• results of previous years (input) be done. Data can be gathered through the use
• analysis of the year’s cohort to that of of interviews, by observing the operation of
previous years (output). the information system and by conducting
surveys or issuing questionaries.
This is a simplification of the overall processes
involved, but hopefully this illustrates how an Before discussing each of these in more detail,
information system takes in data of many it is useful to understand the distinction
different kinds, processes it and then produces between quantitative and qualitative data.
information tailored to the needs of the
organisation. Quantitative and qualitative data
59 | P a g e
Software Development: Core Techniques and Principles 4th edition
also be difficult to determine who has filled out observations so they can be conducted
a survey and therefore how legitimate simultaneously.
responses are.
Observations can be time consuming and
Interviews and focus groups expensive to carry out. Their strength is that
they provide a view of the system that is
Interviews and focus groups can be used to unbiased by the opinions of those within it. It
obtain qualitative data on the use of the is important to recognise that observations
system and attitudes to it. They have the only provide a snapshot of the system within
advantage of providing richer data than that the time frame of the observation. For this
obtained through the use of surveys alone. In reason, the chosen time frame is very
fact, sometimes interviews and focus groups important. It is also important to acknowledge
may shed light on responses that have been that people being observed often behave
retrieved through other means but were not differently, which may have an effect on the
fully understood. Smaller focus groups are data that is gathered.
preferable to larger ones, as in a smaller group,
those participating may be more inclined to Solution requirements
respond. Documentation of interviews or focus
groups can be tedious, but technologies such The requirements of a software solution can be
as scribe pens, mp3 recorders, web-cams, etc. classified as either functional or non-
can make this task easier. functional. Often the difference between
functional and non-functional solution
Observations requirements is described as being the
difference between what a software solution is
Observations provide a method by which data going to do as opposed to what qualities it has.
can be gathered on how the system operates
and how it is used, in an unobtrusive manner.
Observations can be conducted in a very
structured way with specific actions being
recorded using a predetermined method. For
example, data could be gathered on how a
system operates during a stock-take, with
observers recording the interaction between
operators and a particular software package.
Alternatively, observations may involve an
observer simply recording what is occurring in
a system as a whole. Typically, a number of
individuals are employed to conduct the
Figure 34: User-friendly music software
60 | P a g e
Chapter 4: From planning to analysis
chapters will be concerned with ways in which use at an organisation where it will be used
this analysis can be performed. across a number of different platforms,
dividing the solution up between the logic and
Non-functional solution requirements the interface will also save a great deal of
money and time.
Non-functional requirements are related to
the characteristics of the software solution, Robustness
such as usability, reliability, portability,
robustness and maintainability. Let’s look at Robustness is a measure of how well a
each of these in turn. software solution responds to poor use or
inputs. When designing any software solution,
Usability it is very important to validate all of the input
to ensure that the software works correctly,
Usability is related to how easy it is for users to but it is equally important to ensure that the
make use of a software solution. It isn’t a program continues to run and will not fail with
measure of how happy or content users are an incorrect input. A software solution that
with a solution, but rather is measuring how was not robust, for example, would crash if a
clear, intuitive, logical and accessible a user entered some incorrectly typed data into
software solution is. A so called user-friendly one of its inputs.
software solution may work in one
environment but fail in another – as the Maintainability
requirement of user-friendliness is strongly
dependent on the users themselves. This is an Maintainability is mostly concerned with how
important consideration. It is paramount to easily a software solution can be fixed if and
have an understanding of the users, their when problems occur. In addition to this, the
relative skill levels, expertise and needs in term maintainability is also used to describe
order to write a software solution that they how easy it is to make modifications or
would consider user-friendly. additions to the software and how well the
software copes with changes made to its
Reliability environment.
Reliability is a measure of how long a software There are measures that are used in the field
solution can perform its required functions in of software development to gauge the
the operating environment in which it was maintainability of a software solution over
designed. Often this is expressed as a time. The key reason why this is a very
probability. important measure is that there is a definite
correlation between the maintainability of a
Portability software solution and time. Maintainability is
generally excellent when a software solution is
Portability is the ability for a software solution first implemented, but it decreases as time
to be moved from one environment to goes on. As the process of maintaining a
another. In Software Development, portability solution can be costly, there is often a time
is generally achieved by separating the logic when the cost of creating a new software
code from the interface code. If such a solution is more viable than maintaining an old
separation is performed, a software solution one. Predicting or detecting when this point
can be migrated to a new environment with has been reached can save an organisation a
changes only being necessary to the interface great deal of money.
code (which will save money and time). What’s
more, the function of the software solution will
not have changed from one system to another.
If a software solution is being developed for
61 | P a g e
Software Development: Core Techniques and Principles 4th edition
Probably the most common and obvious The speed of processing of a system is often
constraint is that of cost (economic). This will exhibited in its response rate. The response
vary quite a bit from situation to situation and rate is a measure of how long it takes for
will depend on the size of the organisation, the certain actions within the system to be
budget and the scale of the project. completed. If the response rate is too long,
users may get frustrated with the system and
Often when reflecting on the cost of a project, will view the software product negatively.
software developers will focus on the Similarly, a low response rate could result in
resources required, whereas the main cost is loss of customers and loss of money, as
generally time. Development time is valuable completing a task may take longer than it
and it may be that the time frame is set by the should.
production milestones. While this is a factor,
the cost of having a software developer or a Speed of processing is often measured in IPS
project team working on a solution over a (instructions per second) which in turn
period of time, may mean that the overall cost becomes MIPS (million instructions per
of a project is much more expensive that an second) and GIPS (giga instructions per
organization realises. This is especially true second). The number of instructions that a
when organisations are using their own system can process is often not the best way to
software developers who are on staff, as they represent its speed, as the speed can be
aren’t considering what it would cost to significantly influenced by factors such as the
employ someone on a contract basis CPU architecture and memory structure.
specifically to create the solution. When
employing a software developer on a contract Technical factors: capacity
basis, the cost of the software developer’s time
is transparent, and may cause an organization The capacity of the current information system
to reconsider their options or their budget. is a significant constraint on any proposed
software development. Capacity can include
Technical factors simple factors such as the amount of available
hard drive and/or network storage or the
Security features may be needed or may be amount of memory within the computer
part of the existing infrastructure and need to systems that will use the software solution.
be catered for. Compatibility with existing The network infrastructure will place a limit on
hardware and software may also be a factor as the amount of data that can be transferred
well as the speed of processing required (or simultaneously. It may also place a functional
available) and the capacity of the existing or physical limit on the number of people that
system. The solution may need to be can use the software solution at the same time.
developed for multiple platforms as well.
Technical factors: availability of
Let’s expand upon some of these briefly. equipment
62 | P a g e
Chapter 4: From planning to analysis
case that the software solution is being users in the system who have special needs
developed for an information system that is such as sight or hearing impairment or a
being upgraded and does not have the disability.
required hardware and software components
as yet. It might also be the case that the current Legal requirements
hardware and software will not be upgraded at
all to cater for the new solution, so the Without discussing the specifics of the
software developer must work within the legislation concerning copyright and privacy, it
reasonable limits of their capacity. This leads is easy to comprehend how legal requirements
into the next technical constraint that needs to within organisations act as a constraint on a
be considered – compatibility. software solution. For example, an
organisation’s privacy requirements may
Technical factors: compatibility dictate that a software developer needs to
protect the data within a software solution and
As with the previous constraint, a new include security features that prevent
software solution will often need to work unauthorised access. This will undoubtedly
within the bounds of the existing system. This take time and add to the cost of the
includes being compatible with the existing development. Chapter 9 explains the relevant
components. On a base level, a software legislation in detail and discusses some of the
developer needs to be aware of the operating issues surrounding it.
system that the existing system is utilising. On
top of this, a software solution will need to An organisation also needs to consider the
send data to and from related systems and ownership of key components. Now that we
databases and will need to be compatible with are in the era of cloud computing, key software
the file formats that these systems use. The solutions may well be located off-site or indeed
specifications of the devices within the system in another country. It is important that an
will need to be catered for so that the software organisation has a clear agreement with the
solution runs in an optimal fashion when being software solution provider that ensures the
used by these devices. ownership of their data remains with them.
63 | P a g e
Software Development: Core Techniques and Principles 4th edition
64 | P a g e
Chapter 4: From planning to analysis
closed. These would be examples of project when a certain stage must be reached.
constraints on the proposed software solution These are called milestones. An example of a
and they may also have an impact on the Gantt chart is shown in Figure 35.
scope. One of the main tasks that a project
manager performs is breaking the project In the Gantt chart shown in Figure 36, you can
down into a series of key tasks that need to be see milestones at points in the project timeline
accomplished. This list of tasks is important for represented as diamonds. The separate tasks
software developers, as it not only helps to are drawn from their starting date to their
structure how the software solution will be put finishing date and have arrows leading to tasks
together, but it helps to divide a project up in a for which they are a predecessor (that is, a
team development environment. dependency). The long horizontal bars are
used to represent stages of the project as
Project management enables targets to be opposed to separate tasks that need to be
defined, resources to be managed, deadlines completed.
to be met and changes in circumstances easier
to deal with. It is extremely useful in Identifying tasks and resources
determining budgets and is often used to
present a project proposal for tender. Time allocation and sequencing are of prime
Although there are a number of tools that can importance in project management. What are
be used to make this task easier, we will the main tasks that need to be completed to
discuss one of the main ones. take a particular project from start to finish?
The identification of these tasks is vital as it will
Gantt charts often give those involved in the project a good
sense of the scope of what needs to achieved
A Gantt chart is a type of bar chart that is used as well as how easily the tasks can be
to show how a project’s tasks progress from distributed amongst those involved. Not only
one to another. It was originally created by this, but some tasks will be dependent upon
Henry Gantt, a mechanical engineer, who first others being complete first (known as a
published the chart in 1910. A Gantt chart is dependency, as mentioned before).
able to show which tasks can be done
simultaneously, and which tasks depend on It is important to remember that a project is
others to be completed before they can be not just about completing a number of tasks in
commenced. These are referred to as a set amount of time. It is also about managing
dependencies. It also shows times in the resources. Resources can include personnel,
hardware, software as well as a
variety of other items such as
hiring venues for consultations.
These resources are only
available in finite amounts and
so the construction of a project
management timeline must
account for the shared usage of
them.
65 | P a g e
Software Development: Core Techniques and Principles 4th edition
Critical Path
Recording the progress of a project is almost as Of specific interest to a project manager, will
important as making the initial plan. Projects be the critical path. The critical path in a
almost never progress from start to finish project is defined as the longest path from the
without a variation in times, resources or beginning to the end of the timeline. What this
schedules. While it is important to allow for represents is the path along which there can be
this as the project plan is being constructed, it no delays that do not affect the completion
is equally important to monitor changes to the date of the project.
66 | P a g e
Chapter 4: From planning to analysis
We have just been discussing how the progress The waterfall model
of a project will change over time and how
important it is to reassess tasks and resources The waterfall model is a development model
and make adjustments as required. The critical that moves through the stages of the PSM in
path of a project is important as any changes order. Each stage is started and the activities
to the tasks on the critical path will mean that within each are completed in order, before
the project will be delayed. A project manager moving to the next stage. On first reading of
that is aware of this and making frequent the PSM, it would seem that this is the most
adjustments to their timeline, on recording a logical way for it to be implemented, though in
delay to a task on their critical path, will need practice, this is not the case. The reason why
to recognize this and make a future adjustment this model is called the waterfall model, is that
to another task on their critical path to once stages or activities are completed, they
compensate. Tasks that lie on the critical path cannot be revisited. This can be illustrated in
should have dependencies attached to them this way.
and should have no ‘slack time’ (that is, time at
the end of the task in which the task can be Figure 38 only shows the 4 stages and not the
delayed without penalty or negative effect). activities, but the concept should be clear. The
waterfall model does not allow for any overlap
Development model of activities or stages. Once an activity or stage
is completed, the model moves on to the next
approaches one. Likewise, stages or activities cannot be
revisited. Once they have been concluded,
While time is in an important factor in they are considered finished.
determining milestones and the duration of
tasks within a project
management plan, another
important consideration is the
development model that will be
used.
67 | P a g e
Software Development: Core Techniques and Principles 4th edition
• Easier to keep track or milestones and development model can also be susceptible to
ensure they are met. ‘scope creep’. A hallmark of this model is the
• Works best for projects of a small client interaction. While this is a very positive
scale. thing, it does allow the client to add features to
the original design or to change the scope once
Disadvantages: the process is started, which is an advantage of
• Once an application is in the this model but one that needs to be
development or evaluation stage, monitored.
changes cannot be made to the design
(if these become apparent). A popular way of implementing an agile
• Not suited to large scale projects or development model is using Scrum framework.
ones that will take a long time to In the Scrum framework, cycles are defined as
complete (there is the potential that ‘sprints’ and are each given a specific (non-
scope or constraints may change). moveable) time-frame (typically several
• A working prototype or beta version of weeks). At the start of the sprint, the client
the application will not be available till meets with the software development team to
late in the development process. discuss their needs (which can be specific or
general, large or small). All of these needs are
listed are developers are assigned to them.
The agile model Each day, the development team meets (in a
scrum) for 15 minutes to discuss their
progress. As a team they problem
solve impediments, discuss
constraints and scope and share their
progress. This process is managed by
one member of the development
team who has been assigned the role
of ‘scrum master’. The scrum master
also ensures that everyone
understands the process and the time
left in the sprint. At the conclusion of
the sprint, the client is shown the
progress of the work so far and new
goals are set for the next sprint.
Figure 39: Agile model
68 | P a g e
Chapter 4: From planning to analysis
Disadvantages:
• The scope of the project may
not be fully evident at the
beginning.
• The project can quickly go off
track, especially if the client
keeps changing their mind or
circumstances keep changing.
69 | P a g e
Software Development: Core Techniques and Principles 4th edition
Disadvantages:
• The risk analysis component is a highly
specialised one and requires a
software developer that has
experience in this area.
• Doesn’t work well for small projects.
• Due to the complexity of the phases
and the model itself, it can be costly to
implement.
70 | P a g e
Chapter 4: From planning to analysis
Context Questions
• See if you can create a Gantt chart to describe the process of building an average house.
Divide the project up into tasks and try to visualise the dependencies between them as well
as what resources will be needed and when. What tasks would lie on the critical path?
• Try to write a mission statement for your school and then compare what you have written to
the actual one.
• Select a number of devices and list as many functional and non-functional requirements as
you can for each.
• Imagine you are making a film using the agile method. What would this process look like and
what difficulties could you foresee? How would this compare to using the spiral methodology?
At the conclusion of this chapter, you should be able to address the following key skills. Mark each off
as you can achieve them.
List and describe ways in which data can be collected and the benefits of each
Explain the difference between organisational goals and objectives and information
software solution
Discuss the agile, waterfall and spiral development models and their differences
For a proposed software solution, explain the constraints and the scope
71 | P a g e
Software Development: Core Techniques and Principles 4th edition
The following sample examination questions can be attempted to test your knowledge of the content
of this chapter.
Question 1
Which of the following is not a valid organisational goal?
A. Be profitable
B. Ensure 99% network uptime
C. Manufacture quality products
D. Provide excellent customer service
Question 2
Which of the following is not a valid organisational objective?
A. Reduce customer complaints by 60%
B. Maintain an employee retention rate of 98%
C. Provide care and support for the staff within the organisation
D. Make a profit of $10K per calendar month
Question 3
An agile process is one that:
A. Begins at the start and continues through to the end
B. Can begin and end anywhere in the cycle
C. Is very cost effective
D. Can revisit previous stages to refine the solution further
Question 4
A milestone in a Gantt chart is used to show:
A. How many people will be working on a task
B. The resources needed for a task
C. How tasks flow from one to another
D. A point in time when a certain stage must be reached
Question 5
A mission statement is:
A. A lengthy document outlining all business practices
B. Only for public relations purposes
C. A blurb for the website stating name and location and ‘about us’
D. A statement of the ultimate goals of the organisation
72 | P a g e
Chapter 4: From planning to analysis
Question 6
The critical path in the Gantt chart shown above has a duration of:
A. 8 days
B. 9 days
C. 10 days
D. 7 days
Question 7
If Task G is delayed by 1 whole day, the overall effect on the project will be:
A. There will be no change in the completion date
B. The project will be delayed by a whole day
C. The project will be delayed by two whole days
D. The project will finish one day earlier
Question 8
Task H must wait for both Task E to be completed, before it can begin. In this context, Task E is known
as a:
A. Critical task
B. Predecessor
C. Dependent task
D. Resource
Question 9
Paul employs Maxine to create an App for his business. The first thing that Maxine sets about doing is
creating a project plan. When she presents this plan to Paul, the first thing that is obvious to him is
that she has left a gap between the end of one task and the start of the next one. Explain why she has
done this and the effect it may have on the finish date of the project.
__________________________________________________________________________________
__________________________________________________________________________________
__________________________________________________________________________________
2 marks
Question 10
Julie shows some of her proposed solution screen designs to Geoff and asks for his feedback. In doing
so, she mentions to him that he needs to ensure that his feedback is accurate as she does not believe
in agile development.
___________________________________________________________________________
___________________________________________________________________________
1 mark
73 | P a g e
Software Development: Core Techniques and Principles 4th edition
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
4 marks
Question 11
What is a mission statement?
__________________________________________________________________________________
__________________________________________________________________________________
1 mark
Question 12
Geoff is in charge of a large software implementation in his workplace, and has constructed a detailed
Gantt chart to manage the process. Two weeks into the implementation, Geoff’s colleague Regina has
noticed that he has not updated the chart. When she questions him about this, he states that he has
no intention of modifying the chart at all. List three problems that could arise as a result of this.
Problem 1: ________________________________________________________________________
__________________________________________________________________________________
Problem 2: ________________________________________________________________________
__________________________________________________________________________________
Problem 3: ________________________________________________________________________
__________________________________________________________________________________
3 marks
Question 13
WeCare is a support service for those that need urgent maintenance work to be done in and around
their home or residence, but cannot afford to pay for it. Many of the clients are either elderly or out
of work. Write two goals that would be suitable for the WeCare information system.
Goal 1: ___________________________________________________________________________
Goal 2: ___________________________________________________________________________
2 marks
74 | P a g e
Chapter 4: From planning to analysis
Question 1
Answer: B
Question 2
Answer: C
Question 3
Answer: D
Question 4
Answer: D
Question 5
Answer: D
Question 6
Answer: B
Question 7
Answer: B
Task G is on the critical path, therefore a delay of 1 day will result in a delay of 1 day for the entire
project.
Question 8
Answer: B
Question 9
The reason Maxine has left a gap between the end of one task and the start of another is to allow for
any unforeseen events or delays in the project. By doing this, the chances that delays during stages of
the project will also delay the finish date of the project, are minimised.
Question 10
a. Agile development is the process by which stages in the PSM are cycled – beginning and
ending with consultation and feedback with the client.
b. The opposite is Waterfall development – in which the stages are done one after another
with no repeating or cycling back. While waterfall development is quicker than agile
development, it also does not respond to feedback (or give the client as many opportunities
to provide this). Agile development is more thorough, but takes longer (and therefore costs
more). Clients tend to be much happier with agile development as they are kept ‘in the loop’
much more.
75 | P a g e
Software Development: Core Techniques and Principles 4th edition
The question stem ‘discuss’ means that you should explain the pros and cons of each of the things that
have been mentioned. Another clue to the response that the examiners are looking for is the number
of marks. As this is a 4 mark question, it is important to ensure that you list 4 distinct points.
Question 11
A mission statement is a statement about the goals of the organisation and why it exists.
Remember that a mission statement is often very broad and while it is important, it does not go into
specific detail about objectives.
Question 12
a. Milestones may not be met.
b. If the project is not running exactly to time, it may mean that resources that are booked for
key parts of the implementation will not be available (given that they will be required later
or earlier).
c. Parts of the implementation may begin (at their allotted time) without the pre-requisite
tasks they need to be completed having been finished. This may lead to confusion and
wasted time.
Question 13
Goal 1: Record the jobs that clients register with WeCare.
Goal 2: Keep track of the progress of jobs.
Other goals could be equally valid involving communicating with trades-people or maintaining the
register of clients.
76 | P a g e
Chapter 5
Analysis tools
Key terms: Unified Modelling Language (UML), use case diagram, actor, use case, system boundary,
association / communication, includes, extends, Data Flow Diagram (DFD), entity, data flow, data store,
process, DFD level, context diagram, Software Requirements Specification (SRS).
Study roadmap
Unit 3 Unit 4
Ch Area of study 1 – Area of study 2 – Area of study 1 - Area of study 2 -
Programming Analysis and Design Development and Cybersecurity: software
Evaluation security
1
2
3
4
5
6
7
8
9
10
Associations / Communications
78 | P a g e
Chapter 5: Analysis tools
79 | P a g e
Software Development: Core Techniques and Principles 4th edition
80 | P a g e
Chapter 5: Analysis tools
81 | P a g e
Software Development: Core Techniques and Principles 4th edition
Process
As a general convention, creators of DFDs try Figure 56: Data Store – Data Store data flow
to have the DFD flow from the top left corner
of the page to the bottom right (in a clockwise
Data cannot flow between these symbols:
direction). This is not always easy to
accomplish, but aiming to have a DFD Data Store – Entity or Entity – Data Store
constructed in this way aids readability.
For the same reason that data cannot be
passed from data store to data store, data
Data cannot flow between these symbols:
cannot be passed directly between an entity
Entity – Entity
and a data store. For this to be valid there
needs to be a description of the process that is
An interaction between two entities is outside
being carried out. This is especially true
of the organisation and is therefore not of
considering that an entity by definition exists
interest. The only time that it is going to be of
outside of the organisation – and it would be
interest to the organisation, is if the
highly unusual for them to be writing data or
organisation is facilitating this transfer of data
retrieving data directly from within the
in some way. If this is the case, a process needs
organization.
to be included between the two entities to
describe what is occurring.
82 | P a g e
Chapter 5: Analysis tools
Figure 57: Data Store – Entity data flows Figure 59: Avoid ‘magic processes’
Be very careful that the data flows that are Ideal DFD size is no more than eight
going into a process are enough to produce the processes
required information. The process should not
be ‘creating’ information out of nothing. This is more of an opinion than a set
convention, but it is generally understood that
Another situation to avoid is one in which a the size of a DFD is best kept to a manageable
data flow enters and leaves a process level of detail. If it is not possible to break a
unchanged. In such a case, there is no problem down into eight processes or fewer,
indication of what processing has been done (if then the way that the problem is being divided
any). up needs to be re-examined. There is a
mechanism by which DFDs can be further
broken down and this will be discussed after
the detailed DFD example that follows.
83 | P a g e
Software Development: Core Techniques and Principles 4th edition
Process descriptions should be These are the main processes that are taking
meaningful place. It is possible to pick out more processes
than this or to phrase these in a different way.
When constructing a DFD, it is important to The important task is to represent the data
ensure that the descriptions that are placed flows within the system as these are
inside processes are meaningful. It can be a dependent on the number and types of
good practice to try to include a verb, as the processes that you identify, there is more than
nature of a process is that some task is being one way to do this correctly. We will firstly
carried out. For example, using words like: draw our processes in a roughly clockwise
‘calculate’, ‘validate’, ‘add’, ‘remove’, ‘edit’, fashion on the page, as shown in Figure 61.
‘archive’, ‘process’ and ‘compile’ is highly
desirable.
84 | P a g e
Chapter 5: Analysis tools
85 | P a g e
Software Development: Core Techniques and Principles 4th edition
later on the amount of food/produce that customer, but this order is not obvious by
needs to be ordered can be calculated. looking at the data flows themselves.
4. Bill produced
Note that the order in which the data flows 5. Order is placed with supplier
occur is not represented in a DFD. We know
that the customer requests the bill and that the The orders for the day are retrieved and
bill is produced and then given to the analysed to determine what needs to be
ordered. This order is then sent to the
supplier (or suppliers).
86 | P a g e
Chapter 5: Analysis tools
By convention, the
processes in a Level 1 DFD
are numbered starting from
‘1’. If the first process was
chosen to expand, the
processes would be
numbered ‘1.1’, ‘1.2’, ‘1.3’
and so on, as shown in
Figure 68 below.
Levels of DFDs
87 | P a g e
Software Development: Core Techniques and Principles 4th edition
You will also have noticed that the waiting staff The introduction outlines the purpose
are not included in the DFD or in the context of the software solution, its
diagram. This is because DFDs focus on the constraints and its scope.
processes within an organisation and not on
individuals. The waiting staff are involved in 2. A description of the proposed
carrying out many of the processes shown, but software solution.
the main purpose of creating a diagram like
this is in the understanding of what is taking This includes what functions it will
place. It may be that staffing will change in an perform, what characteristics the user
organisation from time to time, but the interface will have and any
processes will still be carried out. A better dependencies.
88 | P a g e
Chapter 5: Analysis tools
89 | P a g e
Software Development: Core Techniques and Principles 4th edition
Context Questions
1. What is UML?
2. What is a use case diagram?
3. Give two examples of possible actors in a use case diagram?
4. In a use case diagram, what does a system boundary represent?
5. In what ways is a DFD different from a use case diagram?
6. Give examples of three physical objects that could be data stores in a DFD?
7. Why is it convention not to represent data flows between entities in a DFD?
8. Why is it a problem when the data flows into a process are the same as the data flows out of
a process?
9. What is the process known as DFD levelling?
10. What are the main advantages of a context diagram over a DFD?
11. What is a Software Requirements Specification used for?
● Draw a use case diagram to describe the process of approving an absence (once a student has
returned to school after being sick).
At the conclusion of this chapter, you should be able to address the following key skills. Mark each off
as you can achieve them.
Read through a documented process and identify the entities, processes and
data stores
90 | P a g e
Chapter 5: Analysis tools
The following sample examination questions can be attempted to test your knowledge of the content
of this chapter.
Question 1
The term UML stands for:
A. Unified Modelling Link
B. Unified Modem Linkage
C. Unlinked Mode Linkage
D. Unified Modelling Language
Question 2
The term UCD stands for:
A. Use Case Diagram
B. Used Cases Diagrammatic
C. Use Case Drawing
D. Unlinked Carrier Diagram
Question 3
In a DFD, an entity represents:
A. A person inside the organisation that deals with data
B. A system within the organisation that processes data
C. A system outside the organisation that processes data
D. A person or company outside the organisation that receives or provides data
Question 4
Which of the following is not an element in a Use Case Diagram?
A. Actor
B. System Boundary
C. Includes
D. Data Flow
Question 5
An element of a DFD which transforms the data coming into it is known as a:
A. Data flow
B. Data store
C. Process
D. Entity
Question 6
Which of the following should not be used as an actor in a Use Case diagram?
A. Maxwell Smith
B. System Administrator
C. Accounting Department
D. Time sheet software
91 | P a g e
Software Development: Core Techniques and Principles 4th edition
Question 7
Each of the items described below have been taken from a DFD. State whether the description
involves a process or a data store.
5 marks
Question 8
Phillip is the manager of a collaborate work space called ‘My Space Is Your Space’ (MSIYS). He receives
many requests from clients in relation to catering. Phillip would like to set up the MSIYS Café to allow
clients to order via an App for table service or local Ooba Eats establishments. It would work in the
following way.
When placing an order, the user of the App would scan a QR code (which would be located on every
desk and meeting room within the office area), so that the café will know where to bring the order.
The App will have a list of café items that can be ordered (some of which may vary from day to day).
The App will also be able to display menu items from local cafes and restaurants, that the App will
then place orders with, via an Ooba Eats API (a code module that will be supplied by Ooba Eats that
will integrate with the App seamlessly). Phillip would like to create a context diagram to represent this
process. Label the entities and data flows in the diagram below:
1.
1. 2.
3.
2.
MSIYS 4.
6 marks
Question 9
SportsCastOz is a small Internet radio station that delivers a number of sports based shows either live
or via podcast. There are up to 20 presenters involved with the station at any one time. Paul is the
director of SportsCastOz and works full-time managing the station and occasionally presenting on the
shows. Emily, Traci and Steven work part-time as producers (editing and publishing podcasts as well
as managing the live streams). Jay works part time and handles advertising and marketing. Some of
this advertising is placed into the edits of the podcasts and some is placed on the website.
92 | P a g e
Chapter 5: Analysis tools
Paul would also like to employ someone to develop an App for the radio station. The App would allow
the user to listed to all of the shows, read articles published by people at the station as well as provide
reviews and feedback.
Paul has started a sketch of a Use Case Diagram to help visually represent what people are doing and
how their roles can overlap. Some information is missing. On the diagram below, label the five actors
and two use cases.
7 marks
Question 10
Nancy wants to create a DFD to represent the maintenance process at her job (WeCare). She tries to
understand how the job booking system works by drawing a data flow diagram based on the following
information.
WeCare have a help line and (for convenience), requires that all maintenance jobs be called in via this
line. One of the staff members takes the call and starts a new job (appended to the file of the person
making the call). If the person making the call is a new client, then they must be registered with
WeCare – which requires a detailed application to be completed. At present, the job file is a MS Word
document placed into a folder with the client’s name on it. A time is booked (that is suitable for the
client) for a tradesperson to visit and attend to the problem. The tradesperson then advises WeCare
of the success (or otherwise) of the job and whether a follow up is needed. Though the tradespeople
work on a volunteer basis, WeCare does cover the expenses that the trades-people incur, so this is
taken care of at the end of the job.
On the diagram on the next page, label the two entities, two data stores and four processes.
93 | P a g e
Software Development: Core Techniques and Principles 4th edition
7 marks
94 | P a g e
Chapter 5: Analysis tools
Question 1
Answer: D
Question 2
Answer: A
Question 3
Answer: D
Question 4
Answer: D
Question 5
Answer: C
Question 6
Answer: A
Question 7
Item Description Process or Data Store
Combine this year’s financial figures with those Data store
of previous years.
Retrieve the number of items from the inventory Data store
database.
Archive the month’s data for future reference. Data store
Discard the daily calculations. Process
Question 8
Question 9
1. Director (actor)
2. Presenters (actor)
3. Producers (actor)
4. Advertising / Marketing person (actor)
5. Organise advertising (use case)
6. Listen to programs (use case)
7. Listener (actor)
95 | P a g e
Software Development: Core Techniques and Principles 4th edition
Question 10
96 | P a g e
Chapter 6
The art of design
Key terms: Design, computational thinking, brainstorming, DeBono hats, mind-mapping, attribute
listing, SCAMPER, efficiency measures, speed, functionality, cost of file manipulation, affordability,
data protection, authentication, interoperability, marketability, processing efficiency, effectiveness
measures, completeness, readability/clarity, accuracy, timeliness, relevance, attractiveness,
accessibility, communication, usability, needs of users, user interface, clear, concise, responsive,
familiar, consistent, scalable, forgiving, development time.
Study roadmap
Unit 3 Unit 4
Ch Area of study 1 – Area of study 2 – Area of study 1 - Area of study 2 -
Programming Analysis and Design Development and Cybersecurity: software
Evaluation security
1
2
3
4
5
6
7
8
9
10
98 | P a g e
Chapter 6: The art of design
conducted, discussion moves quickly to a or the suggestions that have been made. A
conclusion rendering some of the ‘hats’ group facilitator will often try to limit the time
redundant. spent in this phase as it is often not a very
productive one. It can be revisited at different
times in the brainstorming process. There does
not need to be any justification to responses in
this phase and the facilitator needs to ensure
that the group understands that this is the
expectation.
99 | P a g e
Software Development: Core Techniques and Principles 4th edition
set and they have been used successfully in communicate the scope and constraints of a
very creative fields such as music and art. proposed solution to others.
For example:
• Storage type
• Platform
• Programming language
• Authentication method.
100 | P a g e
Chapter 6: The art of design
101 | P a g e
Software Development: Core Techniques and Principles 4th edition
Functionality
Figure 73: SCAMPER in action How complete is the information that is being
produced for the purposes that it is intended?
Does the user of the software need to source
Efficiency and effectiveness in additional information from other software
solutions or sources? Completeness is a
the design phase subjective measure based on the task that is
being performed and the user’s needs – so a
Having an understanding of the different detailed analysis of this should have been
efficiency and effectiveness measures that are performed to prevent a lack of completeness
used to assess a software solution is important occurring.
to the design phase. Efficiency and
effectiveness can be used when designing the Readability or clarity
user interface of the software as well as the
criteria by which designs will be contrasted and How easy is it to read and understand the
compared. Let’s examine some of these output that is produced? If the information is
measures in detail. not easy to read, the effectiveness of the
software solution is lessened even if all of the
Efficiency measures for a software requested information has actually been
solution produced.
Is data able to be entered quickly? Is the How attractive is the user interface? This can
output from the software solution generated have a flow on effect in terms of the usability
in a prompt fashion? The layout of the user of the software solution. Attention to the
interface and the way that the software flows colour scheme, font size, consistency of object
from one screen to another can also have a sizes and access to the program’s functions can
profound effect on speed. all have a positive effect on the user’s
102 | P a g e
Chapter 6: The art of design
experience and as a consequence, make the the time the information has been produced is
program more effective. it ever too late to make practical use of it? Data
such as stock prices and weather conditions
Accuracy are affected by the attribute of timeliness and
are often used by software solutions to make
Is the information produced always correct? predictions or strategic decisions in a very time
Does it often need to be adjusted or queried? dependant way. This data not only needs to be
Have difficulties occurred in the past due to the able to be entered into the software quickly
inaccuracy of information? A well designed and easily, but the processing of the software
user interface can ensure the accuracy of the needs to produce the required information in
inputted data by limiting the type and range of time for it to be used.
the data. Validation techniques can detect
when errors occur and assist users in making Communication of message
corrections.
How clearly is the software solution presenting
Accessibility the information that it is producing? Is this
information hard to interpret or is it easy to
To what extent are the functions of the user understand? The information may be accurate,
interface easy to find and use? If users of a timely and relevant, but simply presented in a
software solution are confused by the function way that makes it difficult to understand or not
of particular elements, it will slow them down well suited to the role of the user within the
and make the software not as effective. organisation. For example, a manager may
Functions, icons and navigation should clearly wish to extract information from a software
indicate their function without confusion. Help solution that shows them how profitable the
files and on-screen help assist with company has been in the last month. The
accessibility. software solution may have all of the required
information, but the manager may simply want
Software developers need to be careful to to be presented with a graph or bottom line
design their solution with the users of that figure rather than reading through all of the
solution in mind. The skill level of the users as companies transactions for the month.
well as the hardware and environment that the
solution will be used on, can all be factors in Relevance
limiting the accessibility. If a software solution
is designed for the latest computer with a large Does the information contain the necessary
amount of RAM and a high screen resolution, detail or elements? When a user tries to
but will be used by an organisation in which the extract information from the software, is the
typical hardware is three years old and the information that is presented to them relevant
screen resolution is smaller, it will make the to their request? Relevance can also be
software very difficult to use. improved by providing user interface features
that target the user’s level of access and role.
The measure of accessibility is also concerned Validation techniques that filter out incorrect
with ensuring that the software solution caters or inaccurate data can help to improve the
for those with disabilities such as vision relevance of results that are produced.
impairment, by adding features that account
for these disabilities – such as allowing text to It is certainly true that information is very
be resized. valuable and organisations will never discard
information (preferring instead to archive it
Timeliness away from the central storage location). As
more and more information is produced, there
Is the information produced within a time could be a tendency for a software solution to
frame that is relevant and useful? That is, by present so much information to the user, that
103 | P a g e
Software Development: Core Techniques and Principles 4th edition
the information that they were seeking is ‘lost’. even if it accomplishes the tasks demanded of
Archiving can certainly prevent this sort of it.
occurrence, but software can also be designed
to filter irrelevant information out so the user The amount of experience that the users of the
does not have too much presented to them at proposed solution have can also have an effect
once. on the types of functions that are included in
the design. For example, if the users of a
When discussing the relevance of the proposed software solution are highly capable
information produced by a software solution, IT users with a lot of experience, it may be
it can also be useful to consider redundancy. appropriate to build extra functions into the
For example, a software solution might contain solution that allow them to accomplish quite
a function that displays all invoices that have complicated tasks. They may be given the
not been paid. If this information is presented ability to write scripts or create macros within
as a list on the screen with the heading the solution. If the users did not have the
‘Invoices not paid’ and next to every item is the knowledge or expertise to do these sorts of
text ‘not paid’, then the user is being presented things, it would not be a good use of time to
with a lot of information that they already build this into a solution.
know.
Affordability
Usability
Often the scope and features of a proposed
Is the user interface intuitive and easy to use? project will ultimately be limited by the
Well designed software should have a user amount of money that is available in the
interface that acts as a conduit to the required budget. With unlimited funds and time, a
processing but does not become so much of a solution to almost any problem could be
focus that it detracts from the functioning of conceived, but this is not realistic. A design that
the software itself. Sometimes the use of too does not take the available budget into
many functions on the screen at once or the account can doom a project to failure.
use of animations can detract from the
usability of the solution. Security: data protection and
authentication
There is a definite art to the creation of a user
interface, but the software should be ‘about’ It goes without saying that any software
the task itself and not the interface. solution will contain security features to
protect the data it stores and ensure that those
Factors influencing the design accessing it have the necessary levels of
authority. Legislation ensures that all
of solutions organisations enact good data protection
practices. The most relevant legislation is the
Usability Privacy Act, but there are many that have
104 | P a g e
Chapter 6: The art of design
bearing on the ways in which organisations two scenarios is probably the situation in
use, store and display their data. which what is being created has the possibility
of being marketed at some future point in
While this is a given, a software developer time.
needs to ensure that these aspects are not an
after-thought from a design perspective. Processing efficiency
Designing a user interface that allows the user
to sign in efficiently (or perhaps integrates with In what ways can processing efficiency
a SSO – Single Sign On) is important. It is also influence the design of a software solution? A
important to consider what the interface will solution may require information to be
look like and how the solution will operate with available within a certain period of time and
different levels of access enabled. the data that needs to be gathered in order to
produce this information may be varied in type
Interoperability and form. It may also be the case that the
amount of processing that needs to be done is
Designing a software solution so that is works quite large and will have an effect on the time
with the other software packages being used the solution needs to run. Many software
on a system is also a key consideration. solutions that have a variety of data sources
Software packages will often share data and so and are producing information that is time
need to used file formats that are standards dependant will present users with different
based such as XML. options at different times and prompt users
based on what they require.
An API (Application Programming Interface) in
simple terms is like a library of routines that For example, Parent Teacher Online by
can be plugged into a software solution to Country Net Solutions (shown in Figure 63)
allow it to share data with another one. In presents each user with a menu that is
designing a new software solution, the ability structured so that data is entered in the correct
to be able to use particular APIs may be critical order. Particular options become available
to allow it to be properly integrated with the only at certain times, preventing users from
existing system or indeed systems in any trying to access information before it has been
organisation in which the software may be correctly processed.
used.
Marketability
105 | P a g e
Software Development: Core Techniques and Principles 4th edition
User interfaces
There is a lot of information available on the
creation of effective user interfaces. The
creation of a user interface is often such a
major part of the development of a software
solution, that there will be software
developers dedicated to working on this aspect
of the solution. When you reflect on successful Figure 76: Progress bar
technological devices of the last few years,
they generally will all have one feature in processing that is being done. A responsive
common: a highly successful user interface. A user interface is not only as fast as it can be,
good user interface allows users to access the but it gives feedback to the user in the form of
software solution with ease and perform the progress bars, messages, icons that indicate
tasks required of it. It has been said that if a that processing is taking place (hour glass,
user begins to ‘notice’ a user interface, then spinning wheel) and confirmation that tasks
perhaps the user interface is not doing its job. have been undertaken or completed.
Responsive
106 | P a g e
Chapter 6: The art of design
Attractive
Figure 79: Undo and redo functions
It is easy to underestimate the effect that an
attractive user interface has on the user’s
overall experience. Certainly the combination
of colours, fonts, screen size and layout all play
a part in the attractiveness of a user interface,
107 | P a g e
Software Development: Core Techniques and Principles 4th edition
Context Questions
1. A user interface that is described as ‘responsive’ is more than simply ‘fast’. What other
attributes does an interface have that is ‘responsive’?
2. What does it mean if a user interface is described as efficient?
3. What are the benefits in determining the evaluation criteria for a software solution during the
design stage?
4. Considering brainstorming techniques such as DeBono’s hats, what are the key ground rules
that should be established before participants begin giving suggestions?
5. List and describe 5 measures of a user interface in relation to its effectiveness.
6. In what ways do security requirements influence design?
7. What is the difference between user interfaces being described as ‘familiar’ as opposed to
‘consistent’?
8. The term ‘computational thinking’ refers to being able to think recursively. What does this
mean in a design context?
• Reflecting on your favourite Apps, what aspects of their user interface design are most
appealing to you?
• Pick a household object or appliance and perform a SCAMPER design process on it. Each
person in the class could do a SCAMPER for a different object and compare results at the end.
At the conclusion of this chapter, you should be able to address the following key skills. Mark each off
as you can achieve them.
108 | P a g e
Chapter 6: The art of design
The following sample examination questions can be attempted to test your knowledge of the content
of this chapter.
Question 1
At the beginning of a project, Danny decides that it would be good for the software development team
to brainstorm possible solutions. Which of the following would be a valid brainstorming technique?
A. Creating a mock-up
B. Writing a pseudo-code algorithm
C. Drawing a mind-map
D. Researching current trends and products
Question 2
In creating a mind map, which of the following is the most correct?
A. The central idea or concept is placed in the middle of the mind map
B. Each person thinks of their own ideas and these are combined at the end
C. More important concepts are represented with larger circles
D. A maximum of 6 circles should be added to ensure that the ideas are not too broad
Question 3
A user interface that is described as being ‘responsive’ is:
A. One that is fast above all else
B. One that gives the user good instructions
C. One that is not only fast, but gives good feedback to the user
D. One that is able to print to a number of different network devices
Question 4
An interface that is ‘forgiving’ is one that:
A. Works reliably all of the time
B. Is easy to understand
C. Allows the user to undo transactions
D. Works on a variety of platforms
Question 5
Phillip is to use a method for generating new design ideas for an App he is developing. Which of the
following is not a method he could use?
A. Brainstorm
B. Use Case Diagram
C. DeBono’s thinking hats
D. Oblique strategies
Question 6
There are a number of ways to generate different design ideas. Describe two methods that can be
used and explain which of the two you would recommend for use by a local council attempting to
solve the issue of crime in the area?
Method 1: _________________________________________________________________________
Method 2: _________________________________________________________________________
109 | P a g e
Software Development: Core Techniques and Principles 4th edition
Recommended: _____________________________________________________________________
__________________________________________________________________________________
__________________________________________________________________________________
3 marks
Question 7
Jill’s Green Thumbs is a garden maintenance business developing an App that will allow customers to
submit a request for a quote. It will:
- allow them to enter their contact information
- use location services to pinpoint their exact map location
- take photos, annotate them and add them to the detail of the quote
- connect to a database of available plants and materials and their cost
- allow the user to create sketches as needed.
- email the finished quote request to Jill’s Green Thumbs
In the table below, suggest a feature of the user interface for the App in each category.
Clear
Responsive
Familiar
Efficient
Forgiving
5 marks
Question 8
The annotated screen design below is for a proposed App that will be used in junior athletics to convert
the results of throws from para-athletes using MDS tables.
110 | P a g e
Chapter 6: The art of design
a. Despite the efficient design, when the developers seek feedback from their peers, many tell
them that it is not ‘scalable’. What does this mean and how could the design be changed to
make it ‘scalable’?
__________________________________________________________________________________
__________________________________________________________________________________
2 marks
__________________________________________________________________________________
__________________________________________________________________________________
2 marks
A and B require some decision to have been made on the direction / purpose of the App. D is not a valid
choice either as it is researching the ideas of others rather than coming up with one of your own.
Question 2
Answer: A
Question 3
Answer: C
Question 4
Answer: C
Question 5
Answer: B
Each of the other three options are tools for generating design ideas. A Use Case Diagram is a method
of representing the processes within an existing system.
Question: 6
Method 1: Brainstorming – ideas are written down as they are offered and then the group goes
through them critically.
Method 2: DeBono’s six thinking hats – a group brainstorming session is structured by focusing
everyone on facts (white hat) firstly and then moving through a number of phases.
Recommend: A complex issue such as crime in a local area might be well served by having a discussion
using DeBono’s thinking hats. This way the discussion can remain focused at all times.
There are a number of possible answers here. The two methods could include mind mapping or some
other method of generating design ideas. The method that is recommended is also not important – the
focus is on explaining why the method chosen would be a good choice.
111 | P a g e
Software Development: Core Techniques and Principles 4th edition
Question 7
Clear: All aspects of the user interface should be easy to find and understand. It should be easy to see
where to start with the quote and how to submit it.
Responsive: Upload photos and information quickly and give the user an indication of what processing
is taking place.
Familiar: Use standard icons for features such as location services and email.
Efficient: Allow the user to complete their quote in as few steps as possible.
Forgiving: Allow the user to undo or go back to modify steps in their quote.
Other options are possible. When answering questions such as this in the exam, it is important to put
your answer into the correct context. Make sure that you mention aspects from the question or case
study in your answer.
Question 8
a. There isn’t enough space on the screen to expand the functionality if required. It could be
fixed by having a greater amount of white space or introducing a menu or tabbed interface.
112 | P a g e
Chapter 7
Of input and output
Key terms: Archiving, backup, full backup, differential backup, incremental backup, backup media,
RAID, disposal, cloud storage, tape backup, hard disk, optical storage, solid state drive (SSD), data
structure, array, associative arrays, classes, fields, files, hash tables, linked lists, queues, records,
stacks.
Study roadmap
Unit 3 Unit 4
Ch Area of study 1 – Area of study 2 – Area of study 1 – Area of study 2 -
Programming Analysis and Design Development and Cybersecurity: software
Evaluation security
1
2
3
4
5
6
7
8
9
10
114 | P a g e
Chapter 7: Of input and output
backup comes when the files need to be day. It is important that the users of the system
restored. As a full backup is a complete set of have finished their work and closed all of their
all of the organisation’s data, it can be simply files, as this can interrupt or impede the
restored all at once or aspects of it selected. backup procedure. A backup procedure can
also take a long time to complete. For these
Differential backup reasons, backups are often set to be
performed during the night.
A differential backup is used in conjunction
with a full backup. A full backup is made and As they are often automated processes, the
then subsequent backups contain only those backup media have to be able to accommodate
files that have been changed (since the full the size of the backup without needing to be
backup). Note that there are technically only swapped or changed.
two backups when using this method
(although more copies may be made). The full
backup is the first and the second is the most
How often to backup can be a personal
recent differential backup. This makes the choice. There is a saying that you should
process of completing daily backups much only backup that which you cannot afford
simpler and quicker, but does mean that the to lose. At the same time, there has to be
process of restoring the backup is more a balance between the time spent backing
complex than restoring a full backup. To fully up and the time spent working. Daily
backups are commonly implemented by
restore the backup, the full backup would need
companies, but this could be varied
to be restored, followed by the most recent based on the size of the company and the
differential backup. amount of data being processed.
115 | P a g e
Software Development: Core Techniques and Principles 4th edition
cloud platforms such as Google Drive or means that an organisation maintains physical
Microsoft’s OneDrive. control of the data, which may cause
organisations to opt for media like this over
The advantage of using cloud storage as a cloud storage.
backup media is that it is independent of
physical media and relies only on the Tapes are portable, small and manageable.
accessibility of the cloud server. There is little They are easy to store compared to hard
infrastructure that the organisation needs to drives, servers and other physical media. They
implement. Retrieving a backup is as simple as are also very durable. Many digital tapes can
connecting to the cloud server and transferring retain data for 30 years or more without
the required files. The only disadvantage of regular maintenance. Given this and the fact
using this form of backup media, is that an that the cost is relatively low, an organisation
organisation will be unable to access the data can archive data without the need to reuse
in the event of a power outage. backup media.
116 | P a g e
Chapter 7: Of input and output
Optical storage has been on a rapid decline are relatively expensive for their low capacity
with the increased use of cloud storage and the in comparison to hard disk drives, but are
cheap cost of portable hard drives. Recordable highly portable and easy to transport. Unlike a
CDs, DVDs, and Blu-ray discs were common hard disk, a solid-state drive does not contain
forms of backup, especially for consumers, due any movable parts making it less susceptible to
to their low cost. Each of the optical storage physical damage. Their speed of access is
media listed above had limited capacity and determined by the interface, but is generally in
were also time consuming to write data to. the range of 500Mbit/s to 6Gbit/s. Capacities
Interestingly, tests conducted on standard continue to grow.
consumer grade optical media has shown that
it has an archival period of up to 10 years. High While SSDs can be very convenient to use, their
end optical media produced with a special use as a backup media is questionable. Given
gold-sputtered layer is projected to have a the short amount of time that SSDs have been
retention as high as 100 years. in mainstream use, information concerning
their ability to retain data is limited. Their cost
Solid-state drive (SSD) per unit of storage makes them one of the
most expensive forms of media storage, and
Solid-state drives (also known as USB flash when an SSD fails, data recovery is difficult.
memory, thumb drives etc.), are devices that
Backup Media
Backup Media Type Capacity Cost Max write speed
Optical media CDR ~700 MB ~$0.30 per disc ~7 MB/sec (52x)
Optical media DVD 4GB ~$0.60 per disc ~21 MB/sec (16x)
Optical media Blu-ray 25 GB / 50 GB ~$3-$8 per disc ~72 MB/sec (16x)
(single / dual
layer)
Hard disk Internal 1-14 TB $50 - $1000 ~200 MB/sec
Hard disk USB 1-5 TB $50 - $400 ~130 MB/sec
Solid state drive Internal 120 GB – 4 TB $30 - $1000 ~550 MB/sec
disk
Solid state drive USB 16 GB – 512 GB $10 - $400 ~300 MB/sec
Magnetic Tape Tape Up to 1TB $40 per tape ~240 MB/sec
117 | P a g e
Software Development: Core Techniques and Principles 4th edition
118 | P a g e
Chapter 7: Of input and output
119 | P a g e
Software Development: Core Techniques and Principles 4th edition
For example,
Number[0]
120 | P a g e
Chapter 7: Of input and output
121 | P a g e
Software Development: Core Techniques and Principles 4th edition
Benefits or shortcomings
Benefits or shortcomings
For each problem being solved, there are data
structures and techniques that can be used to Records have some specific advantages over
best suit the data being stored and the using ‘plain’ one dimensional arrays. If data like
processing required. The use of classes can be that shown in the example were to be
very beneficial when a large number of represented in arrays (one for each field), each
complex objects needs to be created and one would be disconnected from the others
standard variables and functions would be and would not make a lot of sense on its own.
difficult to use. There are many other aspects For example, if the price were required for the
of using classes that are beyond the scope of item with the ‘id’ of ‘0012’, the index of this
this course and text, but in implementing item would need to be found in the ‘id’ array
classes, they can be combined and expanded and then this index would need to be used in
upon in ways that make them extremely the ‘price’ array. The main difficulty with such
powerful. If you wish to investigate these an arrangement comes when the information
122 | P a g e
Chapter 7: Of input and output
needs to be sorted in some way. Sorting a forefront of any solution design. In addition to
number of parallel arrays (and keeping them in this, multiple users will often access files
sync with each other) is a difficult task. simultaneously and will have different
permissions to access the file.
Files
Choosing between TXT, CSV and XML files
While we have been dealing with ways in
which data can be represented in memory, it is When choosing to use a file to store data, the
also important to consider how data will be format will be largely dictated by the amount
stored. Storing data on secondary storage of data that will be stored and the ways in
devices (such as hard drives), requires the use which it will be accessed. For example, if a
of a file. A file is a way to organize stored data software solution needs to store some default
for access at a later time. values to be used in the software solution, a
TXT file will suffice.
In Chapter 3, we discussed the use of TXT, CSV
and XML file formats. Each file format has its When a software solution needs to store array
own benefits, but files will all generally be values or fields associated with records, a CSV
accessed in similar ways in a software solution. file can be a good solution. The thing to be
An example from an XML file is shown below: aware of when choosing a CSV file format over
and XML format, is that the number of fields
needs to be constant for each record. In
<stock item> addition, when writing to or reading from a
<id>0002</id> CSV file, the order of the fields needs to be
<type>Fish</type> hard coded into the software solution.
<name>Comet Goldfish</name>
<quantity>15</quantity>
In contrast to this, an XML file adds flexibility of
<cost>$12.23</cost>
format and structure. The tags within an XML
</stock item>
file indicate the name of the field. Not only this,
<stock item>
but they can be in a different order in each
<id>0003</id>
record, and records can contain different
<type>Plant</type>
fields. An XML file is very easy to read and
<name>Kelp</name> understand in isolation, and a software
<quantity>20</quantity> developer could easily utilise it without having
<cost>$0.43</cost> to read any documentation to know what it
</stock item> contains.
Figure 92: An example section of an XML file
Hash tables
123 | P a g e
Software Development: Core Techniques and Principles 4th edition
case of the array index being used already, the There are only two ways in which a stack data
key:value pair is attached in a process known structure can be accessed. Data can be placed
as ‘chaining’. In effect, each element of the on ‘top’ of the stack. This function is called the
hash table should be an array or list in its own ‘push’ function. Data that is taken off the stack
right. can only be taken off the ‘top’ and this function
is called the ‘pop’ function. Diagrammatically,
An example of a hash table is shown below: a stack could be represented as shown in
Figure 94.
Array
B: 102 Stack
G: 305 à GA: 452 à GF: 872
J: 725
L: 273 à LM: 526
M: 662
P: 012 à PR: 526 à PS: 210
S: 901 à SD: 431 Top
Z: 032 -1
Stacks Push(10)
Pop
A stack is a data structure that works on the Push(3)
principle of First In - Last Out (FILO) (or Last In Push(22)
– First Out depending on your perspective!). A Push(74)
stack is a one-dimensional array of values that Pop
are accessed in a particular way. Push(17)
124 | P a g e
Chapter 7: Of input and output
Queues Queue
Index 0 1 2 3 4
A queue data structure can be implemented in Queue(Index) 35 15 10
a very similar way to a stack except that it
works as a First In - First Out (FIFO) structure. Front:
2
Items in a queue are added to the back and Back:
removed from the front. For this reason, it is 4
necessary to keep track of where both the
front and the back of the queue are positioned Figure 97: Queue example continued
125 | P a g e
Software Development: Core Techniques and Principles 4th edition
Benefits or shortcomings and one to store the links which will point to
the next array element. It is also necessary to
Queues can be useful data structures to store the index of the first item in the list.
implement as many real world situations
operate in a First In – First Out fashion. A A small linked list might look like the example
simple printer queue is a classic example of a below:
queue data structure in action.
Linked list
In practice, the process of adding elements to Index 0 1 2 3 4
the queue and removing them has the side List(Index) 30 40 35 20 10
effect of moving the queue forwards through Link(Index) 2 -1 1 0 3
the array. As you can see in Figure 97, the
queue as it stands is located in array elements First:
2 to 4. If another element were to be added to 4
the queue as it stands, the algorithm would fail
as the queue is full. Figure 98: Linked list example
There are two ways that this can be prevented
in practice. The first way is to move the queue In the example above, you can read the list of
back down the array when it gets close to the numbers in order by beginning at the index
end. This isn’t very efficient as it adds to the pointed to by ‘First’ and proceeding to follow
processing time. The second way is to the indexes associated with each array
implement what is known as a ‘circular queue’. element. If you do this, the order will be:
While beyond the scope of this course and
text, a circular queue connects up the 4, 3, 1, 2, 1, -1
beginning and end of the array logically
speaking. Items added to the end of the queue The ‘-1’ indicates that the end of the list has
may be located at the beginning of the array if been reached.
the queue has moved beyond the end.
Benefits or shortcomings
Like a stack, a queue still needs to have enough
space allocated to it to cater for the maximum The example shown here is obviously a very
amount of data that is likely to be stored within simple one and has been used to illustrate how
it. a linked list works. In practice, linked lists are
much larger than this and also utilise a variable
Linked lists pointer called ‘free’ which indicates the next
free array element. While there is some
A linked list is a data structure that maintains overhead in relation to maintaining the links,
itself in sorted order at all times. One of the this is a small price to pay compared to sorting
main disadvantages of using arrays to store an array from scratch. One of the main
data is that it is very difficult to maintain them advantages in using a linked list data structure
in sorted order. There are sorting algorithms is that elements are added in order. This does
that can be used to rearrange the data within require that the algorithm locate where in the
the array (two of which we examined in order the item belongs. In contrast to this,
Chapter 3). However, sorting algorithms take removing elements is a simple matter of
time to execute. By using a linked list, items are changing the links so that they skip over the
placed in their correct order straight away. removed element. Over time, this can lead to
‘holes’ in the linked list, so an advanced
To create a linked list requires two parallel method of preventing this is to also maintain a
arrays: one to store the required information linked list of the free array elements.
126 | P a g e
Chapter 7: Of input and output
Context Questions
• Investigate and then design a backup system for your home network and present this solution to
your class for feedback.
At the conclusion of this chapter, you should be able to address the following key skills. Mark each off
as you can achieve them.
127 | P a g e
Software Development: Core Techniques and Principles 4th edition
The following sample examination questions can be attempted to test your knowledge of the content
of this chapter.
Question 1
Which of the following would be a good example of the use of a file naming convention?
A. Document1
B. File050613
C. Smith_AuditData_Expenses_070416
D. Smithfamilyauditexpenses56
Question 2
Turtle Enterprises performs a full backup of its’ data each Friday after work hours (on an automated
process) at 11pm. For Monday to Thursday, an incremental backup is done each day at the same time
in the evening. On Thursday morning, there is a hard drive failure and all data is lost. Which backups
will need to be restored to reinstate this data?
A. Wednesday
B. Friday and Wednesday
C. Friday, Monday, Tuesday, Wednesday
D. Friday, Monday, Tuesday, Wednesday, Thursday
Question 3
The data structure Length[Index] is most likely to be:
A. A one-dimensional array
B. A two-dimensional array
C. A reference to a hash table
D. An integer
Question 4
What is the difference between full backup, differential backup and incremental backup?
__________________________________________________________________________________
__________________________________________________________________________________
__________________________________________________________________________________
3 marks
Question 5
A company has decided to change from performing a daily incremental backup to performing a single
full backup once per week. List two disadvantages of such a move.
Disadvantage 1: _____________________________________________________________________
Disadvantage 2: _____________________________________________________________________
2 marks
128 | P a g e
Chapter 7: Of input and output
Question 6
Khalil is considering different data structures that he can use in the creation of a software solution he
is writing, that will store all of the information related to a client.
a. What is a data structure?
__________________________________________________________________________
__________________________________________________________________________
1 mark
b. Khalil is deciding between using a record data structure and a simple 1D array. Which of these
would be the better choice? Give two reasons to support your choice.
Choice: _____________________________________________________________________
Reason 1: ___________________________________________________________________
Reason 2: ___________________________________________________________________
2 marks
Question 7
The diagram below shows how a hash table works conceptually.
__________________________________________________________________________
1 mark
b. What is the main advantage that a hash table has over a one-dimensional array?
___________________________________________________________________________
___________________________________________________________________________
1 mark
Question 1
Answer: C
Questions such as this are always ‘best possible answer’. Option C in this case is quite good as it
contains a person’s name, a reference to what the file actually is as well as a date.
129 | P a g e
Software Development: Core Techniques and Principles 4th edition
Question 2
Answer: C
They will need to reinstate first the full backup, followed by every incremental backup in turn.
Question 3
Answer: A
Question 4
Full backup: backup all of the data every time.
Differential backup: only record the changes to the data compared to the last full backup.
Incremental backup: only records the changes since the last incremental backup.
Question 5
Disadvantage 1: A full backup takes longer to perform than an incremental backup (discounting the
first day).
Disadvantage 2: If the server fails the day before the full backup is due to take place, then potentially
6 days of data could be lost (as opposed to a maximum of 1 day for an incremental backup).
Question 6
A data structure is a way of organizing data in a computer so that it can be used effectively.
Choice: record
Reason 1: Each of the fields associated with the client’s record can be kept together.
Reason 2: A 1D array would not be able to store more that one data type.
Question 7
A hash function maps a value to an index based on a rule.
It is quicker to locate values or determine if they are present than checking all of the values in a one-
dimensional array.
130 | P a g e
Chapter 8
Testing and evaluating
Key terms: Efficiency, effectiveness, testing, test data, testing table, project plan, testing, useability,
large file sizes, benchmarking, live data, documenting testing, evaluation, strategies, acceptance
testing, quality assurance.
Study roadmap
Unit 3 Unit 4
Ch Area of study 1 – Area of study 2 – Area of study 1 – Area of study 2 -
Programming Analysis and Design Development and Cybersecurity: software
Evaluation security
1
2
3
4
5
6
7
8
9
10
memory), but this may be out of the control of How can we improve functionality?
a software developer. Let’s examine some
other ways that speed of processing can be Methods of testing a software solution were
improved. discussed in Chapter 3, but improving
functionality is different from testing in that
• Some data structures will be quicker to use the main focus is on the ease of operation.
than others. An assessment of the data
structures that have been chosen in the • A usability test is a useful tool that can be
context of how well they are responding, is implemented to improve functionality. In
a worthwhile exercise. constructing a usability test, a software
• Examine the solution’s use of memory. Are developer will write out a list of tasks and
data structures sized reasonably? Are steps typical of the normal operation of
there variables that have been declared the software solution. They will then ask
that are not being used or ones that could others to use the software solution
be reused? following these steps and give them
• Examine how well the key sections of code feedback on how well they were able to
perform their functions. For example, execute these. When writing a software
there are a large number of sorting solution, it is sometimes quite easy to
algorithms available and each has their become so familiar with its operation, that
strengths and weaknesses. Implementing aspects that are not logical to a first-time
a quick sort might seem like a good idea, user will be difficult to spot. This process
but arrays that are in reverse order or have helps to highlight these. You can read more
many duplicates can cause a quick sort about usability testing later in this chapter.
algorithm to perform poorly. Likewise, the • Are there variables or data structures that
placement of the pivot can affect how well can be automatically populated either
as quick sort works for a set of data. completely or partially? Constructing code
• Screen operations are slow in comparison to do this may take extra work but may
to those taking place in memory. In cases remove steps that the user needs to
where a software solution is making a large complete.
number of changes to the GUI, it can be
quicker to write changes to screen RAM Cost of file manipulation
directly and have the whole interface
displayed at once with the next clock cycle As mentioned in the speed of processing
of the display. section, accessing files can have a significant
• The biggest delay in speed of processing effect on the efficiency of a software solution.
can occur when reading or writing to
storage media. As before, this may be out How can we improve the cost of file
of the control of the software developer, manipulation?
but the way that data is read or written
could be changed and the number of times Any file operations will be relatively slow. The
this is done, minimised. challenge can be to structure these in a way
that allows them to have minimal impact. As
Functionality discussed previously, changing the storage
media can be beneficial but may be out of the
The functionality of a software solution can control of the software developer.
have a profound effect on the efficiency. How
well are the functions within the software • File reads and writes can be held till there
solution designed? Do they address the tasks is an opportunity to do them all at the
for which they have been designed with the same time. One way this can be
minimal amount of interaction from the user? accomplished is to construct files in RAM
first and then write to the storage media
132 | P a g e
Chapter 8: Testing and evaluating
when the software solution is being closed. shorter sentences. Online tools such as the
The downside of this is that there is Hemingway App will take text input and
increased risk of losing data. give feedback based on the education level
required to read the text and feedback on
Effectiveness measures what changes can be made.
• Allowing the user to change the font size
and interface colours can aid in improving
Completeness
the readability of text.
• The choice of font is important as some
Completeness is the measure of how well the
fonts are well suited to headings while
information that is being produced meets the
others are better suited to descriptive
purposes for which it is intended. While it is in
passages. In addition to this, numbers in
some ways a subjective measure based on the
some fonts are easier to read than others.
task that is being performed and the user’s
needs, there are ways that a software
developer can work to improve this area. Attractiveness
How can we improve the completeness of It can be difficult to relate the attractiveness of
a software solution to efficiency. Colour
the information?
scheme, fonts, consistency of objects in the
GUI and how the software’s functions are
• Throughout the design and development
accessed, all have an influence on how
stages, a software developer can show the
effective the solution is and can all be
client what information is being produced
considered to belong in this area.
and gain feedback on the appropriateness
of it and make adjustments as required.
How can we improve the attractiveness
• In designing a GUI, it is often tempting to
present all of the available information to with a view to increased effectiveness?
the user at once. Doing so however, can
lead to issues with attractiveness and • Just as with the area of clarity, by
clarity. Instead of limiting the information, improving the look and feel of the software
a software developer could consider solution, it will become easier to read, use
having some of the information accessible and understand.
on different screens or hidden from the • An attractive interface will make it more
default view. likely that a user will be inclined to use it.
• An attractive interface may also lead the
Readability or clarity user through the process rather than
challenge them to work out what to do
Readability or clarity is simply the measure of next.
how easy it is to read and understand the
output that is produced. If a user struggles to Accuracy
read or understand the information that is
being presented, the effectiveness with which Accuracy would seem to be an area that is easy
they are able to use the software solution to access and improve upon. When assessing
rapidly deteriorates. accuracy, a software developer will be testing
the solution to see that the information being
How can we improve the readability or produced is correct. In addition to this, they
clarity? will be checking to ensure that inputs are
designed in such a way as to prevent
• As a general rule, clarity can be improved inaccuracies being introduced into the system.
by using simpler language, removing the
use of jargon (where possible) and using
133 | P a g e
Software Development: Core Techniques and Principles 4th edition
• Testing tables can be used to show how Does the software solution produce
accurate the information being produced information within a time frame that is
is and compare this to known results. In relevant and useful? A software solution that
cases where the differences are larger than doesn’t do this, risks being completely
what is acceptable, the calculations can be ineffective.
adjusted to ensure that this is improved.
• In some cases, the use of particular How can we improve timeliness?
variable data types will have an effect on
the accuracy of a software solution. • The first step in improving timeliness is
Ensuring that the data types being used coming to an understanding of the time
match the data that is being stored should frames involved in each particular
eliminate this. instance. When is data available and what
• The use of strong validation techniques are the expectations from users in regard
can prevent incorrect or inaccurate data to when information will be required?
being introduced into the software Once this is understood, the software
solution. solution needs to be designed to work
within this time frame.
Accessibility • In cases where timeliness is still an issue, a
software developer should examine the
By definition, the accessibility of a software ways that data is obtained to see if there
solution is the practice of allowing it to be used are methods that can automate or
by the greatest range of users without placing improve the process.
barriers in their way. A software solution that • Processing times may have a lesser effect
is not accessible for some, will mean that it is on timeliness but may be something that
being used ineffectively (or not at all) by those needs to be considered. If the information
users and this will have an overall negative that is being produced needs to be
effect on the effectiveness of the software as a available within seconds, then the
whole. algorithms, data structures and
calculations that are being implemented
How can we improve accessibility? should be examined for ways in which they
can be refined. Just as with ‘cost of file
• Functions and navigation should be clearly manipulation’ discussion in the efficiency
designed in a way that indicates their section, delaying or streamlining reads or
function. On screen help and tips that writes to storage media can have a
appear when the user hovers over objects significant effect on the processing time
can aid in this. required.
• Software solutions can be designed with
the specific client in mind. The client’s Communication of message
experience, age and their role can all be
factors worth considering. In considering how effectively the software
• Accessibility is also concerned with solution is presenting the information that it is
ensuring that those with disabilities are producing, there are a number of measures
catered for. This can mean designing that can be used. For example, is the
interfaces that accept input from a variety information easy to read and interpret or is it
of sources, including text to speech being presented in a way that is acting as a
functionality, catering for those with barrier to this. The software solution may have
colour blindness and allowing the user to all of the correct information on hand, but just
change the colour scheme, fonts and font may not be presenting it in way that is very
sizes. useful or accessible.
134 | P a g e
Chapter 8: Testing and evaluating
135 | P a g e
Software Development: Core Techniques and Principles 4th edition
136 | P a g e
Chapter 8: Testing and evaluating
software solution and comparing these with that members of the project team can access
the design specifications. the documentation system easily.
137 | P a g e
Software Development: Core Techniques and Principles 4th edition
to the identified system goals, aims and • Is the software solution easy to use and
objectives. functional?
138 | P a g e
Chapter 8: Testing and evaluating
Strategies for evaluating the involved, the criteria that will be used to
conduct the evaluation, the users that will be
quality of solutions affected and the techniques that will be used
to gather data. Gathering evaluation data can
Evaluation of a software solution usually takes be done in the same ways as data was gathered
place after it has been in operation for a while. during the analysis phase.
Evaluating a software solution is a complex
task and strategies need to be formulated to Acceptance testing and quality assurance
ensure this task is a manageable one.
Quality assurance is the process by which
In Chapter 6, we discussed some of the software developers ensure a new software
efficiency and effectiveness measures that are solution is operating correctly. They need to
used to define solutions. The techniques ensure that its function meets or exceeds the
known as acceptance testing and quality expectations of the designers and the
assurance are ways to compare these organisation. This is shortly followed by
measures with the initial goals of the software acceptance testing.
solution as outlined in the SRS. However,
before these techniques can be used, Acceptance testing is so named because the
strategies must be devised to acquire the employees and/or management of the
necessary data. organisation are involved in ensuring
everything is operating as it should.
It is no coincidence that the first activity listed Representatives of the organisation are given a
under evaluation in the PSM is determining a chance to test the system for themselves and
strategy. A strategy is a plan of action designed give feedback to the development team on any
to achieve a particular goal. In this context, the problems or faulty processes. Specification
goal is the evaluation of the solution. creep (also known as scope creep) must be
dealt with at this point because the testing is
A strategy to evaluate the quality of a solution intended to show that the original design goals
is a more complex activity than surveying the have been met. Where the organisation has
users of a system or checking system logs. An been adding to the goals during development,
evaluation strategy should contain an the test data must be extended to show that
explanation of the timeframes that are the extra specifications have been met. This of
139 | P a g e
Software Development: Core Techniques and Principles 4th edition
Has the original scope of the project been clear Dependent software
enough and has it been correctly translated
into the specifications and goals for the No coded software solution works in isolation.
solution. There are always other software packages that
it needs to integrate with on some level.
Specification creep Sometimes a constraint like this is hard to
quantify in terms of the time and effort that
Specification creep occurs when the clients of will be needed. Once the process is started,
a software solution add features to the unforeseen problems can crop up. There is also
requirements even though the development the unknown factor of dealing with the
has already begun. Creep is more likely in developers of these packages. They may be
projects that have long timelines and is often very willing to work with you or may be busy or
caused by changes in personnel, the disorganised.
marketplace or to compete with the latest
innovations of competitors. Technology changes
140 | P a g e
Chapter 8: Testing and evaluating
Strategies for evaluating the A good project manager will also make
annotations to tasks as changes are made or
efficiency and effectiveness of additions catered for. They will keep a
project plans comprehensive log of changes so that when
they need to make reports to their superiors or
At the beginning of a software development the organisation, they are able to explain the
process, a project plan is created to support an variations to the initial plan that have taken
organised approach to the problem-solving place and the impact of these changes.
methodology. This project plan (as described in
Chapter 4) consists of a list of all of the tasks Annotations should changes such as the
that need to be completed, the team members following:
that will be involved in the project and what
their responsibilities will be as well as the • The actual duration of tasks compared to
schedules that the project needs to adhere to. their expected duration.
• The achievement of milestones.
As the project progresses, this project plan is • What modifications to the project plan
examined frequently to ensure that timelines were performed and notes explaining why
are being kept to. A useful strategy to employ this was the case.
is to make annotations to the project plan as
they happen. If this is done in a methodical manner, at the
conclusion of the project, the original project
Adjustments to timeframes and tasks plan can be examined and compared to what
transpired over the course of the
Projects almost never finish in the manner that development. This will help to inform future
was expected of them and recorded in the projects as well as explain delays or changes
initial plan. There will be variations in times, that have occurred to the client.
tasks, schedules and available resources. A
good project manager will adjust these aspects Evaluating the effectiveness of
of the project as they occur, so that potential
problems or future changes can be catered for.
development models
A project plan that is stored in the cloud and One of the very first decisions that software
available to key personnel, allows all involved developers face when beginning the
development of a software solution is, which
in the project to see these changes and to keep
development model will be most suited to the
an eye on upcoming tasks and milestones.
project. In Chapter 4, we discussed three of
While maintaining a dynamic plan such as this
these development models: waterfall, agile
has obvious benefits, it is also beneficial to
save versions of the plan and to annotate and spiral. Each has its advantages and
changes. disadvantages as well as situations to which
they are well suited. However, software
As a project progresses, a good project development is not an exact science and it is
manager will regularly examine the plan and not always easy to see which is the best choice
adjust tasks for the times that they are or indeed foresee circumstances that might
completed or estimated to be finished. This make one model favored over another. The
will in turn have an effect on the overall ability to evaluate the effectiveness of these
timeframes within the project and may mean development models and the factors that have
that some resource bookings need to be influenced this, gives valuable insight into
modified (outside contractors, system testing each.
times).
141 | P a g e
Software Development: Core Techniques and Principles 4th edition
Factors influencing the effectiveness of required to work closely with the project
the waterfall model team throughout the project. This high
degree of client involvement, while an
As discussed previously, in implementing a advantage, may present problems for
true waterfall development model, each stage some clients who do not have the time or
of the PSM generally finishes before the next interest for this type of participation. A
one can begin. This transition is not seamless; client that does not have the commitment
there are typically ‘gates’ between the stages. for this development model, will curtail its
For example, at the conclusion of the analysis effectiveness.
stage, the client would need to sign off on the • With the intensity involved in an agile
SRS. Once this has happened, and only then, development (especially when it is
would the design stage be initiated. implemented using a method such as
Scrum), team members need to be focused
There are certainly both good and bad aspects and dedicated to their work on the project.
to using the waterfall development model and While it is not necessary that all of the
we have discussed these already. At this point tasks need to be completed in a particular
in our discussion, let’s consider the factors that sprint, if the completion of tasks drags on,
can occur in a project utilising the waterfall and additional sprints need to be added to
model. the allotted project timeline, this can add
to the overall cost of the solution. It may
• While developers and the client agree on also put pressure on developers that cause
what will be delivered early in the PSM, the quality of the solution to decline.
there is some argument to be made that • A close working relationship within a
this is too early. Clients are sometimes software development team using the
intimidated by having to provide such agile model is vital. If circumstances
specific details, so early in the project. caused members of the team to work
They are not always able to visualise the remotely or to miss work for a period of
finished product or possibly, what their time, the effectiveness of the process will
exact needs are. A client unsure of these be put at risk. Webcams or online
aspects of the purpose and scope, can collaboration tools will alleviate this to
quickly derail a waterfall development that some extent, but the daily scrum and the
has moved past the anaylsis stage. ability to actively problem solve or advise
• A client may also not be happy with the others will be limited.
delivered software product. As all the
deliverables are based on the SRS and the Factors influencing the effectiveness of
analysis, the client may not see what will the spiral model
be delivered until it is almost finished.
The spiral model is a complex one that
Factors influencing the effectiveness of combines aspects of both the waterfall and
the agile model agile models. While its primary focus is on
mitigating risk, its complexity leaves it
Just as with the waterfall model, there are a susceptible to a number of factors that can
number of factors that can occur in an agile limit its effectiveness.
development that can influence the
effectiveness of the project. • The complexity of a spiral development
places a significant pressure on the
• As discussed previously, the client in an software developer managing the project.
agile development has frequent and early If the person doing so is not able to
opportunities to see the work being navigate and guide their team through the
delivered and to make decisions and various iterations of the development or is
changes throughout the project. They are not able to evaluate and assess the risk at
142 | P a g e
Chapter 8: Testing and evaluating
143 | P a g e
Software Development: Core Techniques and Principles 4th edition
Context Questions
1. Why is it beneficial to have an awareness of the evaluation criteria for a software solution
prior to its completion?
2. In what ways can data be gathered to evaluate a software solution?
3. Why is testing such an important step in developing a software solution?
4. What is the difference between alpha testing and beta testing?
5. What test data should be selected when designing a testing table?
6. Under what circumstances is testing with live data most beneficial?
7. Of all of the factors that can have an effect on a project plan, which do you think would have
the greatest potential impact and why?
8. What is specification creep and in what ways could it be prevented?
• Compile a list of infamous bugs or logic errors that have occurred and what the consequences
were in each case.
At the conclusion of this chapter, you should be able to address the following key skills. Mark each off
as you can achieve them.
Describe ways in which testing can be documented and what actions should take
Describe ways in which the progress of projects can be recorded and plans amended
Discuss strategies that can be used to evaluate software solutions and project plans
144 | P a g e
Chapter 8: Testing and evaluating
The following sample examination questions can be attempted to test your knowledge of the content
of this chapter.
Question 1
What tool can be used to test to see if an algorithm is producing the correct set of outputs for a set of
inputs?
A. Storyboard
B. Mock up
C. IPO chart
D. Trace table
Question 2
What does the process known as benchmarking achieve?
A. Tasks within the organisation are compared to best practice
B. Results of tests within the organisation are published online
C. Processes within the organisation are timed and compared to their main competitor
D. The main bench within the organisation is ‘marked up’ to show when tests were carried out
Question 3
A software solution is struggling to be effective with the main problem being the timeliness of data.
This means:
A. Data is too large to be processed
B. Once it has been processed, the timeframe of its usefulness has passed
C. The data is not being communicated clearly
D. The data does not have data or time fields attached to it
Question 4
When using test data to test the boundaries of the age input for a student between 12 and 18 years
old, which combination of test data would do this appropriately?
A. 12, 13, 17, 18
B. 12, 18
C. 11, 12, 18, 19
D. 11, 12, 13, 17, 18, 19
Question 5
An App is being developed that will allow a landscape gardener to take measurements of a garden and
then develop a quote for the customer in real time. Describe the scope of the proposed software
solution by listing two measures of efficiency and two measures of effectiveness.
Efficiency Measure 1:
Measure 2:
Effectiveness Measure 1:
Measure 2:
4 marks
145 | P a g e
Software Development: Core Techniques and Principles 4th edition
Question 6
The beta version of a new software solution has just been completed by Killabrew Solutions for their
client #NoLimits Real Estate. Ameer has been managing the project and is now trying to determine
what criteria should be used for the acceptance testing with the client. List two criteria that must be
included.
Criteria 1: _________________________________________________________________________
Criteria 2: _________________________________________________________________________
2 marks
Question 1
Answer: D
Question 2
Answer: A
Question 3
Answer: B
Question 4
Answer: C
Question 5
An App is being developed that will allow a landscape gardener to take measurements of a garden and
then develop a quote for the customer in real time.
Describe the scope of the proposed software solution by listing two measures of efficiency and two
measures of effectiveness.
Efficiency Measure 1: It is easy for the landscape gardener to enter the values into the
App.
Measure 2: The quote can be easily delivered electronically to the customer.
Effectiveness Measure 1: Quoted is calculated in real time for the customer.
Measure 2: Quote is correct (comparing it to previous methods of producing
quotes).
Question 6
a. The software performs the tasks required of it.
b. The software is easy to use.
Questions like this provide very little information and it is important to remember that simple answers
are often the best. The question also uses says ‘list two criteria that MUST’ – which means that the
focus is on the most important things as opposed to things that are down the list.
146 | P a g e
Chapter 9
The law in a software development context
Key terms: Privacy Act 1988, The Privacy and Data Protection Act 2014, Health Records Act 2001,
Copyrght Act 1968, cloud storage, open source software, creative commons
Study roadmap
Unit 3 Unit 4
Ch Area of study 1 – Area of study 2 – Area of study 1 – Area of study 2 -
Programming Analysis and Design Development and Cybersecurity: software
Evaluation security
1
2
3
4
5
6
7
8
9
10
Let’s examine each of the relevant laws in turn. In making enquiries or complaints, individuals
have the option of not identifying themselves,
The Privacy Act or of using a pseudonym. There will of course
be times when this is not appropriate or
Incorporating:
possible.
The Privacy Act 1988,
Privacy and Data Protection Act 2014
APP 3: Collection of solicited personal
information
The Privacy Act 1988 (incorporating the Privacy
and Data Protection Act 2014) is a law that sets
An organisation must not collect personal
out the ways in which organisations can
information (other than sensitive information)
collect, use or distribute personal data. The Act
unless the information is required for one or
also outlines what must be done to protect the
more of the organisation’s functions or
data and the rights of individuals with respect
activities. Sensitive information must only be
to their own data.
collected with an individual’s consent. The
collection of sensitive information must also be
The Privacy Act applies to government
required for the organisation’s functions or
organisations, local councils or any
activities.
organisation that is contracted to a
government organisation. The Privacy Act also
applies to the private sector (more on this APP 4: Dealing with unsolicited personal
later). information
The Privacy Act 1988 initially set out 11 This may seem like an odd inclusion in the
Information Privacy Principles (IPPs) and 10 Australian Privacy Principles, but APP 4
National Privacy Principles (NPPs). The IPPs outlines what organisations must do with
applied to the government sector and the NPPs unsolicited personal information (that is,
to the private sector. The Privacy Amendment personal information that they receive that
(Enhancing Privacy Protection) Act 2012 and was not asked for). Where an organisation
the Privacy and Data Protection Act 2014 receives unsolicited personal information, it
combined these two sets of principles into 13 must first determine if it would have been
Australian Privacy Principles (APPs) which permitted to collect the information under APP
serve as the base line for the privacy 3. If so, then APP 5-13 apply as they would
legislation. Each is described in the following normally.
section.
If the information could not have been
APP 1: Open and transparent collected under APP 3, the organisation must
destroy or de-identify that information as soon
management of personal information
as they can (as long as this is both lawful and
reasonable).
Data needs to be managed in an open and
transparent manner. This includes having an
easy to follow, accessible (free of charge and
easily available) and current privacy policy. An
organisation must have a privacy policy that
contains information on the kinds of personal
148 | P a g e
Chapter 9: The law in a software development context
APP 5 is similar to APP 1, but differs in its Organisations are prohibited from adopting,
application. APP 5 states that the organisation using or disclosing a government related
must make an individual aware, at the time or identifier (think of identifiers such as Medicare
as soon as possible after, they collect their numbers and Tax File Numbers).
personal information.
APP 10: Quality of personal information
They are also required to notify individuals
about the access, correction and complaints An organisation must take reasonable steps to
processes in their privacy policies, as well as ensure the personal information it collects is
the location of any overseas recipients of accurate, up-to-date and complete.
individuals’ information.
APP 11: Security of personal information
APP 6: Use and disclosure of personal
information An organisation must take reasonable steps to
protect the personal information it holds from
As was the case with the previous Privacy Act, interference, loss, damage, unauthorised
an organisation must only use or disclose access, modification and disclosure. This also
information for the purpose for which it was includes destroying or de-identifying personal
originally collected. The new privacy legislation information that the organisation no longer
introduces a small number of exceptions when needs (unless it is required to keep it for legal
an organisation can use or disclose personal reasons).
information for a different purpose. These
exceptions include to assist in locating a APP 12: Access to personal information
missing person, to defend or establish a legal
claim or for the purposes of resolving a An organisation must give an individual access
confidential dispute. to the personal information that it holds about
that individual, unless an exception applies. In
APP 7: Direct marketing addition to giving an individual access, an
organisation must respond to this request in a
For an organisation to use personal reasonable amount of time. If an organisation
information for direct marketing purposes, the decides not to give an individual access, it must
individual must have either given their consent provide reasons why this is the case and make
or they would have a reasonable expectation available means for the individual to complain
that their information was going to be used for if they wish to do so. An organisation charging
this purpose. Organisations must always allow a fee to give an individual access to their
individuals to opt-out if they wish. personal information, must ensure that the
charge is not excessive. The charge must also
APP 8: Cross-border disclosures not be as a consequence of simply making the
request.
Before an organisation decides to disclose
personal information to an overseas recipient, APP 13: Correction of personal
the organisation must take reasonable steps to information
ensure that the overseas recipient does not
breach the APPs (excluding APP 1) in relation Organisations must take reasonable steps to
to that information. If the overseas recipient ensure that personal information is accurate,
breaches the APPs in any way, the organisation up-to-date, complete and relevant. This could
could be held accountable as if they be initiated by the organisation or could be in
themselves had breached the privacy laws! response to a request from an individual. In
149 | P a g e
Software Development: Core Techniques and Principles 4th edition
150 | P a g e
Chapter 9: The law in a software development context
An owner of the copyright over a piece of work purchased CDs to an iPod would be a
has a number of rights. They have the right to breach of the Act.
choose when and how the work will be • Prior to this amendment, a copyrighted
distributed, published or otherwise work entered the public domain 50 years
communicated. They also have the right to following the death of the last author or
incorporate any sort of technological creator of the work. As the legislation in
protection devices to protect the work. the US is 70 years instead of 50 years, the
Australian Copyright Act was changed to
70 years to bring it in line.
• The concept of “fair dealing” (which in the
US is called “fair use”) was introduced in
this amendment.
151 | P a g e
Software Development: Core Techniques and Principles 4th edition
This licence allows others to use, modify, This licence allows others to use, modify and
distribute (including commercially), as long as distribute the work non-commercially as long
the original author is credited. All of the as the original author is credited. Any
content for the description of these licences derivative works must also be shared in this
and the icons themselves are under an way with the same licence.
attribution licence – and have been sourced
from the Creative Commons website.
Once again, this licence allows others to use, This is the most restrictive of the licences as it
modify (including commercially) and distribute allows others to use and distribute the work
the work as long as the original author is non-commercially but not modify the work in
credited. In addition to this, the new product any way. The author must be credited.
must be shared under the same terms. This is
the licence that is closest to a true OSS model. The legal implications of cloud
storage
The use of cloud storage has many benefits for
organisations, the least of which are portability
Figure 107: Attribution, No Derivatives
of data and the security of off-site backup.
There are however legal issues that must also
This licence allows others to use and distribute be taken into account. In response to the
(including commercially) as long as the original Privacy Act, organisations must ensure that
author is credited. However, no derivative they take reasonable steps to keep the data
works are allowed. That is, the work must be secure (APP 11). If the data is of a medical
unchanged. nature, the adherence to this APP is not
mandatory.
Figure 109: Attribution, Non-Commercial, As many cloud services are not based in
Share Alike Australia, an organisation planning on storing
personal data in this way needs to ensure that
152 | P a g e
Chapter 9: The law in a software development context
the organisation adheres to the Australian will be in service of some goal or objective that
Privacy Principles (per APP 8). The use of an they have.
Australian cloud provider will certainly make
the process simpler, as they will already be Software development is generally driven by
aware of the Privacy Principles. In the case of specific need, whether this be the need of
cloud servers located in other countries, individuals or organisations. The reasons why
different Privacy Laws will be in effect. In this software solutions are developed probably fall
case, organisations are responsible for into one or more of the following categories.
ensuring that the provider is adhering to all of
the applicable APPs in the Australian Privacy • There is a need in the market and doing so
Act. This will usually take the form of a contract will be profitable.
in which the organisation will define their • To remain competitive.
requirements in terms of how the data is • It will be beneficial to society.
handled and accessed. If an organisation has • To perform a task that is difficult or not
taken “reasonable steps” to ensure that the possible otherwise.
cloud storage provider is keeping the data • To assist with the transition between
secure in accordance with Australian law, then information systems.
they will not be liable for any data breach. • To save time.
• To save money.
An organisation would also be wise to do the
following: The motivations of individuals or organisations
involved in developing software will
• Ensure that the cloud provider is a sometimes put them at odds with the law or
reputable vendor (some cloud providers other stakeholders (both internal and
abide by the International Standard for external). It is also possible for individuals or
Cloud Privacy – ISO270018) organisations to conduct themselves in ways
• Encrypt data sent to the cloud that are legally sound, but still considered to be
• Use multi-factor authentication to access unethical.
the data
• Maintain an encrypted backup with a As a software developer, ensuring that the law
different cloud provider is followed, specifically in relation to the
• Ensure that the ownership of the data software solution that you are creating, is very
remains with the organisation important. This can, however, bring a software
developer into conflict with other stakeholders
Why do organisations or involved in the project – either though a
misunderstanding of a software developer’s
individuals develop software intentions or by insisting on the inclusion (or
solutions? exclusion) of features that would contravene
the law. There are also times when a situation
In Chapter 4, we discussed at length how the may challenge a software developer in an
mission statements of organisation inform ethical way and there is often quite a
their goals and objectives. In putting these difference between what is unethical and what
goals and objectives into action, organisations is illegal.
will create information systems that will in
turn, have their own set of goals and Some examples of this sort of conflict follow,
objectives. although this list is by no means exhaustive.
153 | P a g e
Software Development: Core Techniques and Principles 4th edition
Ethical issues arising in the software important but may be a part of the project that
development process either the client or the software developer
wants to omit.
The Privacy Act requires that a reasonable level
of security be placed on personal information Code of ethics
that is being stored by a software solution or in
a networked environment. For this reason, it is Most professions are also guided by a code of
often important to include password ethics that lays out guidelines specific to the
protection, levels of access and encryption of profession. A code of ethics is not legally
some sort. Organisations often have a binding but sets out to establish a level of
password policy, which they may require a ethical conduct and to raise the awareness of
software developer to enforce in a software issues related to the profession.
solution. Typical password policies now consist
of upper and lower case characters, numbers The Australian Computer Society, which
and punctuation and are often a set minimum represents a large proportion of the IT
length. These password policies often cause professionals in Australia, has a published code
concern amongst users as they are hard to of ethics can that can viewed via their website.
remember and seem to be “over the top”. A
software developer may encounter resistance The introduction of the ACS code of ethics
from staff when implementing a policy such as states “An essential characteristic of a
this or may encounter problems if their profession is the need for its members to abide
software solution uses a different policy or by a Code of Ethics. The Society requires its
none at all. members to subscribe to a set of values and
ideals which uphold and advance the honour,
What if a software developer were asked not dignity and effectiveness of the profession of
to implement security features in a program information technology.” Within the code of
due to time or budget constraints? ethics are statements about honesty,
competence, values, ideals, professional
What if a software developer, in the course of conduct and social implications.
the creation of the software solution, found
that the security of information on the
networked environment was inadequate?
154 | P a g e
Chapter 9: The law in a software development context
Context Questions
• Find examples of OSS or creative commons content and note the conditions under which the
authors have said it can be used.
At the conclusion of this chapter, you should be able to address the following key skills. Mark each off
as you can achieve them.
Describe ways in which testing can be documented and what actions should take
Describe ways in which the progress of projects can be recorded and plans amended
Discuss strategies that can be used to evaluate software solutions and project plans
155 | P a g e
Software Development: Core Techniques and Principles 4th edition
The following sample examination questions can be attempted to test your knowledge of the content
of this chapter.
“Even though I created this module for my last job, it’s mine to sell and do what I wish with”.
Question 1
This person would be breaking the law if they were to do this. Which law would this person be
infringing?
A. Privacy Act
B. Code of Ethics
C. Copyright Act
D. Health Records Act
Question 2
The winners of a tennis tournament are to have their names and photos published on the club website.
This is not a breach of privacy legislation as long as:
A. Other tennis clubs are doing it as well
B. The players are members of the club
C. The players have a social media account
D. The players have given their permission for this to happen
Question 3
Open Office, VLC and Audacity are examples of Open Source software packages. This means:
A. The software and source code is free to use and access
B. A small licence fee is required to use the software
C. The software can only be used by developers
D. The software has to be programmed for it to be used
Question 4
A new App asks users to create an account and supply an address for security verification. This is in
breach of the Privacy Act because:
A. it is a unique identifier
B. another user may have supplied the same address
C. the owners of the App would be unable to check the accuracy of the address
D. the owners of the App have no valid reason to collect this information
Question 5
What rights does an author of a work not have?
A. The right to chose when and how the work will be distributed
B. The right to incorporate protection methods to protect their work
C. The right to control how their work is communicated to others
D. The right to prevent anyone quoting from the work
156 | P a g e
Chapter 9: The law in a software development context
Question 6
Paul is in the process of developing an App that will be free to download. One of the ways that the
App will revenue is via advertising. Paul wants to make the advertising as targeted as possible by
accessing the browsing history of those using the App, as well as their location details. Paul’s colleague
Maxine advises Paul this this is technically very easy to code, but that some things need to be done in
order to ‘make it legal’.
a. What would be the best way to ensure that this data is able to be obtained legally?
___________________________________________________________________________
___________________________________________________________________________
1 mark
b. List two potential negatives that could arise from implementing such a feature.
Negative 1: __________________________________________________________________
___________________________________________________________________________
Negative 2: __________________________________________________________________
___________________________________________________________________________
2 marks
Question 7
AFLellofAGame is an AFL based podcast that is recorded weekly. The show is broadcast live and then
a recording is placed on a server for access. Both the live show and archived shows can be accessed
via an App that can be downloaded free from the App store. The hosts have taken to starting the show
with a pop song to represent what has happened during the week. Two weeks ago, they played most
of “Take it to the limit” by The Eagles. Last week the song they selected was “Firework” by Katy Perry.
Paul (one of the hosts) was initially concerned that this might be a breach of copyright, but Dave (the
other host) reassured him saying that by stopping the song just before the end meant they weren’t
playing the whole song. He also said that as they weren’t selling the song, that it was OK.
Discuss any problems with Dave’s reasoning, with reference to any relevant legislation.
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
2 marks
Question 8
The web developer for a company is approached by the another company with a proposal. They would
like to have their company advertised on the website and in exchange will share their client data. The
web developer feels that the proposal has merit, but also knows that some there are some things to
be careful of legally.
157 | P a g e
Software Development: Core Techniques and Principles 4th edition
__________________________________________________________________________
1 mark
b. Describe what the web developer needs to do in order to ensure that this proposal is
implemented legally.
__________________________________________________________________________
__________________________________________________________________________
2 marks
Question 1
Answer: C
Question 2
Answer: D
Question 3
Answer: A
Question 4
Answer: D
Question 5
Answer: D
Question 6
a. The best way to obtain this data legally is to advise listeners downloading the App that this
data will be collected and ask for them to agree to this.
b. Negative 1: the App might not be as responsive as it will be sending additional data back and
will also be loading ads to display.
Negative 2: listeners might get annoyed at the presence of the ads and may also feel that
their privacy is being infringed upon.
Question 7
It is against the Copyright legislation to play the songs that Dave is playing at the front of his show.
Stopping the song just before the end makes no difference. The station may not be selling the song,
but they are making revenue from advertising used in the show, so the song is contributing to that (so
indirectly – they in fact are selling the song).
Question 8
a. Privacy legislation.
b. Clients need to be asked whether they will allow their data to be shared with and informed as
to what it will be used for. If they say no, then a record of this must be kept and the data
cannot be shared.
158 | P a g e
Chapter 10
Cybersecurity
Key terms: security threats, accidental, event-based and deliberate threats, risk management, user
authentication, dictionary attack, rainbow table, firewalls, malware, SQL injection, man in the middle
attack, social engineering, encryption, logical and physical security, barrier techniques, biometrics.
Study roadmap
Unit 3 Unit 4
Ch Area of study 1 – Area of study 2 – Area of study 1 – Area of study 2 -
Programming Analysis and Design Development and Cybersecurity: software
Evaluation security
1
2
3
4
5
6
7
8
9
10
chapter, the most common way that data is The loss from accidental damage as well as
lost is through the deletion of files or parts of event-based damage are best prevented with
them without having any backups available. good backup and operational procedures (as
Updating and deleting files is an activity that discussed in Chapter 8). However, deliberate
people do almost every day and so it is easy to threats require the use of security measures to
make a mistake or not think twice about it. minimise their risk.
160 | P a g e
Chapter 10: Cybersecurity
being destroyed, the network would remain in a monetary cost. This also needs to be factored
operation and the US would be able to launch into the cost/benefit analysis.
a counter-strike. For a time, the network was
made available for select universities to use Protection and detection
and was opened up to commercial interests in
the late 1980s. In the early 1990s CERN Security is primarily concerned with protection
publicised the ‘world wide web’ project and but it also includes detection. Protection is
the Internet began to gain in popularity and what we naturally assume when we raise the
make its way into the world culture. topic of security; that is, what can be done to
prevent malicious attacks on the data within an
The underlying engineering behind the organisation. Protection is often at the ‘front
Internet was not built with security concerns in door’ – the problem being that once an
mind. There was no e-commerce, no crime and intruder has access, there are no mechanisms
no financial transactions. HTTP is not a secure to detect their presence. This is where
protocol and contains no encryption of any detection is important.
kind. Internet security, as a result, had not
been a coordinated effort. One of the first barriers that can be effective in
protecting an organisation and its data, is user
The ease with which Internet sites can be authentication.
cloned makes trust a difficult issue. It is not
enough to trust a web-site based on the User Authentication
reputation of the ‘brand’. Prime examples are
banking sites, which are regularly cloned using User authentication is the process by which a
very similar URLs and by using the images person that is wishing to gain access to an
captured from the official web-site. information system provides satisfactory
credentials to allow them to be confirmed as
Internet security risk management being who they say they are. User
authentication falls into three categories:
Internet security, for many organisations, falls ownership factors (based on something the
into the area known as risk management. That user has), knowledge factors (based on
is defined as the application of security something the user knows) and inherence
measures based on a cost/benefit analysis. For factors (based on something the user is).
example, there may be many security
measures that can be applied to a company’s Some examples of these are as follows:
network, but at some point in time, the cost of
adding the security measure will be greater Ownership factors: ID card, security token,
than the potential losses that can result. In mobile phone, implanted device.
many ways, risk management is about
probability. Ultimately, no network or
organisation is 100 per cent secure and it can
cost an organisation a very large amount of
money if attempting to attain this ideal. At
some point, an organisation needs to decide
that what it has in place is ‘good enough’ and
that they have sufficient data recovery
methods in place to ensure that they can
recover from a worst case scenario.
161 | P a g e
Software Development: Core Techniques and Principles 4th edition
Knowledge factors: a password, a pass phrase, complex and hard to remember. Best practice
a Personal Identification Number (PIN), answer for password construction generally involves
to a security question, response to a question using something memorable to the user but
(such as a ‘captcha’). not easily guessed by anyone else.
Inherence factors: fingerprint, retinal pattern,
DNA sequence, signature, face, voice.
Password entropy is a measure of how
While each of these categories of user easy a password will be to ‘crack’. A
authentication have their strengths and known password will have an entropy of
weaknesses, many organisations are moving to 0 bits. One that can be guessed 50% of
the use of multi-factor user authentication. the time on the first guess will have an
entropy of 1 bit. A password’s entropy
This involves the use of 2 or more forms of can be calculated by finding the entropy
authentication, ideally from different per character (which is log base 2 of the
categories. For example, a common (and easy number of characters in the character
to implement) multi factor authentication is to set), multiplied by the number of
ask the user to enter their username and characters in the password.
password, and follow this with a pass code sent
to their mobile phone.
Many organisations enact password policies One of the simplest ways to ‘crack’ a password
that force users to create complex passwords is by using ‘brute force’. Brute force is a
that follow a number of rules. Typically this method by which every combination is tested.
involves using at least 8 characters, a mix of While this would be an arduous task for a
numbers, alpha-numeric characters and human being to perform, it is very easy to write
special characters as well as upper and lower code to try out all of the combinations
case characters. Policies vary, but passwords of possible. The level of difficulty rises with the
this sort are considered ‘strong’ by different combinations that are allowed in the
organisations and they will
often have an interface
that will give a user
feedback on the relative
strength of their selected
password against this
measure. The formation of
such policies is done by
considering the ‘entropy’
of passwords constructed
using the set of rules laid
out.
162 | P a g e
Chapter 10: Cybersecurity
password. This is the reason why ‘complex’ stored in the system. A solution to this is
password policies add addition character sets hashing.
(such as upper and lower case, numbers and
special characters). However, we have already Encrypting data using hashing
discussed how adding these characters doesn’t
increase the entropy per bit by very much. It is We will discuss how encryption works shortly,
really the length of the password that makes but for the purposes of storing passwords
‘brute forcing’ a password difficult (especially securely, hashing is the best method. Hash
if the length is unknown). tables were discussed in Chapter 3, and the
method for hashing passwords is the same.
Many systems will include a mechanism that
will suspend an account after a small number Hashing works in the following way. When a
of incorrect attempts have been made, and user enters their username and password,
this is usual enough to make ‘brute forcing’ both are hashed using a key to produce a
ineffective. hashed value of each that is significantly
different from the original. This hashed value
Dictionary attack can be compared to the hashed value that is
already stored in the password database. The
A more common method of attempting to main benefit of using this method is that the
crack a password is a dictionary attack. A database only contains the hashed values. As
dictionary attack is based on trying all the the hashing process is a one-way conversion,
strings in a pre-arranged list. Dictionary attacks gaining access to the hashed password
often succeed because people have a tendency database is not very useful if the hash key is not
to choose short passwords that are ordinary or known. Of course, once the database is
common words, or simple variations that obtained by a hacker, they can take their time
include a digit or punctuation character on the and brute force different hash table keys, so
end. Dictionary attacks can easily be thwarted while this is far better than storing usernames
by choosing a password that is not a simple and password in plain text, it is still not very
variant of a word found in any dictionary or secure. Once a hashed database is obtained,
listing of commonly used passwords. rather than brute force, a hacker will make use
of a rainbow table.
Storing passwords securely
Rainbow tables
While we have been discussing methods by
which users can create passwords to protect A rainbow table is a listing of all possible
themselves, the best password in the world permutations of encrypted passwords specific
will be of no protection if the password to a given hash algorithm. Once a hacker gains
database and where it is stored in the access to an information system’s password
information system are not secure. database, they compare the rainbow table’s
precompiled list of potential hashes to the
In the early days of software development, hashed passwords that are stored in the
usernames and passwords were stored in database. The rainbow table is effectively a
databases and text files within the information reverse engineering of the hash that has been
system. While these files were often secured in applied to each username and password. It is
some way, administrator accounts could be an offline only attack, so while much more
targeted for brute force or dictionary attacks in powerful than brute force or a dictionary
order to gain access. Instead of targeting attack, a hacker must first have been able to
individual user accounts, by targeting an gain access to the password database.
administrator account, a hacker could gain
access to all of the usernames and passwords Rainbow tables can be used to crack 14-
character alphanumeric passwords in about
163 | P a g e
Software Development: Core Techniques and Principles 4th edition
160 seconds. Unfortunately for those cases they may be automated to push updates
designing the security of information systems, out to users.
the increase in processor speed and data
access times have meant that large rainbow While we have been discussing techniques to
tables are easily viable. Large rainbow tables protect information systems and data, one of
can approach 700 GB in size and vary the most difficult aspects of information
depending on the hash algorithm that is being system security is detecting when an intruder
targeted. While the hacker will have to guess gains (or has gained) access. Often intrusions
which has been used, they may simply try go undetected and even when detected, it is
many rainbow tables. not always easy to determine what data has
been accessed.
To protect against the use of rainbow tables,
system administrators use ‘salt’. Detecting intruders
Salt Intrusion detection can take place if particular
files or assets within a network are tracked or
‘Salt’ is the process of adding random data to ‘watched’. Audit logs can be generated that
each username and password before it is track all network traffic and in this way an
hashed. This has the effect of making unauthorised entry into a network can be
passwords and usernames longer (which adds detected. The downside of this is that it can
to their complexity) which results in a very take quite a bit of effort to ‘watch’ files on a
large hashed value. Rainbow tables have great network. Audit logs will track all network
difficulty with salted hashes as they need to activity, but the task of sorting through
not only be able to work out what was used, legitimate traffic and unauthorised traffic is
but also what salt has been added. not easy or remotely enjoyable! In this sense,
it is easy to trace the activity of an intruder
The best ‘salts’ are uniquely random ones that after a breach has been detected, but by this
are applied to each username or password (as stage, the damage may be done. The result of
opposed to the same ‘salt’ being used for detection will hopefully be the removal of the
everything). intrusion mechanism.
CASE tools
164 | P a g e
Chapter 10: Cybersecurity
165 | P a g e
Software Development: Core Techniques and Principles 4th edition
166 | P a g e
Chapter 10: Cybersecurity
Trojans Spyware
A Trojan is a virus that is disguised as another Spyware is a type of malware that is concerned
software package that performs a different primarily with the collection of information.
(although not always legitimate) purpose. It is This information could be personal details
named after the Trojan horse in Greek (which could be used for identity theft), email
mythology, which was used to hide Greek addresses, browsing activities (for the
soldiers in the Battle of Troy. purposes of marketing) or simple keystrokes.
Spyware is often delivered as the payload via a
A Trojan may perform a number of different worm or a Trojan and is not normally self-
functions based on its payload. A Trojan can replicating. Spyware can also be installed when
install a ‘spambot’, it can install software that visiting a compromised web-site via specific
allows the owner of the Trojan to access the vulnerabilities in Internet Explorer. In a case
infected computer, it may install pop-up like this, the user could be infected and not be
advertisements, it can turn the computer into aware that the infection has occurred.
a ‘zombie’ or it can delete files in the same way
a virus can. One thing that a Trojan does not do Adware
well is replicate, instead it relies on the users
to download and run the program or distribute Adware is a subset of spyware in that it
it. Despite this, makers of anti-virus software performs some of the same functions. The
report that the majority of malware is in fact of function that classifies adware is that it will
the Trojan variety. display pop-up ads to the user and do so
frequently. These pop-up ads can be targeted
to the browsing habits of the user or they may
167 | P a g e
Software Development: Core Techniques and Principles 4th edition
be completely unrelated. In most cases, the ‘zombies’ pulse their IP requests so that
advertising being displayed is generating instead of flooding the web-server and
income for the owner of the adware in terms inevitably shutting it down, the Internet traffic
of the number of ‘clicks’ the advertisement is is slowed considerably. This sort of attack is
receiving. much harder to detect or even do anything
about.
SQL injection
Zombies and botnets Often in order to authenticate a user, their
username and password will be compared to
One of the main purposes for malware is to what is stored in a database. A query language
establish ‘zombies’ which can be used to send such as SQL is used to extract the relevant data.
spam (or act as a ‘spambot’). This makes it SQL or Structured Query Language, is a
harder to establish the sender of the spam – database query language specifically designed
thus protecting the spammer from to extract, add, delete or edit records in a
prosecution. It is estimated that well over half database. The simplest command is one that
of the spam in the world originates from extracts all of the records from a database
‘zombies’. table.
168 | P a g e
Chapter 10: Cybersecurity
password’ or 1=1;
169 | P a g e
Software Development: Core Techniques and Principles 4th edition
Protecting from an SQL injection with a firewall that protects you from some of
the dangers inherent in connecting to the
Protecting from an SQL injection is relatively Internet, you are not protected from those
straightforward. By validating the inputs from that are closest to you. Ironically, the biggest
the user prior to inserting them into an SQL threat to your data in this type of situation is
string as parameters, a software developer can not an unscrupulous hacker on the other side
prevent giving the user the ability to enter of the world but rather the (equally
code directly into the input. Despite the ease unscrupulous) one that is standing metres
of this solution, a surprising number of from you!
information systems were vulnerable to SQL
injections in recent years, and badly coded An unsecured connection is not only easy to
software solutions may still be. connect to, it also means that the data being
sent over it is unencrypted. The data that you
A man in the middle attack send and receive is able to be ‘sniffed’.
Another way an intruder can gain access to a There are a number of settings within your
user’s data is to insert themselves in the operating system that can protect you
middle of the communication that the user is however. The first of these is network
having with the information system they are discovery. Both Mac OS and Windows allow
connected with. This generally involves the user to turn network discovery off which
eavesdropping on the initial communication so basically means that your computer will not be
that the intruder can get the information that seen on the network. In addition to this, it is
they need to make the connection, and then important to disable all means of sharing files
pretending to be the information system in and resources – as often these are ‘open’ by
future transactions with the user. default. When accessing any sites for which
you will be entering sensitive information, you
Unsecured wireless networks or wired should use HTTPS rather than HTTP. HTTPS is
networks in which users are connected are an option that is available for most sites that
vulnerable to ‘packet sniffing’. Any
device on a network can ‘listen’ to the
packets that are being transferred
between network nodes.
‘Packet sniffers’ are not illegal by
themselves as they can be important
diagnostic tools. The use of a ‘packet
sniffer’ can show how efficiently a
network is operating and what
bottlenecks are occurring.
170 | P a g e
Chapter 10: Cybersecurity
171 | P a g e
Software Development: Core Techniques and Principles 4th edition
protection methods as they complement each There are two main types of encryption:
other. symmetric key encryption and asymmetric key
encryption.
On Windows computers, many users operate
in administrator mode when they are working Symmetric key encryption
on day to day tasks. As the administrator
account is only really needed for the Symmetric key encryption can be used to send
installation of software, it should only be used large amounts of information across the
when this needs to be done. The problem with Internet from one person to another. The
working in administrator mode is that malware
that infiltrates a computer that is logged on in
this way, will also have administrator
privileges. If malware tries to infiltrate a In describing various cryptography and
security examples, the characters of
computer that is running in a ‘user’ mode, it ‘Alice’ and ‘Bob’ have become the
will be unable to install or replicate itself in any default for two users communicating
way and the attack will be nullified. Many with each other (A and B). Some other
experts advocate only using administrator notable characters are:
login when disconnected from the Internet Craig: A password cracker
Eve: An eavesdropper
entirely.
Mallory: A malicious attacker
Trudy: An intruder
Keeping anti-virus and anti-spyware software Sybil: An attacker that uses a number
up to date is essential as new malware threats of different identities
are being created daily. There is some
argument that keeping the operating system
up to date is also a good practice, although ‘plaintext’ version is encrypted using what is
some would also argue that it is good to wait referred to as a ‘secret key’ and then sent to
before installing the latest operating system as the recipient who then needs to decrypt it
sometimes security holes can present using the same key. This is a very secure way
themselves and it can take a while for these to of sending information. The problem that
be detected and fixed. arises is how does the sender let the recipient
know what the secret key is? Obviously the key
Sending sensitive data via the Internet would not be included with the message
carrying the ‘ciphertext’ as this would be too
Sending sensitive data over the Internet can easy to intercept. It would also be as risky
only really be done by using encryption. sending the key via the same transmission
Methods such as email, standard HTML web method either before or after the ‘ciphertext’.
forms and the like are highly susceptible to If someone was indeed intercepting the
‘sniffing’, which is discussed in the context of messages, then it would be an easy matter for
Intranets later in this chapter. them to also intercept the key.
172 | P a g e
Chapter 10: Cybersecurity
however, this makes the process complicated Hybrid encryption – a better solution
and potentially confusing.
Symmetric and asymmetric key encryption
Asymmetric key encryption have their pros and cons. While symmetric key
encryption is very good at transferring large
In asymmetric key encryption, there are two amounts of data quickly, it has problems with
keys instead of one – a public key and a private the exchange of the secret key. Asymmetric
key. Both are related mathematically, but the key encryption is slow, is one way only and has
public key can only be used to encrypt difficulties with large amounts of data. Both of
information and not decrypt it. The private key these methods can be combined for a good
can be used to decrypt the information that solution that solves these problems.
has been encrypted by the public key.
This works in the following way. If someone Let’s say two users (Alice and Bob) want to
wants to send information to someone else in exchange information securely between them.
a secure manner using asymmetric key Alice begins by making a transfer request of
encryption, they first request a copy of the Bob who sends his public key to her. Alice then
public key. This enables them to encrypt the encrypts a secret key that she has generated
information and send it. When the information for this transfer of information and he sends it
has been received, the owner of both the to Bob. Bob is able to use his private key to
public and private keys is able to decrypt the decrypt the information that has been sent –
information using the private key. which in this case is a secret key. Now that both
Alice and Bob have access to the secret key,
Public keys can be sent out to anyone who may they can send information to each other
wish to send encrypted data to you, but only securely and quickly.
you should have access to your private key.
Logical security
Asymmetric key encryption works well but is
not good for large amounts of information and
Logical security consists of software measures
is relatively slow compared to symmetric key
to protect access to the organisation’s data
encryption.
and information. The best way to apply logical
security measures is by establishing
Secure Sockets Layer (or SSL) and usernames, passwords and access restrictions
Transport Layer Security (or TLS) (levels of access). Many organisations employ
password policies that force their employees
A common application of asymmetric key to enter complex passwords and change them
encryption is SSL (or Secure Sockets Layer) frequently. Too often users will enter
encryption, which establishes a secure passwords that are easy for them to remember
‘handshake’ between a web browser and a – but also easy to guess. The use of common
web-server. SSL is part of a security protocol
called TLS (or Transport Layer Security).
173 | P a g e
Software Development: Core Techniques and Principles 4th edition
words as well as words or numbers that have Large organisations that can afford it will often
meaning to them – such as family or pet names employ guards or have 24-hour surveillance,
and birthdays, means that a person that wants but this is not an option that is always available
to gain unauthorised access will often have and it comes down to a risk management (cost
some success by doing some research into the versus benefit). For many organisations
employees themselves. The prevalence of this however, the use of biometric security is quite
sort of information on the Internet, especially cost effective and easy to implement.
via social networking sites such as Facebook,
makes passwords that are built on these types Barrier techniques
of facts extremely weak. Many organisations
now use password policies that force users to
enter passwords of a minimum length, with a
combination of upper and lower case Physical security controls: The
characters, including at least one number and equipment and procedures used to
one special character (such as an exclamation assist in the protection of information
systems and the files created,
mark, comma, hash or dollar sign). communicated and stored by
individuals and organisations.
Access logs and audit trails provide a useful Equipment controls included zoned
layer of protection in that security breaches security strategies, barrier techniques
can, to some extent, be traced. In addition, if and biometrics. Physical procedures
the users of a system know that access logs and include backing up, shredding
confidential documents and checking
audit trails are being produced, they might be authorisation credentials.
less likely to attempt to access areas of the
network to which they do not have access. VCAA VCE IT Study Design 2020-
2023 Glossary
Physical security
Physical security measures prevent
The term ‘barrier techniques’ describes the
unauthorised access to physical hardware and
control of access to an organisation through
software by using physical barriers and
the use of barriers. Barriers are typically
authentication techniques. The most obvious
arranged to form concentric layers. The area of
physical security measures (known as barrier
greatest sensitivity is at the centre of the layers
techniques) consist of locks, alarms, fences and
and someone wishing to access this area must
gates. While the use of these may seem to be
pass successfully through all of the layers in
quite obvious, their application within
turn. Barrier techniques do not exclusively
organisations can be inconsistent. Locks can be
consist of physical security measures, although
organised so that there are levels of physical
the first ‘layers’ can typically consist of fences,
access within an organisation (for example,
locks, guards, security cameras and gates.
some keys will access some areas). This is
known as a zoned security strategy. Locks can
also be digital locks that accept PINs or swipe
cards. The advantage of this sort of system is
that it can be installed in such a way that it
maintains a log of when employees unlock or
lock a particular door and the codes can easily
be changed remotely. Alarm systems and video
surveillance are both useful (and relatively cost
effective), but their presence should be
obvious so that they work both as a deterrent
as well as a tool for detection and response.
174 | P a g e
Chapter 10: Cybersecurity
Accurate
Timely
Tools and techniques for
tracing transactions between All data has a ‘use-by’ date. Data that is
users of information systems considered timely for one purpose may not be
useful for another. For example, data on the
technology purchasing preferences of students
We have already spoken about access logs and
will only be relevant for a short time as
audit trails and how these provide a very useful
175 | P a g e
Software Development: Core Techniques and Principles 4th edition
technology is rapidly changing. The amount of Poor data management, especially in relation
time that can pass before data is no longer to unstructured (or poorly structured) data,
considered to be ‘timely’ really depends on costs organisations a lot of money. The
what sort of data it is. storage, control and transfer of data that is not
in a structured format creates many
Reasonable challenges. Information systems within an
organisation can easily lose or misplace data
Data may be perfectly valid, but not reasonable files or additional time may be needed to
in the context in which it is being used. For change the format of files to make them
example, while it is possible for a person to live compatible with different systems. This can be
to the age of 100 (and beyond), it is not likely as a direct result of a lack of standards within
that a person of this age would be amongst a the organisation or potentially resulting from a
list of students taking part in an athletics lack of compliance in adhering to the standards
carnival. that have been set.
There are lots of terms to describe data and There will certainly be lots of differences
some of them are very similar. We have between these systems and the new databases
already spoken about validation, which is a being established: different fields types, data
process by which the data is made as error free ranges and data that is missing. What will be
as possible. Accuracy is a measure of how well done with data that exists in the existing
data can be measured and recorded. We have information systems but not in the new
also spoken about data that is authentic, system? What about gaps in the data or errors
however with data that is correct, the in the existing data?
emphasis is on whether the data is right.
Although it is unlikely, data could potentially Manual data entry
be described as being compliant with all of the
criteria mentioned previously, but still not be No matter how well designed an information
correct. To have a definitive answer as to system is, it will almost always require some
whether data is correct or not, it needs to be manual data entry. With the intelligent design
compared or scrutinised by someone that has of user interfaces, many potential entry errors
the knowledge or experience (or data from can be correctly validated and corrected.
other sources) to be able to make that Despite this, there are some aspects of data
determination. entry that will always be prone to error no
matter how well designed the entry process is.
Data items such as names are easy to miss-
176 | P a g e
Chapter 10: Cybersecurity
spell. It can be common for items to be miss- the more transactions that are introduced, the
categorised (for example, ‘male’ as ‘female’). more points of failure there will be in the
Data items can be left out altogether or an process. What’s more, there will likely need to
element of one record entered into another. be some translation between the existing
systems and the new system.
Data mining
It can be very easy in situations like this for the
Data mining, by definition, is the process by vendors of one software solution to ‘blame’
which as much useful information is gleaned the inefficiencies on the legacy packages being
from a set (or sets) of data so that some deeper used. Different data types could be used to
conclusions can be drawn. This can involve represent the same data, which could create
extracting and processing data from a variety handling issues (a good example might be a
of sources. The key question becomes one of postcode field being a numeric type in one
trust. The more data that is included in a data system and a text type in another). Other items
set (especially data sets from a variety of of data may be labelled differently (for
sources), the more potential sources of error. example, ‘Surname’ versus ‘Last Name’) or
When data sets are combined and processed there may be gaps in data sets (one software
to form new data, even though the new data solution uses a ‘Salutation’ data field while
set may be technically valid, the correctness of another leaves this out).
the original data then becomes hard to
examine. User permissions
177 | P a g e
Software Development: Core Techniques and Principles 4th edition
Context Questions
• Interview the network manager at your school and ask them to describe the physical and software
controls that they use to secure their data.
• Investigate cases where a loss of data integrity has led to a significant (and possibly detrimental)
effect for customers of a business. Be sure to focus on cases that are specifically due to a loss of
data integrity as opposed to the effects of viruses or errors in code.
• Discuss ‘best practice’ for creating passwords. Make a list of guidelines that can be followed by
users to ensure they do everything they can to protect their data.
• Discuss times in which you or others that you know have changed the outcomes of situations by
appealing to the nature of the other parties or by “stretching the truth”. This needs to be a ‘safe’
discussion, but can serve to highlight how social engineering can be used and how it can be
guarded against.
At the conclusion of this chapter, you should be able to address the following key skills. Mark each off
as you can achieve them.
Understand the difference between physical and software controls to protect data
List and describe strategies that can be used to identify and minimise risks
Describe types of risks and the ways that they can be protected against
Describe how ineffective security strategies can have an impact on integrity of data
vulnerabilities
178 | P a g e
Chapter 10: Cybersecurity
The following sample examination questions can be attempted to test your knowledge of the content
of this chapter.
“Even though I created this module for my last job, it’s mine to sell and do what I wish with”.
Question 1
Which of the following would you classify as an event based threat?
A. Incorrect file formats leading to files being deleted
B. Loss of hardware devices
C. Water damage due to flood
D. Viruses damaging data
Question 2
One of the functions of a firewall is:
A. To prevent unauthorised users from accessing the network
B. To ensure that the Internet is protected from viruses on the internal network
C. To provide a method of logging people in
D. To run network software
Question 3
Which of the following is an example of a logical security measure?
A. Biometrics
B. Security cameras
C. Passwords and levels of access
D. Doors with swipe card locks installed
Question 4
An example of an accidental threat to data could be:
A. Flood in the basement of the building
B. Unauthorised access to the information system
C. Users not familiar with how to use the system properly
D. Power failure
Question 5
Employees working for a loan financing company have been given tablets that have WiFi and 4G
network access and connect to the company’s servers to access data while quotes are being given to
customers in their own homes.
1: _________________________________________________________________________
2: _________________________________________________________________________
3: _________________________________________________________________________
3 marks
179 | P a g e
Software Development: Core Techniques and Principles 4th edition
b. Jill (Client Services Manager) is in favour of locking the devices with a common password (such
as ‘ABC123’) while Kalen (IT Support) wants to use the build in finger-print scanner that the
devices have. Discuss the merits of each approach.
__________________________________________________________________________________
__________________________________________________________________________________
__________________________________________________________________________________
2 marks
Question 6
One of the most common sources of accidental threats are the employees of a company. Describe
two ways that this threat can be minimised.
1: ________________________________________________________________________________
__________________________________________________________________________________
__________________________________________________________________________________
2: ________________________________________________________________________________
__________________________________________________________________________________
__________________________________________________________________________________
2 marks
Question 7
Beans Meanz is a small suburban café that offers free WiFi to anyone in the area. For convenience, it
has been left “open” without any security or encryption on it at all. Traci, who has only recently been
hired to work at the café, has some network security experience and has been critical of this
arrangement.
__________________________________________________________________________
__________________________________________________________________________
2 marks
b. List two reasons why Traci might be critical of the setup at Beans Meanz.
Reason 1: _________________________________________________________________
__________________________________________________________________________
Reason 2: _________________________________________________________________
__________________________________________________________________________
2 marks
180 | P a g e
Chapter 10: Cybersecurity
Question 8
Most organisations employ both logical and physical security controls to protect their information
systems. Describe two common logical security measures and two common physical security
measures that can be used.
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
4 marks
Question 1
Answer: C
Question 2
Answer: A
Question 3
Answer: C
Question 4
Answer: C
Question 5
a. 1: theft of the device.
2: damage to the device (dropping, impact, etc)
3: breach of the company server / database via unauthorised access
b. Using a common password will mean that the employees on the road will be easily able to
remember how to access the device and will be able to ask each other if they forget. The
password that has been chosen however, is a very simply one to crack or for someone to
work out if they are watching the employee enter it.
A fingerprint scanner is much more secure and will ensure that the device is only being
accessed by an authorised employee. There may be some circumstances in which it may not
be practical (injury, wet or dirty hands).
181 | P a g e
Software Development: Core Techniques and Principles 4th edition
Question 6
1: Backup data frequently.
2:Train staff in the correct procedures and use of software packages.
Could also maintain security levels of access and audit trails, so that changes can only be made by
those with access and even then, can be traced and rolled back.
Question 7
a. A network password will gain you access to a network. Encryption is a method by which the
data that is transferred is encoded so that it can’t be read (without the correct key).
b. Reason 1: Anyone could access resources on the network and implant viruses or copy (or
delete data).
Reason 2: Data transmitted over a WiFi network can be easily read by others if it is not
encrypted. This could include banking details and passwords, for example.
Question 8
Logical measures
• Usernames and passwords so that only those that are authorised can gain access to the
information system.
• Levels of access which only allow those with the correct clearance in an organisation to access
important / critical files.
Physical measures
• Security cameras which monitor critical areas such as the server room.
• Swipe cards on doors so that only those with clearance can gain physical access to certain
areas.
Other possible answers include the use of logs / audit trails and biometric devices such as fingerprint
scanners / locks.
182 | P a g e