April
1999 QUESTION 3 Total Marks: 20 Marks |
Click here to access other
questions
GRADE A
|
(a) | Give a careful description of each of the following design concepts: | |
(i) Functional independence. | [2] | |
Functional
independence refers to the degree of cohesion and coupling that a module should have.
Functional independence can be achieved by low coupling and high cohesion. Cohesion measures the functional strength of a module Coupling measures the interdependence of a module to others.
|
||
(ii) Control Hierarchy. | [2] | |
Control Hierarchy is
the organization (usually hierarchical) of a modules and implies the hierarchy control
relationship between the modules. Control hierarchy show the manner of modules
relationship (superordinate / subordinate/ fan-in/ fan-out).
|
||
(iii) Information Hiding. | [2] | |
Information Hiding is
a way of designing a module such that information (e.g. data structures) contained in
other modules are not accessible to the modules that do not require this information. Information Hiding module keeps the scope of effect to related modules only.
|
||
(iv) Abstraction. | [2] | |
Abstraction allows one
to concentrate on a level of generalization without regard of the low irrelevant level
details. Abstraction can be achieved by properly partitioned the modules.
|
||
(b) | A programming language is typically said to posses two broad categories of characteristics, namely psychological and engineering characteristics. Describe what is meant by each of these two types of characteristics. Give one example of characteristics falling into each category, and explain why it falls into that category. | [6] |
A programming language
is said to have physchological characteristics because programming language is viewed as a
communication way of human to the computer. So coding is a human-activity, hence human
aspect physiological aspect has to be considered in coding phase. One of the characteristics in this category is Linearity, a language that can be written in a linear sequence helps the understandings of human. Human can comprehend, write better if coding is done procedurally/ structured in manner. Extensive branching will violate linearity and make programs harder to be understood. A programming language is said to have engineering characteristics because coding is part of the system development life cycle. Hence, the technical aspect of a programming language is a concern to produce good software. Example in this category is availability of development tools. A programming language that has source code generators will help the writing of code easier. Besides it also helps as source code generators can provide a better quality code compare to manually written codes. The availability of such tools ease the coding process that is technically done to be performed during the software engineering phase.
|
||
(c) | The choice of programming language should not only be based on the characteristics described in Part(b), but should also be based on numerous other criteria. Describe in some detail at least two of these possible criteria in the choice of languages. Give your opinion of the relevance or significance of each criterion. | [6] |
|