Sei sulla pagina 1di 8

UTN F. R.

Resistencia
Ing. en Sistemas
Diseo de Sistemas

Gua de Trabajos Prcticos 4: Principio de Cohesin Aplicado


Introduccin
La presente gua de trabajos prcticos introduce los conceptos relacionados con el principio de cohesin del
diseo estructurado, incluye ejercicios destinados a determinar el grado de cohesin de uno o ms mdulos
partiendo de su descripcin o pseudocdigo, tambin se solicita la derivacin de diagramas de estructuras a
partir de DFD, cuyos mdulos sean altamente cohesivos.

Objetivos de la gua
Lograr que el alumno:
Entienda cuales son las decisiones de diseo que influyen en la cohesin de un mdulo.
Diferencie el grado de cohesin a travs de los niveles planteados.

Modalidad de Trabajo
Grupal, de hasta 6 integrantes

Fundamentos tericos
La cohesin es la medida cualitativa de cuan estrechamente relacionados estn los elementos internos de un
mdulo. Otros trminos utilizados frecuentemente son fuerza modular, ligazn, y funcionalidad.
En la prctica un elemento de procesamiento simple aislado, puede estar funcionalmente relacionado en
diferentes grados a otros elementos. Como consecuencia, diferentes diseadores, con diferentes visiones o
interpretaciones de un mismo problema, pueden obtener diferentes estructuras modulares con diferentes
niveles de cohesin y acoplamiento. A esto se suma el inconveniente de que muchas veces es difcil evaluar el
grado de relacin funcional de un elemento respecto de otro.
La cohesin modular puede verse como el cemento que amalgama juntos a los elementos de procesamiento
dentro de un mismo mdulo.

Niveles de Cohesin

Cohesin Casual (la peor): ocurre cuando existe poca o ninguna relacin entre los elementos de un
mdulo.
Cohesin Lgica (sigue a la peor): Los elementos de un mdulo estn lgicamente asociados si puede
pensarse en ellos como pertenecientes a la misma clase lgica de funciones.
Cohesin Temporal (de moderada a pobre): significa que todos los elementos de procesamiento de una
coleccin ocurren en el mismo perodo de tiempo durante la ejecucin del sistema.
Cohesin de Procedimiento (moderada): Elementos de procesamiento relacionados proceduralmente son
elementos de una unidad procedural comn. Una unidad procedural comn puede ser un proceso de
iteracin o de decisin, o una secuencia lineal de pasos.
Cohesin de Comunicacin (moderada a buena): se da cuando todos los elementos operan sobre el mismo
conjunto de datos de entrada o de salida. Los diagramas de flujo de datos (DFD) son un medio objetivo
para determinar si los elementos en un mdulo estn asociados por comunicacin. La cohesin por
comunicacin es comn en aplicaciones comerciales. Ejemplos tpicos pueden ser un mdulo que
imprima o grabe un archivo de transacciones o un mdulo que reciba datos de diferentes fuentes, y los
transforme y ensamble en una lnea de impresin.
Cohesin Secuencial: los datos de salida (resultados) de cada elemento de procesamiento sirven como
datos de entrada al siguiente elemento de procesamiento. En trminos de un diagrama de flujo de datos
de un problema, la cohesin secuencial combina una cadena linear de sucesivas transformaciones de
datos.
Cohesin Funcional (la mejor): en un mdulo completamente funcional, cada elemento de procesamiento,
es parte integral de, y esencial para, la realizacin de una funcin simple.

Ing. Germn Gaona

1/8

Ing. Valeria Sandobal

IMPORTANTE: Desde el punto de vista de la medicin de la cohesin respecto del mdulo podramos definir
que: la cohesin de un mdulo es aproximada al nivel ms alto de cohesin que es aplicable a todos los
elementos de procesamiento dentro del mdulo.

Criterios para establecer el grado de cohesin


