December 1999
SE203 : SOFTWARE ENGINEERING

QUESTION 1 (Compulsory)

Total Marks: 30 Marks

Click here to access other questions

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

(a)

There are two types of skills required for software engineers to adequately perform their roles in software development.Identify and describe these two types of skills.
Software skills:technical know-how,nuts and bolts of writing the software.

Project management skills:how to control the development and subsequent maintenance of software.

In each case:one mark for identification of skill;one mark for good elaboration upon skill.

 

[4]
(b)

Explain why an analyst must be able to ‘understand the customer environment ’.
As answers for this part can be quite varied,the following allocation should be used:

•0marks:if candidate clearly demonstrates no understanding of the material,or simply copies down the question statement without explaining it in his/her own words

•1 mark:if candidate attempts to explain the capability but demonstrates no understanding of the necessity of it

•2 marks:if candidate clearly has shown sound understanding,and can relate this capability to the needs of software development

 

[2]
(c)

One of the two types of data flows possible in a data flow diagram is transaction flow . With the aid of a diagram,describe what is meant by this term.
Information flow is characterised by a single data item,called a transaction,that triggers other data flow along one of many paths (1 mark).The transaction is evaluated and,based on its value,flow along one of many action paths is initiated (1 mark).The hub of information flow from which many action paths flow is called a transaction centre (1 mark).up to three marks for a good explanation


Up to two marks for a correct diagram;one mark for structure and some labelling, another for full and appropriate labelling.

Up to four marks for this part of the question,combining explanation and diagram; candidates may gain up to two marks for the diagram,and up to three marks for a very good textual explanation.

 

[4]
(d)

The three types of procedural design are:

•graphical design

•tabular design

•program design

Explain exactly what is involved in each type of design,using simple illustrations or examples to support your explanation.
Material explaining each type of procedural design can be found on pages 4-4 to 4-5 of the study guide.In each case,award one mark for the explanation and one mark for the illustration.

 

[6]
(e)

Give suitable definitions of the following terms:cohesion and coupling .
Coupling:measures the relative independence amoung modules

Cohesion:measures the relative functional strength of a module

One mark for each explanation

 

[2]
(f)

Identify two objectives of a formal technical review.
To uncover errors in function,logic,or implementation of any software representation.

To verify that the software under review meets the requirements.

To ensure that the software has been represented according to predefined standards.

To ensure that the software is being developed in a uniform manner.

To make projects more manageable.

Any two objectives,one mark each.

 

[2]
(g)

The following are all characteristics of programming languages;Explain what is meant by each of them:

One mark for each explanation:

•uniformity
Uniformity indicates the degree to which a language uses consistent notation or applies arbitrary restrictions.

•ambiguity
Ambiguity refers to the situation where a programming language is perceived by the programmer in one way,but the compiler always interprets the language in another way.

•tradition
Tradition refers to a homan trait of familiarity.In other words,a programmer with experience in one form of language will find it easier to pick up another language that has the same sort of constructs as the former.

•source code portability
Source code portability
refers to whether source code can be transported from processor to processor and compiler to compiler with little or no modification.

•compiler efficiency 
Compiler efficiency many applications today require fast ‘tight ’(i.e.low memory requirements)programs.Languages with optimizing compilers may be attractive if software performance is a critical requirement.

 

[5]
(h)

(i)Explain,in your own words,what makes a good or successful test of a program? [1 mark ] |
A good test is one that has a high probability of finding an error (1 mark);a successful test finds an error (1 mark)one mark for either point,up to a maximum of one mark for this part of the question

(ii)What are the advantages of having a program tested by somebody else?(That is, someone other than the person who wrote it.)[2 marks ] The advantages are:the other person may bring a different perspective (1 mark); the other person will not have the same personal investment in the correctness (1 mark).

(iii)Explain what is meant by the following types of system testing:recovery testing and stress testing .[2 marks ] 
one mark for each of these two points:different point of view;objectivity; alternative ways of expressing these two points should be considered Recovery testing:forces software to fail in a variety of ways and examines whether planned recovery is performed (1 mark) Stress testing:confronts software with abnormal situation where an unusual quantity (or frequency)of resources is demanded.(1 mark)

[5]