SlideShare una empresa de Scribd logo
1 de 8
Descargar para leer sin conexión
I
Modelado por descomposición
Vanessa Estefania Corredor Andrade
Fundación de Educación Superior San José.
Ingeniería de sistemas
Tecnología Orientada por Objetos y Calidad de Datos
Bogotá. D.C
II
Contenido
Modelado por descomposición........................................................................................................ III
¿Cuándo se habla de modelado por descomposición a que hacemos referencia? .................. III
¿Qué es análisis y diseño orientado a objetos y como lo aplicamos a la programación en Java?
............................................................................................................................................................ III
Patrones aplicados a Java........................................................................................................IV
Bibliografía .....................................................................................................................................VIII
III
Modelado por descomposición
¿Cuándo se habla de modelado por descomposición a que hacemos referencia?
Descompone la complejidad en partes más simples y fáciles de codificar, de manera que
cada sub-programa realiza una acción. En la POO no se descompone el problema en las
acciones que tiene que hacer el programa, sino en objetos, por lo que debemos pensar en el
posible escenario de esos objetos, cómo definir sus características y comportamiento. De
ahí que el elemento básico de esta estructura de programación no son las funciones sino los
objetos.
¿Qué es análisis y diseño orientado a objetos y como lo aplicamos a la programación
en Java?
El análisis y diseño orientado a objetos (ADOO) es un enfoque de la ingeniería de
software que modela un sistema como un grupo de objetos que interactúan entre sí. Este
enfoque representa un domino absoluto en términos de conceptos compuestos por verbos y
sustantivos, clasificados de acuerdo a su dependencia funcional. Todo sistema de
información requiere de artefactos o componentes (clases) para llevar a cabo tareas, es de
gran importancia dentro de la ingeniería de software tener un buen "análisis y diseño" para
un mejor desarrollo, que conlleva a que tan "escalable" sea un sistema de información.
En este método de análisis y diseño se crea un conjunto de modelos utilizando una
notación acordada como, por ejemplo, el lenguaje unificado de modelado (UML).
ADOO aplica técnicas de modelado de objetos para analizar los requerimientos para un
contexto (por ejemplo, un sistema de negocio, un conjunto de módulos de software) y para
diseñar una solución para mejorar los procesos involucrados.
No está restringido al diseño de programas de computadora, sino que cubre sistemas
enteros de distinto tipo. Las metodologías de análisis y diseño más modernas son "casos de
uso" guiados a través de requerimientos, diseño, implementación, pruebas, y despliegue.
El lenguaje unificado de modelado se ha vuelto el lenguaje de modelado estándar usado
en análisis y diseño orientado a objetos.
IV
Patrones aplicados a Java
Supongamos que tenemos que hacer una aplicación para mostrar los movimientos
bancarios de un cliente.
Podríamos crear una clase que tenga el método que nos permitirá recuperar los datos de
nuestro cliente. Si posteriormente tenemos que cambiar procedimiento de acceso, podemos
retocar nuestro código pero ¿cómo podemos volver atrás fácilmente? ¿cómo podemos tener
disponible los dos códigos al mismo tiempo?
Podríamos crear una clase abstracta que defina el comportamiento base y una clase
derivada con la implementación particular que necesitamos (esto es polimorfismo puro).
Es más, podemos inicialmente crear una clase derivada que nos proporcione datos de
prueba para que el resto del equipo pueda continuar trabajando sin que el acceso real este
construido.
Como en todo sistema, los datos de nuestros clientes estarán distribuidos entre el sistema
OnLine y el sistema Batch. Podemos crear una tercera clase que sea la encargada de
devolver los datos históricos.
Deberemos, en la medida de lo posible, utilizar interfaces en lugar de clases (que nos
ayudan a heredar comportamientos dejándonos la libertad futura de poder heredar código )
V
La clase que obtenga y muestre los datos, realmente tendrá que usar uno o más de uno de
estos objetos para recuperar los datos.
Los datos que retornemos los agruparemos en objetos simples (Value Objects). Los
Value Objects implementarán un interfaz marcador VO para identificarlos fácilmente. Para
que se puedan manipular indistintamente de la estructura que defina internamente cada
clase (principios de encapsulación y abstracción) los métodos retornarán un Iterator.
Supongamos que la clase cliente tiene que usar estas clases para recuperar los
listados…… podemos crear una factoría (clase especializada en crear los objetos
adecuados) para que sea una clase externa la que tenga la lógica particular de la aplicación.
Esta estructura está bien pero debemos seguir los principios básicos de asignación de
responsabilidad. La clase gestora, la factoría y el acceso a datos están altamente acoplados.
Si quisiéramos reutilizar el modelo en otra aplicación deberíamos cambiar la factoría
(podríamos volver a utilizar polimorfismo).
VI
Hay otra técnica que es más adecuada, lo que se denomina inversión del control.
Podemos hacer que la clase GestorListadoMovimientos tenga un método que permita
establecer los objetos de AccesoDatosCliente adecuados. De este modo, rompemos la
relación permanente entre la factoría y el gestor. Además, con este modelo, la extracción de
las variables particulares del interfaz Web (request y response) nunca deberían pasar del
configurador, lo que garantiza una buena portabilidad de la aplicación.
Fijaos que estamos diseñando el sistema y todavía no hemos hablado ni donde están los
datos ni el tipo de aplicación que estamos construyendo (aquí esta un poco la gracia del
modelado de negocio).
Si fuera una aplicación Web, posiblemente tuviéramos un servlet que recibiría la petición
y delegará sobre un JSP para pintar los los datos (obtenidos a través del Gestor
proporcioando por el configurador, relación que no hemos representado en el siguiente
modelo por ser obvia ).
Este servlets utilizaría el configurador para obtener un GestosListadoMovimientos con
sus objetos AccesoDatosCliente ya asignados.
Seguro que nuestro JSP recibirá una lista de VODatosCliente que tendrá que pintar (y lo
podría hacer utilizando el patrón “helper”, es decir, ayudandose de una etiqueta
personalizada).
VII
Evaluando el modelo
Debemos hacernos unas pequeñas preguntas para ver que tal llevamos el modelo.
 ¿Que debería cambiar si añadimos más campos?:Solamente VOCliente, las
