Está en la página 1de 23

LecturaU2

LecturaU2

Sitio:
UniversidadPrivadaTelesup
Curso:
AnalisisyDiseodeSistemasdeInformacionSI/06/151/TOB
Libro:
LecturaU2
Imprimidopor: SAENZLAZOCARLOSENRIQUE
Fecha:
martes,14deabrilde2015,06:55

Tabladecontenidos
Introduccin
Tema1
Tema2
Tema3
Tema4

Introduccin
INTRODUCCIN
a)Presentacinycontextualizacin
En esta unidad hablaremos sobre la introduccin y la Presentacin de las herramientas de diseo estructurado. Aquellos que estn
obligadosaguardarunaformaconvencional.Entrestostenemosalosadministrativos,loscualessonimportantesporquesirvenpara
transmitirlainformacinentreeltiempoenquelosrequisitosdelusuariosondefinidosydocumentados.AquVeremoslastcnicasde
cohesinyacoplamientodemdulos.
b)Competencia
Reconocelosconceptosyelmanejodelasherramientasdediseodentrodelanlisisdediseo.
c)Capacidades
1.Analizalosconceptosfundamentalessobrelasherramientasdediseoestructurados.
2.Identificayexplicalasprincipalestcnicasdepresentacindelasherramientasdediseoestructurado.
3.Conoceydesarrollalastcnicasdeacoplamientodemdulos.
4.Desarrollalastcnicasdecohesinqueseplanteandeformaclara.
d)Actitudes
Aplicalosconceptosbsicossobreeldiseoestructurado.
Muestraintersantelapresentacindelasherramientasqueserelacionanconeldiseoestructurado.
Motivaaresolverlasdiversastcnicasdeacoplamientodemdulosytcnicasdecohesin.
e)PresentacindeIdeasbsicasycontenidoesencialesdelaUnidad:
LaUnidaddeAprendizaje02:UtilizacindelasHerramientasdeDiseo,comprendeeldesarrollodelossiguientestemas:
TEMA01:Introduccindelasherramientasdediseoestructurado.
TEMA02:Presentacindelasherramientasdediseoestructurado.
TEMA03:Tcnicasdeacoplamientodemdulos.
TEMA04:Tcnicasdecohesin.

Tema1

Tema 01: Introduccin de las Herramientas de Diseo Estructurado


INTRODUCCIN
Eldesarrollodesistemaspequeos,enlacualparticipanunaodospersonas,esunatareasimple.
Loscambiosnaturalesquesurgenduranteelciclodedesarrollodel sistemanoproducenunagran
propagacin de cambios en el sistema. Sin embargo, si el sistema es grande y en su desarrollo
participanvariosgruposdepersonasdesarrollandounatareaespecfica,hayquetenerencuentano
sololacomunicacinconelusuariosinotambinlainterrelacinentrelosdistintosgruposdetrabajo.

Algunosdelosproblemascomunesquelosdesarrolladoresencuentranenlaconstruccindesoftwaredeciertacomplejidadsonlos
siguientes:

Eldominiodeaplicacinnoesconocido.
Lacomunicacinconelusuario.
Lacomunicacinconelgrupodedesarrollo.
Lacarenciadebuenadocumentacin.

Por esta razn, es necesario seguir una serie de pasos sistemticos para que los diferentes grupos de desarrollo posean una
buena comunicacin. Estos pasos son brindados por los modelos de ciclo de vida, los cuales estn constituidos por diferentes
etapas:
Especificacin de requerimientos: Se realizan entrevistas con el usuario identificando los requerimientos y necesidades del
usuario.
Anlisis:Modelalosrequerimientosdelusuario.
Diseo:Semodelalasolucindelsistema,teniendoencuentaelambientedeimplementacinautilizar,porejemplo,sielsistema
escentralizadoodistribuido,labasededatosautilizar,lenguajedeprogramacin,performancedeseada,etc.
Implementacin:Dadoellenguajedeprogramacinelegidoseimplementaelsistema.
Testeo: En esta etapa se verifica y valida el sistema teniendo en cuenta algunos criterios de terminados por el grupo
correspondiente.
Mantenimiento:Eslaetapamsdifcildedesarrollodelsistema,actualizaymodificaelsistemasisurgennuevosrequerimientos.

Existenvariosmtodosparadescribirelciclodevidadeunsistema,unodeelloseseldesarrolloestructuradoencascada(Fig.1).

Fig.1:ModelodeCiclodeVidaenCascada
Enunprincipiofuedegranutilidadperoelproblemaesqueparapasardeunaetapaalaotrahabaqueterminarlaprimera,
produciendo un gran problema si algn cambio era requerido. La etapa de Mantenimiento consuma el 80% del costo de
produccin.

Debidoalosnuevosrequerimientoseneldesarrollodesoftware,surgieronmuchosotrosmodelosquetratabandesolucionarlos
problemas existentes, que se basaron en el modelo en Cascada. Por ejemplo, el Modelo en Espiral, en el cual el sistema se
desarrollaincrementalmente(Fig.2).
Losmodelospropuestosposeenbsicamentelasmismasetapas,perovaranen:

Losmtodosyherramientasutilizadasencadaactividad
Loscontrolesrequeridos,paralelismoenlasactividades
Lassalidasdecadaetapa

No es aconsejable elegir un modelo y seguirlo al detalle sino que se debe adaptar a las caractersticas del proyecto que est
siendodesarrollado.Losmtodosdedesarrollodesoftwarepuedendividirseendosgrupos:funcin/datoyorientadosaobjetos.

Fig.2:ModelodeCiclodeVidaenEspiral

OrientadoaFuncin/Dato:Aquellosmtodosenloscualeslasfuncionesy/olosdatossontratadoscomo
entidades independientes. Estos sistemas resultan difciles de mantener. El mayor problema es que las
funcionesgeneralmentedependendelaestructuradelosdatos.Amenudodiferentestiposdedatostienen
distintos formatos y se necesita verificar el tipo del dato (con sentencias IfThen o CASE), produciendo
programasdifcilesdeleerymodificar.Sisedeseahaceralgunamodificacinenlaestructuradelosdatos
sedebemodificarentodosloslugaresdondeesutilizado.

Otroproblemaesqueunapersonanopiensanaturalmenteentrminosdeunaestructura.Laespecificacinderequerimientossehaceen
lenguajecomn,seespecificalafuncionalidadquedebetenerelsistemaynoencmosedebenestructurarlosdatos.
OrientadoaObjetos:Sonaquellosmtodosenloscualesdatosyfuncionesestnaltamenterelacionados.
Elnfasisestcentradoenlaabstraccindedatos.Sepiensaenformanatural,losobjetossonmapeados
a entidades del mundo real. Los programas son fcilmente mantenibles y extensibles por medio de la
construccindesubclases.

Variosmtodosdedesarrollodesoftwarehansidopropuestosparacadaunodeestegrupo,algunosdeloscualessondescriptosenla
Fig.3.
Donde:
SADT:StructuredAnalysisandDesignTechnique[Ross85]

