August
1997 QUESTION 1 (Compulsory) Total Marks: 20 Marks |
Click here to access other
questions
SUGGESTED SOLUTIONS |
1. | (a) What is Software Engineering? | [2] | |
The use of sound engineering principles to produce | [1] | ||
economical, reliable and workable software. | [1] | ||
(b) Part of the prototyping paradigm is the creation of models. Describe briefly two different types of model which might be used. | [2] | ||
Paper/PC model that depicts how human-human interactions will occur | |||
a working prototype that implements some subset of the functions required for the desired software. | |||
an existing program that performs part or all of the functions desired, but has other features that will be improved later | |||
[Any two, 1 mark each] | |||
[2 marks] | |||
(c) Identify the four different activities conducted in the design phase of a life-cycle. | [2] | ||
data design | |||
architectural design | |||
procedural design | |||
interface design | |||
[0.5 marks each] | |||
[2 marks] | |||
(d) Define what is meant by a programming language, and give an example of a programming language. | [2] | ||
programming language: 'a form that can be understood by the computer' | [1] | ||
example: C, Pascal, Visual Basic, etc etc | [1] | ||
Answer given must be a specific language, not eg. '3rd generation language' | |||
(e) The Information Domain contains three different views of data and control. Identify and explain each of them briefly. | [6] | ||
information flow: represents the manner in which data and controls change as they move through a system | |||
information content: represents the individual data and control items that comprise some large item of information. | |||
information structure: represents the internal organization of various data and control items | |||
For each view, 1 mark for correct identification and 1 mark for correct explanation | |||
[6 marks] | |||
(f) There are several methods that can be used to calculate Cyclomatic Complexity, perhaps using the number of edges and nodes in the program flow-graph, or the number of predicate nodes in the graph. Describe briefly any two of the methods that can be used, making use of an example. | [4] | ||
explicit counting of the distinct regions in the flow-graph | |||
V(G) = Number of edges - Number of nodes + 2 | |||
V(G) = Number of predicate nodes + 1 | |||
Any two methods, 2 marks each | |||
[4 marks] | |||
(g) Identify any two different approaches to (or techniques for) debugging. | [2] | ||
brute force | |||
backtracking | |||
cause elimination | |||
any two, 1 mark each | |||
[2 marks] |