Issuu on Google+

UNIVERSIDAD DEL QUINDÍO

APPLICATION LIFECYCLE MANAGEMENT (ALM)

DANIEL RICARDO MARIN TORRES

ARQUITECTURA DE SOFTWARE

ALEJANDRO OCAMPO

ARMENIA, QUINDÍO 12-05/2012 APPLICATION LIFECYCLE MANAGEMENT (ALM)


1. CARACTERIZACIÓN DE LA INVESTIGACIÓN 1.1 Definición de Application Lifecycle Management (ALM) ALM es un proceso continuo encargado de dirigir la vida y crecimiento de una aplicación, por medio de sus aspectos administrativos, de desarrollo y sus procesos. AML es el punto de conexión y entendimiento entre la administración del negocio y la ingeniería de software presentes en el proyecto. Esto posible gracias a un conjunto de elementos y herramientas que facilitan e integran los requerimientos del negocio, la arquitectura del proyecto, el área de desarrollo, pruebas y las entregas al cliente. Hay que tener en cuenta que ALM no es igual a un ciclo de vida de desarrollo de software, ya que ALM contempla absolutamente todo el tiempo en el cual la compañía ha estado involucrada con el proyecto, desde el surgimiento de la idea, hasta el fin del proyecto. 1.2 Componentes Del Application Lifecycle Management (ALM) El ciclo de vida de la aplicación está enmarcada en eventos importantes, tales como, el surgimiento de la idea, el despliegue de la aplicación, que es cuando la aplicación es puesta en producción en un ambiente real y el final de la vida de la aplicación, que es cuando la aplicación ya no representa valor para la compañía y es sacada de producción. Para hacerlo un poco más claro, podría decirse que ALM cuenta con tres aspectos principales (Governance, Development y Operations) y con tres eventos principales (Idea, Deployment y End of life). Governance es el aspecto que se encarga de asegurar que la aplicación se mantenga encaminada en las necesidades del negocio. Development es un aspecto bastante importante dentro de ALM pues una vez la idea es aprobada se entra en el ciclo de vida de desarrollo del software, e incluso este aspecto no termina al realizar la implantación de la aplicación, pues luego de esto, se requiere realizar mantenimiento y actualizaciones a la aplicación lo que podría representar, incluso, el inicio de un nuevo ciclo de vida de desarrollo del software. Operations es también un aspecto fundamental, pues la aplicación debe ser monitoreada, controlada y administrada constantemente.


1.3 ALM frente a la arquitectura de software Ya que ALM se encuentra en un nivel de abstracción más alto que la arquitectura de software es fácil ver cómo encaja este con la arquitectura, ya que abarca el proceso absoluto de un proyecto de software, desde el inicio de su idea hasta la eliminación de la aplicación de producción. Hay que tener en cuenta que como el ALM contempla mantenimiento y actualizaciones de la aplicación luego de su implantación, la arquitectura de software debería tener en cuenta este aspecto e incluirlo dentro de la solución, para así ahorrarse muchos recursos cuando de llegue a ese punto.

2. ALM EN EL MUNDO MICROSOFT Las ofertas con respecto a la administración del ciclo de vida de la aplicación brindadas por Microsoft Services combinan el software de este con servicios diseñados para alcanzar los objetivos de desarrollo de la aplicación. El Team Foundation Server es un componente integral del framework de ALM proporcionado por Microsoft Services. TFS ayuda a reducir los riesgos de implementación, proporcionando un ambiente de entrenamiento y evaluación, el cual puede ser usado para evaluar habilidades e identificar la mejor manera de direccionar los retos de desarrollo que una organización pueda enfrentar. TFS puede ayudar a la administración del desarrollo de una aplicación empleando las siguientes habilidades: - Control de versiones: Rastrea y proporciona control sobre cambios realizados a archivos fuente. - Seguimiento de elementos de trabajo: Identifica información contextual acerca de proyectos, tales como requerimientos, errores, problemas y tareas. - Build Management: Posibilita producir a los equipos entregas rápidas de su trabajo. - Reportes y Análisis: Permite usar inteligencia de negocios para analizar datos recolectados automáticamente acerca de proyectos para tomar decisiones en tiempo real. Se pueden aplicar prácticas probadas para administrar un ALM usando la suite de herramientas en visual studio en combinación con Visual Studio Team Foundation