RDD:RequirementDrivenDesign[Alford85]
SA/SD:StructuredAnalysisandStructuredDesign[Yourdon&Constantine79]
OOSE:ObjectOrientedSoftwareEngineering[Jacobson94]OOA:ObjectOrientedAnalysis[Goldberg]OMT:Object
ModelingTechnique[Rumbaugh93]
UP:UnifiedProcess[Booch&Jacobson&Rumbaugh98]
Catalysis:Catlisis[DSouza98]

Fig.3:MtodosdeDesarrollodeSoftware
En el corriente curso: Metodologas de Desarrollo de Software I nos centraremos en los mtodos de
desarrollodesoftwareorientadosafuncin/datosyenlasherramientaspropuestasparaelmodeladode
los diferentes aspectos de un sistema: datos, control y funciones. Adicionalmente, se presentaran
mtodosformales,especficamenteZ,ymtodosorientadosaobjetos.

Tema2
Tema 02: Presentacin de las Herramientas de Diseo Estructurado

PRESENTACINDELASHERRAMIENTASDEDISEOESTRUCTURADO

ElAnlisisserefierealextremoinicialdeunproyectodedesarrollodesistemas,duranteeltiempoen
quelosrequisitosdelusuariosondefinidosydocumentados.
ElAnlisisestructuradointroduceelusodelasherramientasdedocumentacingrficasparaproducirun
tipodiferentedeespecificacinfuncional:laespecificacinestructurada.

Elanlisisestructurado,comootrosmtodos,permiteconstruirmodelosdesistemasapartirdelanlisisdesusprocesosy/o
actividades que se ejecutan asociados al sistema. Permite al equipo encargado del estudio del desarrollo o la organizacin
conocer de forma lgica un sistema o proceso. El objetivo que persigue el anlisis estructurado es organizar las tareas
asociadasconladeterminacinderequerimientosparaobtenerlacomprensincompletayexactadeunasituacindada.

Conceptosqueserelacionanconelanlisisestructurado

Smbolosgrficosiconosyconvencionesparaidentificarydescribirloscomponentesde
unsistemajuntoconlasrelacionesentreestoscomponentes.

Diccionariodedatosdescripcionesdetodoslosdatosutilizadosenelsistema.
Descripciones de procesos y procedimientos declaraciones formales que emplean
tcnicasylenguajesquepermitenalosanalistasdescribiractividadesimportantesque
formanpartedelsistema.

Reglasestndaresparadescribirydocumentarelsistemaenformacorrectaycompleta.

Fasedediseo:Enestafase,eldiseoestructuradoproduceelmodelodediseoconlossiguienteselementos:
Diseodedatos.Transformaelmodelodedominiodelainformacincreadoduranteelanlisis,en
las estructuras de datos necesarias para implementar el software. Los objetos de datos y las
relaciones definidas en el diagrama entidadrelacin y el contenido detallado de datos del
diccionariodedatosconstituyenlabaseparaeldiseodedatos.
Diseo arquitectnico. Define la relacin entre los principales elementos estructurales del
programa.Seobtieneapartirdelmodelodeanlisisydelainteraccindesubsistemasdefinidos
dentrodelmodelodeanlisis.
Diseodeinterfaz.Describecomosecomunicaelsoftwareconsigomismo,conlossistemasqueoperanconlycon
losoperadoresqueloemplean.Losdiagramasdeflujodedatosycontrolproporcionanlainformacinnecesariaparael
diseodelainterfaz.
Diseo procedimental. Transforma elementos estructurales de la arquitectura del programa en una descripcin
procedimentaldeloscomponentesdelsoftware.Seobtieneapartirdelaespecificacindelproceso,laespecificacin
delcontrolyeldiagramadetransicindeestados.

Componentes:
Smbolosgrficos:Identificaydescribeloscomponentesdeunsistemaylasrelacionesentreestos.
Diccionarios de datos: Describe todos los datos utilizados en el sistema pueden ser manual o
automatizado.
Descripcionesdeprocesosyprocedimientos:descripcintcnicaparadescribirlasactividadesque
serealizanlosprocesos.
Reglas:Pasosaseguirparadescribirydocumentarelvenformacorrectaycompleta.

Herramientas:

Diagramadeflujodedatos:Eslabaseparaotroscomponentesydescribecomonaveganlosdatosentreprocesosy
elementosrelacionados.DiccionariodeDatos:Contienelascaractersticasdeloscamposy/odescripcindetalladade
los diferentes objetos que componen el sistema Diagrama de Estructuras de Datos: describe la relacin entre las
entidadesylosobjetos(conjuntadeinformacinquecontienenlasentidades)

CASOPRCTICO
AplicarambosenfoquesdeanlisisydiseodesistemasparatratardeoptimizarelprocesodegenerarCopiasCertificadasenelCircuitoJudicialPenalde
Tucupita,EstadoDeltaAmacuro.
El caso en estudio consiste en elaborar una propuesta para optimizar especficamente el proceso de emisin de Copias
Certificadas solicitadas a diario por la comunidad ante este despacho jurdico, cabe mencionar que en la actualidad esta
actividad se efecta de manera exclusivamente manual, utilizando herramientas bastante obsoletas, como las mquinas de
escribir y basndose en informaciones contenidas en los registros de libros de actas que se encuentran archivados en
conjuntoconotroelevadonmerodelibrosquerepresentantodaslascompetenciasdelentejudicial.
Esteprocedimientoambiguopordems,generaprdidasdetiempoenrespuestaalpblicoybsquedaytratamientodela
informacinporpartedelosfuncionariosquealllaboran,inclusivefatigaaltenerquetranscribirgrandesvolmenesdedatos
deacuerdoalosolicitadoymsanexcesivospasosyprocedimientosparacompletarlasactividades.

Segnelmodeloestructurado
El Anlisis Estructurado, fue seleccionado como tcnica de investigacin de requerimientos, ya que permite al analista
conocerelsistemaoprocesoenunaformalgicaymanejable,almismotiempoqueproporcionalabaseparaasegurarque
no se omite ningn detalle. Este es un mtodo para el anlisis de sistemas manuales o automatizados, que conduce al
desarrollodeespecificacionesparasistemasnuevosoparaefectuarmodificacionesalosyaexistentes.

Aunadoaelloyporserconsideradoscomounaherramientacapazdedescribiryanalizarelmovimientodelosdatosatravs
de un sistema, la representacin grfica de los procesos del sistema estar a cargo de los Diagramas de Flujos de Datos
(DFD).

DISEODELSISTEMA
ElusodelosDiagramasdeFlujosdeDatos(DFDs),esunaherramientaquepermitemostrargrficamenteydemanerageneral,elfuncionamientodel
sistemaylosprocesosnecesariosparasudesarrollo.LosDFDssepuedendibujarconslocuatronotacionessencillas,enestecaso,lanotacinutilizada
estbasadaenelenfoquedeGaneySarson.

Origen/destinodedatos:Representanentidadesexternasalsistemaquesecomunicanconlyqueestn
fueradesucontrol.LasrelacionesexistentesentrelasentidadesnoserepresentanenelDFD,yaque
nosonpartedelsistemabajoestudio.
Para este diseo forman parte de las entidades los Justiciables, la cual incluye a todas aquellas
personas que tienen relacin directa con el proceso. Las entidades Secretaria, Juez y Asistente,
quienesconformanalrganojurdicoysonlosgarantesdellevaracaboelprocesojudicial.

