The document discusses several software quality models:
- McCall's 1977 model identified quality factors like maintainability, flexibility, and testability from the user's perspective. Each factor has criteria and metrics.
- Boehm's 1978 model has high-level, intermediate, and primitive characteristics contributing to overall quality. Intermediate factors include portability, reliability, and usability.
- Gilb's 1988 model emphasizes defining attributes important to users and required quality levels. Attributes have sub-attributes to aid measurement.
2. What is quality?
In the context of software engineering, software quality
refers to two related but distinct notions that exist
wherever quality is defined in a commercial context:
■ The functional quality of the software reflects how
well it meets or fits a given design, based on
functional requirements or specifications.
■ The structural quality of software refers to how it
complies with non-functional requirements that
support the delivery of functional requirements,
such as strength or maintainability.
3. Measurement of quality
■ Quality, like beauty, is in the eye of the beholder
■ From the point of view of the measurement, it must
have a precise definition in terms of software
attributes that are of interest to the user
■ In general, these are external attributes, however,
many proposals measure and analyze internal
attributes because they consider them as predictors
of external ones.
The internal attributes have two advantages:
■ They are available for earlier measurement
■ They are easier to measure
4. Initial models of quality
From the beginning of software
engineering, it was observed that the
quality is composed of a composition of
many characteristics
■ A quality model then describes these
characteristics and their relationships
■ Many models make diffuse the
distinction between internal and
external attributes, which makes the
understanding of the concept of quality
difficult
5. McCall Quality Model (1977)
■ McCall's model was the first to be
presented in 1977, and originated
motivated by US Air Force and DoD
■ Focuses on the final product,
identifying key attributes from the
user's point of view
■ These attributes are called quality
factors and are usually external
attributes, but some internal
attributes are also included
6. McCall Quality Model (1977)
■ The quality factors are too abstract to be
measured directly, so for each of them low-
level attributes called quality criteria are
introduced
■ Some quality criteria are internal attributes,
reflecting McCall's belief that the internal
attribute has a direct effect on the
corresponding external attribute
■ One more level of decomposition is
necessary, mapping each quality criterion
into a set of quality metrics that are
attributes (both of the product and the
process) of very low level, directly
measurable
7. McCall Quality Model (1977)
McCall proposes three perspectives to
group quality factors
■ Product revision
■ Product transition
■ Product operation
8. McCall Quality Model (1977)
The Product revision includes the
following quality factors:
■ Maintainability
■ Flexibility
■ Testability
9. McCall Quality Model (1977)
Maintainability includes the following
criteria:
■ Consistency
■ Simplicity
■ Thoroughness
■ Self Description
■ Modularity
Maintainability is strongly influenced by
the use of good practices throughout
the development cycle
■ Follow a well-defined methodology
■ Use good design techniques, both
procedures and data, to increase
cohesion and reduce coupling
■ Observe the internal documentation
■ Use good programming practices:
significant names, readable code,
etc.
10. McCall Quality Model (1977)
According to McCall, the flexibility factor
includes the following criteria:
■ Expansibility
■ Generality
■ Self Description
■ Modularity
11. McCall Quality Model (1977)
According to McCall, the factor of
testability includes the following criteria:
■ Simplicity
■ Instrumentation
12. Boehm Quality Model (1978)
■ The second best known quality
model
■ This model introduces high level
characteristics, intermediate level
characteristics and primitive
characteristics, each of which
contributes to the overall level of
quality
13. Boehm Quality Model (1978)
High-level characteristics represent
general requirements for use
■ Utility per-se how (usable, reliable,
efficient) is the product itself
■ Maintainability how easy it is to
modify it, understand it and rethink
it
■ General utility if it can continue to be
used if the environment changes
14. Boehm Quality Model (1978)
The intermediate level characteristics
represent the quality factors of Boehm:
■ Portability (general utility)
■ Reliability (utility per-se)
■ Efficiency (utility per-se)
■ Usability (utility per-se)
■ Testability (maintainability)
■ Ease of understanding (maintainability)
■ Modifiability or flexibility (maintainability)
15. Boehm Quality Model (1978)
The lowest level corresponds to
characteristics directly associated with
one or two quality metrics
■ Portability
■ Reliability
■ Efficiency
■ Usability
■ Testability
16. Gilb Quality Model (1988)
■ This model presents as a
fundamental aspect the definition of
the quality attributes that really
interest the user and the level of
quality that each of them must have
to satisfy it since it does not make
sense to demand quality in a
product, if it does not have this basis.
Each attribute has sub attributes
that help the measurement
17. Gilb Quality Model (1988)
Advantage
■ This model evaluates independently
■ Like other processes, it uses levels of
hierarchies to delegate work
Disadvantages
■ Many factors that cause more work
in time and costs are evaluated
18. The 8 Dimensions of Garvin's Quality
■ Performance
■ Features (Additional Functions)
■ Reliability
■ Design Conformity
■ Durability
■ Quality of service
■ Esthetic
■ Perceived quality
Editor's Notes
En el contexto de la ingeniería de software, la calidad del software se refiere a dos nociones relacionadas pero distintas que existen dondequiera que se defina la calidad en un contexto comercial:
La calidad funcional del software refleja qué tan bien cumple o se ajusta a un diseño dado, en función de los requisitos funcionales o las especificaciones.
La calidad estructural del software se refiere a cómo cumple con los requisitos no funcionales que respaldan la entrega de los requisitos funcionales, como la solidez o la capacidad de mantenimiento.
La calidad, al igual que la belleza, está en el ojo de quien lo mira
Desde el punto de vista de medición, se debe tener una definición precisa en términos de atributos del software que sean de interés al usuario
En general, éstos son atributos externos, sin embargo, muchas propuestas miden y analizan atributos internos porque los consideran predictores de aquellos externos
Los atributos internos tienen dos ventajas:
Están disponibles para medición
Son más fáciles de medir
Desde el principio de la ingeniería de software, se observó que la calidad está compuesta por una composición de muchas características
Un modelo de calidad describe entonces estas características y sus relaciones
Muchos modelos hacen difusa la distinción entre atributos internos y externos, lo que dificulta la comprensión del concepto de calidad
El modelo de McCall fue el primero en ser presentado en 1977, y se originó motivado por US Air Force y DoD
Se focaliza en el producto final, identificando atributos claves desde el punto de vista del usuario
Estos atributos se denominan factores de calidad y son normalmentes atributos externos, pero también se incluyen algunos atributos posiblemente internos
Los factores de calidad son demasiados abstractos para ser medidos directamente, por lo que por cada uno de ellos se introduce atributos de bajo nivel denominados criterios de calidad
Algunos criterios de calidad son atributos internos, reflejando la creencia de McCall que el atributo interno tiene un efecto directo en el atributo externo correspondiente
Un nivel más de descomposición es necesario, mapeando cada criterio de calidad en un conjunto de métricas de calidad que son atributos (tanto del producto como del proceso) de muy bajo nivel, medibles directamente
McCall propone tres perspectivas para agrupar los factores de calidad
Revisión del producto habilidad para ser cambiado
Transición del producto adaptabilidad al nuevo ambiente
Operación del producto características de operación
La revisión del producto incluye los siguientes factores de calidad:
Mantenibilidad esfuerzo requerido para localizar y corregir fallas:
Flexibilidad facilidad de realizar cambios
Testeabilidad facilidad para realizar el testing, para asegurarse que el producto no tiene errores y cumple con la especificación
Mantenibilidad incluye los siguientes criterios:
Consistencia
Simplicidad
Minuciosidad
Autodescripción
Modularidad
Mantenibilidad está muy influenciado por el uso de buenas prácticas a lo largo de todo el ciclo de desarrollo
Algunas de estas buenas prácticas son:
Seguir una metodología bien definida
Usar buenas técnicas de diseño, tanto de procedimientos como de datos, para aumentar cohesión y reducir acoplamiento
Observar la documentación interna
Usar buenas prácticas de programación: nombres significativos, código legible, etc
Según McCall el factor flexibilidad incluye los siguientes criterios:
Expansibilidad
Generalidad
Auto-descripción
Modularidad
con el correr de los años este criterio se ha fusionado con mantenibilidad de hecho, en la definición original, dos de los criterios de flexibilidad estaban compartidos con mantenibilidad
Según McCall el factor testabilidad incluye los siguientes criterios:
simplicidad
Instrumentación
ISO 9000-3 divide el testeo en cuatro etapas
testeo de unidad se testea los componentes individuales, generalmente realizado por los programadores
testeo de integración se testean los módulos compuestos por diversos componentes
testeo de sistema se testea el sistema completo tal como lo usaría un usuario normal, pero sin su presencia
testeo de aceptación el usuario ejecuta el sistema completo para asegurarse que cumpla con los requerimientos. También llamado alpha testing
El segundo modelo de calidad más conocido
Este modelo introduce características de alto nivel, características de nivel intermedio y características primitivas, cada una de las cuales contribuye al nivel general de calidad
Las características de alto nivel representan requerimientos generales de uso
pueden ser:
Utilidad per-se cuan (usable, confiable, eficiente) es el producto en sí mismo
Mantenibilidad cuan fácil es modificarlo, entenderlos y retestearlo
Utilidad general si puede seguir usándose si se cambia el ambiente
Las características de nivel intermedio representan los factores de calidad de Boehm:
Portabilidad (utilidad general)
Confiabilidad (utilidad per-se)
Eficiencia (utilidad per-se)
Usabilidad (utilidad per-se)
Testeabilidad (mantenibilidad)
Facilidad de entendimiento (mantenibilidad)
Modificabilidad o flexibilidad (mantenibilidad)
Caracteristicas de nivel primitivo
El nivel más bajo corresponde a características directamente asociadas a una o dos métricas de calidad
De portabilidad
Independencia de dispositivos
Auto-contención
De confiabilidad:
Auto-contención
Exactitud
Completitud
Consistencia
Robustez/integridad
De eficiencia
Accesibilidad
Eficiencia de uso de dispositivos
De usabilidad
Robustez/integridad
Accesibilidad
Comunicación
De testeabilidad
Comunicación
Auto descripción
Estructuración
aunque parezcan similares, la diferencia está en que McCall focaliza en medidas precisas de alto nivel, mientras que Boehm presenta un rango más amplio de características primarias la mantenibilidad está más desarrollada en Boehm
Este modelo presenta como aspecto fundamental la definición de los atributos de calidad que realmente interesan al usuario y el nivel de calidad que deben tener cada uno de ellos para satisfacerlo ya que no tiene sentido exigir calidad en un producto, si no cuenta con esta base. Cada atributo tiene sub atributos que ayudan a la medicion
Ventajas
Este modelo evalúa de forma independiente
Al igual que otros procesos utiliza niveles de jerarquías para deleagar trabajos
Desempeño
Características (Funciones Adicionales)
Fiabilidad
Conformidad al Diseño
Durabilidad
Calidad de Servicio
Estética
Calidad Percibida