requirements are consistent and complete, whether the project is of good quality or
whether the code is ready to be tested. Some project managers measure process and
to be able to tell when the software will be ready for delivery or if
the budget will be exceeded. The maintenance can be used the measurement to
assess whether the product needs to be improved.
As it is an abstract product, measuring the quality of software is an arduous task. In
order to contribute to this, software metrics are one way of performing quality
control. Product and process metrics are used to address anomalies that may be
linked to quality.
Measurement is the capture of information about entity
. Examples of
attributes are the area of a room, the time of a trip or the cost of a software
development project. In software engineering, there are three classes of entities:
, and resources. In this case what matters are the product results
of activity of the development process.
• “External attributes are reliability, ease of comprehension, maintainability, usability,
integrity, e±ciency, reusability, portability and interoperability“ (Metricas, 2005, p.24).
•” Internal attributes are a little more subjective, for example, speci²cations can be
evaluated in terms of size, reuse, redundancy, and syntax correction” (Metricas, 2005,
Users often consider
as unimportant, as they are primarily
concerned with the ²nal functionality, quality, and utility of the software. However,
internal attributes can be very useful in suggesting what is likely to be found when
For example, knowing the relationship between some internal attributes of the
project and the propensity for software failures or di±culty of maintenance,
developers want to be able to identify the modules, still in the design stage, whose
pro²le, in terms of internal attributes measures , shows that they are likely candidates
to later experience some failure or di±culty to maintain.
Clarifying then ... the internal attribute “the
structural complexity of a process. Translating to the world of software engineering, it
measures the structural complexity of a method, class, or any logical unit that can be
found in a software system” (Gomede, 2010).
have in common the
characteristic of being static methods of measurement, which in contrast to dynamics
(relatively easy to measure because they are directly related to the quality attributes
of the software, such as performance or number of failures),
are more complicated
to estimate, due to the subjective relationship with quality attributes.