Server. Usando estas herramientas el equipo de trabajo de la empresa podrá entender mejor las necesidades del cliente y diseñar, implementar e implantar el código más efectivamente. Adoptando estas prácticas, el equipo de trabajo puede crear software más rápidamente, más confiable y que el cliente valore más. Estas herramientas pueden ser usadas para alcanzar muy buenos resultados, como los siguientes: •

Planear y rastrear el proyecto: Representar procesos y monitorear su calidad para ayudar al equipo a convertir los requerimientos del cliente en software funcionando. Escribir, realizar pruebas unitarias, depurar, analizar y perfilar la aplicación usando herramientas que están integradas con el resto del ALM con el objetivo de que el equipo pueda entender cómo su progreso contribuye al proyecto. Usar el control de versiones para administrar el código fuente y otros archivos. Construir la aplicación usando utilizando un sistema de construcción integrado para que el equipo pueda asegurar que la calidad ha sido alcanzada y verificar que los requerimientos han sido satisfechos. Probar la aplicación manualmente o con pruebas automatizadas, incluyendo pruebas de desempeño y de carga. Se recomienda realizar las pruebas sistemáticamente para que así el equipo sepa las condiciones de la calidad del software en todo momento. Implantar en ambientes virtuales para lograr un desarrollo y unas pruebas mucho más sofisticados.

Microsoft Visual Studio Team Foundation Server es una plataforma de colaboración en el núcleo de la solución de Visual Studio para ALMs. TFS provee servicios fundamentales, tales como control de versiones, Seguimiento de elementos de trabajo, rastreo de errores, construcción automatizada y bodegas de datos. También cuenta con herramientas de reportes muy poderosas y tableros que proporcionan tendencias históricas y visibilidad sobre el estado del proyecto. Un aspecto muy importante es que los TFS cuentan con métricas en tiempo real que dan avisos tempranos de problemas potenciales para que así se puedan tomar decisiones orientadas a la información y correcciones con respecto al curso del proyecto. Además se cuenta con herramientas de planeación e integración ágil que ayudan a planear y a administrar el proyecto. Las organizaciones deben contar con licencia para cada una de las instancias de TFS que posean.


Otros aspectos pueden ser integrados dentro del ciclo de vida del desarrollo de la aplicación con el TFS, usando uno o más productos de Visual Studio Premium y Visual Studio Ultimate, lo que proporciona otras ventajas como administrar y ejecutar casos de prueba fuera de Visual Studio y crear o administrar ambientes físicos o virtuales. También se contaría con herramientas que simplifican las tareas de construir aplicaciones, como codificación avanzada, bases de datos, depuración de código y herramientas de prueba. Todo esto con el fin de lograr aplicaciones más escalables y con más alta calidad.

3. ALM EN EL MUNDO JAVA A pesar que es limitada la información existente acerca del soporte ofrecido para integrar o trabajar con un ALM utilizando el lenguaje java, es posible asegurar que ya existen herramientas para realizar este tipo de integraciones. Incluso se puede hablar de gestionar equipos java con la ayuda del TEAM FOUNDATION SERVER 2010. Esto se logra integrando elementos como eclipse, TFS y Visual Studio Explorer Everywhere. Hay diferentes tipos de soluciones a este problema, por lo cual se nombrará un ejemplo de esto y se especificarán sus ventajas. Una buena solución es ofrecida por Polarion Software, el cual ofrece una forma de utilizar las mejores prácticas de ALM en el desarrollo java, para lo cual usan Polarion ALM for Subversion. Polarion ALM está construido sobre varios frameworks y sistemas, entre los que se encuentran Eclipse, Subversion, Apache, and Maven. Este conjunto de herramientas, profundamente integradas, controlan la mayoría de los aspectos del ALM. Además de usar subversion que se encarga de almacenar todos los artefactos de desarrollo (no solo el código fuente), y proporciona reportes en tiempo real acerca del estado actual de cualquier proyecto. Esta herramienta trae varias ventajas al proyecto. Ventajas como rastreo de elementos de trabajo, administración del proyecto, se centra en la gestión de la administración de requerimientos, trazabilidad completa, colaboración y discusiones por medio de wikis, integración entre eclipse y visual studio, soporte para scrum, trazabilidad para el código fuente, entre otras. Otra forma de desarrollar proyectos JAVA bajo ALM es usando jDeveloper y TFS como fuente de control. jDeveloper es un ambiente de desarrollo que simplifica la construcción de arquitecturas orientadas a servicios basadas en java y aplicaciones java ee. 4.


