August 1999
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

(a) Define what is meant by the term software engineering. [3]
The establishment/use of sound engineering principles in order to develop functional, reliable, and workable software.

 

(b) Describe three objectives of requirements analysis. [3]
Specify software function and performance; Indicate software interface with other system elements; Establish design constraints that the software must meet.

 

(c) Identify the two types of partitioning. [2]
Vertical and horizontal.

 

(d) Define what is meant by the following terms: coupling and cohesion. [2]
Coupling : relative interdependence amongst modules.

Cohesion : relative functional strength (or the degree of association between elements of a module).

 

(e) The following is an example of a design heuristic :

Keep the scope of effect of a module within the scope of control of that module.

With the aid of a diagram, describe in some detail in your own words why this heuristic makes sense.

[4]
There is a diagram (too complicated to replicate here) on page 6-23 of the study guide, although conceivably there are may other ways to illustrate the practice of this idea.

 

(f) The following are examples of software quality factors. Describe what each factor means:

(i) Reliability

(ii) Testability

(iii) Portability

(iv) Interoperability

[4]
(i) Reliability : whether software program can perform its intended function with the required precision.

(ii) Testability : effort required to test the program; whether the program can be thoroughly/comprehensively tested.

(iii) Portability : whether the program can be brought to a different environment and used.

(iv) Interoperability : whether the program can be interfaced/coupled (e.g information exchange) with another system.

 

(g) Describe what is meant by each of the following terms : verification and validation. [2]
  • Verification : activities undertaken to ensure that software correctly implements a specific function; "whether the project is being built correctly."
  • Validation :activities undertaken to ensure that software meets requirements; "whether software built is the correct procedure."