Sie sind auf Seite 1von 37

Materia.

Anlisis y Diseo de Sistemas 2

Ing. Mgc. Luis F. Morn

El Diseo es un proceso a travs del cual los requerimientos establecidos en la


fase de anlisis deben traducirse en una representacin modular del producto
de software a construir.
Cada mdulo se acompaa de los procedimientos de acuerdo a los cuales
debe llevar a cabo su tarea, y de las estructuras de datos que procesa.
El Diseo Estructurado es un mtodo de configuracin de la organizacin
modular del software que se desarrolla a partir de los Flujos de Datos que
contiene la especificacin de requerimientos obtenida en la fase de anlisis
bajo un enfoque de desarrollo estructurado (paradigma de desarrollo).

El Diseo de un Sistema de Informacin corresponde a la fase que contina al


Anlisis, y consiste principalmente en:
la especificacin de la estructura o arquitectura del producto de software a
construir.
la especificacin de los procedimientos en virtud de los cuales cada
componente estructural debe realizar su tarea.
la especificacin de las estructuras de datos, la cual tiene que responder a
los requerimientos de tratamiento automatizado de datos y generacin de
informacin planteados en la especificacin de requerimientos generada
en la fase de anlisis.
El Diseo debe exhibir una organizacin jerrquica con mecanismos de
control que no atenten contra la independencia relativa de cada componente
de la jerarqua.

El diseo debe ser modular, esto es, el software debe estar particionado
lgicamente en elementos que ejecuten funciones y subfunciones especficas.
El diseo debe generar mdulos que exhiban niveles adecuados de
independencia funcional.
El diseo debe obtenerse a partir de la especificacin de requerimientos
generada durante la fase de anlisis.

Corresponde al grado de independencia entre dos mdulos.


Minimizar el acoplamiento aparece entonces como un objetivo al configurar
la estructura.

La obtencin de mdulos tan independientes como sea posible, se puede


lograr principalmente de tres maneras:

Eliminando relaciones innecesarias.

Reduciendo el nmero de relaciones necesarias.

Debilitando la dependencia de las relaciones necesarias.

Muchos aspectos de la modularizacin pueden ser comprendidos solo si se


examinan mdulos en relacin con otros. En principio veremos el concepto
de independencia. Diremos que dos mdulos son totalmente independientes
si ambos pueden funcionar completamente sin la presencia del otro. Esto
implica que no existen interconexiones entre los mdulos, y que se tiene un
valor cero en la escala de dependencia".
En general veremos que a mayor nmero de interconexiones entre dos
mdulos, se tiene una menor independencia.
El concepto de independencia funcional es una derivacin directa de la
modularidad y de los conceptos de abstraccin y ocultamiento de la
informacin.
La simple cantidad de conexiones entre mdulos, no es una medida
completa de la independencia funcional. La independencia funcional se
mide con dos criterios cualitativos: acoplamiento y cohesin.

El acoplamiento es un concepto abstracto que nos indica el grado de


interdependencia entre mdulos.
Mdulos altamente "acoplados" estarn unidos por fuertes
interconexiones, mdulos dbilmente acoplados tendrn pocas y dbiles
interconexiones, en tanto que los mdulos "desacoplados" no tendrn
interconexiones entre ellos y sern independientes.

Los cuatro factores principales que influyen en el acoplamiento entre


mdulos son:
1. Tipo de conexin entre mdulos: los sistemas normalmente conectados, tienen menor
acoplamiento que aquellos que tienen conexiones patolgicas.
2. Complejidad de la interface: Esto es aproximadamente igual al nmero de tems diferentes
pasados (no cantidad de datos). Ms tems, mayor acoplamiento.
3. Tipo de flujo de informacin en la conexin: los sistemas con acoplamiento de datos tienen
menor acoplamiento que los sistemas con acoplamiento de control, y estos a su vez menos que los
que tienen acoplamiento hbrido.

4. Momento en que se produce el ligado de la Conexin: Conexiones ligadas a referentes fijos


en tiempo de ejecucin, resultan con menor acoplamiento que cuando el ligado tiene lugar en
tiempo de carga, el cual tiene a su ves menor acoplamiento que cuando el ligado se realiza en
tiempo de linkage-edicin, el cual tiene menos acoplamiento que el que se realiza en tiempo de
compilacin, todos los que a su vez tiene menos acoplamiento que cuando el ligado se realiza en
tiempo de codificacin.

1. Acoplamiento Normal
2. Acoplamiento de Datos
3. Acoplamiento de Marca (Stamp)

4. Acoplamiento de Control
5. Acoplamiento Comn
6. Acopalmiento Externo
7. Acoplamiento de Contenido

Dos Mdulo A y B estn Normalmente Acoplados si:


Un Mdulo A llama a otro B
B retorna el control a A
No se produce traspaso de parmetros entre ellos, slo existe la llamada de uno a otro.
A

