SlideShare una empresa de Scribd logo
1 de 18
Descargar para leer sin conexión
Prácticas Ingeniería del Software 3º

                            Arquitectura
                             Multicapa

                          Análisis y Diseño
                         Orientado a Objetos



                                  UNIVERSIDAD DE

                             CASTILLA-LA MANCHA
                        ES de Informática de Ciudad Real
1
Arquitectura Multicapa

    Idea:
    –   Cada capa compone un subsistema en el que se ubican
        clases con responsabilidades propias
    Objetivos
    –   Fomentar la reutilización del Software gracias a la
        encapsulación y la herencia
    –   Para ello resulta imprescindible no acoplar clases, creando
        una arquitectura del sistema apropiada
    –   Es interesante hacer abstracciones de las distintas
        funcionalidades o responsabilidades del sistema
        agrupándolas en capas.
            Se obtendrán clases que serán independientes del resto, con lo
            que se podrán reutilizar fácilmente.




2
Arquitectura Multicapa (II)

    Beneficios (Larman, 1998):
    –   Aislamiento de la lógica de la aplicación en
        componentes separados reutilizables en otras
        aplicaciones.
    –   Distribución de capas en diferentes máquinas o
        procesos, lo que puede mejorar el rendimiento,
        aumentar la coordinación y la compartición de
        información entre cliente y servidor.
    –   Dedicación de recursos a cada una de las capas
        y posibilidad de desarrollarlas en paralelo.



3
Arquitectura Multicapa (III)

    Ejemplo:
           Interfaz            LógicaDominio




                                Persistencia




4
Arquitectura Multicapa (IV)

    Capas y Componentes de cada capa
    –   Presentación o Interfaz
          Frames, cuadros de diálogo, Páginas Web, ...
    –   Lógica de Dominio
          Todas los paquetes y clases relacionados con las reglas
          del negocio.
    –   Persistencia
          Todas los paquetes y clases relacionados con la forma de
          almacenar los datos y los sistemas gestores de bases de
          datos.




5
Arquitectura Multicapa (V)

    Relaciones entre capas
    –   Se agrupan los componentes en paquetes que
        suelen tener una relación de dependencia entre
        ellos:
          Dentro de un paquete hay elementos que necesitan de los
          elementos del otro paquete.
    –   Los elementos de Presentación necesitan a los de
        Lógica de Dominio para funcionar
          Recogen/muestran información de/a los usuarios
          Algunos objetos de la capa de presentación necesitan
          conocer a algunos de la capa de lógica de dominio, pero
          no al revés   Los objetos del dominio no deben depender
          de la presentación


6
Arquitectura Multicapa (VI)

    –   Los de Lógica de Dominio necesitan a los de
        Persistencia para funcionar y éstos a los de
        Lógica de Dominio.
          Los objetos del dominio querrán almacenar datos pero
          necesitan conocer a objetos de la capa de persistencia.
          Pero será necesario que los de persistencia conozcan el
          estado de los de dominio, por lo que la relación de
          dependencia es mutua
          Es poco deseable que los componentes de la lógica del
          dominio dependan de alguien, y menos de la
          Presentación porque será necesario que funcionen con
          cualquier tipo de pantalla.



7
Arquitectura Multicapa (VII)

    –   Dentro de cada uno se pueden establecer
        diferentes subsistemas o subcapas que pueden
        encerrar diferentes funcionalidades.
             Interfaz             LógicaDominio


                                Bancos        Cuentas




                                    Persistencia




8
Arquitectura Multicapa (VIII)

    Operaciones Persistencia (CRUD)
    –   Create, se utilizan para desmaterializar
           Operación Insert en BB.DD relacionales
    –   Read, se utilizan para materializar
           Operación Select en BB.DD relacionales
    –   Update, se utilizan para actualizar el estado de una
        base de datos
           Operación Update en BB.DD relacionales
    –   Delete, Se utilizan para eliminar registros de la
        base de datos
           Operación Delete en BB.DD relacionales


9
Arquitectura Multicapa (IX)

     –   Proceso de Materialización

     :Objeto1            insert

                      Desmaterializar

                                        BB.DD
                      Materializar
         :Objeto2         select




