MODELO DROMEY

Dromey: Es un modelo adaptable a evaluar varias etapas del proceso de desarrollo como levantamiento de requisitos, diseño e implementación. Se estructura con características y sub características de calidad; propone tres modelos distintos para cada etapa de construcción del producto: modelo de requerimientos, modelo de diseño y modelo de calidad de la implementación, a partir de la evaluación establecida en cinco etapas, para características como: eficiencia, confiabilidad, mantenibilidad, portabilidad, facilidad de uso y funcionalidad (Scalone, 2006)

R. Geoff Dromey publicó un nuevo modelo para la calidad del producto software [Dromey, 95]. Su modelo se basa en determinar una serie de propiedades de la calidad del software y clasificarlas en cuatro categorías básicas:

· Corrección: requisitos genéricos mínimos para la corrección.

· Estructuración: aspectos de bajo nivel del diseño interno de los módulos

· Modularidad: aspectos de alto nivel del diseño de la comunicación entre módulos.

· Descriptivo: diversas formas de especificación/documentación.

**Características**

**Completitud**: una función posee la propiedad de ser completa si tiene todos los  elementos necesarios para definir e implementar la función para que cumpla su rol de forma que no afecte a la fiabilidad o a la funcionalidad

**Computable**: indica si la solución incluye cálculos que están definidos de acuerdo con la teoría estándar de la computación y dentro de los límites definidos por el programa, el lenguaje de programación o la máquina.  Consistencia: una estructura es consistente si sus propiedades o funcionalidad se conservan tras su uso y si todos sus elementos contribuyen y favorecen su intención u objetivo

**Inicializado**: un bucle está inicializado si todas sus variables se han inicializado antes de entrar al bucle y lo más cerca posible a la entrada al bucle.

**Precisión**: una variable o una constante tienen un tipo impreciso cuando su precisión no es suficiente para alcanzar la exactitud requerida en los cálculos en los que interviene.  Progresivo: cuando en un bucle o en un algoritmo recursivo hay una evidencia clara de que la estructura converge con cada iteración o llamada recursiva

**Ajustable**: cuando no existen constantes no declaradas y se utiliza el mínimo número de variables con un único objetivo en la solución del problema

**Directo**: un cálculo puede expresarse directamente si la abstracción, selección de la representación y la estructura del cálculo son congruentes con el problema original que se está modelando.

**Efectividad**: si se tienen todos los elementos necesarios y solo los elementos necesarios para definir e implementar un algoritmo.

**Estructuración**: cuando se siguen las reglas de la programación estructurada.

**Homogeneidad**: cuando un algoritmo puede describirse por un invariante donde los principales predicados tienen una estructura conjuntiva.

**No redundancia**: cuando se tienen todos los elementos lógicos necesarios y solo los elementos necesarios para definir e implementar un algoritmo.

**Rangos independientes**: cuando los límites inferiores y superiores de una estructura no son constantes numéricas o caracteres.