La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Programa de Actualización Profesional Ingeniería de Sistemas - EPE Desarrollo para Entorno Web Modelo de dominio.

Presentaciones similares


Presentación del tema: "Programa de Actualización Profesional Ingeniería de Sistemas - EPE Desarrollo para Entorno Web Modelo de dominio."— Transcripción de la presentación:

1 Programa de Actualización Profesional Ingeniería de Sistemas - EPE Desarrollo para Entorno Web Modelo de dominio

2 UPC - EPE - Ingeniería de Sistemas - Programa de Actualización Profesional01/06/ Índice Modelo de dominio Domain Driven Design Test Driven Development JUnit

3 MODELO DE DOMINIO UPC - EPE - Ingeniería de Sistemas - Programa de Actualización Profesional01/06/2014 3

4 ¿Qué es un dominio? Un dominio es una esfera de conocimiento, influencia o actividad. El dominio del software es el área temática a la que el usuario aplica un programa. ¿Por qué es importante comprender el dominio? La complejidad de los proyectos de software más críticos está en la comprensión del dominio de sí mismo. UPC - EPE - Ingeniería de Sistemas - Programa de Actualización Profesional01/06/2014 4

5 ¿Qué es un modelo? Es un sistema de abstracciones que describe algunos aspectos de un dominio y se puede utilizar para resolver problemas relacionados con ese dominio. Un modelo es una simplificación. Un modelo es una interpretación de la realidad. Los modelos involucran el mundo físico y también entidades intangibles. UPC - EPE - Ingeniería de Sistemas - Programa de Actualización Profesional01/06/2014 5

6 Modelo de dominio El Modelo de Dominio es la representación de los conceptos de importancia en el área de la aplicación del software, así como de las relaciones entre estos. El Modelo de Dominio no contiene conceptos propios de un sistema de software sino de la propia realidad física. UPC - EPE - Ingeniería de Sistemas - Programa de Actualización Profesional01/06/2014 6

7 Modelo de dominio UPC - EPE - Ingeniería de Sistemas - Programa de Actualización Profesional01/06/2014 7

8 Modelo de dominio Los modelos de dominio pueden utilizarse para capturar y expresar el entendimiento ganado en un área bajo análisis. Similares a los mapas mentales utilizados en el aprendizaje, el modelo de dominio es utilizado por el equipo de desarrollo como un medio para comprender el sector industrial o de negocios al cual el sistema va a servir. UPC - EPE - Ingeniería de Sistemas - Programa de Actualización Profesional01/06/2014 8

9 Construcción de un modelo de dominio Se construyen como parte del proceso de identificación de requisitos ya sea en reuniones con el cliente o como parte de un proceso de aprendizaje en el área de negocio. Sirve para capturar el conocimiento de un área de negocios, ha de ser desarrollado con fuerte participación del cliente y de expertos en el área. UPC - EPE - Ingeniería de Sistemas - Programa de Actualización Profesional01/06/2014 9

10 Ejemplo de un modelo de dominio UPC - EPE - Ingeniería de Sistemas - Programa de Actualización Profesional01/06/

11 Ejemplo de un modelo de dominio UPC - EPE - Ingeniería de Sistemas - Programa de Actualización Profesional01/06/

12 DOMAIN DRIVEN DESIGN UPC - EPE - Ingeniería de Sistemas - Programa de Actualización Profesional01/06/

13 Domain Driven Design Domain Driven Design (DDD) es un método de diseño creado para construir aplicaciones basadas en un modelo de dominio. DDD provee: Mejores prácticas Patrones Recomendaciones, para la construcción de modelos de dominio complejos. UPC - EPE - Ingeniería de Sistemas - Programa de Actualización Profesional01/06/

14 Domain Driven Design La comunidad de desarrollo de software reconoce ampliamente que el modelo de dominio es fundamental para el diseño de software. A través de modelos de dominio, desarrolladores de software son capaces de expresar una gran funcionalidad y traducirlo en una aplicación de software que sirva realmente a las necesidades de sus usuarios. UPC - EPE - Ingeniería de Sistemas - Programa de Actualización Profesional01/06/

15 Domain Driven Design Pero a pesar de su evidente importancia, hay pocos recursos prácticos que explican cómo incorporar el modelado de dominio eficaz en el proceso de desarrollo de software. DDD cubre esa necesidad. UPC - EPE - Ingeniería de Sistemas - Programa de Actualización Profesional01/06/

16 DDD - Ubiquitous language UPC - EPE - Ingeniería de Sistemas - Programa de Actualización Profesional01/06/

