Miexpo
Miexpo
Miexpo
Símbolos de datos (data tokens). Las variables definidas por un módulo pueden
definirse como tokens de datos para el modulo.
Bieman y Ott desarrollan metricas para cohesión funcional fuerte (CFF), cohesión
funcional débil (CFD) y adhesividad (el grado relativo en el que los tokens
pegamento enlazan rebanadas de datos). Un analisis detallado de las metricas de
Bieman y Ott, se deja a los autores [Bie94].
Suficiencia. Whitmire define suficiencia como “el grado en el que una abstraccion
posee las caracteristicas requeridas de el o en el que un componente de diseno
posee características en su abstraccion, desde el punto de vista de la aplicacion
actual”. Dicho de otra forma, se pregunta: “.Que propiedades debe poseer esta
abstraccion (clase) para serme util?”
[Whi97]. En esencia, un componente de diseno (por ejemplo, una clase) es
suficiente si refleja por completo todas las propiedades del objeto de dominio de
aplicacion que se modela, es decir, si la abstraccion (clase) posee sus
caracteristicas requeridas.
Completitud. La unica diferencia entre completitud y suficiencia es “el conjunto de
características contra las cuales se compara la abstraccion o el componente de
diseno” [Whi97].
La suficiencia compara la abstraccion desde el punto de vista de la aplicacion
actual. La completitud considera multiples puntos de vista, y plantea la pregunta:
“.que propiedades se requieren para representar por completo al objeto de
dominio problema?”. Puesto que el criterio para completitud considera diferentes
puntos de vista, tiene una implicacion indirecta en el grado en el que puede
reutilizarse la abstraccion o el componente de diseno.
1. Debe tener una arquitectura que 1) se haya creado con el empleo de estilos o patrones
arquitectónicos reconocibles, 2) esté compuesta de componentes con buenas características
de diseño (éstas se analizan más adelante, en este capítulo), y 3) se implementen
en forma evolutiva,2 de modo que faciliten la implementación y las pruebas.
2. Debe ser modular, es decir, el software debe estar dividido de manera lógica en elementos
o subsistemas.
3. Debe contener distintas representaciones de datos, arquitectura, interfaces y componentes.
4. Debe conducir a estructuras de datos apropiadas para las clases que se van a implementar
y que surjan de patrones reconocibles de datos.
5. Debe llevar a componentes que tengan características funcionales independientes.
6. Debe conducir a interfaces que reduzcan la complejidad de las conexiones entre los
componentes y el ambiente externo.
7. Debe obtenerse con el empleo de un método repetible motivado por la información obtenida
durante el análisis de los requerimientos del software.
8. Debe representarse con una notación que comunique con eficacia su significado.
Estos lineamientos de diseño no se logran por azar. Se consiguen con la aplicación de los principios
de diseño fundamentales, una metodología sistemática y con revisión.