La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Desarrollo para Entorno Web

Presentaciones similares


Presentación del tema: "Desarrollo para Entorno Web"— Transcripción de la presentación:

1 Desarrollo para Entorno Web
Modelo de dominio

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

3 Modelo de dominio UPC - EPE - Ingeniería de Sistemas - Programa de Actualización Profesional 01/04/2017

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 Profesional 01/04/2017

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 Profesional 01/04/2017

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 Profesional 01/04/2017

7 Modelo de dominio UPC - EPE - Ingeniería de Sistemas - Programa de Actualización Profesional 01/04/2017

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 Profesional 01/04/2017

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 Profesional 01/04/2017

10 Ejemplo de un modelo de dominio
UPC - EPE - Ingeniería de Sistemas - Programa de Actualización Profesional 01/04/2017

11 Ejemplo de un modelo de dominio
UPC - EPE - Ingeniería de Sistemas - Programa de Actualización Profesional 01/04/2017

12 Domain Driven Design UPC - EPE - Ingeniería de Sistemas - Programa de Actualización Profesional 01/04/2017

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 Profesional 01/04/2017

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 Profesional 01/04/2017

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 Profesional 01/04/2017

16 DDD - Ubiquitous language
UPC - EPE - Ingeniería de Sistemas - Programa de Actualización Profesional 01/04/2017

17 DDD – Arquitectura en capas
UPC - EPE - Ingeniería de Sistemas - Programa de Actualización Profesional 01/04/2017

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 Profesional 01/04/2017

19 Test Driven Development
UPC - EPE - Ingeniería de Sistemas - Programa de Actualización Profesional 01/04/2017

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 Profesional 01/04/2017

21 TDD: Pasos para cada iteración
Escribir una prueba Verificar que la prueba falla (debido a que todavía no hay código) Escribir el código para que la prueba funcione Verificar que la prueba funciona Simplificar el código mediante “refactoring” Regresar a paso 1 UPC - EPE - Ingeniería de Sistemas - Programa de Actualización Profesional 01/04/2017

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 Profesional 01/04/2017

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 Profesional 01/04/2017

24 junIT UPC - EPE - Ingeniería de Sistemas - Programa de Actualización Profesional 01/04/2017

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 Profesional 01/04/2017

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 Profesional 01/04/2017

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 Profesional 01/04/2017

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. Hunt y Thomas. Pragmatic Unit Testing UPC - EPE - Ingeniería de Sistemas - Programa de Actualización Profesional 01/04/2017


Descargar ppt "Desarrollo para Entorno Web"

Presentaciones similares


Anuncios Google