5. OPINION PERSONAL


Consideramos que es muy interesante el tema de ALM, pues abarca todo del proceso de desarrollo de una aplicación, lo cual permite tener una visión completa y absoluta del proyecto. También es de resaltar que las herramientas disponibles entre las diferentes soluciones de ALM, como el TFS, pueden llegar a ser de gran ayuda para realizar un control sistemático de la aplicación y mitigar futuros problemas de actualización o mantenimiento de la aplicación. Aunque se cuenta con bastante soporte para Microsoft, sería de gran ayuda contar con un poco más de soporte para trabajar con tecnologías que no pertenezcan a este, pues ya que las soluciones para estas tecnologías son solo adaptaciones de las hechas para Microsoft, es muy probable encontrarse con posibles errores e incompatibilidades, lo que puede disminuir en gran medida las ventajas ofrecidas por la introducción de ALM al proyecto, por lo cual incluso podría llegarse a tener más problemas que soluciones, como por ejemplo un mayor costo total del proyecto, incrementar la dependencia entre el cliente y el proveedor del software entre otros. La introducción del ALM a un proyecto trae varias ventajas, como el incremento de la productividad, pues el equipo de trabajo comparte la mejores prácticas de desarrollo e implantación, por lo cual los desarrolladores solo necesitan enfocarse en los requerimientos de negocio actuales, Aumenta la calidad, por lo cual la aplicación alcanza las necesidades y expectativas de los usuarios, el flujo de información aumenta, acelera el desarrollo a través de integración simplificada, se disminuye el tiempo de mantenimiento ya que hay un mejor diseño, maximiza la inversión en habilidades, procesos y tecnologías, incrementa la flexibilidad reduciendo el tiempo que toma construir y adaptar aplicaciones dadas por nuevas iniciativas en el negocio y por supuesto se espera que las soluciones que incluyen ALM sean más efectivas.

6. CONCLUSIONES


- ALM está en un nivel de abstracción que es mucho más alto, que la ingeniería de software y la arquitectura de software, tomando la aplicación desde el punto en que surge la idea a desarrollar, hasta que la aplicación deja de ser productiva para la organización y es dada de baja, intentando extraer el máximo de cualidades de la aplicación con el objetivo de que cumpla una función óptima y genere valor para dicha organización. - ALM es el punto de encuentro y compaginación entre la administración del negocio y la ingeniería de software, pues con ALM se intenta suplir las necesidades del negocio por medio de la aplicación a lo largo de su tiempo de vida. - ALM es mucho más que solo escribir código. Los tres aspectos; governance, development, operations; son importantes, pues si uno de estos items no se lleva a cabo o se hace erróneamente o a medias, el valor de la aplicación para la organización se reduce significativamente.

7. BIBLIOGRAFIA


http://www.microsoft.com/global/applicationplatform/en/us/RenderingAssets/Whitep apers/What%20is%20Application%20Lifecycle%20Management.pdf Application Lifecycle Management Team Foundation Server

http://msdn.microsoft.com/en-us/library/fda2bad5.aspx http://www.oracle.com/technetwork/articles/java/hutterman-1523643.html http://blogs.msdn.com/b/dpe_nigeria/archive/2012/04/18/developing-java-projectsusing-jdeveloper-and-tfs-as-source-control.aspx http://www.polarion.com/products/alm/index.ph p http://java.dzone.com/articles/alm-tools


ALM