martes, 14 de febrero de 2017

Metodologías de desarrollo de proyectos

El Desarrollo de una aplicación web o aplicación de intranet es a menudo un proceso complejo que involucra muchos desarrolladores en diferentes equipos que realizan diversas funciones. Para organizar el proceso de desarrollo y asegurarse de que todo el mundo en un proyecto trabaja en conjunto, se puede utilizar una amplia gama de metodologías de desarrollo. Estas metodologías de desarrollo describen las fases del proyecto de desarrollo, los roles de las personas toman, los entregables que concluyen cada fase, y otros aspectos del proyecto. Debe elegir una metodología de desarrollo en una etapa temprana en un proyecto. Muchas organizaciones tienen una metodología estándar que usan siempre para el desarrollo del proyecto.

Algunas metodologías de desarrollo de proyectos incluyen el modelo de cascada, el modelo de desarrollo iterativo, el modelo de prototipos, el modelo de desarrollo ágil de software, programación extrema, y ​​el desarrollo basado en pruebas.

Modelo cascada

El modelo de cascada es una metodología de principios que define las siguientes fases de un proyecto:

·         Análisis de Viabilidad. En esta fase, los planificadores y desarrolladores de estudiar y determinar los enfoques y tecnologías que se pueden utilizar para construir la aplicación de software.

·         Análisis de requerimientos. En esta fase, los planificadores y analistas de entrevistar a los usuarios, gestores, administradores y otros actores de la aplicación de software para determinar sus necesidades.

·         Diseño de aplicaciones. En esta fase, los planificadores, analistas y desarrolladores de grabar una propuesta de solución.

·         Codificación y pruebas unitarias. En esta fase, los desarrolladores a crear el código y probar los componentes que conforman el sistema de forma individual.

·         Integración y pruebas del sistema. En esta fase, los desarrolladores integrar los componentes que han construido y probar el sistema en su conjunto.

·         despliegue y mantenimiento. En esta fase, los desarrolladores y administradores a implementar la solución para que los usuarios puedan empezar a usar la aplicación de software.

El modelo de cascada clasifica el proyecto de desarrollo en distintas fases con una definición clara de las prestaciones para cada fase. El modelo también hace hincapié en la importancia de las pruebas. Sin embargo, el cliente no recibe ningún software funcional para su revisión hasta tarde en el proyecto. Esto hace que sea difícil lidiar con los cambios en el diseño, en respuesta a la retroalimentación beta o gestionar nuevas circunstancias.

Modelo de desarrollo iterativo

Cuando se utiliza un modelo de desarrollo iterativo, se rompe el proyecto en partes más pequeñas. Para cada parte, de llevar a cabo las actividades relacionadas con todas las etapas del modelo de cascada. El proyecto se construye paso a paso, con pruebas exhaustivas en cada etapa para garantizar la calidad.

En un proyecto iterativo, puede realizar una acción correctiva al final de cada iteración. Estas correcciones podrían reflejar una mejor comprensión de los problemas de negocio, comentarios de los usuarios perspicaz, o una mejor comprensión de las tecnologías que se utilizan para construir la solución. Dado que los requisitos se añaden al final de cada iteración, proyectos iterativos requieren un gran esfuerzo de gestión de proyectos y con frecuencia cuentan con un rebasamiento de los esfuerzos y la periodicidad adecuadas.

Creación de un prototipo de modelo

El modelo de prototipos es adecuado para un proyecto en el que comienzan con unos pocos o escasamente definidos los requerimientos del negocio. Esta situación se produce cuando los clientes o interesados ​​sólo tienen una idea vaga de sus necesidades y la forma de resolverlos. En este enfoque, los desarrolladores a crear una versión simplificada de la aplicación de software, y luego recabar la opinión de las partes interesadas. Esta retroalimentación sobre el prototipo se utiliza para definir los requisitos detallados, que los desarrolladores utilizan en la siguiente iteración para construir una solución que se ajuste a las necesidades de las partes interesadas para ayudar mejor a realizar sus trabajos.

Después de dos o más iteraciones, cuando las dos partes interesadas y los desarrolladores llegar a un consenso sobre los requisitos, una solución completa está construido y probado. El modelo de prototipos, sin embargo, puede conducir a una aplicación mal diseñada porque en ninguna fase del proyecto es que hay un claro enfoque en la arquitectura general.

Modelo ágiles de desarrollo de software

El modelo de cascada, modelo de desarrollo iterativo, y el modelo de prototipos se basan en la premisa de que los requisitos de negocio y otros factores no cambian desde el principio hasta el final del proyecto. En realidad, este supuesto es a menudo no válido. desarrollo de software ágil es una metodología diseñada para integrar la evolución de las circunstancias y requisitos a lo largo del proceso de desarrollo. proyectos ágiles se caracterizan por:

·         El desarrollo incremental. El software se desarrolla en ciclos rápidos que se basan en ciclos anteriores. Cada iteración se prueba a fondo.

·         Énfasis en las personas y las interacciones. Los desarrolladores escriben código basado en lo que la gente hace en su papel, en lugar de lo que las herramientas de desarrollo son buenos.

·         Énfasis en el software de trabajo. En lugar de escribir documentos de diseño detallados para las partes interesadas, los desarrolladores a escribir las soluciones que los interesados ​​puedan evaluar en cada iteración para validar si resuelve un requisito.

·         La estrecha colaboración con los clientes. Los desarrolladores discuten con los clientes y las partes interesadas sobre una base del día a día para comprobar los requisitos.

Programación extrema

La programación extrema evolucionó de desarrollo de software ágil. En la programación extrema, la fase de diseño preliminar se reduce al mínimo y los desarrolladores se centran en la solución de algunas tareas críticas. Tan pronto como se finalicen estas tareas críticas, los desarrolladores probar la solución simplificada y obtener retroalimentación de los actores. Esta retroalimentación ayuda a los desarrolladores a identificar los requisitos detallados, que evolucionan a lo largo del ciclo de vida del proyecto.

La programación extrema define una historia de usuario para cada función de usuario. Una historia de usuario se describen todas las interacciones que un usuario con un rol específico puede realizar con la aplicación completada. El conjunto de todos los casos de uso para todas las funciones de usuario describe toda la aplicación.

En la programación extrema, los desarrolladores a menudo trabajan en parejas. Un desarrollador escribe el código y el otro desarrollador revisa el código para asegurarse de que utiliza las soluciones simples y se adhiere a las mejores prácticas. desarrollo basado en pruebas es una práctica fundamental en la programación extrema.

Lectura adicional: Para obtener más información sobre el modelo de programación extrema, ir a http://go.microsoft.com/fwlink/?LinkID=288945&clcid=0x409.

Test Driven Development

En el desarrollo guiado por pruebas (TDD), los desarrolladores a escribir código de prueba como su primera tarea en una iteración dada. Por ejemplo, si desea escribir un componente que almacena datos de la tarjeta de crédito, se empieza escribiendo las pruebas que pasaría un componente de este tipo. Estos pueden ser si se comprueba los formatos de número correctamente, si se escribe cuerdas a una tabla de base de datos correctamente, o si se llama a los servicios bancarios correctamente. Después de definir las pruebas, se escribe el componente de pasar estas pruebas.

En iteraciones posteriores, las pruebas de tarjetas de crédito se mantienen en su lugar. Esto asegura que si se rompe la funcionalidad de tarjeta de crédito, tal vez por la refactorización de código o mediante la adición de un nuevo constructor, se entera de esto rápidamente porque las pruebas fallan.

En Microsoft Visual Studio 2012, puede definir un proyecto de prueba, dentro de la misma solución que el proyecto principal, para almacenar y ejecutar pruebas unitarias. Después de escribir las pruebas, puede ejecutar ellos individualmente o en grupos después de cada cambio de código. Dado que los proyectos tienen el modelo MVC, ver y código del controlador en archivos separados, es fácil para crear pruebas unitarias para todos los aspectos del comportamiento de la aplicación. Esta es una de las principales ventajas de la MVC sobre páginas Web y Web Forms.

Lenguaje de Modelado Unificado

El Lenguaje de Modelado Unificado (UML) es una notación estándar de la industria para grabar el diseño de cualquier aplicación que utiliza la tecnología orientada a objetos. UML no es un modelo de desarrollo. Más bien, diagramas UML se utilizan a menudo para la planificación y aplicación documentar la arquitectura y componentes, a través de todas las metodologías de desarrollo de proyectos. Cuando se utiliza UML para diseñar y registrar una aplicación, se crea una serie de diagramas con formas y conectores estándar. Estos diagramas se pueden dividir en tres clases:

·         diagramas de comportamiento. Estos diagramas ilustran el comportamiento de los usuarios, las aplicaciones y componentes de aplicaciones.

·         diagramas de interacción. Estos diagramas son un subconjunto de los diagramas de comportamiento que se centran en las interacciones entre los objetos.

diagramas o Estructura. Estos diagramas muestran los elementos de una aplicación que son independientes del tiempo. Esto significa que no cambian a través del tiempo de vida de la aplicación.

No hay comentarios:

Publicar un comentario