Skip to document

The reuse model

The reuse model
Course

Software Engineering (CSPC 111)

140 Documents
Students shared 140 documents in this course
Academic year: 2022/2023
Uploaded by:
Anonymous Student
This document has been uploaded by a student, just like you, who decided to remain anonymous.
Don Mariano Marcos Memorial State University

Comments

Please sign in or register to post comments.

Preview text

The reuse model

The COCOMO reuse model is used to estimate the effort required to integrate reusable or generated code. As I have discussed in Chapter 15, software reuse is now the norm in all software development. Most large systems include a significant amount of code that has been reused from previous development projects.

COCOMO II considers two types of reused code. Black-box code is code that can be reused without understanding the code or making changes to it. Examples of black-box code are components that are automatically generated from UML models or application libraries such as graphics libraries. It is assumed that the development effort for black- box code is zero. Its size is not taken into account in the overall effort computation.

White-box code is reusable code that has to be adapted to integrate it with new code or other reused components. Development effort is required for reuse because the code has to be understood and modified before it can work correctly in the system. White-box code could be automatically generated code that needs manual changes or additions. Alternatively, it can be reused components from other systems that have to be modified in the system that is being developed.

Three factors contribute to the effort involved in reusing white-box code components:

  1. The effort involved in assessing whether or not a component could be reused in a system that is being developed.

  2. The effort required to understand the code that is being reused.

  3. The effort required to modify the reused code to adapt it and integrate it with the system being developed.

The development effort in the reuse model is calculated using the COCOMO early design model and is based on the total number of lines of code in the system. The code size includes new code developed for components that are not reused plus an additional factor that allows for the effort involved in reusing and integrating existing code. This additional factor is called ESLOC, the equivalent number of lines of new source code. That is, you express the reuse effort as the effort that would be involved in developing some additional source code.

The formula used to calculate the source code equivalence is:

ESLOC 5 (ASLOC 3 (1-AT/100) 3 AAM)

ESLOC: the equivalent number of lines of new source code.

ASLOC: an estimate of the number of lines of code in the reused components that have to be changed.

AT: the percentage of reused code that can be modified automatically.

AAM: an Adaptation Adjustment Multiplier that reflects the additional effort required to reuse components.

In some cases, the adjustments required to reuse code are syntactic and can be implemented by an automated tool. These do not involve significant effort, so you should estimate what fraction of the changes made to reused code can be automated (AT). This reduces the total number of lines of code that have to be adapted.

of the components that are part of each version and includes them as required in the system build.

In large software projects, configuration management is sometimes part of soft-ware quality management (covered in Chapter 24). The quality manager is responsible for both quality management and configuration management. When a pre-release version of the software is ready, the development team hands it over to the quality management team. The QM team checks that the system quality is acceptable. If so, it then becomes a controlled system, which means that all changes to the system have to be agreed on and recorded before they are implemented.

Many specialized terms are used in configuration management. Unfortunately, these are not standardized. Military software systems were the first systems in which software CM was used, so the terminology for these systems reflected the processes and terminology used in hardware configuration management. Commercial systems developers did not know about military procedures or terminology and so often invented their own terms. Agile methods have also devised new terminology in order to distinguish the agile approach from traditional CM methods.

A colleague who Is a very good programmer produces software with a low number of defects but consistently ignores organizational quality standards. How should her managers react to this behavior?

Was this document helpful?

The reuse model

Course: Software Engineering (CSPC 111)

140 Documents
Students shared 140 documents in this course
Was this document helpful?
The reuse model
The COCOMO reuse model is used to estimate the effort required to integrate reusable
or generated code. As I have discussed in Chapter 15, software reuse is now the norm
in all software development. Most large systems include a significant amount of code
that has been reused from previous development projects.
COCOMO II considers two types of reused code. Black-box code is code that can be
reused without understanding the code or making changes to it. Examples of black-box
code are components that are automatically generated from UML models or application
libraries such as graphics libraries. It is assumed that the development effort for black-
box code is zero. Its size is not taken into account in the overall effort computation.
White-box code is reusable code that has to be adapted to integrate it with new code or
other reused components. Development effort is required for reuse because the code
has to be understood and modified before it can work correctly in the system. White-box
code could be automatically generated code that needs manual changes or additions.
Alternatively, it can be reused components from other systems that have to be modified
in the system that is being developed.
Three factors contribute to the effort involved in reusing white-box code components:
1. The effort involved in assessing whether or not a component could be reused in
a system that is being developed.
2. The effort required to understand the code that is being reused.
3. The effort required to modify the reused code to adapt it and integrate it with the
system being developed.