Procesos: Muestran la parte del sistema que transforma las entradas de datos en salida en tal sentido, el diagrama (DFD
Propuesto)muestracinco(5)procesosconsideradosvitalesparaelfuncionamientoyoperatividaddelaaplicacin:
Solicitarcopiascertificadasenelcualsesupervisaquelassolicitudesaprocesarestnconformealosrequisitosestablecidos
porelCdigodeProcedimientoCivil,oalgunaotraLeyquecondicionelapuestaenmarchadestas.
Verificarexistenciadeactasenelsistemaenlseconstataqueelactaquetienerelacinconlacopiacertificadasolicitada
estonoenlosarchivosdelcircuitoydeesemodosetengaaccesodirectoal.

Generarcopiascertificadasencargadodeprocesarlosreportesgeneradosporelsistema,enestecasolaemisindirectade
lasCopiasCertificadassolicitadas.
Registroautomticodelibrosenlsealmacenaunaseriededatosprovenientedelprocesamientodelassolicitudes.

Firmarysellaractas:ProcesomanualqueselimitaaautenticarlasCopiasCertificadaspreviasuentregaalsolicitante
Flujodedatos:Elflujodescribeelmovimientodepaquetesdedatosqueviajandesdeunaparte
delsistemaaotra.Estnrepresentadosporunaflechaparamostrarsuorigenysudestino.
Almacn: Representa una coleccin de paquetes de datos que permanecen en estado de
reposo.Noestreferidoexclusivamenteamediosdealmacenamientoelectrnicocomobases
de datos en discos duros, sino tambin a archiveros metlicos o cualquier otro medio que
permitaguardardatosencarpetasuhojasdepapel.

Tema3
Tema 03: Tcnicas de Acoplamiento de Mdulos
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
sontotalmenteindependientessiambospuedenfuncionarcompletamentesinlapresenciadelotro.
Esto implica que no existen interconexiones entre los mdulos, y que se tiene un valor cero en la
escalade"dependencia".
Engeneralveremosqueamayornmerodeinterconexionesentredosmdulos,setieneunamenor
independencia.

Elconceptodeindependenciafuncionalesunaderivacindirectadeldemodularidadydelosconceptosdeabstraccinyocultamientode
lainformacin.
Lacuestinaques:cuantodebeconocerseacercadeunmduloparapodercomprenderotromdulo?
Cuanto ms debamos conocer acerca del mdulo B para poder comprender el mdulo A, menos
independientessernAdeB.
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.
Estudiaremosenprincipioelprimerodeellos.Mdulosaltamente"acoplados"estarnunidosporfuertes
interconexiones,mdulosdbilmenteacopladostendrnpocasydbilesinterconexiones,entantoquelos
mdulos"desacoplados"notendrninterconexionesentreellosysernindependientes.

Elacoplamientoesunconceptoabstractoquenosindicaelgradodeinterdependenciaentremdulos.
En la prctica podemos materializarlo como la probabilidad de que en la codificacin, depuracin, o modificacin de un determinado
mdulo,elprogramadornecesitetomarconocimientoacercadepartesdeotromdulo.
Sidosmdulosestnfuertementeacoplados,existeunaaltaprobabilidaddequeelprogramadornecesiteconocerunodeellos
enordendeintentarrealizarmodificacionesalotro.Claramente,elcostototaldelsistemaseverfuertementeinfluenciadoporel
gradodeacoplamientoentrelosmdulos.
1.FACTORESQUEINFLUENCIANELACOPLAMIENTO
Loscuatrofactoresprincipalesqueinfluyenenelacoplamientoentremdulosson:

Tipo de conexin entre mdulos: los sistemas normalmente conectados, tienen menor acoplamiento que aquellos que
tienenconexionespatolgicas.

Complejidaddelainterface:Estoesaproximadamenteigualalnmerodetemsdiferentespasados(nocantidaddedatos).
Mstems,mayoracoplamiento.

Tipo de flujo de informacin en la conexin: los sistemas con acoplamiento de datos tienen menor acoplamiento que los
sistemasconacoplamientodecontrol,yestosasuvezmenosquelosquetienenacoplamientohbrido.

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 ver menor
acoplamientoquecuandoelligadoserealizaentiempodelinkageedicin,elcualtienemenosacoplamientoqueelquese
realizarealizaentiempodecompilacin,todoslosqueasuveztienemenosacoplamientoquecuandoelligadoserealiza
entiempodecodificacin.

1.1.Tiposdeconexionesentremdulos
Unaconexinenunprograma,esunareferenciadeunelemento,pornombre,direccin,oidentificadordeotroelemento.
Unaconexinintermodularocurrecuandoelelementoreferenciadoestenunmdulodiferentealdelelementoreferenciante.
Elelementoreferenciadodefineunainterface,unlmitedelmdulo,atravsdelcualfluyendatosycontrol.Lainterfacepuede
considerarse como residente en el elemento referenciado. Puede pensarse como un enchufe (socket) donde la conexin del
elementoreferencianteseinserta.

Toda interface en un mdulo representa cosas que deben ser conocidas, comprendidas, y apropiadamente conectadas por los
otrosmdulosdelsistema.
Se busca minimizar la complejidad del sistema/mdulo, en parte, minimizando el nmero y complejidad de las interfaces por
mdulo.
Todo mdulo adems debe tener al menos una interface para ser definido y vinculado al resto del sistema. Pero, es una
interfacedeidentidadsimplesuficienteparaimplementarsistemasquefuncionenadecuadamente?.Lacuestinaques:Aque
propsitosirvenlasinterfaces?

Soloflujosdecontrolydatospuedenpasarseentremdulosenunsistemadeprogramacin.Una
interfacepuedecumplirlassiguientescuatronicasfunciones:
Transmitirdatosaunmdulocomoparmetrosdeentrada.
Recibirdatosdesdeunmdulocomoresultadosdesalida.
Serunnombreporelcualserrecibeelcontrol.
Serunnombreporelcualsertransmiteelcontrol.

Unmdulopuedeseridetificadoyactivadopormediodeunainterfazdeidentidadsimple.Tambinpodemospasardatosaun
mdulosinagregarotrasinterfaces,haciendoalainterfazdeentradacapazdeaceptardatoscomocontrol.Estorequierequelos
elementosdedatosseanpasadosdinmicamentecomoargumentos(parmetros)comopartedelasecuenciadeactivacin,que
daelcontrolaunmdulocualquierreferenciaestticaadatospuedeintroducirnuevasinterfaces.
Senecesitatambinquelainterfacedeidentidaddeunmdulosirvaparatransferirelretornodel
controlalmdulollamador.Estopuederealizarsehaciendoquelatransferenciadecontroldesde
el llamador sea una transferencia condicional. Debe implementarse adems un mecanismo para
transmitirdatosderetornodesdeelmdulollamadohaciaelllamador.Puedeasociarseunvalora
una activacin particular del modulo llamado, la cual pueda ser usada contextualmente en el
llamador. Tal es el caso de las funciones lgicas. Alternativamente pueden transmitirse
parmetrosparadefinirubicacionesdondeelmdulollamadoretornavaloresalllamador.