clases que los generan (Acceso a datos específicos) y el Tag (de presentación)
particular.
 ¿Si fuera una aplicación no Web?:Valdría todo excepto lo particular de la
presentación.
 ¿Si los datos estuvieran más dispersos?:Crearíamos solamente más clases
derivadas de AccesoDatosCliente y cambiaríamos el configurador.
 ¿Donde conectamos a la base de datos? ¿en el servlet?:No hemos dicho todavía
si hay base de datos. Serán las clases de acceso las que deberían abrir las
comunicaciones y cerrarlas (esto cambiaría si tuviéramos necesidad de gestionar
transacciones)…. pero no el servlet (esto a más de uno le va a dar que pensar)
VIII
Bibliografía
 Upv.es. (2018). [online] Available at: http://www.upv.es/laboluz/mie1/text/C7.pdf
[Accessed 18 Mar. 2018]
 .calameo.com. (2018). Análisis de Sistemas Orientado Objetos. [online] Available at:
http://en.calameo.com/read/002366518ac42f26d0fb2 [Accessed 18 Mar. 2018].
 Mmc.geofisica.unam.mx. (2018). [online] Available at:
http://mmc.geofisica.unam.mx/cursos/femp/Herramientas/Analisis_y_Diseno_Orientado_
a_Objetos.pdf [Accessed 18 Mar. 2018].

Más contenido relacionado

La actualidad más candente

La actualidad más candente (7)

Jyoc java-cap07 clases y objetos
Jyoc java-cap07 clases y objetosJyoc java-cap07 clases y objetos
Jyoc java-cap07 clases y objetos
 
type object
type objecttype object
type object
 
Diapositiva de poo
Diapositiva de pooDiapositiva de poo
Diapositiva de poo
 
Patrones de Diseño: Prototype
Patrones de Diseño: PrototypePatrones de Diseño: Prototype
Patrones de Diseño: Prototype
 
Programacion orientada a objetos Java
Programacion orientada a objetos JavaProgramacion orientada a objetos Java
Programacion orientada a objetos Java
 
