You are on page 1of 6

DESCOMPOSICION MODULAR

El diseño modular propone dividir el sistema en partes diferenciadas y definir sus interfaces. sus
ventajas: claridad, reducción de costos y reutilizacion

Los pasos a seguir son:

1. Identificar los módulos

2. Describir cada módulo

3. Describir las relaciones entre módulos

Una descomposicion modular debe poseer ciertas cualidades mínimas para que se pueda
considerar suficiente válidad.

1. Independencia funcional

2. Acoplamiento

3. Cohesión

4. Comprensibilidad

5. Adaptabilidad

a) Independencia funcional

Cada módulo debe realizar una función concreta o un conjunto de funciones afines. Es
recomendable reducir las relaciones entre módulos al mínimo.

Para medir la independencia funcional hay dos criterios:acoplamiento y cohesión

b) Acoplamiento

El acoplamiento es un medida de la interconexión entre módulos en la estructura del programa.


Podemos graduarña en un amplio espectro, pero por lo general se tiede a que el acoplamiento sea
lo menor posible, esto es a reduir las interconexiones entre los distintos módulos en que se
estructure nuestra aplicación. El grado de acoplamiento mide la interrelación entre dos módulos,
según el tipo de conexión y la complejidad de la interfase:

. Fuerte

- Por contenido, cuando desde un módulo se puede cambiar datos locales de otro.

- Común, se emplea una zona común de datos a la que tienen acceso varios módulos.
. Moderado

- De control, la zona común es un dispositivo externo al que estan ligados los módulos, esto
implica que un cambio en el formato de datos los afecta a todos.

- Por etiqueta, en ontercambio de datos se realiza mediante una referencia a la estructura


completa de datos(vector, pila, árbol,grafo,…)

. Débil

- De datos, viene dado por los datos que intercambian los módulos. Es el mejor.

- Sin acoplamiento directo , es el acoplamiento que no existe

c) Cohesión

Un módulo coherente ejecuta una tarea sencilla en un procedimiento de sw y requiere poca


interacción con procedimientos que se ejecutan en otras partes de un programa. podemos decir
que un módulo coherente es aquel que intenta realizar solamente una cosa.

Para que n° de módulos no sea demaciado elevado y complique el diseño se tratan de agrupar
elementos afines y relacionados en un mismo módulo.

 ALTA

. Cohesion abstraccional, se logra cuando se diseña el módulo como tipo abstracto de datos o
como una clase de objetos

. Cohesión funcional, el módulo realiza una función concreta y específica

 MEDIA

. Cohesión secuencial, los elementos del módulo trabajan de forma secuencial

. Cohesión de comunicación, elementos que operan con el mismo conjunto de datos de entrada o
de salida

. Cohesión temporal, se agrupan elementos que se ejecutan en el mismo momento. Ej.Arrancar o


parar dispositivos

 BAJA

. Cohesión lógica, se agrupan elementos que realizan funciones similares.

. Cohesión coincidental, es la peor y se produce cuando los elementos de un módulo no guardan


relación alguna
La descripción del comportamiento de un módulo permite establecer el grado de cohesión:

- Si es una frase compuesta y cotiene más de un verbo la cohesión será MEDIA

- Si contiene expreciones secuenciales (primero, entonces, cuando…), será temporal o secuencial

- Si la descripcion no se refiere a algo especifico(Ej. Todos los errores), cohesión lógica

- Si aparece “inicializar”, “preparar”, “configurar”, probablemente sea temporal.

d) Comprensibilidad

Para facilitar los cambios, el mantenimiento y la reutilización de módulos es necesario que cada
uno sea comprensible de forma aislada. Para ello es bueno que posea independencia funcional,
pero además es deseable:

- Identificación, el nombre debe ser adecuado y descriptivo

- Documentación, debe aclarar todos los detalles de diseño e implementación que no queden de
manifiesto en el propio código

- SIMPLICIDAD, las soluciones sencillas son siempre laas mejores

e) Adaptabilidad

La adaptación de un sistema resulta más dificil cuando no hay idependencia funcional, es decir,
con alto acoplamiento y baja cohesión, y cuando el diseño es poco comprensible. Otros factores
para facilitar la adaptabilidad:

- Previsión, es necesario prever que aspectos del sistema pueden ser suseptibles de cambios en el
futuro, y poner estos elementos en módulos independientes, de manera que su modificación
afecte al menor número de módulos posibles

-Accesibilidad, debe resultar sencillo el acceso a los documentos de especificación, diseño, e


implementación para obtener un conocimiento suficiente del sistema antes de proceder a su
adaptación

- Consistencia, después de cualquier adaptación se debe mantener la consistencia del sistema,


incluidos los documentos afectados
HERRAMIENTAS CASE
 

Concepto de las herramientas CASE


 