Sitodaslasconexionesdeunsistemaserestringenasercompletamenteparametrizadas(conrespectoasusentradasysalidas),
y la transferencia condicional de control a cada mdulo se realiza a travs de una identidad simple y nica, diremos que el
sistemasestmnimamenteconectado.
Diremosqueunsistemaestnormalmenteconectadocuandocumpleconlascondicionesdemnimamenteconectado,excepto
poralgunadelassiguientesconsideraciones:
Existemsdeunpuntodeentradaparaunmismomdulo
Elmduloactivadorollamadorpuedeespecificarcomopartedelprocesodeactivacinunpuntoderetornoquenoseala
prximasentenciaenelordendeejecucin.
El control es transferido a un punto de entrada de un mdulo por algn mecanismo distinto a una llamada explcita (ej.
performthrudelCOBOL).

Elusodemltiplespuntosdeentradagarantizaqueexistirnmsqueelnmeromnimodeinterconexionesparaelsistema.Por
otrapartesicadapuntodeentradadeterminafuncionesconmnimaconexinaotrosmdulos,elcomportamientodelsistema
sersimilaraunomnimamenteinterconectado.

Decualquiermanera,lapresenciademltiplespuntosdeentradaaunmismomdulo,puedeserunindicativodequeelmdulo
est llevando a cabo ms de una funcin especfica. Adems, es una excelente oportunidad que el programador superpondr
parcialmente el cdigo de las funciones comprendidas dentro del mismo mdulo, quedando dichas funciones acopladas por
contenido.

Demanerasimilar,lospuntosderetornoalternativosonfrecuentementetilesdentrodelespritudelossistemasnormalmente
conectados.Estosedacuandounmdulocontinuarsuejecucinenunpuntoquedependedelvalorresultantedeunadecisin
realizadaporunmdulosubordinadoinvocadopreviamente.Enuncasodemnimaconexin,elmdulosubordinadoretornarel
valorcomounparmetro,elcualdebersertesteadonuevamenteenelmdulosuperior.Sinembargo,elmdulosuperiorpuede
indicar por algn medio directamente el punto donde debe continuarse la ejecucin del programa, (un valor relativo + o
direccionesapartirdelainstruccinllamadora,ounparmetroconunadireccinexplcita).
Si un sistema no est mnima o normalmente conectados, entonces algunos de sus mdulos presentarn conexiones patolgicas. Esto
significaquealmenosunmdulotendrreferenciasexplcitasaidentificadoresdefinidosdentrodeloslmitesdeotromdulo.
1.2.Complejidaddelainterface
Lasegundadimensindelacoplamientoenlacomplejidad.Cuantomscomplejaesunaconexin,
mayor acoplamiento se tiene. Un mdulo con una interface de 100 parmetros generar mayor
acoplamientoqueunquesolonecesitetresparmetros.
Elsignificadode"complejidad"eseldecomplejidadentrminoshumanos,tallovistoanteriormente.
1.3.FlujodeInformacin
Otroaspectoimportantedelacoplamientotienequeverconeltipodeinformacinquesetransmite
entreelmdulosuperiorysubordinado.Distinguiremostrestiposdeflujodeinformacin:
Datos
Control
Hbrido

Los datos son informacin sobre la cual una pieza de programa opera, manipula, o modifica. La informacin de control (an
cuandoestrepresentadaporvariablesdedato)esaquellaquegobiernacomoserealizarnlasoperacionesomanipulaciones
sobrelosdatos.Diremosqueunaconexinpresentaacoplamientopordatossilasalidadedatosdelmdulosuperioresusada
comoentradadedatosdelsubordinado.Estetipodeacoplamientotambinesconocidocomodeentradasalida.
Diremos que una conexin presenta acoplamiento de control si el mdulo superior comunica al subordinado informacin que
controlar la ejecucin del mismo. Esta informacin puede pasarse como datos utilizados como seales o "banderas" (flags) o
bien como direcciones de memoria para instrucciones de salto condicional (branchadress). Estos son elementos de control
"disfrazados"comodatos.Elacoplamientodedatosesmnimo,yningnsistemapuedefuncionarsinl.

La comunicacin de datos es necesaria para el funcionamiento del sistema, sin embargo, la comunicacin de control es una
caractersticanodeseableyprescindible,quesinembargoaparecemuyfrecuentementeenlosprogramas.
Sepuedeminimizarelacoplamientosisolosetransmitendatosatravsdelasinterfacesdelsistema.Elacoplamientodecontrol
abarca todas las formas de conexin que comuniquen elementos de control. Esto no solo involucra transferencia de control
(direcciones o banderas), si no que puede involucrar el pasaje de datos que cambia, regula, o sincroniza la ejecucin de otro
mdulo.

Esta forma de acoplamiento de control indirecto o secundario se conoce como coordinacin. La


coordinacininvolucraaunmduloenelcontextoproceduraldeotro.Estopuedecomprendersecon
elsiguienteejemplo:supongamosqueelmduloAllamaalmduloBsuministrndoleelementosde
datos discretos. La funcin del mdulo B es la de agrupar estos elemento de datos en un tem
compuestoyretornrseloalmduloA(superior).ElmduloBenviaralmduloA,sealesobanderas
indicando que necesita que se le suministre otro tem elemental, o para indicarle que le est
devolviendoeltemcompuesto.EstasbanderassernutilizadasdentrodelmduloAparacoordinar
sufuncionamientoysuministraraBlorequerido.
Cuandounmdulomodificaelcontenidoproceduraldeotromdulo,decimosqueexisteacoplamientohbrido.Elacoplamiento
hbridoesunamodificacindesentenciasintermodular.Enestecaso,paraelmdulodestinoomodificado,elacoplamientoes
vistocomodecontrolentantoqueparaelmdulollamadoromodificadoresconsideradocomodedatos.

Elgradodeinterdependenciaentredosmdulosvinculadosconacoplamientohbridoesmuyfuerte.Afortunadamenteesunaprcticaen
decadenciayreservadacasiconexclusividadalosprogramadoresenassembler.
1.4.Tiempodeligadodeconexionesintermodulares
"Ligado"o"Binding"esuntrminocomnmenteusadoenelcampodelprocesamientodedatosparareferirseaunprocesoqueresuelveofija
losvaloresdeidentificadoresdentrodeunsistema.
Elligadodevariablesavalores,omsgenricamente,deidentificadoresareferentesespecficos,puedetenerlugarendiferentes
estadios o perodos en la evolucin del sistema. La historia de tiempo de un sistema puede pensarse como una lnea
extendindose desde el momento de la escritura del cdigo fuente hasta el momento de su ejecucin. Dicha lnea puede
subdividirse

en

diferentes

niveles

de

refinamiento

segn

distintas

combinaciones

de

computador/lenguaje/compilador/sistemaoperativo.
Deestaforma,elligadopuedetenerlugarcuandoelprogramadorescribeunasentenciaeneleditorde
cdigo fuente, cuando un mdulo es compilado o ensamblado, cuando el cdigo objeto (compilado o
ensamblado)esprocesadoporel"linkeditor"oel"linkloader"(generalmenteesteprocesoeselconocido
como ligado en la mayora de los sistemas), cuando el cdigo "imagendememoria" es cargado en la
memoriaprincipal,yfinalmentecuandoelsistemaesejecutado.

