Desarrollo para Entorno Web

Slides:



Advertisements
Presentaciones similares
SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR
Advertisements

el 1, el 4 y el 9 tres cuadrados perfectos autosuficientes
Utilización de PDA en el mantenimiento preventivo
“XP Extreme Programming”
“Planificación de Aplicaciones Web”
1 INFORME RESUMEN SOBRE EL NIVEL DE UTILIZACION DE LAS TIC EN LAS EMPRESAS GALLEGAS (MICROEMPRESAS, resultados provisionales) 29 de julio de 2004.
1 LA UTILIZACION DE LAS TIC EN LAS PYMES GALLEGAS AÑO Resumen. 24 de Junio de 2005.
DIAGRAMAS DE CASOS DE USO
Test-Driven Development
Metodologías ágiles.
Fundamentos de Diseño de Software INFT.1
Principio #4 – Comportamiento Ético del personal Esta presentación es hecha posible por The Smart Campaign Principio #4-
Validación de Requerimientos
Acercándonos a las Pruebas en Google
Víctor I. García Toro, MSW, PhD
Guía metodológica para la gestión de proyectos de software en PyMEs que no son fábricas de software por medio de Metodologías ágiles.
Resolución de Problemas
Universidad Nacional Autónoma de Honduras
Visión y valores de Colfax
INTRODUCCIÓN A JAVA.
METODOLOGÍAS ÁGILES “PROCESO UNIFICADO ÁGIL (AUP)
Guía metodológica para la gestión de proyectos de software en PyMEs que no son fábricas de software por medio de Metodologías ágiles.
Expresiones Racionales
Rational Unified Process (RUP)
Parte 2: Modelo de Análisis del Negocio
Parte 1: Modelo de Casos de Uso del Negocio
Proceso de Originación de Crédito: Banco de los Alpes
Pruebas de programas Java mediante JUnit
Presentación del estado del arte
Ingeniería del Software
Administración de Procesos de Pruebas
Ingeniería del Software
Versión 2004 Enrique Bañuelos Gómez
Test-Driven Development (Desarrollo dirigido por pruebas) Martín Salías.
CULENDARIO 2007 Para los Patanes.
Reunión de los requerimientos de la red
1  2008 Universidad de Las Américas - Ingeniería de Software : Dr. Juan José Aranda Aboy ACI491: Ingeniería de Software Unidad 6: Administración de Proyectos.
Diseño de un Sistema de Control en Tiempo Real para el Kernel del Sistema Operativo utilizando MatLab-SimuLink Por: MARCO ANTONIO ESPINEL CANGUI DIRECTOR:
ENSEÑANZA Y APLICACIÓN DE MÉTODOS ÁGILES PARA EL DESARROLLO DE UNA APLICACIÓN COMPUTACIONAL Jorge Cornejo Elgueta ENSEÑANZA Y APLICACIÓN DE MÉTODOS ÁGILES.
Ingeniería de Sistemas e Informática
Solución de problema Herramientas aplicables
ESCUELA PROFESIONAL DE INGENIERIA INDUSTRIAL CURSO: GESTION DE LA CALIDAD ING.ELIZABETH FERG 1.
Test Driven Development TDD
Test Driven Development
DEPARTAMENTO DE INGENIERÍA INFORMÁTICA
IS ILic. Patricia Pesado.1 INGENIERIA DE REQUERIMIENTOS.
Ingeniería de Software
DISEÑO DE SOFTWARE 1ª. Parte
Ingenieria de software
agile-tester-foundation- chapter-2-fundamental-agile-testing- principles-practices-and-processes-1-of-3-
Ingeniería de Software Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de:
Ingeniería de Software: Metodologías Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de:
Ingeniería del Software
Importancia en la efectividad del:
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
Pruebas y La Vida del Ciclo de Desarrollo del Software
Rational Unified Process
Ciclo de vida de un sistema
Guía metodológica para la gestión de proyectos de software en PyMEs que no son fábricas de software por medio de metodologías ágiles Tatiana Alejandra.
Roles de Open UP.
Actividades en el Proceso de desarrollo de Software
Simón Esneider Herrera Álvarez Media Técnica Casd 10-2
INGENIERIA DE SOFTWARE
Proceso de desarrollo de Software
Especificación del Problema Partimos del hecho de un programador no puede resolver un problema que no entiende. Por esta razón, la primera etapa en todo.
Modelo de procesos de software
ELO-329: Diseño y Programación Orientados a Objetos1 Proceso de Desarrollo de SW Agustín J. González ElO329: Diseño y Programación Orientados a Objeto.
1 Tema 2: Introducción al proceso unificado de desarrollo de software.
VERIFICACIÓN Y VALIDACIÓN DE SISTEMAS 3.10 Fase de manejo de requerimientos 4.1 Modelado de pruebas en UML Ponente: ing. Alejandro tapia vazquez.
Transcripción de la presentación:

Desarrollo para Entorno Web Modelo de dominio

Í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

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

¿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

¿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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Bibliografía Eric Evans. Strategic Design – Making models work in large projects. Eric Evans. Domain-Driven Design: Tackling complexity in the heart of Software. http://synergix.wordpress.com/2008/07/10/modelo-de-dominio/ Hunt y Thomas. Pragmatic Unit Testing http://junit.org UPC - EPE - Ingeniería de Sistemas - Programa de Actualización Profesional 01/04/2017