Una tcnica til para determinar si un mdulo est acotado funcionalmente es escribir una frase que describa
la funcin (propsito) del mdulo y luego examinar dicha frase.
Puede hacerse la siguiente prueba:
Si la frase resulta ser una sentencia compuesta, contiene una coma, o contiene ms de un verbo,
probablemente el mdulo realiza ms de una funcin; por tanto, probablemente tiene vinculacin
secuencial o de comunicacin.
Si la frase contiene palabras relativas al tiempo, tales como primero, a continuacin, entonces,
despus, cuando, al comienzo, etc., entonces probablemente el mdulo tiene una vinculacin
secuencial o temporal.
Si el predicado de la frase no contiene un objeto especfico sencillo a continuacin del verbo,
probablemente el mdulo est acotado lgicamente. Por ejemplo editar todos los datos tiene una
vinculacin lgica; editar sentencia fuente puede tener vinculacin funcional.
Palabras tales como inicializar, limpiar, etc., implican vinculacin temporal casual.
A continuacin se presenta otro mtodo basado en un cuadro que podra servir como gua para la
determinacin del nivel de cohesin de un mdulo.

2/8

UTN F. R. Resistencia
Ing. en Sistemas
Diseo de Sistemas

Ejercicio 1
Determine el nivel de cohesin de los mdulos que se enuncian a continuacin en base a las descripciones
textuales correspondientes.
Mdulo
AftIn1
AftIn2
GenRept

Descripcin Textual
Ingresa los tems de control, los suma, y verifica totales.
Ingresa tems de control, graba cinta de prueba, suma tems de
control, verifica totales.
Genera reportes: de ventas, de estado del proyecto, o de
transacciones de clientes.

SintCh

Chequea la exactitud de la sintaxis de una oracin.

OutTran

Imprime una transaccin y la copia a disco con igual formato.

UpCredOut

Actualiza el registro de crdito corriente y lo graba en disco.

StartIt

Abre archivos, obtiene el primer registro de transaccin y maestro,


e imprime la cabecera de pgina.

NewTran

Actualiza registro en el archivo y obtiene la siguiente transaccin

CircDisp

Redondeo_en_5
(numero)

Tratar_Suba_Dolar
(precio)

Generar_Lista_XML

JustificarDerecha
TratarDeudores
ActualizarPrecios
(IncFijo, IncPorc)

Ing. Germn Gaona

Cohesin

Produce el diagrama del circuito a partir de una matriz de


conexin.
Procedimiento que contiene una estructura condicional mltiple,
que de acuerdo al valor decimal del numero recibido,
Si es menor a 0,30, entonces devuelve el mismo nmero sin
decimal
Si es igual a 0,50, entonces devuelve el mismo nmero con
decimal 0,50
Si es mayor a 0,50, entonces devuelve el numero incrementado
en uno, sin decimal
Procedimiento que recibe el nuevo valor del dlar y actualiza la
lista de precios (en pesos) multiplicando el valor en dlares del
producto por el nuevo precio recibido. Adems actualiza el
almacn que contiene el precio del dlar con que se calcularon los
precios.
Procedimiento que, primero lee el almacn PRECIO_DEL_DOLAR,
en base a esto, actualiza el almacn LISTA_DE_PRECIOS y en base a
este almacn genera un documento XML con los precios
actualizados de cada artculo.
Dada una cadena de texto como entrada devuelve otra cadena de
texto con un relleno de espacios en blanco a la izquierda hasta
completar una cierta longitud dada tambin como entrada.
Recorre el almacn de deudores y obtiene la cantidad de deudores
y el monto de la deuda total
Procedimiento de actualizacin de precios que recibe un
incremento fijo y un porcentaje de actualizacin, para los artculos
de Categoria1 aplica el incremento fijo, mientras que para el resto
de los artculos utiliza el porcentaje de actualizacin

3/8

Ing. Valeria Sandobal

