Belady’s and Lehmann’s Model in Software Engineering
Belady and Lehmann (1972) were among the first researchers to try to capture maintenance effort in a predictive model. This model clear the concept that if poor software development approach is used then the effort and costs can be increased exponentially and the person who develops that software is no longer available to perform the maintenance of the software. Belady and Lehmann capture these effects in an equation:
M = P + Ke(c-d)
- M = The total maintenance effort expanded for a system.
- P = It represents wholly productive efforts like analysis, evaluation, design, coding and testing.
- c = It is the complexity caused by the lack of structured design and documentation.
- d = It is the degree to which the maintenance team is familiar with the software.
- K = It is a constant determined by comparing this model with the effort relationships on actual projects; it is called an empirical constants because its value depends on the environment.
This equation plays a very important relationship among the factors determining maintenance effort. In the given relation, if somehow the software is not developed by using software engineering process, then the value of ‘c’ increases. Of course ‘c’ will be higher for a large software product with a high degree of systematic structure than a small one with the same degree. If the software is maintained without a understanding of the structure, the function and purpose of the software, then the value of the ‘d’ will be low. In this way, the result found as the maintenance cost increases exponentially. Thus, to economize on maintenance, the best approach is to build the system using good-software engineering practices and to give the maintainers time to become familiar with the software.
Example: The development effort for a software project is 300 persons-months. The empirically determined constant (K) is 0.3. The complexity of the code is equal to 8 ( quite high value ). Calculate the total effort (M) if
- The maintenance team has good level of understanding of the project (d = 0.9).
- The maintenance team has poor understanding of project )d = 0.1)
Solution : Development effort (P) = 300 PM
K = 0.3 C = 8
1. The maintenance team has good level of understanding (d = 0.9)
M = P + ke(c-d) = 300 + 0.3e(8-0.9) = 300 + 363.59 = 663.59 PM
2. The maintenance team has poor level of understanding (d = 0.1)
M = P + Ke(c-d) = 300 + 0.3e(8-0.1) = 300 + 809.18 = 1109.18 PM
Thus it is clear from the above example that if poor software engineering approaches are used than the effort increases exponentially and also the understandability of the project is also poor.