Vous êtes sur la page 1sur 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
complejidad.

de la posibilidad de errores al reducir la

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

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.

Acoplamiento de Datos
Dos mdulos estn acoplados por datos si

Obtener
Datos
Cliente

ellos se comunican por parmetros.


Siendo cada parmetro

una unidad

elemental de datos

Rut_cliente

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.

Leer Rut

Acoplamiento de Marca (Stamp)


Calcular
Deuda
Cliente

Dos mdulos aparecen "acoplados


de marca si ellos se refieren a la
misma estructura datos local.
Por estructura de datos se debe

Cliente

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
Datos
Cliente

control cuando uno de ellos pasa al


otro mdulo indicadores de control
(flag, switch).

Tipo_dato

Cliente

Provoca dependencia de ejecucin


entre un mdulo y otro.
No es muy recomendable. Tratar de
utilizarlo moderadamente.

Leer Cliente

Acoplamiento Comn o Global


Dos mdulos presentan acoplamiento
comn, si ellos se refieren a la misma
rea global de datos (archivo o rea

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

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

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
.

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
Caja Negra

SECUENCIAL
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
elementos estn envueltos en
actividades

tales

que

los

datos

salida

de

una

de

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

Cohesin Comunicacional
Un mdulo presenta cohesin
comunicacional
elementos

cuando

sus

contribuyen

actividades que usan la misma


entrada o la misma salida. No
importa el orden secuencial

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

estn relacionadas en funcin del


momento en que se realizan.

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,

Ejemplo: Registrar Pago

contribuyendo al desarrollo de

1. Registrar pago con tarjeta

actividades

de crdito

de

una

misma
la

2. Registrar pago con cheque

actividad o las actividades a ser

3. Registrar pago con efectivo

ejecutadas se seleccionan desde

....

categora

general,

fuera del mdulo.

donde

Cohesin Coincidental
Un

mdulo

cohesionado

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

Vous aimerez peut-être aussi