Ejercicio 2
Suponiendo que las siguientes frases describen mdulos, determine el grado de cohesin de cada uno.
Justifique su respuesta:
a. Se arman las lneas de impresin de los distintos informes que se necesita obtener.
__________________________________________________________________________________________
__________________________________________________________________________________________
__________________________________________________________________________________________
b. Primero se obtienen todos los registros de compras de un determinado proveedor, despus se toman los
pedidos no recibidos y se calcula el monto adeudado.
__________________________________________________________________________________________
__________________________________________________________________________________________
__________________________________________________________________________________________
c. En un proceso de liquidacin de sueldos, se toma la cantidad de das trabajados, se multiplica por pago
diario y se le retienen los adelantos. La salida es el sueldo neto.
__________________________________________________________________________________________
__________________________________________________________________________________________
__________________________________________________________________________________________
d. Se limpian las variables del sistema para que no queden datos del proceso que se ha realizado.
__________________________________________________________________________________________
__________________________________________________________________________________________
__________________________________________________________________________________________

Ejercicio 3:
Escenario
El programa que se presenta a continuacin corresponde a la implementacin de una estructura modular,
cuyo objetivo es obtener una estadstica impresa de ocurrencias de fallas en mquinas tragamonedas.
Para ello existen dos almacenes de datos: FALLAS, que contiene un registro por cada falla posible, con los
campos cod_f, nomb_f y costo_f y el almacn NOVFALLAS, que contiene un registro por cada falla que se
produce y entre los campos que lo componen el nico relevante para el proceso en cuestin es falla_n que
indica el cdigo de la falla producida. Ambos almacenes se encuentran ordenados por cdigo de falla.
Se propone procesar secuencialmente NOVFALLAS, con un corte de control por cdigo de falla.
INICIO
Total, testigo, gen, marca, totcosto, gencosto: enteros
HACER inicializar(total, gen, marca, totcosto, gencosto)
HACER apertura
LEER Novfallas AL FIN marca:=1
Testigo:=falla_n
HACER proceso(total,testigo,marca,gen,totcosto,gencosto,falla_n) MIENTRAS marca=0
HACER corte(testigo, total, gen, totcosto, gencosto,falla_n)
HACER imprimo(TOTAL GENERAL, gen, gencosto)
HACER final
FIN

4/8

UTN F. R. Resistencia
Ing. en Sistemas
Diseo de Sistemas

RUTINA inicializar(total, gen, marca, totcosto,


gencosto)
Total:=0
Marca:=0
Gen:=0
Totcosto:=0
Gencosto:=0
RUTINA apertura
ABRIR fallas
ABRIL novfallas
RUTINA proceso(total, testigo, marca, gen,
totcosto, gencosto,falla_n)
SI testigo = falla_n
HACER acumular(total)
LEER novfallas AL FIN marca:=1
CONTRARIAMENTE
HACER corte(testigo, total, gen, totcosto,
gencosto,falla_n)
FIN SI

RUTINA acumular(total)
Total:=total + 1
RUTINA corte(testigo, total, gen, totcosto,
gencosto,falla_n)
BUSCAR testigo EN fallas
HACER calcosto(totcosto, costo_f)
HACER imprimo(nomb_f, total, totcosto)
Gen:=gen+total
Gencosto:=gencosto+totcosto
Total:=0
Totcosto:=0
Testigo:=falla_n
RUTINA calcosto(totcosto, costo_f)
Totcosto:=totcosto+costo_f
RUTINA imprimo(nomb_f, total, totcosto)
IMRIMIR nomb_f + + total + + totcosto
RUTINA final
CERRAR fallas
CERRAR novfallas

Consigna
Evale el grado de cohesin que presenta cada uno de los mdulos especificados.

Ejercicio 4
Escenario
Dado un sistema existente en un colegio secundario que contiene los siguientes almacenes:
Especificacin de Almacenes
ALUMNOS
@Legajo
Nombre
Domicilio

MATERIAS
@CodMat
Descripcion

