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.