Presentacion Patrones Creacionales
Presentacion Patrones CreacionalesPresentacion Patrones Creacionales
Presentacion Patrones Creacionales
 
CUESTIONARIO SOBRE PROGRAMACIÓN RELACIONADA A OBJETOS
CUESTIONARIO SOBRE PROGRAMACIÓN RELACIONADA A OBJETOSCUESTIONARIO SOBRE PROGRAMACIÓN RELACIONADA A OBJETOS
CUESTIONARIO SOBRE PROGRAMACIÓN RELACIONADA A OBJETOS
 

Similar a Modelado por descomposición y patrones de diseño en Java

Similar a Modelado por descomposición y patrones de diseño en Java (20)

Cuestionario
CuestionarioCuestionario
Cuestionario
 
Cuestionario
CuestionarioCuestionario
Cuestionario
 
Tecnología Orientada A Objetos
Tecnología Orientada A ObjetosTecnología Orientada A Objetos
Tecnología Orientada A Objetos
 
Germán Peraferrer: Cormo Framework
Germán Peraferrer: Cormo FrameworkGermán Peraferrer: Cormo Framework
Germán Peraferrer: Cormo Framework
 
Cormo Framework
Cormo FrameworkCormo Framework
Cormo Framework
 
Patrones de arquitectura Software(Capa de Datos)
Patrones de arquitectura Software(Capa de Datos)Patrones de arquitectura Software(Capa de Datos)
Patrones de arquitectura Software(Capa de Datos)
 
Diseño o.o
Diseño o.oDiseño o.o
Diseño o.o
 
Diseño o.o
Diseño o.oDiseño o.o
Diseño o.o
 
Modelado y metodologias para aplicaciones web
Modelado y metodologias para aplicaciones webModelado y metodologias para aplicaciones web
Modelado y metodologias para aplicaciones web
 
Aplicacion mvc entity_framework_login_membership
Aplicacion mvc entity_framework_login_membershipAplicacion mvc entity_framework_login_membership
Aplicacion mvc entity_framework_login_membership
 
Tema nº 1
Tema nº 1Tema nº 1
Tema nº 1
 
Tema nº 1
Tema nº 1Tema nº 1
Tema nº 1
 
Planificando las bases de una aplicación windows phone
Planificando las bases de una aplicación windows phonePlanificando las bases de una aplicación windows phone
Planificando las bases de una aplicación windows phone
 
Modelo informático
Modelo informáticoModelo informático
Modelo informático
 
Clase numero 6
Clase numero 6Clase numero 6
Clase numero 6
 
TRABAJO DEL 20%
TRABAJO DEL 20%TRABAJO DEL 20%
TRABAJO DEL 20%
 
Exp. Ingenieria Web
Exp. Ingenieria WebExp. Ingenieria Web
Exp. Ingenieria Web
 
Tecnicas de modelado y metodologias para aplicaciones Web
Tecnicas de modelado y metodologias para aplicaciones WebTecnicas de modelado y metodologias para aplicaciones Web
Tecnicas de modelado y metodologias para aplicaciones Web
 
patrón MVC.pdf
patrón MVC.pdfpatrón MVC.pdf
patrón MVC.pdf
 
Framework .NET 3.5 06 Operativa básica del framework .net
Framework .NET 3.5 06 Operativa básica del framework .netFramework .NET 3.5 06 Operativa básica del framework .net
Framework .NET 3.5 06 Operativa básica del framework .net
 

Más de Vanessa Estefania Corredor Andrade

Comparativo Programación Orientada a Objetos y Programación Estructurada
Comparativo Programación Orientada a Objetos y Programación EstructuradaComparativo Programación Orientada a Objetos y Programación Estructurada
Comparativo Programación Orientada a Objetos y Programación EstructuradaVanessa Estefania Corredor Andrade
 
Desarrollo de un chatbot como artefacto para la resolución de inquietudes en ...
Desarrollo de un chatbot como artefacto para la resolución de inquietudes en ...Desarrollo de un chatbot como artefacto para la resolución de inquietudes en ...
Desarrollo de un chatbot como artefacto para la resolución de inquietudes en ...Vanessa Estefania Corredor Andrade
 

Más de Vanessa Estefania Corredor Andrade (20)