Laimportanciadeltiempodeligadoradicaenquecuandolosvaloresdevariablesdentrodeunapiezadecdigosonfijadosmstarde,el
sistemaesmsfcilmentemodificableyadaptablealcambioderequerimientos.
Veamosunejemplo:supongamosquesenosencomiendalaescrituradeunaseriedeprogramaslistadoressiendolaimpresoraa
utilizarenprincipiounadeltipomatricialde80columnasquefuncionaconpapelcontinode12"delargode
pgina.
Alternativas:
1.Escribimoselliteral"72"entodaslasrutinasdeimpresindetodoslosprogramas.(ligadoentiempode
escritura)
2.ReemplazamoselliteralporlaconstantemanifiestaLONG_PAGalaqueasignamoselvalor"72"en
todoslosprogramas(ligadoentiempodecompilacin)
3.PonemoslaconstanteLONG_PAGenunarchivodeinclusinexternoalosprogramas(ligadoentiempodecompilacin)
4.NuestrolenguajenopermiteladeclaracindeconstantesporlocualdefinimosunavariableglobalLONG_PAGalaquele
asignamoselvalordeinicializacin"72"(ligadoentiempodelinkedicin)

5.DefinimosunarchivodeparmetrosdelsistemaconuncampoLONG_PAGalcualseleasignaelvalor"72".Estevalores
ledojuntoconotrosparmetroscuandoelsistemaseinicia.(ligadoentiempodeejecucin)
6. Definimos en el archivo de parmetros un registro para cada terminal del sistema y personalizamos el valor del campo
LONG_PAGsegnlaimpresoraquetengavinculadacadaterminal.Deestaformalasterminalesquetienenimpresorasde
12"imprimen72lneasporpgina,ylasquetienenunaimpresoradeinyeccindetintaqueusanpapeloficio,imprimen80.
(ligadoentiempodeejecucin)

Examinaremosahoralarelacinexistenteentreeltiempode ligado y las conexiones intermodulares, y


comoelmismoafectaelgradodeacoplamientoentremdulos.
Nuevamente, una referencia intermodular fijada a un referente u objeto especfico en tiempo de
definicin,tendrunacoplamientomayoraunareferenciafijadaentiempodetraslacinoposterioran.
La posibilidad de compilacin independiente de un mdulo de otros facilitar el mantenimiento y
modificacin del sistema, que si debiera compilarse todos los mdulos juntos. Igualmente, si la link
edicindelosmdulosesdiferidahastaelinstanteprevioasuejecucin,laimplementacindecambios
seversimplificada.

Existe un caso particular de acoplamiento de mdulos derivado de la estructura lexicogrfica del programa. Hablamos en este caso de
acoplamientoporcontenido.
Dosformasdeacoplamientoporcontenidopuedendistinguirse:

Inclusin lexicogrfica: se da cuando un mdulo est incluido lexicogrficamente en otro, y es una forma menor de
acoplamiento. Los mdulos por lo general no pueden ejecutarse separadamente. Este es el caso en el que el mdulo

subordinadoesactivadoenlneadentrodelcontextodelmdulosuperior.

Solapamiento parcial: es un caso extremo de acoplamiento por contenido. Parte del


cdigodeunmduloesteninterseccinconelotro.Afortunadamentelamayoradelos
lenguajesmodernosdealtonivelnopermitenestetipodeestructuras.

En trminos de uso, mantenimiento, y modificacin, las consecuencias del acoplamiento por contenido son peores que las del
acoplamientodecontrol.Elacoplamientoporcontenidohacequelosmdulosnopuedanfuncionarunosinelotro.Noocurrelo
mismo en el acoplamiento de control, en el cual un mdulo, aunque reciba informacin de control, puede ser invocado desde
diferentespuntosdelsistema.

2.ACOPLAMIENTODEENTORNOCOMN(COMMONENVIRONMENTCOUPLING)
Siemprequedosomsmdulosinteractanconunentornodedatoscomn,sedicequedichosmdulosestnenacoplamiento
porentornocomn.
EjemplosdeentornocomnpuedenserreasdedatosglobalescomolaDATAdivisindelCOBOL,unarchivoendisco.

El acoplamiento de entorno comn es una forma de acoplamiento de segundo orden, distinto de los tratados anteriormente. La
severidad del acoplamiento depender de la cantidad de mdulos que acceden simultneamente al entorno comn. En el caso
extremodesolodosmdulosdondeunoutilizacomoentradalosdatosgeneradosporelotrohablaremosdeunacoplamientode
entradasalida.Elpuntoesqueelacoplamientoporentornocomnnoesnecesariamentemaloydebaserevitadoatodacosta.
Porelcontrarioexistenciertascircunstanciasenqueesunaopcinvlida.
3.DESACOPLAMIENTO
El concepto de acoplamiento invita a un concepto recproco: desacoplamiento. Desacoplamiento es
cualquiermtodosistemticootcnicaparahacermsindependientesalosmdulosdeunprograma.
Cada tipo de acoplamiento generalmente sugiere un mtodo de desacoplamiento. Por ejemplo, el
acoplamientocausadoporligado,puededesacoplarsecambiandolosparmetrosapropiadostallovisto
enelejemplodeelcontadordelneasdelosprogramasimpresores.

Eldesacoplamiento,desdeelpuntodevistafuncional,raravezpuederealizarse,exceptoenloscomienzosdelafasedeldiseo.
Comoreglageneral,unadisciplinadediseoquefavorezcaelacoplamientodeentradasalidayelacoplamientodecontrolpor
sobre el acoplamiento por contenido y el acoplamiento hbrido, y que busque limitar el alcance del acoplamiento por entorno
comneselenfoquemsefectivo.

Otrastcnicasparareducirelacoplamientoson:
Convertirlasreferenciasimplcitasenexplcitas.Loquepuedeverseconmayorfacilidadesmsfcildecomprender.
Estandarizacindelasconexiones.
Uso de "buffers" para los elementos comunicados en una conexin. Si un mdulo puede ser diseado desde el comienzo
asumiendoqueunbuffermediarcadacorrientedecomunicacin,lascuestionestemporizacin,velocidad,frecuencia,etc.,
dentrodeunmdulonoafectarneldiseodeotros.
Localizacin.Utilizadoparareducirelacoplamientoporentornocomn.Consisteendividirelreacomnenregionespara
quelosmdulossolotenganaccesoaaquellosdatosquelessondesuestrictaincumbencia.

4.UNAAPLICACIN

Paraclarificarelconceptodeacoplamientoveremosunaaplicacin.Debeescribirseunprogramaquerealizarlosiguiente:
Elprogramatendrdoscorrientesdeentrada:unacarcteracarcterdesdetecladodeunaterminal,ylaotraregistroa
registrodesdeunaarchivoendisco.

