# genexis ## Estudio de caso: creación de un sistema de gestión de pedidos Exploré la arquitectura y el diseño de las aplicaciones Java EE en los capítulos anteriores. También expliqué los patrones de diseño de Java EE con respecto a Spring Framework. Ahora es el momento de juntar todos los conceptos que ha aprendido hasta ahora para crear una aplicación básica. En este capítulo, aplicaré los patrones Spring Java EE en el contexto de un sistema de gestión de pedidos (OMS). Esta es una versión simplificada de un OMS que una vez construí para una compañía de telecomunicaciones que sus clientes usaban para registrarse en servicios de valor agregado como tonos de llamada, transmisión de video, correo de voz, etc. Con este OMS, los usuarios pueden iniciar sesión y luego buscar y solicitar servicios. También pueden buscar, cancelar y suspender sus pedidos. El enfoque principal será construir una arquitectura y un diseño livianos. También demostraré los pasos para desarrollar, probar e implementar [esta aplicación](https://www.behance.net/pedrojimenez19/resume). Para este ejemplo de OMS, tomaré mucho de los principios de programación extrema (XP). Cuando se aplica correctamente, XP ofrece una inmensa flexibilidad para los equipos de proyecto en comparación con otras metodologías que enfatizan la planificación e invierten un esfuerzo significativo en la arquitectura y el diseño iniciales. Un marco de aplicación como Spring, respaldado por soporte IDE, es el más adecuado para el desarrollo ágil de software. Si es nuevo en XP, para un recorrido rápido por las funciones y el flujo de trabajo. En el resto de este capítulo, pasaré por una iteración de XP personalizada para desarrollar la base del sistema de gestión de pedidos. A medida que siga leyendo, verá que en algunas partes de este capítulo dejaré algunas tareas de solución o desarrollo como ejercicio para usted. He hecho esto para que pienses en lo que has aprendido en los capítulos anteriores. También hace que la lectura de este capítulo sea más [interesante](https://creativecommons.org/choose/results-one?field_attribute_to_url=https://transpero.net/ip/192-168-1-254/) e interactiva. ## Requisitos Para iniciar cualquier proyecto de desarrollo de software, necesita algunos requisitos comerciales documentados. XP emplea historias de usuarios para documentar los requisitos. Cada historia de usuario describe cómo el sistema va a resolver un problema empresarial. Cada uno es una descripción muy breve del requisito y, a menudo, va acompañado de casos de prueba de aceptación. Por lo tanto, existe una trazabilidad clara desde los requisitos hasta las pruebas. Una historia de usuario se escribe en una tarjeta de historia. Con procesos ágiles, no es necesario que tengas todos los requisitos establecidos antes de iniciar un proyecto. Para comenzar la primera iteración, solo necesita algunos requisitos. Las historias de usuario que vienen después del inicio de la primera iteración se agregan a la acumulación de requisitos. Algunos de ellos se elegirán del trabajo pendiente en función de su prioridad para la implementación en una iteración futura hasta que se elimine el trabajo pendiente. Para el OMS en este capítulo, he seleccionado [tres requisitos](https://creativecommons.org/choose/results-one?field_attribute_to_url=https://inuchat.net/es/192-168-1-254/) con la prioridad más alta para la primera iteración. La prioridad la establece el cliente y se utiliza para determinar si un requisito se tomará del [trabajo pendiente](https://urlscan.io/result/d6e2b87c-5df1-48c9-9c5e-e3edcf18873a/) para su implementación en la siguiente iteración. Las historias de usuario para estos requisitos se describen en las siguientes secciones.