10
Arquitectura Multicapa (X)

     Problema
     –   El principal problema es el acoplamiento entre las
         clases de distintas capas
     Solución
     –   Aplicando patrones de diseño
           Para construir la base de datos del sistema a partir del
           diagrama de clases (ej. Patrón 1C1T)
           Para acceder a la BB.DD (ej. Patrón Agente / Broker)
           Para sincronizar el interfaz de usuario con lo que pasa en
           la capa de aplicación (ej. Patrón Observador)




11
Patrón 1C1T

     Consiste en que cada clase del diagrama de
     clase se va a convertir en una tabla relacional.
     –   Las relaciones de herencia se transforman en
         restricciones de clave 1:1
     –   Las asociaciones de agregación se traducen en
         relaciones de clave externa cuya cardinalidad
         depende de la multiplicidad de la asociación o
         agregación.




12
Patrón Agente o Broker

     Un Agente o Broker
     –   es una clase que se encarga de dar acceso a la
         base de datos a los objetos de la capa de dominio,
         de manera que se consigue un cierto
         desacoplamiento de éstos.
     –   Es la única clase que tiene un conocimiento directo
         de la base de datos, ofreciendo una interfaz con las
         aplicaciones CRUD.




13
Patrón Agente o Broker (I)

     Un Agente o Broker