Problema 2 sistema de ventas
Problema 2 sistema de ventasProblema 2 sistema de ventas
Problema 2 sistema de ventas
 
Problema 1 articulos y encargos
Problema 1 articulos y encargosProblema 1 articulos y encargos
Problema 1 articulos y encargos
 
Evolución de la salud ocupacional
Evolución de la salud ocupacionalEvolución de la salud ocupacional
Evolución de la salud ocupacional
 
El futuro de la tierra está en nuestras manos
El futuro de la tierra está en nuestras manosEl futuro de la tierra está en nuestras manos
El futuro de la tierra está en nuestras manos
 
Vistas base de datos
Vistas base de datosVistas base de datos
Vistas base de datos
 
Uml de un sistema de inventarios
Uml de un sistema de inventariosUml de un sistema de inventarios
Uml de un sistema de inventarios
 
Definición de conceptos
Definición de conceptosDefinición de conceptos
Definición de conceptos
 
Taller java swing
Taller java swingTaller java swing
Taller java swing
 
Trabajo de consulta
Trabajo de consultaTrabajo de consulta
Trabajo de consulta
 
Modelado Unificado (UML)
Modelado Unificado (UML)Modelado Unificado (UML)
Modelado Unificado (UML)
 
Taller de arquitectura web
Taller de arquitectura webTaller de arquitectura web
Taller de arquitectura web
 
Tecnologia orientada por_objeto
Tecnologia orientada por_objetoTecnologia orientada por_objeto
Tecnologia orientada por_objeto
 
Terminos poo
Terminos pooTerminos poo
Terminos poo
 
Modelado por descomposición
Modelado por descomposiciónModelado por descomposición
Modelado por descomposición
 
Definición de conceptos
Definición de conceptosDefinición de conceptos
Definición de conceptos
 
Comparativo Programación Orientada a Objetos y Programación Estructurada
Comparativo Programación Orientada a Objetos y Programación EstructuradaComparativo Programación Orientada a Objetos y Programación Estructurada
Comparativo Programación Orientada a Objetos y Programación Estructurada
 
Mapas mentales servelet y jsp
Mapas mentales servelet y jspMapas mentales servelet y jsp
Mapas mentales servelet y jsp
 
Desarrollo de un chatbot como artefacto para la resolución de inquietudes en ...
Desarrollo de un chatbot como artefacto para la resolución de inquietudes en ...Desarrollo de un chatbot como artefacto para la resolución de inquietudes en ...
Desarrollo de un chatbot como artefacto para la resolución de inquietudes en ...
 
Administración de un router
Administración de un routerAdministración de un router
Administración de un router
 
Actividad 3: VLAN y ACL
Actividad 3: VLAN y ACLActividad 3: VLAN y ACL
Actividad 3: VLAN y ACL
 

Último

Procedimientos constructivos superestructura, columnas
Procedimientos constructivos superestructura, columnasProcedimientos constructivos superestructura, columnas
Procedimientos constructivos superestructura, columnasAhmedMontaoSnchez1
 
4.3 Subestaciones eléctricas tipos caracteristicas.pptx
4.3 Subestaciones eléctricas tipos caracteristicas.pptx4.3 Subestaciones eléctricas tipos caracteristicas.pptx
4.3 Subestaciones eléctricas tipos caracteristicas.pptxEfrain Yungan
 
ESTRUCTURAS EN LA SUPERVISIÓN Y RESIDENCIA DE OBRAS
ESTRUCTURAS EN LA SUPERVISIÓN Y RESIDENCIA DE OBRASESTRUCTURAS EN LA SUPERVISIÓN Y RESIDENCIA DE OBRAS
ESTRUCTURAS EN LA SUPERVISIÓN Y RESIDENCIA DE OBRASenriquezerly87
 
Topografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasTopografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasSegundo Silva Maguiña
 
Fe_C_Tratamientos termicos_uap _3_.ppt
Fe_C_Tratamientos termicos_uap   _3_.pptFe_C_Tratamientos termicos_uap   _3_.ppt
Fe_C_Tratamientos termicos_uap _3_.pptVitobailon
 