17 DDD – Arquitectura en capas UPC - EPE - Ingeniería de Sistemas - Programa de Actualización Profesional01/06/

18 DDD – Arquitectura en capas Domain Layer En esta capa reside el corazón del software: reglas y lógica de negocio. Se mantiene el estado de las entidades de negocio y su conducta. La persistencia se define en la capa de infraestructura. Patrones en esta capa: Entities, Value Objects, Services, Repositories y Factories. UPC - EPE - Ingeniería de Sistemas - Programa de Actualización Profesional01/06/

19 TEST DRIVEN DEVELOPMENT UPC - EPE - Ingeniería de Sistemas - Programa de Actualización Profesional01/06/

20 Test Driven Development TDD o Desarrollo Guiado por Pruebas es una metodología de desarrollo consistente en escribir las pruebas antes que el código. TDD es utilizado en metodologías ágiles. El objetivo es código limpio y simple que funcione bien. No reemplaza a las pruebas de rendimiento ni usabilidad. Las pruebas deben ser automáticas, es decir, las pruebas son código. Escribir las pruebas cuesta más tiempo que probar manualmente una vez. Pero trae beneficios. UPC - EPE - Ingeniería de Sistemas - Programa de Actualización Profesional01/06/

21 TDD: Pasos para cada iteración 1. Escribir una prueba 2. Verificar que la prueba falla (debido a que todavía no hay código) 3. Escribir el código para que la prueba funcione 4. Verificar que la prueba funciona 5. Simplificar el código mediante refactoring 6. Verificar que la prueba funciona 7. Regresar a paso 1 UPC - EPE - Ingeniería de Sistemas - Programa de Actualización Profesional01/06/

22 Pruebas unitarias Busca probar cada unidad de código. Una unidad es la mínima parte distinguible de un sistema. En POO es el método. Las pruebas unitarias ayudan a verificar que el código correspondiente a un módulo concreto de un software funciona de acuerdo a lo esperado. UPC - EPE - Ingeniería de Sistemas - Programa de Actualización Profesional01/06/

23 Pruebas unitarias. Características Concisas (simples y escrita por programadores) Fácil verificación (funciona o no) Repetibles (automáticas y sin la interpretación de un ser humano) Robusta (produce el mismo resultado) Suficiente y necesaria (verificar todos los requerimientos) Clara (fácil de entender) Eficiente (en el tiempo) Específica (funcionalidad concreta y reducida) Independiente (de las demás pruebas) Mantenible (fácil de modificar y extender) UPC - EPE - Ingeniería de Sistemas - Programa de Actualización Profesional01/06/

24 JUNIT UPC - EPE - Ingeniería de Sistemas - Programa de Actualización Profesional01/06/

25 JUnit Framework libre que nos ayuda a generar las pruebas unitarias. Permite estandarizar las pruebas y correrlas en forma conjunta. Ayuda a ver de manera amigable, dónde y por qué falla una prueba. JUnit + IDE = Facilidad de implementación. Las pruebas se agrupan en TestCases, que pueden integrar TestSuites. UPC - EPE - Ingeniería de Sistemas - Programa de Actualización Profesional01/06/

26 JUnit Herramienta principal: ASSERT assertTrue(expresion) assertFalse(expresion) assertEquals(esperado, real) assertNotSame(objeto, objeto) assertNull(objeto) assertNotNull(objeto) Otras herramientas setUp(): Realizar algo antes de cada test tearDown(): Realizar algo después de cada test fail(): Si se llega a esa parte del código, está mal UPC - EPE - Ingeniería de Sistemas - Programa de Actualización Profesional01/06/

27 Conclusiones El modelo de dominio ocupa un rol protagónico en el desarrollo moderno de software y constituye un artefacto muy valioso para desarrollar el software. Test Driven Development (TDD) no es un método de testing, sino de desarrollo. TDD sugiere escribir las pruebas antes del código y refactorizar incrementalmente. JUnit es un framework de pruebas unitarias para el lenguaje Java. UPC - EPE - Ingeniería de Sistemas - Programa de Actualización Profesional01/06/

28 Bibliografía Eric Evans. Strategic Design – Making models work in large projects. Eric Evans. Domain-Driven Design: Tackling complexity in the heart of Software. delo-de-dominio/ Hunt y Thomas. Pragmatic Unit Testing UPC - EPE - Ingeniería de Sistemas - Programa de Actualización Profesional01/06/


Descargar ppt "Programa de Actualización Profesional Ingeniería de Sistemas - EPE Desarrollo para Entorno Web Modelo de dominio."

Presentaciones similares


Anuncios Google