Dos mdulos estn acoplados por datos si ellos se comunican por parmetros.
El acoplamiento por datos corresponde a la comunicacin de datos necesaria entre
mdulos. Toda vez que los mdulos tienen que comunicarse entre s, la ligazn por
datos es inevitable y sern adecuadas si se mantienen a niveles mnimos.

Dos mdulos aparecen "acoplados de marca si ellos se refieren a la misma estructura


datos local.
Por estructura de datos se debe entender un grupo compuesto de datos en vez de
argumentos simples.

Calcular
Deuda
Cliente

Por ejemplo un Registro.

Cliente

Cliente= rut+nombres+apellido_paterno+
apellido_materno+direccin+fono+e_mail

Leer Cliente

Dos mdulos estn acoplados por control cuando uno de ellos pasa al otro mdulo
indicadores de control (flag, switch).
Provoca dependencia de ejecucin entre un mdulo y otro.

Obtener
Datos
Cliente

No es muy recomendable. Tratar de utilizarlo moderadamente.

Tipo_dato

Cliente

Leer Cliente

Dos mdulos presentan acoplamiento comn, si


ellos se refieren a la misma rea global de datos
(archivo o rea de memoria).

Actualizar
Stock
Video

Obtener
Nombre
Video

Programas con muchos datos globales son difciles

de entender por los programadores de mantencin,


porque no es fcil saber cules son los datos usados
por un cierto mdulo.

video

Leer Registro
Video

Cuando los mdulos estn atados a un


entorno externo al software se dan niveles
relativamente altos de acoplamiento.

Actualizar
DW

Obtener
Nmina

Registro_act

Nmina

Por ejemplo, la E/S acopla un mdulo a

dispositivos, formatos y protocolos de


comunicacin.
El acoplamiento externo debe limitarse a

unos pocos mdulos en la estructura.

DW

Dos mdulos pueden estar relacionados por ms de un tipo de acoplamiento. Si esto


ocurre, el acoplamiento que caracteriza la relacin entre ellos queda definido por el
peor tipo que presenten.
Por ejemplo, si dos mdulos estn ligados por acoplamiento de marca y acoplamiento

comn a la vez, se dir que los mdulos estn ligados por acoplamiento comn.

Cmo Analizar el Tipo de Acoplamiento?


Imaginar el Mdulo como una Biblioteca
Cada Mdulo es codificado por un programador diferente

Cada Mdulo es codificado por un programador diferente

Qu tan independientes pueden trabajar los programadores?


Existe algn supuesto, convencin o decisiones de implementacin a los cuales
ms de un mdulo deba prestar atencin?
Cules son las posibilidades de cambio que existen en relacin a los supuestos,
convenciones o a la implementacin?
Existe alguna manera de aislar aquellos cambios y situarlos en un slo mdulo?

Ideas Centrales

Sistemas altamente acoplados conducen a depurar verdaderas pesadillas. Evtelos


Sistemas altamente acoplados, tienden a tratarse como una sola gran unidad. Y un
sistema monoltico es la contrapartida a particionar.
Hablar de mdulos, cajas negras, es hablar de particionamiento.
Particionar es la estrategia para abordar la complejidad.

Las cajas negras se organizan jerrquicamente.

Corresponde a la medida de relacin funcional de los elementos en un


mdulo.

Los elementos de un mdulo corresponden a instrucciones, definiciones de


datos, o llamadas o otros mdulos.
La idea es organizar estos elementos de tal manera que tengan una mayor

relacin entre ellos al momento de cumplir su tarea.

La manera en la cual dividimos fsicamente un sistema en piezas (particularmente en


relacin con la estructura del problema) puede afectar significativamente la complejidad
estructural del sistema resultante, as como el nmero total de referencias intermodulares.

Adaptar el diseo del sistema a la estructura del problema (o estructura de la aplicacin, o


dominio del problema) es una filosofa de diseo sumamente importante. A menudo
encontramos que elementos de procesamiento del dominio de problema altamente
relacionados, son trasladados en cdigo altamente interconectado. Las estructuras que
agrupan elementos del problema altamente interrelacionados, tienden a ser modularmente
efectivas.

Esta relacin funcional intramodular se conoce como cohesin.


La cohesin es la medida cualitativa de cuan estrechamente relacionados
estn los elementos internos de un mdulo.

La cohesin modular puede verse como el cemento que amalgama juntos a los
elementos de procesamiento dentro de un mismo mdulo. Es el factor ms crucial en
el diseo estructurado, y el de mayor importancia en un diseo modular efectivo.
Claramente los conceptos de cohesin y acoplamiento estn ntimamente
relacionados. Un mayor grado de cohesin implica uno menor de acoplamiento.
Maximizar el nivel de cohesin intramodular en todo el sistema resulta en una
minimizacin del acoplamiento intermodular.

