LecturaU2LecturaU2
Sitio: UniversidadPrivadaTelesupCurso: AnalisisyDiseodeSistemasdeInformacionSI/06/151/TOBLibro: LecturaU2Imprimidopor: SAENZLAZOCARLOSENRIQUEFecha: martes,14deabrilde2015,06:55
TabladecontenidosIntroduccin
Tema1
Tema2
Tema3
Tema4
IntroduccinINTRODUCCIN
a)Presentacinycontextualizacin
Enestaunidadhablaremos sobre la introduccin y laPresentacinde lasherramientasdediseoestructurado.Aquellosqueestnobligadosaguardarunaformaconvencional.Entrestostenemosalosadministrativos,loscualessonimportantesporquesirvenparatransmitirlainformacinentreeltiempoenquelosrequisitosdelusuariosondefinidosydocumentados.AquVeremoslastcnicasdecohesinyacoplamientodemdulos.
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 EstructuradoINTRODUCCIN
Eldesarrollodesistemaspequeos,enlacualparticipanunaodospersonas,esunatareasimple.Loscambiosnaturalesquesurgenduranteelciclodedesarrollodelsistemanoproducenunagranpropagacin de cambios en el sistema. Sin embargo, si el sistema es grande y en su desarrolloparticipanvariosgruposdepersonasdesarrollandounatareaespecfica,hayquetenerencuentanosololacomunicacinconelusuariosinotambinlainterrelacinentrelosdistintosgruposdetrabajo.
Algunosdelosproblemascomunesquelosdesarrolladoresencuentranenlaconstruccindesoftwaredeciertacomplejidadsonlossiguientes:
Eldominiodeaplicacinnoesconocido.
Lacomunicacinconelusuario.
Lacomunicacinconelgrupodedesarrollo.
Lacarenciadebuenadocumentacin.
Poresta razn,esnecesarioseguirunaseriedepasossistemticosparaque losdiferentesgruposdedesarrolloposeanunabuenacomunicacin.Estospasossonbrindadospor losmodelosdeciclodevida, loscualesestnconstituidospordiferentesetapas:
Especificacin de requerimientos: Se realizan entrevistas con el usuario identificando los requerimientos y necesidades delusuario.
Anlisis:Modelalosrequerimientosdelusuario.
Diseo:Semodelalasolucindelsistema,teniendoencuentaelambientedeimplementacinautilizar,porejemplo,sielsistemaescentralizadoodistribuido,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 grupocorrespondiente.
Mantenimiento:Eslaetapamsdifcildedesarrollodelsistema,actualizaymodificaelsistemasisurgennuevosrequerimientos.
Existenvariosmtodosparadescribirelciclodevidadeunsistema,unodeelloseseldesarrolloestructuradoencascada(Fig.1).
Fig.1:ModelodeCiclodeVidaenCascada
Enunprincipiofuedegranutilidadperoelproblemaesqueparapasardeunaetapaa laotrahabaque terminar laprimera,produciendo un gran problema si algn cambio era requerido. La etapa de Mantenimiento consuma el 80% del costo deproduccin.
FoxitUnderlineIntroduccin de las Herramientas de Diseo Estructurado
FoxitHighlightsi el sistema es grande y en su desarrolloparticipan varios grupos de personas desarrollando una tarea especfica, hay que tener en cuenta nosolo la comunicacin con el usuario sino tambin la interrelacin entre los distintos grupos de trabajo.
FoxitHighlightEspecificacin de requerimientos:
FoxitHighlightAnlisis
FoxitUnderline
FoxitUnderlineDiseo
FoxitUnderlineImplementacin
FoxitUnderlineMantenimiento
FoxitHighlightModela los requerimientos del usuario.
FoxitUnderlineAnlisis
FoxitUnderlineEspecificacin de requerimientos
FoxitHighlightidentificando
FoxitHighlightrequerimientos
FoxitHighlightnecesidades
FoxitHighlightSe modela la solucin del sistema,
FoxitHighlightteniendo
FoxitHighlightambiente
FoxitHighlightimplementacin
FoxitHighlightcuenta
FoxitUnderlineTesteo
FoxitHighlightetapa se verifica y valida el sistema
FoxitHighlightetapa ms difcil de desarrollo del sistema, actualiza y modifica el sistema si surgen nuevos requerimientos.
FoxitUnderlinedesarrollo estructurado en cascada
FoxitHighlightEn un principio fue de gran utilidad pero el problema es que para pasar de una etapa a la otra haba que terminar la primera,produciendo un gran problema si algn cambio era requerido. La etapa de Mantenimiento consuma el 80% del costo deproduccin
Debidoalosnuevosrequerimientoseneldesarrollodesoftware,surgieronmuchosotrosmodelosquetratabandesolucionarlosproblemasexistentes, que sebasaronenelmodeloenCascada.Por ejemplo, elModeloenEspiral, enel cual el sistemasedesarrollaincrementalmente(Fig.2).
Losmodelospropuestosposeenbsicamentelasmismasetapas,perovaranen:
LosmtodosyherramientasutilizadasencadaactividadLoscontrolesrequeridos,paralelismoenlasactividades
Lassalidasdecadaetapa
Noesaconsejableelegirunmodeloyseguirloaldetallesinoquesedebeadaptara lascaractersticasdelproyectoqueestsiendodesarrollado.Losmtodosdedesarrollodesoftwarepuedendividirseendosgrupos:funcin/datoyorientadosaobjetos.
Fig.2:ModelodeCiclodeVidaenEspiral
OrientadoaFuncin/Dato:Aquellosmtodosenloscualeslasfuncionesy/olosdatossontratadoscomoentidades independientes. Estos sistemas resultan difciles demantener. Elmayor problema es que lasfuncionesgeneralmentedependendelaestructuradelosdatos.Amenudodiferentestiposdedatostienendistintos formatos y se necesita verificar el tipo del dato (con sentencias IfThen oCASE), produciendoprogramasdifcilesdeleerymodificar.Sisedeseahaceralgunamodificacinenlaestructuradelosdatossedebemodificarentodosloslugaresdondeesutilizado.
Otroproblemaesqueunapersonanopiensanaturalmenteentrminosdeunaestructura.Laespecificacinderequerimientossehaceenlenguajecomn,seespecificalafuncionalidadquedebetenerelsistemaynoencmosedebenestructurarlosdatos.
OrientadoaObjetos:Sonaquellosmtodosenloscualesdatosyfuncionesestnaltamenterelacionados.Elnfasisestcentradoenlaabstraccindedatos.Sepiensaenformanatural,losobjetossonmapeadosa entidades del mundo real. Los programas son fcilmente mantenibles y extensibles por medio de laconstruccindesubclases.
Variosmtodosdedesarrollodesoftwarehansidopropuestosparacadaunodeestegrupo,algunosdeloscualessondescriptosenlaFig.3.
Donde:
SADT:StructuredAnalysisandDesignTechnique[Ross85]
FoxitHighlightNo es aconsejable elegir un modelo y seguirlo al detalle sino que se debe adaptar a las caractersticas del proyecto que estsiendo desarrollado. Los mtodos de desarrollo de software pueden dividirse en dos grupos: funcin/dato y orientados a objetos.
FoxitUnderlineOrientado a Funcin/Dato:
FoxitHighlightEstos sistemas resultan difciles de mantener.
FoxitHighlightfunciones y/o los datos son tratados comoentidades independientes.
FoxitUnderlineOrientado a Objetos:
FoxitHighlightmtodos en los cuales datos y funciones estn altamente relacionados.El nfasis est centrado en la abstraccin de datos
RDD:RequirementDrivenDesign[Alford85]
SA/SD:StructuredAnalysisandStructuredDesign[Yourdon&Constantine79]
OOSE:ObjectOrientedSoftwareEngineering[Jacobson94]OOA:ObjectOrientedAnalysis[Goldberg]OMT:ObjectModelingTechnique[Rumbaugh93]
UP:UnifiedProcess[Booch&Jacobson&Rumbaugh98]
Catalysis:Catlisis[DSouza98]
Fig.3:MtodosdeDesarrollodeSoftware
En el corriente curso:Metodologas deDesarrollo deSoftware I nos centraremos en losmtodos dedesarrollodesoftwareorientadosafuncin/datosyenlasherramientaspropuestasparaelmodeladodelos diferentes aspectos de un sistema: datos, control y funciones. Adicionalmente, se presentaranmtodosformales,especficamenteZ,ymtodosorientadosaobjetos.
Tema2Tema 02: Presentacin de las Herramientas de Diseo Estructurado
PRESENTACINDELASHERRAMIENTASDEDISEOESTRUCTURADO
ElAnlisisserefierealextremoinicialdeunproyectodedesarrollodesistemas,duranteeltiempoenquelosrequisitosdelusuariosondefinidosydocumentados.
ElAnlisisestructuradointroduceelusodelasherramientasdedocumentacingrficasparaproduciruntipodiferentedeespecificacinfuncional:laespecificacinestructurada.
Elanlisisestructurado,comootrosmtodos,permiteconstruirmodelosdesistemasapartirdelanlisisdesusprocesosy/oactividadesqueseejecutanasociadosalsistema.Permitealequipoencargadodelestudiodeldesarrolloo laorganizacinconocer de forma lgica un sistema o proceso. El objetivo que persigue el anlisis estructurado es organizar las tareasasociadasconladeterminacinderequerimientosparaobtenerlacomprensincompletayexactadeunasituacindada.
Conceptosqueserelacionanconelanlisisestructurado
Smbolosgrficosiconosyconvencionesparaidentificarydescribirloscomponentesdeunsistemajuntoconlasrelacionesentreestoscomponentes.
Diccionariodedatosdescripcionesdetodoslosdatosutilizadosenelsistema.
Descripciones de procesos y procedimientos declaraciones formales que empleantcnicasy lenguajesquepermitena losanalistasdescribiractividades importantesqueformanpartedelsistema.
Reglasestndaresparadescribirydocumentarelsistemaenformacorrectaycompleta.
Fasedediseo:Enestafase,eldiseoestructuradoproduceelmodelodediseoconlossiguienteselementos:
Diseodedatos.Transformaelmodelodedominiodelainformacincreadoduranteelanlisis,enlas estructuras de datos necesarias para implementar el software. Los objetos de datos y lasrelaciones definidas en el diagrama entidadrelacin y el contenido detallado de datos deldiccionariodedatosconstituyenlabaseparaeldiseodedatos.
Diseo arquitectnico. Define la relacin entre los principales elementos estructurales delprograma.Seobtieneapartirdelmodelodeanlisisydelainteraccindesubsistemasdefinidosdentrodelmodelodeanlisis.
Diseodeinterfaz.Describecomosecomunicaelsoftwareconsigomismo,conlossistemasqueoperanconlyconlosoperadoresqueloemplean.Losdiagramasdeflujodedatosycontrolproporcionanlainformacinnecesariaparaeldiseodelainterfaz.
Diseo procedimental. Transforma elementos estructurales de la arquitectura del programa en una descripcinprocedimentaldeloscomponentesdelsoftware.Seobtieneapartirdelaespecificacindelproceso,laespecificacindelcontrolyeldiagramadetransicindeestados.
Componentes:
Smbolosgrficos:Identificaydescribeloscomponentesdeunsistemaylasrelacionesentreestos.
Diccionarios de datos: Describe todos los datos utilizados en el sistema pueden sermanual oautomatizado.
Descripcionesdeprocesosyprocedimientos:descripcintcnicaparadescribirlasactividadesqueserealizanlosprocesos.
Reglas:Pasosaseguirparadescribirydocumentarelvenformacorrectaycompleta.
FoxitUnderlinePresentacin de las Herramientas de Diseo Estructurado
FoxitHighlightAnlisis
FoxitUnderlineextremo inicial
FoxitHighlightinicial
FoxitHighlightextremo
FoxitHighlightrequisitos del usuario son definidos y documentados.
FoxitHighlightAnlisis estructurado
FoxitHighlightherramientas de documentacin grficas
FoxitHighlightproducir
FoxitHighlighttipo
FoxitHighlightespecificacin funcional: la especificacin estructurada.
FoxitUnderlineanlisis estructurado
FoxitHighlightEl objetivo que persigue el anlisis estructurado es organizar las tareasasociadas con la determinacin de requerimientos para obtener la comprensin completa y exacta de una situacin dada.
FoxitUnderlineConceptos que se relacionan con el anlisis estructurado
FoxitUnderlineSmbolos grficos
FoxitUnderlineDiccionario de datos
FoxitUnderlineDescripciones de procesos y procedimientos
FoxitHighlightdescripciones
FoxitHighlightdatos
FoxitHighlightutilizados
FoxitHighlighticonos
FoxitHighlightconvenciones
FoxitHighlightidentificar
FoxitHighlightdescribir
FoxitHighlightcomponentes
FoxitHighlightjunto
FoxitHighlightrelaciones
FoxitHighlightcomponentes
FoxitHighlightdeclaraciones
FoxitHighlightformales
FoxitHighlightemplean
FoxitHighlighttcnicas y lenguajes que permiten a los analistas describir actividades importantes queforman parte del sistema.
FoxitUnderlineReglas
FoxitHighlightestndares
FoxitHighlightdescribir
FoxitHighlightdocumentar
FoxitHighlightcorrecta
FoxitHighlightcompleta
FoxitUnderlineFase de diseo
FoxitUnderlineDiseo de datos
FoxitHighlightTransforma el modelo de dominio de la informacin creado durante el anlisis, enlas estructuras de datos necesarias para implementar el software
FoxitUnderlineDiseo arquitectnico.
FoxitHighlightDefine la relacin entre los principales elementos estructurales delprograma.
FoxitUnderlineDiseo de interfaz
FoxitHighlightDescribe como se comunica el software consigo mismo, con los sistemas que operan con l y conlos operadores que lo emplean.
FoxitUnderlineDiseo procedimental
FoxitHighlightTransforma elementos estructurales de la arquitectura del programa en una descripcinprocedimental de los componentes del software
FoxitUnderlineComponentes
FoxitUnderlineSmbolos grficos
FoxitHighlightIdentifica y describe los componentes de un sistema y las relaciones entre estos.
FoxitHighlightDiccionarios de datos:
FoxitHighlightdatos
FoxitHighlightDiccionarios de datos:
FoxitUnderlineDiccionarios de datos:
FoxitUnderlineDescripciones de procesos y procedimientos:
FoxitUnderlineReglas
FoxitHighlightdescripcin tcnica para describir las actividades quese realizan los procesos.
FoxitHighlightPasos a seguir para describir y documentar el ven forma correcta y completa.
FoxitHighlightobtiene a partir del modelo de anlisis y de la interaccin de subsistemas definidosdentro del modelo de anlisis.
FoxitHighlightpermite construir modelos de sistemas a partir del anlisis de sus procesos y/oactividades que se ejecutan asociados al sistema
Herramientas:
Diagramadeflujodedatos:Eslabaseparaotroscomponentesydescribecomonaveganlosdatosentreprocesosyelementosrelacionados.DiccionariodeDatos:Contienelascaractersticasdeloscamposy/odescripcindetalladadelos diferentes objetos que componen el sistema Diagrama de Estructuras de Datos: describe la relacin entre lasentidadesylosobjetos(conjuntadeinformacinquecontienenlasentidades)
CASOPRCTICO
AplicarambosenfoquesdeanlisisydiseodesistemasparatratardeoptimizarelprocesodegenerarCopiasCertificadasenelCircuitoJudicialPenaldeTucupita,EstadoDeltaAmacuro.
El caso en estudio consiste en elaborar una propuesta para optimizar especficamente el proceso de emisin de CopiasCertificadas solicitadas a diario por la comunidad ante este despacho jurdico, cabemencionar que en la actualidad estaactividadseefectademaneraexclusivamentemanual,utilizandoherramientasbastanteobsoletas,como lasmquinasdeescribir y basndose en informaciones contenidas en los registros de libros de actas que se encuentran archivados enconjuntoconotroelevadonmerodelibrosquerepresentantodaslascompetenciasdelentejudicial.
Esteprocedimientoambiguopordems,generaprdidasdetiempoenrespuestaalpblicoybsquedaytratamientodelainformacinporpartedelosfuncionariosquealllaboran,inclusivefatigaaltenerquetranscribirgrandesvolmenesdedatosdeacuerdoalosolicitadoymsanexcesivospasosyprocedimientosparacompletarlasactividades.
Segnelmodeloestructurado
El Anlisis Estructurado, fue seleccionado como tcnica de investigacin de requerimientos, ya que permite al analistaconocerelsistemaoprocesoenunaformalgicaymanejable,almismotiempoqueproporcionalabaseparaasegurarqueno se omite ningn detalle. Este es un mtodo para el anlisis de sistemasmanuales o automatizados, que conduce aldesarrollodeespecificacionesparasistemasnuevosoparaefectuarmodificacionesalosyaexistentes.
Aunadoaelloyporserconsideradoscomounaherramientacapazdedescribiryanalizarelmovimientodelosdatosatravsdeunsistema, la representacingrficade losprocesosdel sistemaestaracargode losDiagramasdeFlujosdeDatos(DFD).
DISEODELSISTEMA
ElusodelosDiagramasdeFlujosdeDatos(DFDs),esunaherramientaquepermitemostrargrficamenteydemanerageneral,elfuncionamientodelsistemaylosprocesosnecesariosparasudesarrollo.LosDFDssepuedendibujarconslocuatronotacionessencillas,enestecaso,lanotacinutilizadaestbasadaenelenfoquedeGaneySarson.
Origen/destinodedatos:Representanentidadesexternasalsistemaquesecomunicanconlyqueestnfueradesucontrol.LasrelacionesexistentesentrelasentidadesnoserepresentanenelDFD,yaquenosonpartedelsistemabajoestudio.
Para este diseo forman parte de las entidades los Justiciables, la cual incluye a todas aquellaspersonas 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 (DFDPropuesto)muestracinco(5)procesosconsideradosvitalesparaelfuncionamientoyoperatividaddelaaplicacin:
SolicitarcopiascertificadasenelcualsesupervisaquelassolicitudesaprocesarestnconformealosrequisitosestablecidosporelCdigodeProcedimientoCivil,oalgunaotraLeyquecondicionelapuestaenmarchadestas.
Verificarexistenciadeactasenelsistemaenlseconstataqueelactaquetienerelacinconlacopiacertificadasolicitadaestonoenlosarchivosdelcircuitoydeesemodosetengaaccesodirectoal.
Generarcopiascertificadasencargadodeprocesarlosreportesgeneradosporelsistema,enestecasolaemisindirectadelasCopiasCertificadassolicitadas.
Registroautomticodelibrosenlsealmacenaunaseriededatosprovenientedelprocesamientodelassolicitudes.
FoxitUnderlineDiagrama de flujo de datos
FoxitUnderlineHerramientas
FoxitHighlightbase para otros componentes y describe como navegan los datos entre procesos
FoxitUnderlineDiccionario de Datos
FoxitUnderlineDiagrama de Estructuras de Datos
FoxitHighlightcaractersticas
FoxitHighlightcampos
FoxitHighlightdescripcin
FoxitHighlightobjetos
FoxitHighlightContiene
FoxitHighlightsistema
FoxitHighlightrelacin
FoxitHighlightentre
FoxitHighlightentidades y los objetos (conjunta de informacin que contienen las entidades)
FoxitUnderlineCASO PRCTICO
FoxitUnderlineSegn el modelo estructurado
FoxitHighlightAnlisis Estructurado,
FoxitHighlightAunado a ello y por ser considerados como una herramienta capaz de describir y analizar el movimiento de los datos a travsde un sistema, la representacin grfica de los procesos del sistema estar a cargo de los Diagramas de Flujos de Datos(DFD)
FoxitHighlightEste es un mtodo para el anlisis de sistemas manuales o automatizados, que conduce aldesarrollo de especificaciones para sistemas nuevos o para efectuar modificaciones a los ya existentes.
FoxitHighlightpermite al analistaconocer el sistema o proceso en una forma lgica y manejable, al mismo tiempo que proporciona la base para asegurar queno se omite ningn detalle.
FoxitUnderlineDISEO DEL SISTEMA
FoxitUnderlineinvestigacin de requerimientos,
FoxitHighlightDiagramas de Flujos de Datos (DFDs),
FoxitHighlightpermite mostrar grficamente y de manera general, el funcionamiento delsistema y los procesos necesarios para su desarrollo.
FoxitUnderlineOrigen/destino de datos
FoxitHighlightRepresentan entidades externas al sistema que se comunican con l y que estnfuera de su control
FoxitUnderlineProcesos
FoxitHighlightMuestran la parte del sistema que transforma las entradas de datos en salida
FoxitHighlight5) procesos
FoxitHighlightSolicitar copias certificadas
FoxitHighlightVerificar existencia de actas en el sistema
FoxitHighlightGenerar copias certificadas
FoxitHighlightRegistro automtico de libros
Firmarysellaractas:ProcesomanualqueselimitaaautenticarlasCopiasCertificadaspreviasuentregaalsolicitante
Flujodedatos:Elflujodescribeelmovimientodepaquetesdedatosqueviajandesdeunapartedelsistemaaotra.Estnrepresentadosporunaflechaparamostrarsuorigenysudestino.
Almacn: Representa una coleccin de paquetes de datos que permanecen en estado dereposo.Noestreferidoexclusivamenteamediosdealmacenamientoelectrnicocomobasesde datos en discos duros, sino tambin a archiveros metlicos o cualquier otro medio quepermitaguardardatosencarpetasuhojasdepapel.
FoxitHighlightFirmar y sellar actas:
FoxitUnderlinedatos
FoxitUnderlineFlujo de datos:
FoxitHighlightdescribe el movimiento de paquetes de datos que viajan desde una partedel sistema a otra.
FoxitUnderlineAlmacn:
FoxitHighlightcoleccin de paquetes de datos que permanecen en estado dereposo.
Tema3Tema 03: Tcnicas de Acoplamiento de Mdulos
Muchosaspectosde lamodularizacinpuedensercomprendidossolosiseexaminanmdulosenrelacinconotros.Enprincipioveremoselconceptode independencia.Diremosquedosmdulossontotalmenteindependientessiambospuedenfuncionarcompletamentesinlapresenciadelotro.Esto implicaquenoexisten interconexionesentre losmdulos, yquese tieneunvalor ceroen laescalade"dependencia".
Engeneralveremosqueamayornmerodeinterconexionesentredosmdulos,setieneunamenorindependencia.
Elconceptodeindependenciafuncionalesunaderivacindirectadeldemodularidadydelosconceptosdeabstraccinyocultamientodelainformacin.
Lacuestinaques:cuantodebeconocerseacercadeunmduloparapodercomprenderotromdulo?Cuanto ms debamos conocer acerca del mdulo B para poder comprender el mdulo A, menosindependientessernAdeB.
La simple cantidad de conexiones entre mdulos, no es una medida completa de la independenciafuncional. La independencia funcional se mide con dos criterios cualitativos: acoplamiento y cohesin.Estudiaremosenprincipioelprimerodeellos.Mdulosaltamente"acoplados"estarnunidosporfuertesinterconexiones,mdulosdbilmenteacopladostendrnpocasydbilesinterconexiones,entantoquelosmdulos"desacoplados"notendrninterconexionesentreellosysernindependientes.
Elacoplamientoesunconceptoabstractoquenosindicaelgradodeinterdependenciaentremdulos.
En la prctica podemosmaterializarlo como la probabilidad de que en la codificacin, depuracin, o modificacin de un determinadomdulo,elprogramadornecesitetomarconocimientoacercadepartesdeotromdulo.
Sidosmdulosestnfuertementeacoplados,existeunaaltaprobabilidaddequeelprogramadornecesiteconocerunodeellosenordendeintentarrealizarmodificacionesalotro.Claramente,elcostototaldelsistemaseverfuertementeinfluenciadoporelgradodeacoplamientoentrelosmdulos.
1.FACTORESQUEINFLUENCIANELACOPLAMIENTO
Loscuatrofactoresprincipalesqueinfluyenenelacoplamientoentremdulosson:
Tipo de conexin entremdulos: los sistemas normalmente conectados, tienenmenor acoplamiento que aquellosquetienenconexionespatolgicas.
Complejidaddelainterface:Estoesaproximadamenteigualalnmerodetemsdiferentespasados(nocantidaddedatos).Mstems,mayoracoplamiento.
Tipode flujode informacinen laconexin: lossistemasconacoplamientodedatos tienenmenoracoplamientoque lossistemasconacoplamientodecontrol,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 menoracoplamientoquecuandoelligadoserealizaentiempodelinkageedicin,elcualtienemenosacoplamientoqueelqueserealizarealizaentiempodecompilacin,todoslosqueasuveztienemenosacoplamientoquecuandoelligadoserealizaentiempodecodificacin.
1.1.Tiposdeconexionesentremdulos
Unaconexinenunprograma,esunareferenciadeunelemento,pornombre,direccin,oidentificadordeotroelemento.
Unaconexinintermodularocurrecuandoelelementoreferenciadoestenunmdulodiferentealdelelementoreferenciante.
Elelementoreferenciadodefineunainterface,unlmitedelmdulo,atravsdelcualfluyendatosycontrol.Lainterfacepuedeconsiderarse como residente en el elemento referenciado. Puede pensarse como un enchufe (socket) donde la conexin delelementoreferencianteseinserta.
FoxitUnderlineTcnicas de Acoplamiento de Mdulos
FoxitHighlightEl acoplamiento es un concepto abstracto que nos indica el grado de interdependencia entre mdulos.
FoxitHighlightLa cuestin aqu es: cuanto debe conocerse acerca de un mdulo para poder comprender otro mdulo?Cuanto ms debamos conocer acerca del mdulo B para poder comprender el mdulo A, menosindependientes sern A de B.
FoxitHighlightLa independencia funcional se mide con dos criterios cualitativos: acoplamiento y cohesin
FoxitUnderlineacoplamiento y cohesin.
FoxitHighlightEn la prctica podemos materializarlo como la probabilidad de que en la codificacin, depuracin, o modificacin de un determinadomdulo, el programador necesite tomar conocimiento acerca de partes de otro mdulo.
FoxitUnderlineFACTORES QUE INFLUENCIAN EL ACOPLAMIENTO
FoxitUnderlineTipo de conexin entre mdulos
FoxitUnderlineComplejidad de la interface:
FoxitHighlightMs tems, mayor acoplamiento.
FoxitUnderlineTipo de flujo de informacin en la conexin:
FoxitUnderlineMomento en que se produce el ligado de la Conexin:
FoxitHighlightreferentes fijos en tiempo de ejecucin,
FoxitUnderlineTipos de conexiones entre mdulos
FoxitHighlightUna conexin en un programa, es una referencia de un elemento, por nombre, direccin, o identificador de otro elemento.
FoxitHighlightconexin intermodular
FoxitHighlightocurre
FoxitHighlightelemento
FoxitHighlightreferenciado
FoxitHighlightmdulo diferente al del elemento referenciante
FoxitHighlightelemento referenciado define una interface,
FoxitHighlightlmite del mdulo, a travs del cual fluyen datos y control.
Toda interfaceenunmdulorepresentacosasquedebenserconocidas,comprendidas,yapropiadamenteconectadaspor losotrosmdulosdelsistema.
Se buscaminimizar la complejidad del sistema/mdulo, en parte,minimizando el nmero y complejidad de las interfaces pormdulo.
Todo mdulo adems debe tener al menos una interface para ser definido y vinculado al resto del sistema. Pero, es unainterfacedeidentidadsimplesuficienteparaimplementarsistemasquefuncionenadecuadamente?.Lacuestinaques:Aquepropsitosirvenlasinterfaces?
Soloflujosdecontrolydatospuedenpasarseentremdulosenunsistemadeprogramacin.Unainterfacepuedecumplirlassiguientescuatronicasfunciones:
Transmitirdatosaunmdulocomoparmetrosdeentrada.
Recibirdatosdesdeunmdulocomoresultadosdesalida.
Serunnombreporelcualserrecibeelcontrol.
Serunnombreporelcualsertransmiteelcontrol.
Unmdulopuedeseridetificadoyactivadopormediodeunainterfazdeidentidadsimple.Tambinpodemospasardatosaunmdulosinagregarotrasinterfaces,haciendoalainterfazdeentradacapazdeaceptardatoscomocontrol.Estorequierequeloselementosdedatosseanpasadosdinmicamentecomoargumentos(parmetros)comopartedelasecuenciadeactivacin,quedaelcontrolaunmdulocualquierreferenciaestticaadatospuedeintroducirnuevasinterfaces.
Senecesitatambinquelainterfacedeidentidaddeunmdulosirvaparatransferirelretornodelcontrolalmdulollamador.Estopuederealizarsehaciendoquelatransferenciadecontroldesdeel llamadorseaunatransferenciacondicional.Debe implementarseademsunmecanismoparatransmitirdatosderetornodesdeelmdulollamadohaciaelllamador.Puedeasociarseunvalorauna activacin particular del modulo llamado, la cual pueda ser usada contextualmente en elllamador. Tal es el caso de las funciones lgicas. Alternativamente pueden transmitirseparmetrosparadefinirubicacionesdondeelmdulollamadoretornavaloresalllamador.
Sitodaslasconexionesdeunsistemaserestringenasercompletamenteparametrizadas(conrespectoasusentradasysalidas),y la transferencia condicional de control a cadamdulo se realiza a travs de una identidad simple y nica, diremos que elsistemasestmnimamenteconectado.
Diremosqueunsistemaestnormalmenteconectadocuandocumpleconlascondicionesdemnimamenteconectado,exceptoporalgunadelassiguientesconsideraciones:
Existemsdeunpuntodeentradaparaunmismomdulo
Elmduloactivadorollamadorpuedeespecificarcomopartedelprocesodeactivacinunpuntoderetornoquenosealaprximasentenciaenelordendeejecucin.
El control es transferido a un punto de entrada de unmdulo por algnmecanismo distinto a una llamada explcita (ej.performthrudelCOBOL).
Elusodemltiplespuntosdeentradagarantizaqueexistirnmsqueelnmeromnimodeinterconexionesparaelsistema.Porotrapartesicadapuntodeentradadeterminafuncionesconmnimaconexinaotrosmdulos,elcomportamientodelsistemasersimilaraunomnimamenteinterconectado.
FoxitHighlightToda interface en un mdulo representa cosas que deben ser conocidas, comprendidas, y apropiadamente conectadas por losotros mdulos del sistema.
FoxitHighlightSolo flujos de control y datos pueden pasarse entre mdulos en un sistema de programacin. Unainterface puede cumplir las siguientes cuatro nicas funciones:
FoxitHighlightTransmitir datos
FoxitHighlightentrada
FoxitHighlightRecibir datos
FoxitHighlightsalida
FoxitHighlightSer un nombre
FoxitHighlightrecibe el control
FoxitHighlightSer un nombre
FoxitHighlighttransmite el control.
Decualquiermanera,lapresenciademltiplespuntosdeentradaaunmismomdulo,puedeserunindicativodequeelmduloest llevandoacabomsdeuna funcinespecfica.Adems,esunaexcelenteoportunidadqueelprogramadorsuperpondrparcialmente el cdigo de las funciones comprendidas dentro del mismo mdulo, quedando dichas funciones acopladas porcontenido.
Demanerasimilar, lospuntosderetornoalternativosonfrecuentementetilesdentrodelespritude lossistemasnormalmenteconectados.Estosedacuandounmdulocontinuarsuejecucinenunpuntoquedependedelvalorresultantedeunadecisinrealizadaporunmdulosubordinadoinvocadopreviamente.Enuncasodemnimaconexin,elmdulosubordinadoretornarelvalorcomounparmetro,elcualdebersertesteadonuevamenteenelmdulosuperior.Sinembargo,elmdulosuperiorpuedeindicar por algn medio directamente el punto donde debe continuarse la ejecucin del programa, (un valor relativo + o direccionesapartirdelainstruccinllamadora,ounparmetroconunadireccinexplcita).
Siunsistemanoestmnimaonormalmenteconectados,entoncesalgunosdesusmdulospresentarnconexionespatolgicas.Estosignificaquealmenosunmdulotendrreferenciasexplcitasaidentificadoresdefinidosdentrodeloslmitesdeotromdulo.
1.2.Complejidaddelainterface
Lasegundadimensindelacoplamientoenlacomplejidad.Cuantomscomplejaesunaconexin,mayor acoplamiento se tiene. Un mdulo con una interface de 100 parmetros generar mayoracoplamientoqueunquesolonecesitetresparmetros.
Elsignificadode"complejidad"eseldecomplejidadentrminoshumanos,tallovistoanteriormente.
1.3.FlujodeInformacinOtroaspectoimportantedelacoplamientotienequeverconeltipodeinformacinquesetransmiteentreelmdulosuperiorysubordinado.Distinguiremostrestiposdeflujodeinformacin:
Datos
Control
Hbrido
Los datos son informacin sobre la cual una pieza de programa opera,manipula, omodifica. La informacin de control (ancuandoestrepresentadaporvariablesdedato)esaquellaquegobiernacomoserealizarnlasoperacionesomanipulacionessobrelosdatos.Diremosqueunaconexinpresentaacoplamientopordatossilasalidadedatosdelmdulosuperioresusadacomoentradadedatosdelsubordinado.Estetipodeacoplamientotambinesconocidocomodeentradasalida.
Diremos que una conexin presenta acoplamiento de control si elmdulo superior comunica al subordinado informacin quecontrolar laejecucindelmismo.Esta informacinpuedepasarsecomodatosutilizadoscomosealeso "banderas" (flags)obien 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 unacaractersticanodeseableyprescindible,quesinembargoaparecemuyfrecuentementeenlosprogramas.
Sepuedeminimizarelacoplamientosisolosetransmitendatosatravsdelasinterfacesdelsistema.Elacoplamientodecontrolabarca todas las formas de conexin que comuniquen elementos de control. Esto no solo involucra transferencia de control(direccionesobanderas), sinoquepuede involucrarelpasajededatosquecambia, regula,osincroniza laejecucindeotromdulo.
Esta forma de acoplamiento de control indirecto o secundario se conoce como coordinacin. Lacoordinacininvolucraaunmduloenelcontextoproceduraldeotro.Estopuedecomprenderseconelsiguienteejemplo:supongamosqueelmduloA llamaalmduloBsuministrndoleelementosdedatos discretos. La funcin del mdulo B es la de agrupar estos elemento de datos en un temcompuestoyretornrseloalmduloA(superior).ElmduloBenviaralmduloA,sealesobanderasindicando que necesita que se le suministre otro tem elemental, o para indicarle que le estdevolviendoel temcompuesto.EstasbanderassernutilizadasdentrodelmduloAparacoordinarsufuncionamientoysuministraraBlorequerido.
Cuandounmdulomodificaelcontenidoproceduraldeotromdulo,decimosqueexisteacoplamientohbrido.Elacoplamientohbridoesunamodificacindesentenciasintermodular.Enestecaso,paraelmdulodestinoomodificado,elacoplamientoesvistocomodecontrolentantoqueparaelmdulollamadoromodificadoresconsideradocomodedatos.
FoxitHighlightDe cualquier manera, la presencia de mltiples puntos de entrada a un mismo mdulo, puede ser un indicativo de que el mduloest llevando a cabo ms de una funcin especfica.
FoxitUnderlineComplejidad de la interface
FoxitHighlightCuanto ms compleja es una conexin,mayor acoplamiento se tiene.
FoxitUnderlineFlujo de Informacin
FoxitHighlightel tipo de informacin que se transmiteentre el mdulo superior y subordinado
FoxitUnderlineLos datos
FoxitHighlightinformacin
FoxitHighlightsobre la cual una pieza de programa opera, manipula, o modifica
FoxitUnderlineinformacin de control
FoxitHighlightes aquella que gobierna como se realizarn las operaciones o manipulacionessobre los datos.
FoxitHighlight Diremos que una conexin presenta acoplamiento por datos si la salida de datos del mdulo superior es usadacomo entrada de datos del subordinado. Este tipo de acoplamiento tambin es conocido como de entradasalida.
FoxitHighlight, la comunicacin de control es unacaracterstica no deseable y prescindible, que sin embargo aparece muy frecuentemente en los programas.
FoxitHighlightSe puede minimizar el acoplamiento si solo se transmiten datos a travs de las interfaces del sistema.
FoxitHighlightCuando un mdulo modifica el contenido procedural de otro mdulo, decimos que existe acoplamiento hbrido.
FoxitHighlight. El acoplamientohbrido es una modificacin de sentencias intermodular
Elgradodeinterdependenciaentredosmdulosvinculadosconacoplamientohbridoesmuyfuerte.Afortunadamenteesunaprcticaendecadenciayreservadacasiconexclusividadalosprogramadoresenassembler.1.4.Tiempodeligadodeconexionesintermodulares
"Ligado"o"Binding"esuntrminocomnmenteusadoenelcampodelprocesamientodedatosparareferirseaunprocesoqueresuelveofijalosvaloresdeidentificadoresdentrodeunsistema.
Elligadodevariablesavalores,omsgenricamente,deidentificadoresareferentesespecficos,puedetenerlugarendiferentesestadios o perodos en la evolucin del sistema. La historia de tiempo de un sistema puede pensarse como una lneaextendindose 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 decomputador/lenguaje/compilador/sistemaoperativo.
Deestaforma,el ligadopuedetener lugarcuandoelprogramadorescribeunasentenciaeneleditordecdigo fuente, cuando un mdulo es compilado o ensamblado, cuando el cdigo objeto (compilado oensamblado)esprocesadoporel"linkeditor"oel"linkloader"(generalmenteesteprocesoeselconocidocomo ligado en lamayora de los sistemas), cuando el cdigo "imagendememoria" es cargado en lamemoriaprincipal,yfinalmentecuandoelsistemaesejecutado.
Laimportanciadeltiempodeligadoradicaenquecuandolosvaloresdevariablesdentrodeunapiezadecdigosonfijadosmstarde,elsistemaesmsfcilmentemodificableyadaptablealcambioderequerimientos.
Veamosunejemplo:supongamosquesenosencomiendalaescrituradeunaseriedeprogramaslistadoressiendolaimpresoraautilizarenprincipiounadeltipomatricialde80columnasquefuncionaconpapelcontinode12"delargodepgina.
Alternativas:
1.Escribimoselliteral"72"entodaslasrutinasdeimpresindetodoslosprogramas.(ligadoentiempodeescritura)
2.Reemplazamosel literalporlaconstantemanifiestaLONG_PAGalaqueasignamoselvalor"72"entodoslosprogramas(ligadoentiempodecompilacin)
3.PonemoslaconstanteLONG_PAGenunarchivodeinclusinexternoalosprogramas(ligadoentiempodecompilacin)
4.NuestrolenguajenopermiteladeclaracindeconstantesporlocualdefinimosunavariableglobalLONG_PAGalaqueleasignamoselvalordeinicializacin"72"(ligadoentiempodelinkedicin)
5.DefinimosunarchivodeparmetrosdelsistemaconuncampoLONG_PAGalcualseleasignaelvalor"72".Estevaloresledojuntoconotrosparmetroscuandoelsistemaseinicia.(ligadoentiempodeejecucin)
6. Definimos en el archivo de parmetros un registro para cada terminal del sistema y personalizamos el valor del campoLONG_PAGsegnlaimpresoraquetengavinculadacadaterminal.Deestaformalasterminalesquetienenimpresorasde12"imprimen72lneasporpgina,ylasquetienenunaimpresoradeinyeccindetintaqueusanpapeloficio,imprimen80.(ligadoentiempodeejecucin)
Examinaremosahora larelacinexistenteentreel tiempode ligadoy lasconexiones intermodulares,ycomoelmismoafectaelgradodeacoplamientoentremdulos.
Nuevamente, una referencia intermodular fijada a un referente u objeto especfico en tiempo dedefinicin,tendrunacoplamientomayoraunareferenciafijadaentiempodetraslacinoposterioran.La posibilidad de compilacin independiente de un mdulo de otros facilitar el mantenimiento ymodificacin del sistema, que si debiera compilarse todos los mdulos juntos. Igualmente, si la linkedicindelosmdulosesdiferidahastaelinstanteprevioasuejecucin,laimplementacindecambiosseversimplificada.
Existeuncasoparticulardeacoplamientodemdulosderivadode laestructura lexicogrficadelprograma.Hablamosenestecasodeacoplamientoporcontenido.
Dosformasdeacoplamientoporcontenidopuedendistinguirse:
Inclusin lexicogrfica: se da cuando un mdulo est incluido lexicogrficamente en otro, y es una forma menor deacoplamiento. Losmdulos por lo general no pueden ejecutarse separadamente.Este es el caso en el que elmdulo
FoxitUnderlineTiempo de ligado de conexiones intermodulares
FoxitHighlightLigado" o "Binding" es un trmino comnmente usado en el campo del procesamiento de datos para referirse a un proceso que resuelve o fijalos valores de identificadores dentro de un sistema.
FoxitHighlightEl ligado de variables a valores, o ms genricamente, de identificadores a referentes especficos, puede tener lugar en diferentesestadios o perodos en la evolucin del sistema
FoxitUnderlineInclusin lexicogrfica:
FoxitUnderlineDos formas de acoplamiento por contenido pueden distinguirse:
FoxitHighlightLos 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 delcdigodeunmduloesteninterseccinconelotro.Afortunadamentelamayoradeloslenguajesmodernosdealtonivelnopermitenestetipodeestructuras.
En trminosdeuso,mantenimiento, ymodificacin, las consecuenciasdel acoplamientopor contenido sonpeoresque las delacoplamientodecontrol.Elacoplamientoporcontenidohacequelosmdulosnopuedanfuncionarunosinelotro.Noocurrelomismo en el acoplamiento de control, en el cual unmdulo, aunque reciba informacin de control, puede ser invocado desdediferentespuntosdelsistema.
2.ACOPLAMIENTODEENTORNOCOMN(COMMONENVIRONMENTCOUPLING)
Siemprequedosomsmdulosinteractanconunentornodedatoscomn,sedicequedichosmdulosestnenacoplamientoporentornocomn.
EjemplosdeentornocomnpuedenserreasdedatosglobalescomolaDATAdivisindelCOBOL,unarchivoendisco.
Elacoplamientodeentornocomnesuna formadeacoplamientodesegundoorden,distintode los tratadosanteriormente.Laseveridaddelacoplamientodependerde lacantidaddemdulosqueaccedensimultneamentealentornocomn.Enelcasoextremodesolodosmdulosdondeunoutilizacomoentradalosdatosgeneradosporelotrohablaremosdeunacoplamientodeentradasalida.Elpuntoesqueelacoplamientoporentornocomnnoesnecesariamentemaloydebaserevitadoatodacosta.Porelcontrarioexistenciertascircunstanciasenqueesunaopcinvlida.
3.DESACOPLAMIENTO
El concepto de acoplamiento invita a un concepto recproco: desacoplamiento. Desacoplamiento escualquiermtodosistemticootcnicaparahacermsindependientesalosmdulosdeunprograma.
Cada tipo de acoplamiento generalmente sugiere un mtodo de desacoplamiento. Por ejemplo, elacoplamientocausadoporligado,puededesacoplarsecambiandolosparmetrosapropiadostallovistoenelejemplodeelcontadordelneasdelosprogramasimpresores.
Eldesacoplamiento,desdeelpuntodevistafuncional,raravezpuederealizarse,exceptoenloscomienzosdelafasedeldiseo.
Comoreglageneral,unadisciplinadediseoquefavorezcaelacoplamientodeentradasalidayelacoplamientodecontrolporsobre el acoplamiento por contenido y el acoplamiento hbrido, y que busque limitar el alcance del acoplamiento por entornocomneselenfoquemsefectivo.
Otrastcnicasparareducirelacoplamientoson:
Convertirlasreferenciasimplcitasenexplcitas.Loquepuedeverseconmayorfacilidadesmsfcildecomprender.
Estandarizacindelasconexiones.
Usode"buffers"para loselementoscomunicadosenunaconexin.Siunmdulopuedeserdiseadodesdeelcomienzoasumiendoqueunbuffermediarcadacorrientedecomunicacin, lascuestionestemporizacin,velocidad,frecuencia,etc.,dentrodeunmdulonoafectarneldiseodeotros.
Localizacin.Utilizadoparareducirelacoplamientoporentornocomn.Consisteendividirelreacomnenregionesparaquelosmdulossolotenganaccesoaaquellosdatosquelessondesuestrictaincumbencia.
4.UNAAPLICACIN
Paraclarificarelconceptodeacoplamientoveremosunaaplicacin.Debeescribirseunprogramaquerealizarlosiguiente:
Elprogramatendrdoscorrientesdeentrada:unacarcteracarcterdesdetecladodeunaterminal,ylaotraregistroaregistrodesdeunaarchivoendisco.
FoxitUnderlineSolapamiento parcial:
FoxitHighlightsubordinado es activado en lnea dentro del contexto del mdulo superior.
FoxitHighlightes un caso extremo de acoplamiento por contenido
FoxitHighlightParte delcdigo de un mdulo est en interseccin con el otro.
FoxitHighlightEl acoplamiento por contenido hace que los mdulos no puedan funcionar uno sin el otro.
FoxitUnderlineACOPLAMIENTO DE ENTORNO COMN (COMMONENVIRONMENT COUPLING)
FoxitUnderlineDESACOPLAMIENTO
FoxitHighlightSiempre que dos o ms mdulos interactan con un entorno de datos comn, se dice que dichos mdulos estn enacoplamientopor entorno comn
FoxitHighlightDesacoplamiento escualquier mtodo sistemtico o tcnica para hacer ms independientes a los mdulos de un programa.
FoxitUnderlineUNA APLICACIN
Secomienzaleyendoloscaracteresprovenientesdeteclahastaqueserecibeelcarcter"RETURN",entoncessepasaaleerelarchivoregistroaregistrohastarecibirunregistrocon"//"ensuencabezado, locual indicaquesevuelvea leerdesdeteclado.
Elpasoanteriorserealizaiterativamente,hastaqueserecibeunasealdefindetransmisindesdelaterminal(EOT).Entoncessecontinaleyendoelarchivohastaelfinal(EOF).
LascorrientesdedatosdeambasentradasseanalizarnysepararnenpalabraslasquesepasarnalmduloexistenteProcWord,elquerealizaralgoconellas.
SecomisionaenprimerlugaralprogramadorCarlitosparaqueconfeccioneelprograma,quinrealizaelsiguientediagramadeestructura:
CuandosepresentaelproblemaalaprogramadoraNadine,ellarealizalasiguientesolucin:
Ambasestructuraspresentanlassiguientescaractersticasencomn:
Ambassonnormalmenteconectadas.Cadaunaconsistede5mdulosy4conexiones.
Lalgicadeencontrarpalabrashasidoaisladaenunmduloespecficoenamboscasos.
Sinembargoanalizaremossiambasestructuraspresentanelmismogradodeacoplamiento.Paraevaluaresto,necesitaremosmirar el tipo de informacin comunicadaentre losmdulos.Es importante notar que determinados flujos pueden comportarsecomodedatosydecontrol.PorejemplocarcterdesalidadelmduloINKEYnormalmenteserunflujodedatos,peroenelcasoespecial dequeel carcter serRETURNeste funcionar comoun flujo de control.En tales circunstanciases convenienteaefectosdelestudioconsiderarlocomodistintosflujos.
Como se aprecia en la tabla precedente podemos establecer las siguientes comparaciones: eldiagramadeCarlitostiene13flujosdecontroly6dedatos,entantoqueeldiagramadeNadinetiene9flujosdecontroly6dedatos.ObviamenteeldiagramalaestructuradeCarlitospresentaunmayorgradodeacoplamiento.
PorotroladolainterfazdelmduloFINDWORDdeCarlitosserbastantemscomplejaqueladeGETWORDdeNadinedebidoalacantidaddeparmetrosqueimplica.
Tema4Tema 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 dividimosfsicamente un sistema en piezas (particularmente en relacin con la estructura del problema) puede afectarsignificativamente la complejidad estructural del sistema resultante, as como el nmero total de referencias intermodulares.
Adaptareldiseodelsistemaalaestructuradelproblema(oestructuradelaaplicacin,odominiodelproblema)esunafilosofadediseosumamenteimportante.Amenudoencontramosqueelementosdeprocesamientodeldominiodeproblemaaltamenterelacionado,sontrasladadosencdigoaltamenteinterconectado.Lasestructurasqueagrupanelementosdelproblemaaltamenteinterrelacionados,tiendenasermodularmenteefectivas.
Imaginemos que tengamos una magnitud para medir el grado de relacin funcional existente entre pares demdulos.Entrminosdetalmedida,diremosquesistemamsmodularmenteefectivoseraquelcuyasumaderelacinfuncionalentreparesdeelementosquepertenezcanadiferentesmdulosseamnima.Entreotrascosas,estotiendeaminimizarelnmerodeconexionesintermodularesrequeridasyelacoplamientointermodular.
Estarelacinfuncionalintramodularseconocecomocohesin.
Lacohesineslamedidacualitativadecuanestrechamenterelacionadosestnloselementosinternosdeunmdulo.
Otrostrminosutilizadosfrecuentementeson"fuerzamodular","ligazn",y"funcionalidad".
Enlaprcticaunelementodeprocesamientosimpleaislado,puedeestarfuncionalmenterelacionadoendiferentesgradosaotroselementos.Como consecuencia, diferentes diseadores, con diferentes "visiones" o interpretaciones de unmismo problema, pueden obtener diferentesestructurasmodulares con diferentes niveles de cohesin y acoplamiento.A esto se suma el inconveniente de quemuchas veces es difcilevaluarelgradoderelacinfuncionaldeunelementorespectodeotro.
La cohesinmodular puede verse como el cemento que amalgama juntos a los elementos de procesamientodentrodeunmismomdulo.Eselfactormscrucialeneldiseoestructurado,yeldemayorimportanciaenundiseomodularefectivo.
Este concepto representa la tcnica principal que posee un diseador para mantener su diseo lo mssemnticamente prximo al problema real, o dominio de problema. Claramente los conceptos de cohesin yacoplamientoestnntimamenterelacionados.Unmayorgradodecohesinimplicaunomenordeacoplamiento.
Maximizarelniveldecohesinintramodularentodoelsistemaresultaenunaminimizacindelacoplamientointermodular.
Matemticamente el clculo de la relacin funcional intramodular (cohesin), involucra menos pares deelementos a los cuales debe aplicarse la medida, en comparacin con el clculo de la relacin funcionalintermodular(acoplamiento).
Ambasmedidassonexcelentesherramientasparaeldiseomodularefectivo,perodelasdoslamsimportanteyextensivaeslacohesin.Unacuestinimportanteadeterminarescomoreconocerlarelacinfuncional.Elprincipiodecohesinpuedeponerseenprcticaconlaintroduccindelaideadeunprincipioasociativo.Enladecisin de poner ciertos elementos de procesamiento en unmismomdulo, el diseador, utiliza el principio de que ciertas propiedades ocaractersticasrelacionanaloselementosquelasposeen.Estoes,eldiseadorpondrelobjetoZenelmismomduloqueXeY,porqueX,Y,yZposeenunmismapropiedad.
De esta manera, el principio asociativo es relacional, y es usualmente verificable en tales trminos (p.e. "escorrectoponerZ juntoaXeY,porque tiene lamismapropiedadqueellos")oen trminosdemiembrodeunconjunto(p.e.escorrectoponerZjuntoaXeY,puestodospertenecenalmismoconjunto").
Debetenerseenmentequelacohesinseaplicasobretodoelmdulo,esdecirsobretodoslosparesdeelementos.As,siZestrelacionadoaXeY,peronoaA,B,yC,loscualespertenecenalmismomdulo,lainclusindeZenelmdulo,redundarenbajacohesindelmismo.
Intencionalmentesehausadoeltrmino"elementodeprocesamiento"enestadiscusin,enlugardetrminosmscomunescomoinstruccino
FoxitUnderlineTCNICAS PARA COHESIN
FoxitUnderline Relacin funcional
FoxitHighlightEsta relacin funcional intramodular se conoce como cohesin.
FoxitHighlightImaginemos que tengamos una magnitud para medir el grado de relacin funcional existente entre pares demdulos. En trminos de tal medida, diremos que sistema ms modularmente efectivo ser aquel cuya suma derelacin funcional entre pares de elementos que pertenezcan a diferentes mdulos sea mnima. Entre otras cosas,esto tiende a minimizar el nmero de conexiones intermodulares requeridas y el acoplamiento intermodular.
FoxitUnderlineLa cohesin es la medida cualitativa de cuan estrechamente relacionados estn los elementos internos de un mdulo.
FoxitHighlightLa cohesin modular puede verse como el cemento que amalgama juntos a los elementos de procesamientodentro de un mismo mdulo. Es el factor ms crucial en el diseo estructurado, y el de mayor importancia en undiseo modular efectivo.
sentencia.Porqu:
Primero,unelementodeprocesamientopuedeseralgoquedebeserrealizadoenunmduloperoqueannohasidoreducidoacdigo.Enordendedisearsistemasaltamentemodulares,debemospoderdeterminarlacohesindemdulosquetodavanoexisten.Segundo,elementosdeprocesamientoincluyentodaslassentenciasqueaparecenenunmdulo,nosoloelprocesamientorealizadoporlasinstruccionesejecutadasdentrodedichomdulo,sinotambinlasqueresultandelainvocacindesubrutinas.
Por ejemplo, las sentencias individuales encontradas en elmduloB, el cual es invocado desde elmduloA,NO figuran dentro de la cohesin delmduloA.Sin embargo el procesamientoglobal (funcin) realizadopor la llamada almduloB, es claramenteun elementodeprocesamiento en elmdulollamadorA,yporlotantoparticipaenlacohesindelmduloA.
1.NIVELESDECOHESIN
Diferentes principios asociativos fueron desenvolvindose a travs de los aos por medio de la experimentacin,argumentostericos,ylaexperienciaprcticademuchosdiseadores.
Existensietenivelesdecohesindistinguiblesporsieteprincipiosasociativos.Estosselistanacontinuacinenordencrecientedelgradodecohesin,demenoramayorrelacinfuncional:
CohesinCasual(lapeor)
CohesinLgica(siguealapeor)
CohesinTemporal(demoderadaapobre)
CohesindeProcedimiento(moderada)
CohesindeComunicacin(moderadaabuena)
CohesinSecuencial
CohesinFuncional(lamejor)
Podemosvisualizarelgradodecohesincomounespectroquevadesdeunmximoaunmnimo.
1.1.CohesinCasual(lapeor)
Lacohesincasualocurrecuandoexistepocaoningunarelacinentreloselementosdeunmdulo.
Lacohesincasualestableceunpuntoceroenlaescaladecohesin.
Esmuydifcilencontrarmdulospuramentecasuales.Puedeaparecercomoresultadodelamodularizacindeunprogramayaescrito,enelcualelprogramadorencuentraundeterminadasecuenciadeinstruccionesqueserepitendeformaaleatoria,ydecideporlotantoagruparlasenunarutina.
Otrofactorqueinfluencimuchasveceslaconfeccindemduloscasualmentecohesivos,fuelamalaprcticadelaprogramacin estructurada, cuando los programadores mal entendan que modularizar consista en cambiar lassentenciasGOTOporllamadasasubrutinas
Finalmentediremosquesibienenlaprcticaesdifcilencontrarmduloscasualmentecohesivosensutotalidad,escomnque tenganelementoscasualmentecohesivos.Taleselcasodeoperacionesde inicializaciny terminacinquesonpuestasjuntasenunmdulosuperior.
Debemosnotarquesibienlacohesincasualnoesnecesariamenteperjudicial(dehechoespreferibleunprogramacasualmentecohesivoaunolineal),dificultalasmodificacionesymantenimientodelcdigo.
1.2.CohesinLgica(siguealapeor)
Loselementosdeunmduloestnlgicamenteasociadossipuedepensarseenelloscomopertenecientesalamismaclaselgicadefunciones,esdeciraquellasquepuedenpensarsecomojuntaslgicamente.
Porejemplo,sepuedecombinarenunmdulosimpletodosloselementosdeprocesamientoquecaenenlaclasede"entradas",queabarcatodaslasoperacionesdeentrada.
Podemostenerunmduloqueleadesdeconsolaunatarjetaconparmetrosdecontrol,registroscontransaccioneserrneasdeunarchivoencinta,registroscontransaccionesvlidasdeotroarchivoencinta,ylosregistrosmaestrosanterioresdeunarchivoendisco.Estemduloque
FoxitUnderlineNIVELES DE COHESIN
FoxitUnderlineCohesin Casual (la peor)
FoxitHighlightLa cohesin casual ocurre cuando existe poca o ninguna relacin entre los elementos de un mdulo
FoxitHighlightpunto cero
FoxitUnderlineCohesin Lgica (sigue a la peor)
FoxitHighlightLos elementos de un mdulo estn lgicamente asociados si puede pensarse en ellos como pertenecientes a la misma clase lgica de funciones,es decir aquellas que pueden pensarse como juntas lgicamente.
podrallamarse"Lecturas",yqueagrupatodaslasoperacionesdeentrada,eslgicamentecohesivo.
Lacohesin lgicaesms fuerteque lacasual,debidoaque representaunmnimodeasociacinentreelproblemay loselementosdelmdulo.Sinembargopodemosverqueunmdulolgicamentecohesivonorealizaunafuncinespecfica,sinoqueabarcaunaseriedefunciones.
1.3.CohesinTemporal(demoderadaapobre)
Temporalcohesinsignificaquetodosloselementosdeprocesamientodeunacoleccinocurrenenelmismoperododetiempodurantelaejecucindelsistema.Debidoaquedichoprocesamientodebeopuederealizarseen el mismo perodo de tiempo, los elementos asociados temporalmente pueden combinarse en un nicomduloquelosejecutealamismavez.Existeunarelacinentrecohesinlgicaylatemporal,sinembargo,laprimeranoimplicaunarelacindetiempoentreloselementosdeprocesamiento.
Lacohesintemporalesmsfuertequelacohesinlgica,yaqueimplicaunnivelderelacinms:elfactortiempo.Sinembargolacohesintemporalanespobreenniveldecohesinyacarreainconvenientesenelmantenimientoymodificacindelsistema.
Unejemplocomndecohesintemporalsonlasrutinasdeinicializacin(startup)comnmenteencontradasenlamayoradelosprogramas,dondeseleenparmetrosdecontrol,seabrenarchivos,seinicializanvariablescontadoresyacumuladores,etc.
1.4.CohesindeProcedimiento(moderada)
Elementosdeprocesamientorelacionadosproceduralmentesonelementosdeunaunidadproceduralcomn.Estossecombinanenunmdulodecohesinprocedural.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 unadeterminadasecuenciadeejecucindelospasos.Aligualqueenloscasosanteriores,paradecirqueunmdulotienesolocohesinprocedural,los elementosdeprocesamientodeben ser elementosde alguna iteracin, decisin, o secuencia, peronodeben estar vinculados conningnprincipioasociativodeordensuperior.
Lacohesinproceduralasociaelementosdeprocesamientosobrelabasedesusrelacionesalgortmicasoprocedurales.Esteniveldecohesincomnmentesetienecomoresultadodederivarunaestructuramodularapartirdemodelosdeprocedimientocomoserdiagramasdeflujo,odiagramasNassiShneiderman.
1.5.CohesindeComunicacin(moderadaabuena)
Ningunodelosnivelesdecohesindiscutidospreviamenteestfuertementevinculadoaunaestructuradeproblemaenparticular.CohesindeComunicacineselmenornivelenelcualencontramosunarelacinentreloselementosde procesamiento que es intrnsecamente dependiente del problema. Decir que un conjunto de elementos deprocesamiento estn vinculados por comunicacin significa que todos los elementos operan sobre el mismoconjuntodedatosdeentradaodesalida.
En el diagrama de la figura podemos observar que los elementos de procesamiento 1, 2, y 3, estn asociados por comunicacin sobre lacorrientededatosdeentrada,entantoque2,3,y4sevinculanporlosdatosdesalida.
Los diagramas de flujo de datos (DFD) son un medio objetivo para determinar si los elementos en un mdulo estn asociados porcomunicacin.Lasrelacionesporcomunicacinpresentanungradodecohesinaceptable.
Lacohesinporcomunicacinescomnenaplicacionescomerciales.Ejemplostpicospuedenser:
Unmduloqueimprimaograbeunarchivodetransacciones
Unmduloquerecibadatosdediferentesfuentes,ylostransformeyensambleenunalneadeimpresin.
FoxitUnderlineCohesin Temporal (de moderada a pobre)
FoxitHighlightTemporal cohesin significa que todos los elementos de procesamiento de una coleccin ocurren en el mismoperodo de tiempo durante la ejecucin del sistema.
FoxitUnderlineCohesin de Procedimiento (moderada)
FoxitHighlightElementos de procesamiento relacionados proceduralmente son elementos de una unidad procedural comn. Estos se combinan en un mdulode cohesin procedural. Una unidad procedural comn puede ser un proceso de iteracin (loop) y de decisin, o una secuencia linear de pasos
FoxitUnderlineCohesin de Comunicacin (moderada a buena)
FoxitHighlightDecir que un conjunto de elementos deprocesamiento estn vinculados por comunicacin significa que todos los elementos operan sobre el mismoconjunto de datos de entrada o de salida.
1.6.CohesinSecuencial
Elsiguienteniveldecohesinenlaescalaeslaasociacinsecuencial.Enella,losdatosdesalida(resultados)deunelementodeprocesamientosirvencomodatosdeentradaalsiguienteelementodeprocesamiento.Entrminosdeundiagramadeflujodedatosdeunproblema,lacohesinsecuencialcombinaunacadenalinealdesucesivastransformacionesdedatos.Esteesclaramenteunprincipioasociativorelacionadoconeldominiodelproblema.
1.7.CohesinFuncional(lamejor)
En el lmite superior del espectro de relacin funcional encontramos la cohesin funcional. En unmdulo completamente funcional, cadaelementodeprocesamiento,esparteintegralde,yesencialpara,larealizacindeunafuncinsimple.Entrminosprcticospodemosdecirquecohesinfuncionalesaquellaquenoessecuencial,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 cuadradaciertamenteseraltamentecohesivo,yprobablemente,completamentefuncional.Esimprobablequehayaelementossuperfluosmsalldelosabsolutamenteesencialespararealizarlafuncinmatemtica,yesimprobablequeelementosdeprocesamientopuedanseragregadossinalterarelclculodealgunaforma.Encontrasteunmduloquecalculerazcuadradaycoseno,esimprobablequeseaenteramentefuncional(debenrealizarsedosfuncionesambiguas).
Enadicinaestosejemplosmatemticosobvios,usualmentepodemosreconocermdulosfuncionalesquesonelementalesennaturaleza.Unmdulo llamadoLEERREGISTROMAESTRO,oTRATARTRANSTIPO3, presumiblemente sern funcionalmente cohesivos, en cambioTRATARTODASTRANSpresumiblementerealizarmsdeunafuncinyserlgicamentecohesivo.
2.CRITERIOSPARAESTABLECERELGRADODECOHESIN
Unatcnicatilparadeterminarsiunmduloestacotadofuncionalmenteesescribirunafrasequedescribalafuncin(propsito)delmduloyluegoexaminardichafrase.Puedehacerselasiguienteprueba:
1.Silafraseresultaserunasentenciacompuesta,contieneunacoma,ocontienemsdeunverbo,probablementeelmdulorealizamsdeunafuncinportanto,probablementetienevinculacinsecuencialodecomunicacin.
2.Si lafrasecontienepalabrasrelativasal tiempo, 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 acotadolgicamente.Porejemploeditartodoslosdatostieneunavinculacinlgicaeditarsentenciafuentepuedetenervinculacinfuncional.
4.Palabrastalescomo"inicializar","limpiar",etc.,implicanvinculacintemporal.
Losmdulosacotadosfuncionalmentesiempresepuedendescribirenfuncindesuselementosusandounasentenciacompuesta. Pero si no se puede evitar el lenguaje anterior, siendo an una descripcin completa de la funcin delmdulo,entoncesprobablementeelmdulonoestacotadofuncionalmente.
Esimportantenotarquenoesnecesariodeterminarelnivelprecisodecohesin.Ensulugar,loimportanteesintentarconseguirunacohesinaltaysaberreconocerlacohesinbaja,deformaquesepuedamodificareldiseodelsoftwareparaquedispongadeunamayorindependenciafuncional.
3.COMPARACINDENIVELESDECOHESIN
Utilizaremos el problema representado en la siguiente figura para ilustrar una variedad de particionamientos del mismo problema,correspondienteadiferentesnivelesdecohesin.Esfcilpresentarejemplosdecohesincasualylgicaparticionandoeldiagramadeflujodedatos. Elmdulo "HacerAlgo" es un ejemplo de cohesin casual. Losmdulos "FormatearReportes" y "Editar_y_Validar" son ejemplos decohesinlgica.DebidoaqueelDFDesinherentementenoprocedural,esuntantodifcilvisualizarenlrelacionestemporalesyprocedurales.Dosposibilidadesseranlosmdulos"Comenzar"(temporal)y"SumLoop"(procedural).
CohesinsecuencialydecomunicacinesfcilmentevisibleenunDFD.Losmdulos"DoCombo"y"ObtenerMaestroVlido"sonejemplosdecohesin
FoxitUnderlineCohesin Secuencial
FoxitUnderlineCohesin Funcional (la mejor)
FoxitUnderlineEn trminos prcticos podemos decir quecohesin funcional es aquella que no es secuencial, por comunicacin, por procedimiento, temporal, lgica, o casual.
FoxitHighlightEn un mdulo completamente funcional, cadaelemento de procesamiento, es parte integral de, y esencial para, la realizacin de una funcin simple
FoxitUnderlineCRITERIOS PARA ESTABLECER EL GRADO DE COHESIN
FoxitUnderlineCOMPARACIN DE NIVELES DE COHESIN
decomunicacinysecuencialrespectivamente.
Laidentificacindecohesinfuncionalpresentaunavezmsdificultades.Enunnivelsuperficial,lacohesinfuncionalseraequivalenteaquecadatransformacindelDFDsecorrespondaconunmdulo,perounparticulararreglodeestosenunajerarquainfluencialacohesinactualdemdulos.Estosproblemaspuedencomprendersemejorconlosconceptosestratgicosintroducidosenelcaptulodedicadoamorfologasymetodologas.
HacerAlgo:cohesincasualEditar_y_Validar:cohesinlgica
FormatearReportes:Cohesinlgica
Comenzar:cohesintemporal
SumLoop:cohesinprocedural
ObtenerMaestroVlido:cohesinsecuencial
DoCombo:cohesindecomunicacin
4.MEDICINDECOHESIN
Cualquiermdulo,raravezverificaunsoloprincipioasociativo.Suselementospuedenestarrelacionadosporunamezcladelossietenivelesdecohesin.Estollevaatenerunaescalacontinuaenelgradodecohesividadmsqueunaescalaconsietepuntosdiscretos.
Dondeexistemsdeunarelacinentreunpardeelementosdeprocesamiento,seaplicaelmximonivelquealcanzan. Por esto, si un mdulo presenta cohesin lgica entre todos sus pares de elementos deprocesamiento, y a su vez presenta cohesin de comunicacin tambin entre todos dichos pares, entoncesdichomduloesconsideradocomodecohesinporcomunicacin.
Ahora,culseralacohesindedichomdulositambincontienealgnpardeelementoscompletamentenorelacionados?Enteora,deberateneralgntipodepromedioentrelacohesindecomunicacinylacasual.Parapropsitosdedepuracin,mantenimiento,ymodificacin,unmdulosecomportacomosifuera"solotanfuertecomosusvnculosmsdbiles".
El efecto sobre los costos de programacin es prximo almenor nivel de cohesin aplicable dentro delmdulo en vez delmayor nivel decohesin.
Lacohesindeunmduloesaproximadaalnivelmsaltodecohesinqueesaplicableatodosloselementosdeprocesamientodentrodelmdulo.
Unmdulo puede consistir de varias funciones completas relacionadas lgicamente. Esto es definitivamente mscohesivoqueunmduloqueligalgicamentefragmentosdevariasfunciones.
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,enordenderealizarsolucionesdecompromisobeneficiandounaspectoencontradeotro.
Top Related