La herramienta CASE (Computer-Aided Systems Engineering ) cuyo significado en español es


ingeniería de sistemas asistida por ordenador, es la aplicación de tecnología informática a las actividades,
las técnicas y las metodologías propias de desarrollo de sistemas y al igual que las herramientas CAD
(Diseño Asistido por Computadora) o CAM (Manufactura Asistida por Computadora) su objetivo es
acelerar el proceso para el que han sido diseñadas, en el caso de CASE para automatizar o apoyar una o
mas fases del ciclo de vida del desarrollo de sistemas. La primera herramienta CASE como hoy la
conocemos fue Excelerator en 1984, era para PC. Actualmente la oferta de herramientas CASE es muy
amplia y tenemos por ejemplo el EASYCASE o WINPROJECT.

Tecnología de las herramientas CASE


 

La tecnología CASE supone la automatización del desarrollo del software, contribuyendo a mejorar la
calidad y la productividad en el desarrollo de sistemas de información. Para mejorar la calidad y la
productividad de los sistemas de información a la hora de construir software se plantean los siguientes
objetivos :

 Permitir la aplicación práctica de metodologías estructuradas, las cuales al ser realizadas con una
herramienta conseguimos agilizar el trabajo.
 Facilitar la realización de prototipos y el desarrollo conjunto de aplicaciones.
 Simplificar el mantenimiento de los programas.
 Mejorar y estandarizar la documentación.
 Aumentar la portabilidad de las aplicaciones.
 Facilitar la reutilización de componentes software.
 Permitir un desarrollo y un refinamiento visual de las aplicaciones, mediante la utilización de
gráficos.

Componentes de una herramienta CASE

De una forma esquemática podemos decir que una herramienta CASE se compone de los siguientes
elementos:
 Repositorio (diccionario) donde se almacenan los elementos definidos o creados por la
herramienta, y cuya gestión se realiza mediante el apoyo de un Sistema de Gestión de Base de
Datos (SGBD) o de un sistema de gestión de ficheros.
 Metamodelo (no siempre visible), que constituye el marco para la definición de las técnicas y
Consistencia:
Debe ser congruente la terminología, y las guías seguidas, para evitar confusión al usuario. Si por
ejemplo, en el mismo contexto apareciera en un lugar "archivo" y en otro "documento", esto
causaría duda en el usuario, sobre el significado de los mismos.
metodologías soportadas por la herramienta.
 C
Atajos para usuarios frecuentes: a
Los usuarios casuales pueden considerar buena la interfaz, pero cuando un usuario frecuentemente
hace uso del diálogo, requerirá de herramientas para agilizar su trabajo; tales como el uso de
r
atajos mediante el teclado (shortcuts, accelerators o hot-keys). Recordemos que entre los objetivos g
de una buena interfaz están reducir el tiempo de respuesta y aumentar la productividad. a
o
descarga de datos, son facilidades que permiten cargar el repertorio de la herramienta CASE con
datos provenientes de otros sistemas, o bien generar a partir de la propia herramienta esquemas de
base de datos, programas, etc. que pueden, a su vez, alimentar otros sistemas. Este elemento
proporciona así un medio de comunicación con otras herramientas.
 Comprobación de errores, facilidades que permiten llevar a cabo un análisis de la exactitud,
integridad y consistencia de los esquemas generados por la herramienta.
 Interfaz de usuario, que constará de editores de texto y herramientas de diseño gráfico que
permitan, mediante la utilización de un sistema de ventanas, iconos y menús, con la ayuda del
ratón, definir los diagramas, matrices, etc. que incluyen las distintas metodologías.

Diseño de dialogos

Retroalimentación:
Toda acción del usuario, debe mostrar sus efectos; esto para evitar que el usuario dude de que
haya
ocurrido la acción. Esto se logra mediante mensajes, iconos, cambios en la figura que representa
el ratón, cambios en la pantalla, o sonido, entre otros métodos.
Por ejemplo, siempre debe haber un indicador de avance, un reloj de arena o algún elemento
similar, cuando se está realizando un proceso largo. De los dos elementos mencionados, será
mejor un indicador de avance, pues le da mayor información al usuario y da expectativas
apropiadas.

Diseño modular

La solución a un problema suele venir dada por un programa representado por un módulo
principal, el cual se descompone en subprogramas (submódulos), los cuales, a su vez, también se
pueden fraccionar, y así sucesivamente, es decir, el problema se resuelve de arriba hacia abajo. A
este método se le denomina diseño modular o descendente (top-down).

Generadores automáticos de código:


Trabajan con un conjunto de reglas que permiten la
traducción del código en lenguaje intermedio al
lenguaje objeto. Las reglas suelen remplazar
instrucciones de código intermedio por patrones
que contienen las instrucciones equivalentes de la
máquina objeto.

You might also like