introducción de las herramientas de diseño estructurado

23
Lectura U2 Lectura U2 Sitio: Universidad Privada Telesup Curso: Analisis y Diseño de Sistemas de Informacion SI/06/151/TOB Libro: Lectura U2 Imprimido por: SAENZ LAZO CARLOS ENRIQUE Fecha: martes, 14 de abril de 2015, 06:55

Upload: carlos-saenz-lazo

Post on 25-Sep-2015

230 views

Category:

Documents


2 download

DESCRIPTION

Diseño estructurado

TRANSCRIPT

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