Secomienzaleyendoloscaracteresprovenientesdeteclahastaqueserecibeelcarcter"RETURN",entoncessepasaa
leer el archivo registro a registro hasta recibir un registro con "//" en su encabezado, lo cual indica que se vuelve a leer
desdeteclado.
Elpasoanteriorserealizaiterativamente,hastaqueserecibeunasealdefindetransmisindesdelaterminal(EOT).
Entoncessecontinaleyendoelarchivohastaelfinal(EOF).
Lascorrientesdedatosdeambasentradasseanalizarnysepararnenpalabraslasquesepasarnalmduloexistente
ProcWord,elquerealizaralgoconellas.

SecomisionaenprimerlugaralprogramadorCarlitosparaqueconfeccioneelprograma,quinrealizaelsiguientediagramade
estructura:

CuandosepresentaelproblemaalaprogramadoraNadine,ellarealizalasiguientesolucin:

Ambasestructuraspresentanlassiguientescaractersticasencomn:

Ambassonnormalmenteconectadas.
Cadaunaconsistede5mdulosy4conexiones.
Lalgicadeencontrarpalabrashasidoaisladaenunmduloespecficoenamboscasos.

Sin embargo analizaremos si ambas estructuras presentan el mismo grado de acoplamiento. Para evaluar esto, necesitaremos
mirar el tipo de informacin comunicada entre los mdulos. Es importante notar que determinados flujos pueden comportarse
comodedatosydecontrol.PorejemplocarcterdesalidadelmduloINKEYnormalmenteserunflujodedatos,peroenelcaso
especial de que el carcter ser RETURN este funcionar como un flujo de control. En tales circunstancias es conveniente a
efectosdelestudioconsiderarlocomodistintosflujos.

Como se aprecia en la tabla precedente podemos establecer las siguientes comparaciones: el


diagramadeCarlitostiene13flujosdecontroly6dedatos,entantoqueeldiagramadeNadine
tiene9flujosdecontroly6dedatos.ObviamenteeldiagramalaestructuradeCarlitospresentaun
mayorgradodeacoplamiento.
PorotroladolainterfazdelmduloFINDWORDdeCarlitosserbastantemscomplejaquelade
GETWORDdeNadinedebidoalacantidaddeparmetrosqueimplica.

Tema4
Tema 04: Tcnicas de Cohesin
TCNICASPARACOHESIN
Introduccin:Relacinfuncional
Hemos visto que la determinacin de mdulos en un sistema no es arbitraria. 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 inter
modulares.
Adaptareldiseodelsistemaalaestructuradelproblema(oestructuradelaaplicacin,odominiodelproblema)es
unafilosofadediseosumamenteimportante.Amenudoencontramosqueelementosdeprocesamientodeldominio
deproblemaaltamenterelacionado,sontrasladadosencdigoaltamenteinterconectado.Lasestructurasqueagrupan
elementosdelproblemaaltamenteinterrelacionados,tiendenasermodularmenteefectivas.

Imaginemos que tengamos una magnitud para medir el grado de relacin funcional existente entre pares de
mdulos.Entrminosdetalmedida,diremosquesistemamsmodularmenteefectivoseraquelcuyasumade
relacinfuncionalentreparesdeelementosquepertenezcanadiferentesmdulosseamnima.Entreotrascosas,
estotiendeaminimizarelnmerodeconexionesintermodularesrequeridasyelacoplamientointermodular.

