Académique Documents
Professionnel Documents
Culture Documents
INFORMACIN 2
CONTENIDO
1.
DISEO ESTRUCTURADO.
Definicin y Principios de Diseo
Inicios del Diseo
Efectividad del Diseo
Modularidad
Abstraccin
Refinamiento
Factores de calidad: Acoplamiento y Cohesin
Diseo de Calidad
Resultados del Diseo
Diagrama de Estructura
Estrategias de Diseo
Construccin del Diagrama de Estructura
CONTENIDO
2.
1. DISEO ESTRUCTURADO
DISEO
El Diseo de un Sistema de Informacin corresponde a la fase que
contina al Anlisis, y consiste principalmente en:
en
elementos
que
ejecuten
funciones
y subfunciones
especficas.
Modularidad
Abstraccin
Refinamiento
MODULARIDAD
Mdulo: cada una de las unidades claramente definidas y manejables
constituyentes del software.
La modularidad consiste en el particionamiento del software en elementos
con nombres y direcciones separadas que se denominan mdulos, los
cuales en su composicin generan una totalidad que debe ser capaz de
resolver el problema que da origen a la necesidad de construir un producto
de software.
Tiene que ver con la divisin de las funciones que en conjunto cumplen un
objetivo mayor, esto es, responden a la idea de totalidades emergentes
propia de la nocin de sistemas.
MODULARIDAD
Beneficios de la Modularidad
Programas ms simples, ya que puede ser comprendido,
verificado, programado, depurado, mejorado y alterado por
partes.
Mdulos
independencia.
Disminucin
complejidad.
MODULARIDAD
Beneficios de la Modularidad
Programas que pueden evaluarse por partes, por lo cual todo test
se hace ms fcil.
MODULARIDAD
Beneficios de la Modularidad
El programa puede ser comprendido por partes.
Disminuye errores de programacin. Son menos las lneas de
cdigo que deben enfrentar al mismo tiempo los programadores.
Los efectos colaterales de los cambios que afectan al sistema son
drsticamente reducidos.
Rotacin de personal menos crtica, ya que los programadores estn
involucrados en unidades de cdigo ms pequeas por lo cual la
sustitucin resulta menos dificultosa.
Responde al requerimiento de la divisin del cdigo en
segmentos de una pgina, como lo sugiere la programacin
estructurada.
MODULARIDAD
El FAN OUT es una medida del nmero de mdulos controlados
directamente por otro mdulo (nmero de subordinados inmediatos
que posee).
El FAN IN indica cuntos mdulos controlan directamente un
determinado mdulo (nmero de superiores inmediatos que posee).
Un mdulo que controla a otro se dice que es "superordinado" a ste
y, recprocamente, un mdulo controlado por otro se dice que es
"subordinado".
MODULARIDAD
Mdulo Superordinado
Mdulo Subordinado
FAN OUT: 2
FAN IN : 1
MODULARIDAD
Dividir hasta el infinito para que el Esfuerzo sea Cero ?
Costos
o Esfuerzo
Costo Total SW
N Mdulos
Costos Mnimos
ABSTRACCION
Cuando se considera una solucin modular para enfrentar un
problema, se puede plantear en distintos niveles de abstraccin.
Un nivel superior de Abstraccin supone una solucin en trminos
amplios, usando un lenguaje del entorno del problema.
A niveles ms bajos, se toma una orientacin ms procedimental, se
combina una terminologa orientada al problema con una orientada a
la implementacin.
El nivel ms bajo de abstraccin permitir que la solucin pueda
implementarse directamente.
REFINAMIENTO
El refinamiento sucesivo es una estrategia de diseo descendente (Top_Down)
propuesta de Niklaus Wirth. Quien postul que la arquitectura de un programa
se
desarrolla
refinando
sucesivamente
los
niveles
de
detalle
de
los
REFINAMIENTO
Proceso iterativo mediante el cual la arquitectura del software es el
reflejo de la especificacin de requerimientos del sistema, el cual se
realiza sistemticamente con el propsito de lograr una estructura
modular, es decir, una representacin que explicite las relaciones
entre los principales elementos del software.
Esto significa que, inicialmente, se configura una representacin que
muestra una visin global tanto de las estructuras de datos como de
las estructuras de los componentes, la cual tras un proceso de
refinamiento sucesivo se transforma en una representacin del diseo
muy cercana al cdigo fuente, en cuanto a los detalles de los
procedimientos que han de regir las transformaciones que deben
llevarse a cabo en cada mdulo y en estructuras de datos detalladas.
REFINAMIENTO
En la Ingeniera de Software, la modularizacin se apoya en lo que se
conoce como refinamiento sucesivo o gradual, para la configuracin
de la estructura del software.
Refinamiento
Gradual
Abstraccin
Mdulo A
Modularidad
A1
A2
Factorizacin
FACTORES DE CALIDAD:
ACOPLAMIENTO
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
ser lograr principalmente de tres maneras:
Eliminando relaciones innecesarias.
Reduciendo el nmero de relaciones necesarias.
Debilitando la dependencia de las relaciones necesarias.
FACTORES DE CALIDAD:
COHESION
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.
FACTORES DE CALIDAD:
ACOPLAMIENTO Y COHESION
Acoplamiento
Cohesin
Principios de un
Buen Diseo
Tipos de Acoplamiento
1.
Acoplamiento Normal
2.
Acoplamiento de Datos
3.
4.
Acoplamiento de Control
5.
Acoplamiento Comn
6.
Acopalmiento Externo
7.
Acoplamiento de Contenido
Tipos de Acoplamiento
Mejor Acoplamiento
NORMAL
DATOS
DE MARCA (STAMP)
CONTROL
EXTERNO (caso especial de COMN)
COMN
CONTENIDO (grado ms alto : peor)
Grado de
Acoplamiento
Acoplamiento Normal
Dos Mdulo A y B estn Normalmente Acoplados si:
B retorna el control a A
No se produce traspaso de parmetros entre ellos, slo existe la llamada de
uno a otro.
Acoplamiento de Datos
Dos mdulos estn acoplados por datos si
Obtener
Datos
Cliente
una unidad
elemental de datos
Rut_cliente
la ligazn por
Leer Rut
Cliente
en
vez
de
argumentos
Leer Cliente
simples.
Por ejemplo un Registro.
Cliente= rut+nombres+apellido_paterno+
apellido_materno+direccin+fono+e_mail
Acoplamiento de Control
Dos mdulos estn acoplados por
Obtener
Datos
Cliente
Tipo_dato
Cliente
Leer Cliente
Actualizar
Stock
Video
Obtener
Nombre
Video
de memoria).
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
Acoplamiento Externo
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
acoplamiento
externo
debe
DW
Acoplamiento de Contenido
Este es un tipo de Acoplamiento
indeseable.
Dos mdulos presentan acoplamiento
de contenido (o patolgico) si uno
hace referencia al interior del otro.
Esto ocurre si por ejemplo, en un
mdulo se desva la secuencia de
A
..
Srch: Move..
..
.
.
B
..
..
Jump to Srch
.
Tipos de Acoplamiento
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.
Ideas Centrales
Tipos de Cohesin
Mayor Cohesin
FUNCIONAL
Mdulo como
Caja Negra
SECUENCIAL
COMUNICACIONAL
PROCEDURAL
TEMPORAL
Mdulo
Transparente
LGICA
COINCIDENTAL
Grado de
Cohesin
Cohesin Funcional
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
Cohesin Secuencial
Un mdulo secuencialmente
cohesionado es aquel cuyos
elementos estn envueltos en
actividades
tales
que
los
datos
salida
de
una
de
Cohesin Comunicacional
Un mdulo presenta cohesin
comunicacional
elementos
cuando
sus
contribuyen
Ejemplo:
Obtener
Producto
1. Obtener nombre
2. Obtener stock
3. Obtener ubicacin
4. Obtener precio
....
datos
Cohesin Procedimental
Cuando sus elementos de procesamiento estn relacionados y deben
ejecutarse en un orden especfico.
Cohesin Temporal
Un mdulo con cohesin temporal
es aquel cuyos elementos estn
Ejemplo:
envueltos
iniciar el da
en
actividades
que
Actividades
1. Apagar despertador
2. Tomar una ducha
3. Vestirse
4. Hacer la cama
5. Tomar desayuno
....
al
Cohesin Lgica
Un mdulo tiene cohesin lgica,
cuando existe alguna relacin
entre los elementos del mdulo,
contribuyendo al desarrollo de
actividades
de crdito
de
una
misma
la
....
categora
general,
donde
Cohesin Coincidental
Un
mdulo
cohesionado
coincidentemente
es
aquel
cuyos
Ejemplo:
1. Comprar un libro
2. Comer un trozo de torta
3. Ir al teatro
4. Lavar la ropa
5. Dormir
....