CURSOS
@CodCur
Descripcion

CALIFICACIONES
@CodMat
@CodCur
@Legajo
Trimestre_1
Trimestre_2
Trimestre_3

MATERIASXCURSOS ALUMNOSXCURSOS
@CodMat
@Legajo
@CodCur
@CodCur

Se desea agregar una funcionalidad que permita, a partir de un curso ingresado por el Director, calcular el
promedio (entre los tres trimestres) de cada materia de cada alumno, para luego obtener el promedio final
para cada alumno en todas las materias y emitir un informe impreso que incluya todos los alumnos del curso
ingresado con su promedio.
Diagrama de Flujo de Datos de Nivel 0

Director

Ing. Germn Gaona

curso

Emitir Promedio
por Alumno

5/8

informe

Promedio por
Alumno

Ing. Valeria Sandobal

Diagrama de Flujo de Datos explotado

Consigna
1. Realice agrupamientos de burbujas indicando para cada uno de ellos el grado de cohesin. Justifique.
2. Plantee un DE modular para el DFD propuesto, usando como gua los agrupamientos hechos.
3. Refine el DE utilizando el principio de acoplamiento y otras buenas prcticas vistas en clase.

6/8

UTN F. R. Resistencia
Ing. en Sistemas
Diseo de Sistemas

Ejercicio 5
Escenario
Debe obtenerse una planilla con el detalle de minutos trabajados por el personal de la empresa. Se dispone de
dos almacenes con las siguientes estructuras:
EMPLEADOS = {Empleado}
Empleado =
Nro_legajo +
Nombre +
MinJornada

NOVEDADES = {Novedad}
Novedad = Nro_legajo +
Fecha +
Hora_ingreso +
Hora_egreso +
1er_egreso +
1er_retorno +
2do_egreso +
2do_retorno +
3er_egreso +
3er_retorno

Ambos almacenes son de acceso secuencial y estn ordenados por el campo Nro_legajo. El almacn
EMPLEADOS contiene un registro por cada empleado y el almacn NOVEDADES, contiene un registro por cada
da trabajado por empleado.
Diagrama de Flujo de Datos propuesto
(ver DFD siguiente pgina)
Se propone realizar un apareo de ambos almacenes por Nro_legajo y calcular por cada empleado:
minutos diarios trabajados
minutos diarios excedentes / faltantes (minutos diarios trabajados MinJornada)
duracin de cada parte de salida
total de minutos diarios salidos
total de minutos realmente trabajados
total de minutos excedentes / faltantes
La planilla de salida debe presentar el siguiente formato:
Primera lnea: Nro de legajo, nombre, minutos de la jornada.
Detalle: Por cada novedad emitir: Fecha, Hora ingreso, Hora egreso, 1er salida duracin, 2da salida
duracin, 3er salida duracin, Total salidas, Minutos diarios realmente trabajados, Minutos excedentes
/ faltantes
Lnea de totales:
o Total de minutos trabajados en el mes
o Total de minutos excedentes / faltantes
Consigna:
1. Realice agrupamientos de burbujas indicando para cada uno de ellos el grado de cohesin. Justifique.
2. Plantee un DE modular para el DFD propuesto, usando como gua los agrupamientos hechos.
3. Refine el DE utilizando el principio de acoplamiento y otras buenas prcticas vistas en clase.

Ing. Germn Gaona

7/8

Ing. Valeria Sandobal

Bibliografa

Page-Jones, M. (1988). The Practical Guide to Structured Systems Design (2nd Ed.). Prentice Hall.
Yourdon, E.; Constantine, L. (1979). Structured Design: Fundamentals of a Discipline of Computer
Program and Systems Design. Yourdon Press.
McConnell, S. (2004). Code complete: A practical handbook of software construction (2nd ed.).
Redmond, Wash.: Microsoft press.
Torossi, Gustavo. Apunte de Diseo Estructurado.

8/8

Potrebbero piacerti anche