August
1997 QUESTION 3 Total Marks: 20 Marks |
Click here to access other
questions
SUGGESTED SOLUTIONS |
3. | (a) Define what is meant by Information Hiding. | [2] | |
Modules should be designed so that information contained within a module is inaccessible to modules that have no need for such information. | |||
[2 marks] | |||
(b) In design history, modularity can be thought of as a method of managing complex program by sub-dividing them into distinct and manageable parts. In the study of design however, there is also an issue of cost. Explain, with the aid of an appropriate diagram, the conflicting nature of cost and modularity: why might it not be always a good idea to have a very high degree of modularity? In your answer, indicate what you feel is a possible solution to these two factors. | [5] | ||
2 marks for correctly labelled diagram: | |||
3 marks for explanation, which should cover the following points: | |||
Cost/effort and number of modules are 2 conflicting factors: as number of modules increases, cost per module decreases, but cost to interface increases | |||
Explain and identify the region of minimum cost | |||
Explain the 'ideal' point: the intersection between the cost per module and the cost to the interface curves | |||
[5 marks] | |||
(c) Cohesion and Coupling are two ways of measuring the degree of modularity. Define what is meant by both terms, and then indicate the degree desirable for each. | [3] | ||
Coupling measures the degree of interdependence between two modules | |||
Cohesion measures the strength of functional association between elements within a module | |||
Desirable to have low coupling and high cohesion | |||
[1 mark for each point] | |||
[3 marks] | |||
(d) After the design step in a life-cycle usually comes the coding step. There are several factors that should be considered when choosing a suitable programming language for the coding step, one of which might be the algorithm and computational complexity of the program. Identify, and then describe in your own words, any five other such factors. | [1] | ||
Other possible factors are: | |||
General application area | |||
Environment in which software will execute | |||
Performance considerations | |||
Data structure complexity | |||
Knowledge of software development staff | |||
Availability of a good compiler or cross-compiler | |||
For each factor, 1 mark for identification and 1 mark for explanation | |||
[10 marks] |