lean manufacturing and its definition for industries
lean manufacturing and its definition for industrieslean manufacturing and its definition for industries
lean manufacturing and its definition for industriesbarom
 
Revista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de ProyectosRevista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de ProyectosJeanCarlosLorenzo1
 
Electricidad y electronica industrial unidad 1
Electricidad y electronica industrial unidad 1Electricidad y electronica industrial unidad 1
Electricidad y electronica industrial unidad 1victorrodrigues972054
 
SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdfSEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdffredyflores58
 
Trabajo en altura de acuerdo a la normativa peruana
Trabajo en altura de acuerdo a la normativa peruanaTrabajo en altura de acuerdo a la normativa peruana
Trabajo en altura de acuerdo a la normativa peruana5extraviado
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Francisco Javier Mora Serrano
 
3.3 Tipos de conexiones en los transformadores trifasicos.pdf
3.3 Tipos de conexiones en los transformadores trifasicos.pdf3.3 Tipos de conexiones en los transformadores trifasicos.pdf
3.3 Tipos de conexiones en los transformadores trifasicos.pdfRicardoRomeroUrbano
 
Simbología de Soldadura, interpretacion y aplicacion en dibujo tecnico indus...
Simbología de Soldadura,  interpretacion y aplicacion en dibujo tecnico indus...Simbología de Soldadura,  interpretacion y aplicacion en dibujo tecnico indus...
Simbología de Soldadura, interpretacion y aplicacion en dibujo tecnico indus...esandoval7
 
Espontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneosEspontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneosOscarGonzalez231938
 
Edificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaEdificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaANDECE
 
Descubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundialDescubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundialyajhairatapia
 
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023ANDECE
 
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxAMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxLuisvila35
 
POBLACIONES CICLICAS Y NO CICLICAS ......
POBLACIONES CICLICAS Y NO CICLICAS ......POBLACIONES CICLICAS Y NO CICLICAS ......
POBLACIONES CICLICAS Y NO CICLICAS ......dianamontserratmayor
 

Último (20)

Procedimientos constructivos superestructura, columnas
Procedimientos constructivos superestructura, columnasProcedimientos constructivos superestructura, columnas
Procedimientos constructivos superestructura, columnas
 
4.3 Subestaciones eléctricas tipos caracteristicas.pptx
4.3 Subestaciones eléctricas tipos caracteristicas.pptx4.3 Subestaciones eléctricas tipos caracteristicas.pptx
4.3 Subestaciones eléctricas tipos caracteristicas.pptx
 
ESTRUCTURAS EN LA SUPERVISIÓN Y RESIDENCIA DE OBRAS
ESTRUCTURAS EN LA SUPERVISIÓN Y RESIDENCIA DE OBRASESTRUCTURAS EN LA SUPERVISIÓN Y RESIDENCIA DE OBRAS
ESTRUCTURAS EN LA SUPERVISIÓN Y RESIDENCIA DE OBRAS
 
Topografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasTopografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la Ingenierías
 
Fe_C_Tratamientos termicos_uap _3_.ppt
Fe_C_Tratamientos termicos_uap   _3_.pptFe_C_Tratamientos termicos_uap   _3_.ppt
Fe_C_Tratamientos termicos_uap _3_.ppt
 
lean manufacturing and its definition for industries
lean manufacturing and its definition for industrieslean manufacturing and its definition for industries
lean manufacturing and its definition for industries
 
Revista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de ProyectosRevista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de Proyectos
 
Electricidad y electronica industrial unidad 1
Electricidad y electronica industrial unidad 1Electricidad y electronica industrial unidad 1
Electricidad y electronica industrial unidad 1
 
SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdfSEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdf
 
Trabajo en altura de acuerdo a la normativa peruana
Trabajo en altura de acuerdo a la normativa peruanaTrabajo en altura de acuerdo a la normativa peruana
Trabajo en altura de acuerdo a la normativa peruana
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
 
presentación manipulación manual de cargas sunafil
presentación manipulación manual de cargas sunafilpresentación manipulación manual de cargas sunafil
presentación manipulación manual de cargas sunafil
 