14
Patrón Agente o Broker (I)
     Un Agente o Broker. Patrón Singleton:
         package persistencia;
         import java.sql.*;

         public class Agente {
          protected static Agente mInstancia=null;
          protected Connection mBD;

          protected Agente() throws Exception {
            Class.forName(quot;sun.jdbc.odbc.JdbcOdbcDriverquot;);
            String url=quot;jdbc:odbc.JdbcOdbcDriverquot;;
            mBD=DriverManager.getConnection(url);
         }
          public static Agente getAgente() throws Exception {
           if (mInstancia==null) {
             mInstancia=new Agente();
           }
           return mInstancia;
         }
         …..
15
Patrón Modelo- Vista- Controlador

     MVC
     –   Permite desacoplar la interfaz de usuario de la
         lógica de dominio
     –   Resuelve el problema de sincronización entre
         objetos que trabajan sobre los mismos datos.
     –   Se crea una clase intermedia que es conocida por
         la clase de dominio y que conoce a los distintos
         interfaces. Cuando se producen cambios en la
         instancia de la clase de dominio los notifica a la
         clase de interfaz, quedando una vista consistente
         para todos los que estén usando esa clase.

16
Patrón Modelo- Vista- Controlador

     MVC: Patrón Observador




17
Problemas

     1.   Estudia algunas ventajas y desventajas de
          separar un diseño en capas.
     2.   Plantea un ejemplo de sistema Multicapa,
          identificando algunos componentes por cada
          capa.
     3.   Investiga más sobre los patrones descritos en
          las transparencias.
     4.   Modifica el ejemplo multicapa que has creado
          con los patrones.
     5.   Implementa ese ejemplo en un lenguaje OO
18

Más contenido relacionado

La actualidad más candente

Arquitectura 3 Capas
Arquitectura 3 CapasArquitectura 3 Capas
Arquitectura 3 CapasFani Calle
 
1.2 arquitectura en 2 capas
1.2 arquitectura en 2 capas1.2 arquitectura en 2 capas
1.2 arquitectura en 2 capasEsbeyiz
 
Arquitectura tres capas, NET
Arquitectura tres capas, NETArquitectura tres capas, NET
Arquitectura tres capas, NETUAE
 
cliente servidor de 3 niveles
cliente servidor de 3 nivelescliente servidor de 3 niveles
cliente servidor de 3 nivelesLupitha Mendoza
 
El modelo jerárquico de 3 capas de
El modelo jerárquico de 3 capas deEl modelo jerárquico de 3 capas de
El modelo jerárquico de 3 capas deJonathan Narvaez
 
Aplicaciones Distribuidas
Aplicaciones DistribuidasAplicaciones Distribuidas
Aplicaciones DistribuidasSorey García
 
A charla12 arq.3-capas
A charla12 arq.3-capasA charla12 arq.3-capas
A charla12 arq.3-capashome
 
Arquitectura de sistemas
Arquitectura de sistemasArquitectura de sistemas
Arquitectura de sistemasTensor
 
Modelo de computacion distribuida
Modelo de computacion distribuidaModelo de computacion distribuida
Modelo de computacion distribuidaFabian Ortiz
 
Arquitectura de objetos distribuidos 1
Arquitectura de objetos distribuidos 1Arquitectura de objetos distribuidos 1
Arquitectura de objetos distribuidos 1Javier Rubiano Quiroga
 
arquitectura de desarrollo web
 arquitectura de desarrollo web  arquitectura de desarrollo web
arquitectura de desarrollo web jenifer moreno
 
Diseño de software en arquitectura cliente servidor
Diseño de software en arquitectura cliente   servidorDiseño de software en arquitectura cliente   servidor
Diseño de software en arquitectura cliente servidorCintia Cadena
 
Arquitectura Cliente/ servidor
Arquitectura Cliente/ servidorArquitectura Cliente/ servidor
Arquitectura Cliente/ servidorJorge Luis Arcaya
 
Arquitectura en Capas
Arquitectura en CapasArquitectura en Capas
Arquitectura en CapasHelenSaravia
 

La actualidad más candente (20)

Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
 
Estructura Multicapa
Estructura MulticapaEstructura Multicapa
Estructura Multicapa
 
Arquitectura 3 Capas
Arquitectura 3 CapasArquitectura 3 Capas
Arquitectura 3 Capas
 
1.2 arquitectura en 2 capas
1.2 arquitectura en 2 capas1.2 arquitectura en 2 capas
1.2 arquitectura en 2 capas
 
Programacion por capas
Programacion por capasProgramacion por capas
Programacion por capas
 
Arquitectura tres capas, NET
Arquitectura tres capas, NETArquitectura tres capas, NET
Arquitectura tres capas, NET
 
cliente servidor de 3 niveles
cliente servidor de 3 nivelescliente servidor de 3 niveles
cliente servidor de 3 niveles
 
El modelo jerárquico de 3 capas de
El modelo jerárquico de 3 capas deEl modelo jerárquico de 3 capas de
El modelo jerárquico de 3 capas de
 
Aplicaciones Distribuidas
Aplicaciones DistribuidasAplicaciones Distribuidas
Aplicaciones Distribuidas
 
Arquitectura en capas
Arquitectura en capasArquitectura en capas
Arquitectura en capas
 
A charla12 arq.3-capas
A charla12 arq.3-capasA charla12 arq.3-capas
A charla12 arq.3-capas
 
Arquitectura de sistemas
Arquitectura de sistemasArquitectura de sistemas
Arquitectura de sistemas
 
Modelo de computacion distribuida
Modelo de computacion distribuidaModelo de computacion distribuida
Modelo de computacion distribuida
 
Arquitectura de aplicaciones
Arquitectura de aplicacionesArquitectura de aplicaciones
Arquitectura de aplicaciones
 
Arquitectura de objetos distribuidos 1
Arquitectura de objetos distribuidos 1Arquitectura de objetos distribuidos 1
Arquitectura de objetos distribuidos 1
 
arquitectura de desarrollo web
 arquitectura de desarrollo web  arquitectura de desarrollo web
arquitectura de desarrollo web
 
Diseño de software en arquitectura cliente servidor
Diseño de software en arquitectura cliente   servidorDiseño de software en arquitectura cliente   servidor
Diseño de software en arquitectura cliente servidor
 
Arquitectura Cliente/ servidor
Arquitectura Cliente/ servidorArquitectura Cliente/ servidor
Arquitectura Cliente/ servidor
 
Cliente/Servidor
Cliente/ServidorCliente/Servidor
Cliente/Servidor
 
Arquitectura en Capas
Arquitectura en CapasArquitectura en Capas
Arquitectura en Capas
 

Similar a Lab Tr5 Multicapa

Disenio de aplicaciones en capas
Disenio de aplicaciones en capasDisenio de aplicaciones en capas
Disenio de aplicaciones en capasKevin Barja
 
Arquitec a13
Arquitec a13Arquitec a13
Arquitec a13xavazquez
 
Aplicaciones n capas en visual.net
Aplicaciones n capas en visual.netAplicaciones n capas en visual.net
Aplicaciones n capas en visual.netLisbeth Ocaña Bueno
 
Accediendo a una base de datos de MySQL con Entity Framework Core desde ASP ....
Accediendo a una base de datos de MySQL con Entity Framework Core desde ASP ....Accediendo a una base de datos de MySQL con Entity Framework Core desde ASP ....
Accediendo a una base de datos de MySQL con Entity Framework Core desde ASP ....Luis Beltran
 
FMK Capa de Presentacion
FMK Capa de PresentacionFMK Capa de Presentacion
FMK Capa de Presentacionkaolong
 
Construcción de Software (Patrones)
Construcción de Software (Patrones)Construcción de Software (Patrones)
Construcción de Software (Patrones)sandyx17
 
Programación en capass
Programación en capassProgramación en capass
Programación en capassPatricia Reyna
 
ASP.NET MVC (2011)
ASP.NET MVC (2011)ASP.NET MVC (2011)
ASP.NET MVC (2011)wildtango
 
BASE DE DATOS 2
BASE DE DATOS 2BASE DE DATOS 2
BASE DE DATOS 2williamesa
 
diseno Componente3.ppt
diseno Componente3.pptdiseno Componente3.ppt
diseno Componente3.pptrafael405074
 
Cliente servidoryj
Cliente servidoryjCliente servidoryj
Cliente servidoryjyoshimaryj
 
7-Unidad 2: Diseños de Vista-2.3 Introducción Web Services-Desarrollo Ejemplos
7-Unidad 2: Diseños de Vista-2.3 Introducción Web Services-Desarrollo Ejemplos 7-Unidad 2: Diseños de Vista-2.3 Introducción Web Services-Desarrollo Ejemplos
7-Unidad 2: Diseños de Vista-2.3 Introducción Web Services-Desarrollo Ejemplos Luis Fernando Aguas Bucheli
 
Programacion por capas
Programacion por capasProgramacion por capas
Programacion por capasJosue Lopez
 
Patrones de diseño II
Patrones de diseño IIPatrones de diseño II
Patrones de diseño IIkaolong
 

Similar a Lab Tr5 Multicapa (20)

Disenio de aplicaciones en capas
Disenio de aplicaciones en capasDisenio de aplicaciones en capas
Disenio de aplicaciones en capas
 
Estilos Arquitectonicos-Capas
Estilos Arquitectonicos-CapasEstilos Arquitectonicos-Capas
Estilos Arquitectonicos-Capas
 
APLICACIONES N-CAPAS EN VISUAL NET
APLICACIONES N-CAPAS EN VISUAL NETAPLICACIONES N-CAPAS EN VISUAL NET
APLICACIONES N-CAPAS EN VISUAL NET
 
3-Unidad 1. Arquitectura de Diseño
3-Unidad 1. Arquitectura de Diseño3-Unidad 1. Arquitectura de Diseño
3-Unidad 1. Arquitectura de Diseño
 
Arquitec a13
Arquitec a13Arquitec a13
Arquitec a13
 
Aplicaciones n capas en visual.net
Aplicaciones n capas en visual.netAplicaciones n capas en visual.net
Aplicaciones n capas en visual.net
 
N-CAPAS EN VISUAL NET
N-CAPAS EN VISUAL NETN-CAPAS EN VISUAL NET
N-CAPAS EN VISUAL NET
 
Accediendo a una base de datos de MySQL con Entity Framework Core desde ASP ....
Accediendo a una base de datos de MySQL con Entity Framework Core desde ASP ....Accediendo a una base de datos de MySQL con Entity Framework Core desde ASP ....
Accediendo a una base de datos de MySQL con Entity Framework Core desde ASP ....
 
FMK Capa de Presentacion
FMK Capa de PresentacionFMK Capa de Presentacion
FMK Capa de Presentacion
 
(25.03) RUN 09 - Sesiones Desarrollo - SI 2.0
(25.03) RUN 09 - Sesiones Desarrollo - SI 2.0(25.03) RUN 09 - Sesiones Desarrollo - SI 2.0
(25.03) RUN 09 - Sesiones Desarrollo - SI 2.0
 
Construcción de Software (Patrones)
Construcción de Software (Patrones)Construcción de Software (Patrones)
Construcción de Software (Patrones)
 
Programación en capass
Programación en capassProgramación en capass
Programación en capass
 
Clase002
Clase002Clase002
Clase002
 
ASP.NET MVC (2011)
ASP.NET MVC (2011)ASP.NET MVC (2011)
ASP.NET MVC (2011)
 
BASE DE DATOS 2
BASE DE DATOS 2BASE DE DATOS 2
BASE DE DATOS 2
 
diseno Componente3.ppt
diseno Componente3.pptdiseno Componente3.ppt
diseno Componente3.ppt
 
Cliente servidoryj
Cliente servidoryjCliente servidoryj
Cliente servidoryj
 
7-Unidad 2: Diseños de Vista-2.3 Introducción Web Services-Desarrollo Ejemplos
7-Unidad 2: Diseños de Vista-2.3 Introducción Web Services-Desarrollo Ejemplos 7-Unidad 2: Diseños de Vista-2.3 Introducción Web Services-Desarrollo Ejemplos
7-Unidad 2: Diseños de Vista-2.3 Introducción Web Services-Desarrollo Ejemplos
 
Programacion por capas
Programacion por capasProgramacion por capas
Programacion por capas
 
Patrones de diseño II
Patrones de diseño IIPatrones de diseño II
Patrones de diseño II
 

Más de Francisco Godoy

Unidad I Introduccion Finanzas
Unidad I Introduccion FinanzasUnidad I Introduccion Finanzas
Unidad I Introduccion FinanzasFrancisco Godoy
 
Unidad I Valor De Las Personas En La OrganizacióN
Unidad I   Valor De Las Personas En La OrganizacióNUnidad I   Valor De Las Personas En La OrganizacióN
Unidad I Valor De Las Personas En La OrganizacióNFrancisco Godoy
 
Unidad 6 Evaluacion De Resultados
Unidad 6  Evaluacion De ResultadosUnidad 6  Evaluacion De Resultados
Unidad 6 Evaluacion De ResultadosFrancisco Godoy
 
Unidad 5 Implementacion De La Estrategia
Unidad 5  Implementacion De La EstrategiaUnidad 5  Implementacion De La Estrategia
Unidad 5 Implementacion De La EstrategiaFrancisco Godoy
 
Unidad 2 Mision Y Vision
Unidad 2   Mision Y VisionUnidad 2   Mision Y Vision
Unidad 2 Mision Y VisionFrancisco Godoy
 
Unidad 3 Determinar Objetivos
Unidad 3  Determinar ObjetivosUnidad 3  Determinar Objetivos
Unidad 3 Determinar ObjetivosFrancisco Godoy
 
Reclutamiento De Personal
Reclutamiento De PersonalReclutamiento De Personal
Reclutamiento De PersonalFrancisco Godoy
 
Presen Clases Bdd Unidad 4
Presen Clases Bdd Unidad 4Presen Clases Bdd Unidad 4
Presen Clases Bdd Unidad 4Francisco Godoy
 
Presen Clases Bdd Unidad 2
Presen Clases Bdd Unidad 2Presen Clases Bdd Unidad 2
Presen Clases Bdd Unidad 2Francisco Godoy
 
Presen Clases Bdd Unidad 3
Presen Clases Bdd Unidad 3Presen Clases Bdd Unidad 3
Presen Clases Bdd Unidad 3Francisco Godoy
 
Presen Clases Bdd Unidad 1
Presen Clases Bdd Unidad 1Presen Clases Bdd Unidad 1
Presen Clases Bdd Unidad 1Francisco Godoy
 
SeleccióN%20del%20personal
SeleccióN%20del%20personalSeleccióN%20del%20personal
SeleccióN%20del%20personalFrancisco Godoy
 

Más de Francisco Godoy (20)

Unidad I Introduccion Finanzas
Unidad I Introduccion FinanzasUnidad I Introduccion Finanzas
Unidad I Introduccion Finanzas
 
Unidad I Amortizaci N
Unidad I Amortizaci NUnidad I Amortizaci N
Unidad I Amortizaci N
 
Unidad I Valor De Las Personas En La OrganizacióN
Unidad I   Valor De Las Personas En La OrganizacióNUnidad I   Valor De Las Personas En La OrganizacióN
Unidad I Valor De Las Personas En La OrganizacióN
 
Unidad 6 Evaluacion De Resultados
Unidad 6  Evaluacion De ResultadosUnidad 6  Evaluacion De Resultados
Unidad 6 Evaluacion De Resultados
 
Unidad 5 Implementacion De La Estrategia
Unidad 5  Implementacion De La EstrategiaUnidad 5  Implementacion De La Estrategia
Unidad 5 Implementacion De La Estrategia
 
Unidad 4 Estrategia
Unidad 4  EstrategiaUnidad 4  Estrategia
Unidad 4 Estrategia
 
Unidad 2 Mision Y Vision
Unidad 2   Mision Y VisionUnidad 2   Mision Y Vision
Unidad 2 Mision Y Vision
 
Unidad 3 Determinar Objetivos
Unidad 3  Determinar ObjetivosUnidad 3  Determinar Objetivos
Unidad 3 Determinar Objetivos
 
Reclutamiento De Personal
Reclutamiento De PersonalReclutamiento De Personal
Reclutamiento De Personal
 
Presen Clases Bdd Unidad 4
Presen Clases Bdd Unidad 4Presen Clases Bdd Unidad 4
Presen Clases Bdd Unidad 4
 
Presen Clases Bdd Unidad 2
Presen Clases Bdd Unidad 2Presen Clases Bdd Unidad 2
Presen Clases Bdd Unidad 2
 
Presen Clases Bdd Unidad 3
Presen Clases Bdd Unidad 3Presen Clases Bdd Unidad 3
Presen Clases Bdd Unidad 3
 
Presen Clases Bdd Unidad 1
Presen Clases Bdd Unidad 1Presen Clases Bdd Unidad 1
Presen Clases Bdd Unidad 1
 
Mercado De Capitales
Mercado De CapitalesMercado De Capitales
Mercado De Capitales
 
El Sistema Financiero
El Sistema FinancieroEl Sistema Financiero
El Sistema Financiero
 
Caso De Uso Sia Ii
Caso De Uso Sia IiCaso De Uso Sia Ii
Caso De Uso Sia Ii
 
Anualidades Anticipadas
Anualidades AnticipadasAnualidades Anticipadas
Anualidades Anticipadas
 
Anualidades
AnualidadesAnualidades
Anualidades
 
SeleccióN%20del%20personal
SeleccióN%20del%20personalSeleccióN%20del%20personal
SeleccióN%20del%20personal
 
Uml Apoyo
Uml ApoyoUml Apoyo
Uml Apoyo
 

Último

9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 

Último (16)

9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 

Lab Tr5 Multicapa

  • 1. Prácticas Ingeniería del Software 3º Arquitectura Multicapa Análisis y Diseño Orientado a Objetos UNIVERSIDAD DE CASTILLA-LA MANCHA ES de Informática de Ciudad Real 1
  • 2. Arquitectura Multicapa Idea: – Cada capa compone un subsistema en el que se ubican clases con responsabilidades propias Objetivos – Fomentar la reutilización del Software gracias a la encapsulación y la herencia – Para ello resulta imprescindible no acoplar clases, creando una arquitectura del sistema apropiada – Es interesante hacer abstracciones de las distintas funcionalidades o responsabilidades del sistema agrupándolas en capas. Se obtendrán clases que serán independientes del resto, con lo que se podrán reutilizar fácilmente. 2
  • 3. Arquitectura Multicapa (II) Beneficios (Larman, 1998): – Aislamiento de la lógica de la aplicación en componentes separados reutilizables en otras aplicaciones. – Distribución de capas en diferentes máquinas o procesos, lo que puede mejorar el rendimiento, aumentar la coordinación y la compartición de información entre cliente y servidor. – Dedicación de recursos a cada una de las capas y posibilidad de desarrollarlas en paralelo. 3
  • 4. Arquitectura Multicapa (III) Ejemplo: Interfaz LógicaDominio Persistencia 4
  • 5. Arquitectura Multicapa (IV) Capas y Componentes de cada capa – Presentación o Interfaz Frames, cuadros de diálogo, Páginas Web, ... – Lógica de Dominio Todas los paquetes y clases relacionados con las reglas del negocio. – Persistencia Todas los paquetes y clases relacionados con la forma de almacenar los datos y los sistemas gestores de bases de datos. 5
  • 6. Arquitectura Multicapa (V) Relaciones entre capas – Se agrupan los componentes en paquetes que suelen tener una relación de dependencia entre ellos: Dentro de un paquete hay elementos que necesitan de los elementos del otro paquete. – Los elementos de Presentación necesitan a los de Lógica de Dominio para funcionar Recogen/muestran información de/a los usuarios Algunos objetos de la capa de presentación necesitan conocer a algunos de la capa de lógica de dominio, pero no al revés Los objetos del dominio no deben depender de la presentación 6
  • 7. Arquitectura Multicapa (VI) – Los de Lógica de Dominio necesitan a los de Persistencia para funcionar y éstos a los de Lógica de Dominio. Los objetos del dominio querrán almacenar datos pero necesitan conocer a objetos de la capa de persistencia. Pero será necesario que los de persistencia conozcan el estado de los de dominio, por lo que la relación de dependencia es mutua Es poco deseable que los componentes de la lógica del dominio dependan de alguien, y menos de la Presentación porque será necesario que funcionen con cualquier tipo de pantalla. 7
  • 8. Arquitectura Multicapa (VII) – Dentro de cada uno se pueden establecer diferentes subsistemas o subcapas que pueden encerrar diferentes funcionalidades. Interfaz LógicaDominio Bancos Cuentas Persistencia 8
  • 9. Arquitectura Multicapa (VIII) Operaciones Persistencia (CRUD) – Create, se utilizan para desmaterializar Operación Insert en BB.DD relacionales – Read, se utilizan para materializar Operación Select en BB.DD relacionales – Update, se utilizan para actualizar el estado de una base de datos Operación Update en BB.DD relacionales – Delete, Se utilizan para eliminar registros de la base de datos Operación Delete en BB.DD relacionales 9
  • 10. Arquitectura Multicapa (IX) – Proceso de Materialización :Objeto1 insert Desmaterializar BB.DD Materializar :Objeto2 select 10
  • 11. Arquitectura Multicapa (X) Problema – El principal problema es el acoplamiento entre las clases de distintas capas Solución – Aplicando patrones de diseño Para construir la base de datos del sistema a partir del diagrama de clases (ej. Patrón 1C1T) Para acceder a la BB.DD (ej. Patrón Agente / Broker) Para sincronizar el interfaz de usuario con lo que pasa en la capa de aplicación (ej. Patrón Observador) 11
  • 12. Patrón 1C1T Consiste en que cada clase del diagrama de clase se va a convertir en una tabla relacional. – Las relaciones de herencia se transforman en restricciones de clave 1:1 – Las asociaciones de agregación se traducen en relaciones de clave externa cuya cardinalidad depende de la multiplicidad de la asociación o agregación. 12
  • 13. Patrón Agente o Broker Un Agente o Broker – es una clase que se encarga de dar acceso a la base de datos a los objetos de la capa de dominio, de manera que se consigue un cierto desacoplamiento de éstos. – Es la única clase que tiene un conocimiento directo de la base de datos, ofreciendo una interfaz con las aplicaciones CRUD. 13
  • 14. Patrón Agente o Broker (I) Un Agente o Broker 14
  • 15. Patrón Agente o Broker (I) Un Agente o Broker. Patrón Singleton: package persistencia; import java.sql.*; public class Agente { protected static Agente mInstancia=null; protected Connection mBD; protected Agente() throws Exception { Class.forName(quot;sun.jdbc.odbc.JdbcOdbcDriverquot;); String url=quot;jdbc:odbc.JdbcOdbcDriverquot;; mBD=DriverManager.getConnection(url); } public static Agente getAgente() throws Exception { if (mInstancia==null) { mInstancia=new Agente(); } return mInstancia; } ….. 15
  • 16. Patrón Modelo- Vista- Controlador MVC – Permite desacoplar la interfaz de usuario de la lógica de dominio – Resuelve el problema de sincronización entre objetos que trabajan sobre los mismos datos. – Se crea una clase intermedia que es conocida por la clase de dominio y que conoce a los distintos interfaces. Cuando se producen cambios en la instancia de la clase de dominio los notifica a la clase de interfaz, quedando una vista consistente para todos los que estén usando esa clase. 16
  • 17. Patrón Modelo- Vista- Controlador MVC: Patrón Observador 17
  • 18. Problemas 1. Estudia algunas ventajas y desventajas de separar un diseño en capas. 2. Plantea un ejemplo de sistema Multicapa, identificando algunos componentes por cada capa. 3. Investiga más sobre los patrones descritos en las transparencias. 4. Modifica el ejemplo multicapa que has creado con los patrones. 5. Implementa ese ejemplo en un lenguaje OO 18