August 1997
SE203: SOFTWARE ENGINEERING

QUESTION 1 (Compulsory)

Total Marks: 20 Marks

Click here to access other questions

SUGGESTED SOLUTIONS
Solutions and allocated marks are indicated in green.
Return to Question 1

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]