Diferentes principios asociativos fueron desenvolvindose a travs de los aos por


medio de la experimentacin, argumentos tericos, y la experiencia prctica de
muchos diseadores.
Existen siete niveles de cohesin distinguibles por siete principios asociativos. Estos
se listan a continuacin en orden creciente del grado de cohesin, de menor a mayor
relacin funcional:
Cohesin Casual (la peor)
Cohesin Lgica (sigue a la peor)
Cohesin Temporal (de moderada a pobre)
Cohesin de Procedimiento (moderada)
Cohesin de Comunicacin (moderada a buena)
Cohesin Secuencial
Cohesin Funcional (la mejor)

Mayor Cohesin
FUNCIONAL

Mdulo como
Caja Negra

SECUENCIAL
COMUNICACIONAL
PROCEDURAL
TEMPORAL
LGICA
COINCIDENTAL
Grado de
Cohesin

STEVEN, MYERS, CONSTANTINE y YOURDON (1974)


establecieron "una escala de cohesin"

Mdulo
Transparente

Un mdulo con cohesin funcional es aquel que contiene elementos que contribuyen
a la ejecucin de una y slo una tarea relacionada al problema objeto de diseo.

Ejemplos:
Calcular el coseno de un ngulo
Calcular el I.V.A. de una factura

Verificar el dgito de un RUT

Un mdulo secuencialmente cohesionado es aquel cuyos elementos estn envueltos


en actividades tales que los datos de salida de una actividad en general sirven como
datos de entrada para la prxima actividad.
Ejemplo: Calcular Salario

1. Obtener sueldo base


2. Verificar nmero de cargas
3. Revisar das con permiso
4. Revisar das con licencia

5. Calcular horas de trabajo


6. Descontar horas de atraso
7. Agregar horas extras

Un mdulo presenta cohesin comunicacional cuando sus elementos contribuyen a


actividades que usan la misma entrada o la misma salida. No importa el orden
secuencial

Ejemplo: Obtener datos Producto


1. Obtener nombre
2. Obtener stock

3. Obtener ubicacin
4. Obtener precio
....

Cuando sus elementos de procesamiento estn relacionados y deben ejecutarse en un


orden especfico.

Un mdulo con cohesin temporal es aquel cuyos elementos estn envueltos en


actividades que estn relacionadas en funcin del momento en que se realizan.

Ejemplo: Actividades al iniciar el da


1. Apagar despertador
2. Tomar una ducha
3. Vestirse

4. Hacer la cama
5. Tomar desayuno
....

Un mdulo tiene cohesin lgica, cuando existe alguna relacin entre los elementos
del mdulo, contribuyendo al desarrollo de actividades de una misma categora
general, donde la actividad o las actividades a ser ejecutadas se seleccionan desde
fuera del mdulo.

Ejemplo: Registrar Pago


1. Registrar pago con tarjeta de crdito
2. Registrar pago con cheque

3. Registrar pago con efectivo


....

Un mdulo coincidentemente cohesionado es aquel cuyos elementos desarrollan


actividades sin relacin significativa entre s.

Ejemplo:
1. Comprar un libro
2. Comer un trozo de torta
3. Ir al teatro

4. Lavar la ropa
5. Dormir
....

Acoplamiento

Cohesin

Principios de un
Buen Diseo

Un sistema es una inversin. Para protegerla y explotar al mximo sus beneficios,


algunos proyectos requieren de seguimiento, monitoreo y apoyo peridico.
Algunas reas de apoyo constante incluyen:
Aseguramiento de calidad
Soporte a usuarios
Calidad de datos
Capacitacin de nuevos usuarios al uso del sistema
Documentacin de procesos
Medicin y mejora de factores de desempeo
Desarrollo continuo
Diagnstico peridico y planeacin estratgica
Mantenimiento preventivo
Actualizacin de acuerdo a polticas fiscales, legales o corporativas

Para proyectos de sitios web:


Publicacin de contenidos (incluyendo creacin y correccin de estilo)
Diseo grfico
Mejora de estadsticas de visita en base a objetivos.

Disponer de un contrato de soporte y mantenimiento informtico les permite al


cliente contar con la estabilidad de sus sistemas, de tal manera que en el momento
que ocurra un problema informtico pueden contar con un equipo de profesionales
responsables que conocen su negocio, sus necesidades y saben resolver su problema
en el menor tiempo posible.

Modularidad, Cohesin y Acoplamiento (Carlos Fontela)


https://cysingsoft.wordpress.com/2009/06/23/modularidad-cohesion-yacoplamiento-carlos-fontela/
Metodologia Estructurada
http://www.ub.edu.ar/catedras/ingenieria/ing_software/ubftecwwwdfd/uml
1/uml1.htm
Cohesion y Acoplamiento
http://latecladeescape.com/t/Acoplamiento+y+cohesi%C3%B3n

Das könnte Ihnen auch gefallen