Está en la página 1de 45

SISTEMAS DE

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. DISEO ORIENTADO A OBJETOS.

Diagramas UML
1. DISEO ESTRUCTURADO
DEFINICION Y PRINCIPIOS DE DISEO

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.
DEFINICION Y PRINCIPIOS DE DISEO

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).

Entonces, su punto de partida es la Especificacin Estructurada.

Puede decirse que consiste en el diseo de programas como


estructuras de funciones nicas y de relativa independencia.
DISEO

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.
DISEO MODULAR EFECTIVO

Para poder evaluar la efectividad de una representacin de diseo, es


preciso establecer lo que se denomina en Ingeniera de Software, los
CRITERIOS PARA UN BUEN DISEO:

El Diseo debe exhibir una organizacin jerrquica con mecanismos de


control que no atenten contra la independencia relativa de cada
componente de la jerarqua.
DISEO MODULAR EFECTIVO

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.
DISEO MODULAR EFECTIVO

Conceptos fundamentales que se han validado a lo largo del tiempo:

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 que pueden ser desarrollados con relativa


independencia.

Disminucin de la posibilidad de errores al reducir la


complejidad.
MODULARIDAD
Beneficios de la Modularidad

Programas que pueden evaluarse por partes, por lo cual todo test
se hace ms fcil.

Programas ms fciles de alterar ya que son menores las


lneas de cdigo a considerar para incorporar los cambios.

Mdulos de funcin nica que pueden ser reutilizados.


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 Costo por Integracin

Costo por Mdulo

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
procedimientos, logrndose una jerarqua de procedimientos al descomponer
sucesivamente una sentencia global hasta alcanzar sentencias especficas a
nivel de un lenguaje de programacin ".

En Ingeniera del Software: Un Enfoque Prctico de Roger S. Pressman, se


puede leer: en cada etapa del refinamiento, se descomponen una o varias de las
instrucciones del programa dado en instrucciones cada vez ms detalladas. Esta
descomposicin o refinamiento sucesivo termina cuando todas las intrucciones
estn expresadas en trminos de cualquier lenguaje bsico de computador o de
programacin.
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
Abstraccin Gradual

Mdulo A

Modularidad Factorizacin

A1 A2
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

Principios de un
Cohesin Buen Diseo
Tipos de Acoplamiento

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
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:
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.

B
Acoplamiento de Datos
Dos mdulos estn acoplados por datos si
Obtener
ellos se comunican por parmetros. Datos
Cliente
Siendo cada parmetro una unidad
elemental de datos
Rut_cliente
El acoplamiento por datos corresponde a
la comunicacin de datos necesaria entre Leer Rut
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.
Acoplamiento de Marca (Stamp)

Dos mdulos aparecen "acoplados Calcular


Deuda
de marca si ellos se refieren a la Cliente
misma estructura datos local.
Cliente
Por estructura de datos se debe
entender un grupo compuesto de
datos 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


control cuando uno de ellos pasa al Datos
Cliente
otro mdulo indicadores de control
(flag, switch).
Tipo_dato Cliente
Provoca dependencia de ejecucin
entre un mdulo y otro. Leer Cliente
No es muy recomendable. Tratar de
utilizarlo moderadamente.
Acoplamiento Comn o Global

Dos mdulos presentan acoplamiento Actualizar Obtener


Stock Nombre
comn, si ellos se refieren a la misma
Video Video
rea global de datos (archivo o rea
de memoria).

Programas con muchos datos globales son


difciles de entender por los programadores de
mantencin, porque no es fcil saber cules son video
los datos usados por un cierto mdulo.

Leer Registro
Video
Acoplamiento Externo
Cuando los mdulos estn atados
Actualizar Obtener
a un entorno externo al software
DW Nmina
se dan niveles relativamente altos
de acoplamiento. 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
DW
la estructura.
Acoplamiento de Contenido
Este es un tipo de Acoplamiento
A B
indeseable.

Dos mdulos presentan acoplamiento .. ..


de contenido (o patolgico) si uno Srch: Move..
.. ..
hace referencia al interior del otro. . Jump to Srch
Esto ocurre si por ejemplo, en un . .

mdulo se desva la secuencia de
instrucciones al interior de otro o si un
mdulo altera un comando de otro.

Tal acoplamiento rompe el concepto de mdulos configurados bajo el criterio de


la caja negra. Forzando a un mdulo conocer explcitamente los contenidos y la
implementacin de otro.
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.

Cmo Analizar el Tipo de Acoplamiento?


Imaginar el Mdulo como una Biblioteca

Cada Mdulo es codificado por un programador diferente


Imaginar el Mdulo como una Biblioteca.

Cmo el mdulo podra ser ms fcilmente entendido.

Cmo el mdulo podra ser ms utilizado por otros sistemas o invocado

por otros mdulos del mismo sistema


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.


Tipos de Cohesin

Mayor Cohesin

FUNCIONAL Mdulo como


SECUENCIAL Caja Negra

COMUNICACIONAL

PROCEDURAL
TEMPORAL Mdulo
Transparente
LGICA
COINCIDENTAL
Grado de
Cohesin

STEVEN, MYERS, CONSTANTINE y YOURDON (1974)


establecieron "una escala 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
Ejemplo: Calcular Salario
elementos estn envueltos en
1. Obtener sueldo base
actividades tales que los
2. Verificar nmero de cargas
datos de salida de una
3. Revisar das con permiso
actividad en general sirven
4. Revisar das con licencia
como datos de entrada para la
5. Calcular horas de trabajo
prxima actividad. 6. Descontar horas de atraso
7. Agregar horas extras
....
Cohesin Comunicacional

Un mdulo presenta cohesin


comunicacional cuando sus
Ejemplo: Obtener datos
elementos contribuyen a
Producto
actividades que usan la misma
1. Obtener nombre
entrada o la misma salida. No
2. Obtener stock
importa el orden secuencial
3. Obtener ubicacin
4. Obtener precio
....
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: Actividades al
envueltos en actividades que iniciar el da
estn relacionadas en funcin del
1. Apagar despertador
momento en que se realizan.
2. Tomar una ducha
3. Vestirse
4. Hacer la cama
5. Tomar desayuno
....
Cohesin Lgica

Un mdulo tiene cohesin lgica,


cuando existe alguna relacin
Ejemplo: Registrar Pago
entre los elementos del mdulo,
contribuyendo al desarrollo de 1. Registrar pago con tarjeta
actividades de una misma de crdito
categora general, donde la 2. Registrar pago con cheque
actividad o las actividades a ser 3. Registrar pago con efectivo
ejecutadas se seleccionan desde ....
fuera del mdulo.
Cohesin Coincidental

Un mdulo coincidentemente
cohesionado es aquel cuyos
Ejemplo:
elementos desarrollan actividades
sin relacin significativa entre s. 1. Comprar un libro
2. Comer un trozo de torta
3. Ir al teatro
4. Lavar la ropa
5. Dormir
....

También podría gustarte