Estarelacinfuncionalintramodularseconocecomocohesin.
Lacohesineslamedidacualitativadecuanestrechamenterelacionadosestnloselementosinternosdeunmdulo.
Otrostrminosutilizadosfrecuentementeson"fuerzamodular","ligazn",y"funcionalidad".
Enlaprcticaunelementodeprocesamientosimpleaislado,puedeestarfuncionalmenterelacionadoendiferentesgradosaotroselementos.
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
evaluarelgradoderelacinfuncionaldeunelementorespectodeotro.
La cohesin modular puede verse como el cemento que amalgama juntos a los elementos de procesamiento
dentrodeunmismomdulo.Eselfactormscrucialeneldiseoestructurado,yeldemayorimportanciaenun
diseomodularefectivo.
Este concepto representa la tcnica principal que posee un diseador para mantener su diseo lo ms
semnticamente prximo al problema real, o dominio de problema. Claramente los conceptos de cohesin y
acoplamientoestnntimamenterelacionados.Unmayorgradodecohesinimplicaunomenordeacoplamiento.
Maximizarelniveldecohesinintramodularentodoelsistemaresultaenunaminimizacindelacoplamientointermodular.
Matemticamente el clculo de la relacin funcional intramodular (cohesin), involucra menos pares de
elementos a los cuales debe aplicarse la medida, en comparacin con el clculo de la relacin funcional
intermodular(acoplamiento).
Ambasmedidassonexcelentesherramientasparaeldiseomodularefectivo,perodelasdoslamsimportante
yextensivaeslacohesin.Unacuestinimportanteadeterminarescomoreconocerlarelacinfuncional.El
principiodecohesinpuedeponerseenprcticaconlaintroduccindelaideadeunprincipioasociativo.Enla
decisin de poner ciertos elementos de procesamiento en un mismo mdulo, el diseador, utiliza el principio de que ciertas propiedades o
caractersticasrelacionanaloselementosquelasposeen.Estoes,eldiseadorpondrelobjetoZenelmismomduloqueXeY,porqueX,Y,
yZposeenunmismapropiedad.
De esta manera, el principio asociativo es relacional, y es usualmente verificable en tales trminos (p.e. "es
correcto poner Z junto a X e Y, porque tiene la misma propiedad que ellos") o en trminos de miembro de un
conjunto(p.e.escorrectoponerZjuntoaXeY,puestodospertenecenalmismoconjunto").
Debetenerseenmentequelacohesinseaplicasobretodoelmdulo,esdecirsobretodoslosparesdeelementos.
As,siZestrelacionadoaXeY,peronoaA,B,yC,loscualespertenecenalmismomdulo,lainclusindeZ
enelmdulo,redundarenbajacohesindelmismo.
Intencionalmentesehausadoeltrmino"elementodeprocesamiento"enestadiscusin,enlugardetrminosmscomunescomoinstruccino

sentencia.Porqu:
Primero,unelementodeprocesamientopuedeseralgoquedebeserrealizadoenunmduloperoqueannohasidoreducidoacdigo.En
ordendedisearsistemasaltamentemodulares,debemospoderdeterminarlacohesindemdulosquetodavanoexisten.Segundo,elementos
deprocesamientoincluyentodaslassentenciasqueaparecenenunmdulo,nosoloelprocesamientorealizadoporlasinstruccionesejecutadas
dentrodedichomdulo,sinotambinlasqueresultandelainvocacindesubrutinas.
Por ejemplo, las sentencias individuales encontradas en el mdulo B, el cual es invocado desde el mdulo A, NO figuran dentro de la cohesin del
mdulo A. Sin embargo el procesamiento global (funcin) realizado por la llamada al mdulo B, es claramente un elemento de procesamiento en el
mdulollamadorA,yporlotantoparticipaenlacohesindelmduloA.
1.NIVELESDECOHESIN
Diferentes principios asociativos fueron desenvolvindose a travs de los aos por medio de la experimentacin,
argumentostericos,ylaexperienciaprcticademuchosdiseadores.

Existensietenivelesdecohesindistinguiblesporsieteprincipiosasociativos.Estosselistanacontinuacinenordencrecientedelgradode
cohesin,demenoramayorrelacinfuncional:

CohesinCasual(lapeor)
CohesinLgica(siguealapeor)
CohesinTemporal(demoderadaapobre)
CohesindeProcedimiento(moderada)
CohesindeComunicacin(moderadaabuena)
CohesinSecuencial
CohesinFuncional(lamejor)
Podemosvisualizarelgradodecohesincomounespectroquevadesdeunmximoaunmnimo.
1.1.CohesinCasual(lapeor)
Lacohesincasualocurrecuandoexistepocaoningunarelacinentreloselementosdeunmdulo.
Lacohesincasualestableceunpuntoceroenlaescaladecohesin.
Esmuydifcilencontrarmdulospuramentecasuales.Puedeaparecercomoresultadodelamodularizacindeunprogramayaescrito,enel
cualelprogramadorencuentraundeterminadasecuenciadeinstruccionesqueserepitendeformaaleatoria,ydecideporlotantoagruparlasen
unarutina.
Otrofactorqueinfluencimuchasveceslaconfeccindemduloscasualmentecohesivos,fuelamalaprcticadela
programacin estructurada, cuando los programadores mal entendan que modularizar consista en cambiar las
sentenciasGOTOporllamadasasubrutinas
Finalmentediremosquesibienenlaprcticaesdifcilencontrarmduloscasualmentecohesivosensutotalidad,es
comnquetenganelementoscasualmentecohesivos.Taleselcasodeoperacionesdeinicializacinyterminacin
quesonpuestasjuntasenunmdulosuperior.
Debemosnotarquesibienlacohesincasualnoesnecesariamenteperjudicial(dehechoespreferibleunprogramacasualmentecohesivoauno
lineal),dificultalasmodificacionesymantenimientodelcdigo.
1.2.CohesinLgica(siguealapeor)
Loselementosdeunmduloestnlgicamenteasociadossipuedepensarseenelloscomopertenecientesalamismaclaselgicadefunciones,
esdeciraquellasquepuedenpensarsecomojuntaslgicamente.
Porejemplo,sepuedecombinarenunmdulosimpletodosloselementosdeprocesamientoquecaenenlaclasede"entradas",queabarcatodas
lasoperacionesdeentrada.
Podemostenerunmduloqueleadesdeconsolaunatarjetaconparmetrosdecontrol,registroscontransaccioneserrneasdeunarchivoen
cinta,registroscontransaccionesvlidasdeotroarchivoencinta,ylosregistrosmaestrosanterioresdeunarchivoendisco.Estemduloque

podrallamarse"Lecturas",yqueagrupatodaslasoperacionesdeentrada,eslgicamentecohesivo.
La cohesin lgica es ms fuerte que la casual, debido a que representa un mnimo de asociacin entre el problema y los elementos del mdulo. Sin
embargopodemosverqueunmdulolgicamentecohesivonorealizaunafuncinespecfica,sinoqueabarcaunaseriedefunciones.
1.3.CohesinTemporal(demoderadaapobre)
Temporalcohesinsignificaquetodosloselementosdeprocesamientodeunacoleccinocurrenenelmismo
perododetiempodurantelaejecucindelsistema.Debidoaquedichoprocesamientodebeopuederealizarse
en el mismo perodo de tiempo, los elementos asociados temporalmente pueden combinarse en un nico
mduloquelosejecutealamismavez.Existeunarelacinentrecohesinlgicaylatemporal,sinembargo,
laprimeranoimplicaunarelacindetiempoentreloselementosdeprocesamiento.

Lacohesintemporalesmsfuertequelacohesinlgica,yaqueimplicaunnivelderelacinms:elfactortiempo.Sinembargolacohesin
temporalanespobreenniveldecohesinyacarreainconvenientesenelmantenimientoymodificacindelsistema.
Unejemplocomndecohesintemporalsonlasrutinasdeinicializacin(startup)comnmenteencontradasenlamayoradelosprogramas,
dondeseleenparmetrosdecontrol,seabrenarchivos,seinicializanvariablescontadoresyacumuladores,etc.
1.4.CohesindeProcedimiento(moderada)
Elementosdeprocesamientorelacionadosproceduralmentesonelementosdeunaunidadproceduralcomn.Estossecombinanenunmdulo
decohesinprocedural.Unaunidadproceduralcomnpuedeserunprocesodeiteracin(loop)ydedecisin,ounasecuencialineardepasos.
En este ltimo caso la cohesin es baja y es similar a la cohesin temporal, con la diferencia que la cohesin temporal no implica una
determinadasecuenciadeejecucindelospasos.Aligualqueenloscasosanteriores,paradecirqueunmdulotienesolocohesinprocedural,
los elementos de procesamiento deben ser elementos de alguna iteracin, decisin, o secuencia, pero no deben estar vinculados con ningn
principioasociativodeordensuperior.
Lacohesinproceduralasociaelementosdeprocesamientosobrelabasedesusrelacionesalgortmicasoprocedurales.Esteniveldecohesin
comnmentesetienecomoresultadodederivarunaestructuramodularapartirdemodelosdeprocedimientocomoserdiagramasdeflujo,o
diagramasNassiShneiderman.
1.5.CohesindeComunicacin(moderadaabuena)
Ningunodelosnivelesdecohesindiscutidospreviamenteestfuertementevinculadoaunaestructuradeproblema
enparticular.CohesindeComunicacineselmenornivelenelcualencontramosunarelacinentreloselementos
de procesamiento que es intrnsecamente dependiente del problema. Decir que un conjunto de elementos de
procesamiento estn vinculados por comunicacin significa que todos los elementos operan sobre el mismo
conjuntodedatosdeentradaodesalida.

En el diagrama de la figura podemos observar que los elementos de procesamiento 1, 2, y 3, estn asociados por comunicacin sobre la
corrientededatosdeentrada,entantoque2,3,y4sevinculanporlosdatosdesalida.
Los diagramas de flujo de datos (DFD) son un medio objetivo para determinar si los elementos en un mdulo estn asociados por
comunicacin.Lasrelacionesporcomunicacinpresentanungradodecohesinaceptable.
Lacohesinporcomunicacinescomnenaplicacionescomerciales.Ejemplostpicospuedenser:

Unmduloqueimprimaograbeunarchivodetransacciones
Unmduloquerecibadatosdediferentesfuentes,ylostransformeyensambleenunalneadeimpresin.

1.6.CohesinSecuencial
Elsiguienteniveldecohesinenlaescalaeslaasociacinsecuencial.Enella,losdatosdesalida(resultados)de
unelementodeprocesamientosirvencomodatosdeentradaalsiguienteelementodeprocesamiento.Entrminos
deundiagramadeflujodedatosdeunproblema,lacohesinsecuencialcombinaunacadenalinealdesucesivas
transformacionesdedatos.Esteesclaramenteunprincipioasociativorelacionadoconeldominiodelproblema.

1.7.CohesinFuncional(lamejor)
En el lmite superior del espectro de relacin funcional encontramos la cohesin funcional. En un mdulo completamente funcional, cada
elementodeprocesamiento,esparteintegralde,yesencialpara,larealizacindeunafuncinsimple.Entrminosprcticospodemosdecirque
cohesinfuncionalesaquellaquenoessecuencial,porcomunicacin,porprocedimiento,temporal,lgica,ocasual.
Los ejemplos ms claros y comprensibles provienen del campo de las matemticas. Un mdulo para realizar el clculo de raz cuadrada
ciertamenteseraltamentecohesivo,yprobablemente,completamentefuncional.Esimprobablequehayaelementossuperfluosmsalldelos
absolutamenteesencialespararealizarlafuncinmatemtica,yesimprobablequeelementosdeprocesamientopuedanseragregadossinalterar
elclculodealgunaforma.Encontrasteunmduloquecalculerazcuadradaycoseno,esimprobablequeseaenteramentefuncional(deben
realizarsedosfuncionesambiguas).
Enadicinaestosejemplosmatemticosobvios,usualmentepodemosreconocermdulosfuncionalesquesonelementalesennaturaleza.Un
mdulo llamado LEERREGISTROMAESTRO, o TRATARTRANSTIPO3, presumiblemente sern funcionalmente cohesivos, en cambio
TRATARTODASTRANSpresumiblementerealizarmsdeunafuncinyserlgicamentecohesivo.
2.CRITERIOSPARAESTABLECERELGRADODECOHESIN
Unatcnicatilparadeterminarsiunmduloestacotadofuncionalmenteesescribirunafrasequedescribala
funcin(propsito)delmduloyluegoexaminardichafrase.Puedehacerselasiguienteprueba:
1.Silafraseresultaserunasentenciacompuesta,contieneunacoma,ocontienemsdeunverbo,probablementeel
mdulorealizamsdeunafuncinportanto,probablementetienevinculacinsecuencialodecomunicacin.

2.Silafrasecontienepalabrasrelativasaltiempo,talescomo"primero","acontinuacin","entonces","despus","cuando","alcomienzo",
etc.,entoncesprobablementeelmdulotieneunavinculacinsecuencialotemporal.
3. Si el predicado de la frase no contiene un objeto especfico sencillo a continuacin del verbo, probablemente el mdulo est acotado
lgicamente.Porejemploeditartodoslosdatostieneunavinculacinlgicaeditarsentenciafuentepuedetenervinculacinfuncional.
4.Palabrastalescomo"inicializar","limpiar",etc.,implicanvinculacintemporal.
Losmdulosacotadosfuncionalmentesiempresepuedendescribirenfuncindesuselementosusandounasentencia
compuesta. Pero si no se puede evitar el lenguaje anterior, siendo an una descripcin completa de la funcin del
mdulo,entoncesprobablementeelmdulonoestacotadofuncionalmente.
Esimportantenotarquenoesnecesariodeterminarelnivelprecisodecohesin.Ensulugar,loimportanteesintentar
conseguirunacohesinaltaysaberreconocerlacohesinbaja,deformaquesepuedamodificareldiseodelsoftware
paraquedispongadeunamayorindependenciafuncional.

3.COMPARACINDENIVELESDECOHESIN
Utilizaremos el problema representado en la siguiente figura para ilustrar una variedad de particionamientos del mismo problema,
correspondienteadiferentesnivelesdecohesin.Esfcilpresentarejemplosdecohesincasualylgicaparticionandoeldiagramadeflujode
datos. El mdulo "HacerAlgo" es un ejemplo de cohesin casual. Los mdulos "FormatearReportes" y "Editar_y_Validar" son ejemplos de
cohesinlgica.DebidoaqueelDFDesinherentementenoprocedural,esuntantodifcilvisualizarenlrelacionestemporalesyprocedurales.
Dosposibilidadesseranlosmdulos"Comenzar"(temporal)y"SumLoop"(procedural).
CohesinsecuencialydecomunicacinesfcilmentevisibleenunDFD.Losmdulos"DoCombo"y"ObtenerMaestroVlido"sonejemplosdecohesin

decomunicacinysecuencialrespectivamente.
Laidentificacindecohesinfuncionalpresentaunavezmsdificultades.Enunnivelsuperficial,lacohesinfuncionalseraequivalenteaque
cadatransformacindelDFDsecorrespondaconunmdulo,perounparticulararreglodeestosenunajerarquainfluencialacohesinactual
demdulos.Estosproblemaspuedencomprendersemejorconlosconceptosestratgicosintroducidosenelcaptulodedicadoamorfologasy
metodologas.

HacerAlgo:cohesincasual
Editar_y_Validar:cohesinlgica
FormatearReportes:Cohesinlgica

Comenzar:cohesintemporal
SumLoop:cohesinprocedural

ObtenerMaestroVlido:cohesinsecuencial
DoCombo:cohesindecomunicacin
4.MEDICINDECOHESIN
Cualquiermdulo,raravezverificaunsoloprincipioasociativo.Suselementospuedenestarrelacionadospor
unamezcladelossietenivelesdecohesin.Estollevaatenerunaescalacontinuaenelgradodecohesividad
msqueunaescalaconsietepuntosdiscretos.
Dondeexistemsdeunarelacinentreunpardeelementosdeprocesamiento,seaplicaelmximonivelque
alcanzan. Por esto, si un mdulo presenta cohesin lgica entre todos sus pares de elementos de
procesamiento, y a su vez presenta cohesin de comunicacin tambin entre todos dichos pares, entonces
dichomduloesconsideradocomodecohesinporcomunicacin.

Ahora,culseralacohesindedichomdulositambincontienealgnpardeelementoscompletamentenorelacionados?Enteora,debera
teneralgntipodepromedioentrelacohesindecomunicacinylacasual.Parapropsitosdedepuracin,mantenimiento,ymodificacin,un
mdulosecomportacomosifuera"solotanfuertecomosusvnculosmsdbiles".
El efecto sobre los costos de programacin es prximo al menor nivel de cohesin aplicable dentro del mdulo en vez del mayor nivel de
cohesin.
Lacohesindeunmduloesaproximadaalnivelmsaltodecohesinqueesaplicableatodosloselementosdeprocesamientodentrodel
mdulo.
Un mdulo puede consistir de varias funciones completas relacionadas lgicamente. Esto es definitivamente ms
cohesivoqueunmduloqueligalgicamentefragmentosdevariasfunciones.

Ladecisindequeniveldecohesinesaplicableaunmdulodadorequieredeciertojuiciohumano.Algunoscriteriosestablecidosson:
Lacohesinsecuencialesmsprximaalptimofuncionalqueasuantecesordecomunicacin.
Similarmenteexisteunsaltomayorentrelacohesinlgicaylatemporalqueentrecasualylgica.
Podemosasignarlasiguienteescaladevaloresparaayudaraldiseadorenlacalificacindeniveles:
0:casual
1:lgica
3:temporal
5:procedural

7:decomunicacin
9:secuencial
10:funcional

Decualquiermodo,estaescalaestbasadaenlaexperienciadelosautores,ynoesunareglafija,sinounaconclusin.
Laobligacindeldiseadoresconocerlosefectosproducidosporlavariacinenlacohesin,especialmenteentrminosdemodularidad,en
ordenderealizarsolucionesdecompromisobeneficiandounaspectoencontradeotro.

También podría gustarte