3.3 Tipos de conexiones en los transformadores trifasicos.pdf
3.3 Tipos de conexiones en los transformadores trifasicos.pdf3.3 Tipos de conexiones en los transformadores trifasicos.pdf
3.3 Tipos de conexiones en los transformadores trifasicos.pdf
 
Simbología de Soldadura, interpretacion y aplicacion en dibujo tecnico indus...
Simbología de Soldadura,  interpretacion y aplicacion en dibujo tecnico indus...Simbología de Soldadura,  interpretacion y aplicacion en dibujo tecnico indus...
Simbología de Soldadura, interpretacion y aplicacion en dibujo tecnico indus...
 
Espontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneosEspontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneos
 
Edificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaEdificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes Granada
 
Descubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundialDescubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundial
 
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
 
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxAMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
 
POBLACIONES CICLICAS Y NO CICLICAS ......
POBLACIONES CICLICAS Y NO CICLICAS ......POBLACIONES CICLICAS Y NO CICLICAS ......
POBLACIONES CICLICAS Y NO CICLICAS ......
 

Modelado por descomposición y patrones de diseño en Java

  • 1. I Modelado por descomposición Vanessa Estefania Corredor Andrade Fundación de Educación Superior San José. Ingeniería de sistemas Tecnología Orientada por Objetos y Calidad de Datos Bogotá. D.C
  • 2. II Contenido Modelado por descomposición........................................................................................................ III ¿Cuándo se habla de modelado por descomposición a que hacemos referencia? .................. III ¿Qué es análisis y diseño orientado a objetos y como lo aplicamos a la programación en Java? ............................................................................................................................................................ III Patrones aplicados a Java........................................................................................................IV Bibliografía .....................................................................................................................................VIII
  • 3. III Modelado por descomposición ¿Cuándo se habla de modelado por descomposición a que hacemos referencia? Descompone la complejidad en partes más simples y fáciles de codificar, de manera que cada sub-programa realiza una acción. En la POO no se descompone el problema en las acciones que tiene que hacer el programa, sino en objetos, por lo que debemos pensar en el posible escenario de esos objetos, cómo definir sus características y comportamiento. De ahí que el elemento básico de esta estructura de programación no son las funciones sino los objetos. ¿Qué es análisis y diseño orientado a objetos y como lo aplicamos a la programación en Java? El análisis y diseño orientado a objetos (ADOO) es un enfoque de la ingeniería de software que modela un sistema como un grupo de objetos que interactúan entre sí. Este enfoque representa un domino absoluto en términos de conceptos compuestos por verbos y sustantivos, clasificados de acuerdo a su dependencia funcional. Todo sistema de información requiere de artefactos o componentes (clases) para llevar a cabo tareas, es de gran importancia dentro de la ingeniería de software tener un buen "análisis y diseño" para un mejor desarrollo, que conlleva a que tan "escalable" sea un sistema de información. En este método de análisis y diseño se crea un conjunto de modelos utilizando una notación acordada como, por ejemplo, el lenguaje unificado de modelado (UML). ADOO aplica técnicas de modelado de objetos para analizar los requerimientos para un contexto (por ejemplo, un sistema de negocio, un conjunto de módulos de software) y para diseñar una solución para mejorar los procesos involucrados. No está restringido al diseño de programas de computadora, sino que cubre sistemas enteros de distinto tipo. Las metodologías de análisis y diseño más modernas son "casos de uso" guiados a través de requerimientos, diseño, implementación, pruebas, y despliegue. El lenguaje unificado de modelado se ha vuelto el lenguaje de modelado estándar usado en análisis y diseño orientado a objetos.
  • 4. IV Patrones aplicados a Java Supongamos que tenemos que hacer una aplicación para mostrar los movimientos bancarios de un cliente. Podríamos crear una clase que tenga el método que nos permitirá recuperar los datos de nuestro cliente. Si posteriormente tenemos que cambiar procedimiento de acceso, podemos retocar nuestro código pero ¿cómo podemos volver atrás fácilmente? ¿cómo podemos tener disponible los dos códigos al mismo tiempo? Podríamos crear una clase abstracta que defina el comportamiento base y una clase derivada con la implementación particular que necesitamos (esto es polimorfismo puro). Es más, podemos inicialmente crear una clase derivada que nos proporcione datos de prueba para que el resto del equipo pueda continuar trabajando sin que el acceso real este construido. Como en todo sistema, los datos de nuestros clientes estarán distribuidos entre el sistema OnLine y el sistema Batch. Podemos crear una tercera clase que sea la encargada de devolver los datos históricos. Deberemos, en la medida de lo posible, utilizar interfaces en lugar de clases (que nos ayudan a heredar comportamientos dejándonos la libertad futura de poder heredar código )
  • 5. V La clase que obtenga y muestre los datos, realmente tendrá que usar uno o más de uno de estos objetos para recuperar los datos. Los datos que retornemos los agruparemos en objetos simples (Value Objects). Los Value Objects implementarán un interfaz marcador VO para identificarlos fácilmente. Para que se puedan manipular indistintamente de la estructura que defina internamente cada clase (principios de encapsulación y abstracción) los métodos retornarán un Iterator. Supongamos que la clase cliente tiene que usar estas clases para recuperar los listados…… podemos crear una factoría (clase especializada en crear los objetos adecuados) para que sea una clase externa la que tenga la lógica particular de la aplicación. Esta estructura está bien pero debemos seguir los principios básicos de asignación de responsabilidad. La clase gestora, la factoría y el acceso a datos están altamente acoplados. Si quisiéramos reutilizar el modelo en otra aplicación deberíamos cambiar la factoría (podríamos volver a utilizar polimorfismo).
  • 6. VI Hay otra técnica que es más adecuada, lo que se denomina inversión del control. Podemos hacer que la clase GestorListadoMovimientos tenga un método que permita establecer los objetos de AccesoDatosCliente adecuados. De este modo, rompemos la relación permanente entre la factoría y el gestor. Además, con este modelo, la extracción de las variables particulares del interfaz Web (request y response) nunca deberían pasar del configurador, lo que garantiza una buena portabilidad de la aplicación. Fijaos que estamos diseñando el sistema y todavía no hemos hablado ni donde están los datos ni el tipo de aplicación que estamos construyendo (aquí esta un poco la gracia del modelado de negocio). Si fuera una aplicación Web, posiblemente tuviéramos un servlet que recibiría la petición y delegará sobre un JSP para pintar los los datos (obtenidos a través del Gestor proporcioando por el configurador, relación que no hemos representado en el siguiente modelo por ser obvia ). Este servlets utilizaría el configurador para obtener un GestosListadoMovimientos con sus objetos AccesoDatosCliente ya asignados. Seguro que nuestro JSP recibirá una lista de VODatosCliente que tendrá que pintar (y lo podría hacer utilizando el patrón “helper”, es decir, ayudandose de una etiqueta personalizada).
  • 7. VII Evaluando el modelo Debemos hacernos unas pequeñas preguntas para ver que tal llevamos el modelo.  ¿Que debería cambiar si añadimos más campos?:Solamente VOCliente, las clases que los generan (Acceso a datos específicos) y el Tag (de presentación) particular.  ¿Si fuera una aplicación no Web?:Valdría todo excepto lo particular de la presentación.  ¿Si los datos estuvieran más dispersos?:Crearíamos solamente más clases derivadas de AccesoDatosCliente y cambiaríamos el configurador.  ¿Donde conectamos a la base de datos? ¿en el servlet?:No hemos dicho todavía si hay base de datos. Serán las clases de acceso las que deberían abrir las comunicaciones y cerrarlas (esto cambiaría si tuviéramos necesidad de gestionar transacciones)…. pero no el servlet (esto a más de uno le va a dar que pensar)
  • 8. VIII Bibliografía  Upv.es. (2018). [online] Available at: http://www.upv.es/laboluz/mie1/text/C7.pdf [Accessed 18 Mar. 2018]  .calameo.com. (2018). Análisis de Sistemas Orientado Objetos. [online] Available at: http://en.calameo.com/read/002366518ac42f26d0fb2 [Accessed 18 Mar. 2018].  Mmc.geofisica.unam.mx. (2018). [online] Available at: http://mmc.geofisica.unam.mx/cursos/femp/Herramientas/Analisis_y_Diseno_Orientado_ a_Objetos.pdf [Accessed 18 Mar. 2018].