Question two
Coupling and cohesion are design concepts that software engineers must consider seriously during software development:
a) Which type of coupling would you consider to be most desirable. Give reasons [6]
b) Which type of cohesion would you consider to be most desirable. Give reasons [6]
c) Define software reuse and explain its benefits in software development
Explain how COCOMO is used in software development [10]
Answers
a. Coupling refers to the measure of the degree of interdependence between modules. A good software will have low coupling.
There are different types of Coupling viz., Data Coupling, Stamp Coupling, Control Coupling, External Coupling, Common Coupling, Content Coupling
Here, Data Coupling is the best type because the dependency between the modules in data coupling is based on the fact that they communicate only through data and the components are not dependent on each other.
Example: Customer Billing System
b. Cohesion is a measure of the degree to which the elements of the module are functionally related. Basically, cohesion is the glue that ties all the modules together. A good software design will have high cohesion.
There are different types of Cohesion viz., Functional Cohesion, Sequential Cohesion, Communicational Cohesion, Procedural Cohesion, Temporal Cohesion, Logical Cohesion, Coincidental Cohesion.
Here, Functional Cohesion is the best type of cohesion because, all the necessary elements for a single computation are contained within the component. A functional cohesion performs all the functions and tasks.
c. Software Re-use is the process of creating software systems from predefined software components. Benefits of Software Re-use are as below:
- Helps reduce the time required to develop the new software
- Helps Increase the productivity of the existing software
- Reduce the number of resources and development and maintenance costs of the software
- Helps improve standardization of software and interoperability
- Increase in revenue due to reduced costs
The Constructive Cost Model (COCOMO) is a software cost estimation model that computes software development effort using a set of 4 "cost drivers" and a number of “attributes”