CICLO DE DESARROLLO PROYECTO SOFTWARE DOCUMENTACIÓN METODOLOGÍA
Sofi RecchioniEnsayo13 de Abril de 2022
3.353 Palabras (14 Páginas)140 Visitas
[pic 1][pic 2]
CICLO DE DESARROLLO PROYECTO SOFTWARE DOCUMENTACIÓN METODOLOGÍA
Ingeniería de software
NOMBRE: Sofía Recchioni
CARRERA: Ingeniería en informática
ASIGNATURA: Ingeniería de Software
SECCIÓN: TIDS13/770_MIXTA
PROFESOR: César Bernardo Soto Alarcón
FECHA DE ENTREGA: 02/11/2021
1 Introducción 3
2 Descripción de los Métodos 4
2.1 Metodologías tradicionales de desarrollo de software 4
2.2 Metodologías de Desarrollo de software ágiles 5
2.3 Cuadro comparativo de metodologías con definición de atributos a comparar. 6
3 Recomendación al proyecto evaluado. 8
4 Análisis de la metodología Scrum al proyecto. 9
5 Comparativa entre XP y Scrum. 10
6 Recomendación uso de Scrum. 11
7 Conclusión. 12
8 Bibliografía. 12
Introducción
Hoy en día, el desarrollo de software se encuentra en todos lados, es una actividad esencial en un mundo en constante digitalización, donde cada área productiva está generando su software de interacción tanto dentro del ámbito de la empresa como afuera en la interacción de usuarios. Tal importancia de desarrollar software trae de la mano la importancia de implementar metodologías de desarrollo, con ellas podemos ordenar, contener, definir límites a la hora de comenzar a desarrollar o formar un equipo apto para esto.
Construir un software requiere un gran esfuerzo tanto de las tecnologías que se utilizaran como otros factores tales como el dinero o las personas. Las personas en esta sociedad digitalizada son consideradas como el activo de la empresa, por esto se invierte tiempo y dinero en capacitarlos y formarlos para poder adoptar nuevas herramientas de trabajo del mundo moderno. Así también, estas interactúan entre sí, con diferentes grados de conocimiento, con diferentes roles o intereses. Es por que, una metodología ayuda a proponer un esquema de trabajo que permitirá entender los roles particulares o generales de los individuos, proporcionando una sensación de tranquilidad y seguridad en las etapas del proceso de desarrollo. Sin tener procesos definidos, no sabemos cuando empezar o cuando terminar.
Descripción de los métodos
Para contextualizar, los métodos son un conjunto de técnicas que nos permiten abordar de forma ordenada y correcta las actividades para el desarrollo de un proyecto, como también, nos permite detallar y describir cada etapa del proceso del ciclo de vida de un software.
Metodologías tradicionales de desarrollo de software
La característica de los métodos de desarrollo de software tradicionales es que los requisitos se definen completa y estrictamente al inicio del proyecto de ingeniería de software. A diferencia de los métodos ágiles, el ciclo de desarrollo no es muy flexible y no se permiten cambios. Esto ha llevado a un aumento en el uso de metodologías ágiles.
En los métodos tradicionales el trabajo se realiza de manera lineal, lo que quiere decir que, cada trabajo o etapa se realiza de manera ordenada, una tras otra. Si la etapa anterior no es completada, no se puede iniciar la siguiente.
- Cascada: Es un método en cual las etapas del desarrollo son organizadas de manera en que se comienzan de arriba hacia abajo. Las etapas de van desarrollando en un estricto orden, en donde cada etapa del producto se revisa de manera rigurosa para poder dar pie a pasar a la siguiente etapa del proceso. Los requisitos y especificaciones iniciales no se cambiarán en ningún momento, por lo que los resultados no se verán hasta que el proyecto esté avanzado.
- Prototipado: El método prototipado basa en la construcción de prototipos de software de construcción rápida para que los usuarios puedan probarlos y proporcionar comentarios. Por tanto, puede solucionar el problema e incluir otros requisitos que puedan surgir. Este es un modelo iterativo, que se basa en prueba y error para comprender la particularidad del producto.
- Espiral: Es una combinación de los dos primeros métodos, agregando el concepto de análisis de riesgo. Se divide en cuatro etapas: planificación, análisis de riesgos, desarrollo de prototipos y evaluación de clientes. El nombre de este método se denomina así por su funcionamiento, porque las etapas se procesan en espiral. Cuanto más cerca esté del centro, más avanzado será el proyecto.
- Incremental: En esta metodología de desarrollo de software se desarrollando el producto final de manera progresiva. Lo que significa qué, en cada etapa se van agregando nuevas funcionalidades, lo que permitirá ver resultados de una forma más rápida si lo comparamos con el modelo en cascada. Esto permite también, que, el software pueda comenzar a utilizarse en etapas de prueba con mayor anterioridad, antes de que esté completamente listo, y también esta metodología se caracteriza por ser más flexible que el resto de las tradicionales.
- Diseño rápido de aplicaciones: Esta metodología se basa en la rapidez y entregar resultados de desarrollo en corto periodo de tiempo, siendo estos softwares de alta calidad. Lo que se traduce entonces en costes muchos más altos y un desarrollo más flexible, aunque requiere una mayor intervención de los usuarios. Debido al poco tiempo y rapidez, el software podría contar con errores de código o funciones más limitadas.
Metodologías de Desarrollo de software ágiles
Las metodologías ágiles de desarrollo son hoy en día una herramienta muy utilizada en el desarrollo de software, esto es debido a su alta capacidad adaptativa, alta flexibilidad y agilidad. Las características principales de los desarrollos actuales son el trabajo en equipo y la buena comunicación, por esto, se logra un desarrollo más eficiente porque se sabe que hacer en cada momento. La capacidad adaptativa de esta metodología permite adaptar los requerimientos a medida que se van desarrollando, resolviendo las necesidades que se van encontrando en el proceso, esto permite aplicaciones más funcionales.
La clave en este tipo de metodología es construir equipos de trabajo autosuficientes e independientes, que se reúnan constantemente, resuelvan inquietudes y conversen acerca cambios o necesidades de los equipos de desarrollo.
- Kanban: Esta metodología fue inventada por la empresa Toyota. En este método, se deben dividir las tareas en porciones mínimas y organizarlas en un tablero de trabajo dividido en tareas pendientes, tareas en curso y tareas finalizadas. Así crear un flujo de trabajo con un enfoque en lo visual, donde se grafiquen de manera recalcada las tareas prioritarias para incrementar el valor de estas, y especificar que parte del desarrollo se está realizando.
- Scrum: El método Scrum, también es considerada una metodología incremental, debido a que también se dividen las tareas y los requerimientos en porciones más pequeñas de trabajo. El ideal de esta metodología es trabajar con plazos, lo que significa que, se estiman trabajos en cortos y fijos periodos de tiempo, generalmente entre 2 y 4 semanas para poder conseguir un resultado completo de estas tareas. Las principales etapas de la metodología Scrum son: La planificación de tareas o iteraciones, ejecución, reunión diaria y la demostración de resultados.
- Lean: Este método está construido para que pequeños equipos de desarrollo altamente capacitados logren realizar cualquier tarea en un corto periodo. Los importante de esta metodología son los activos: Personas y compromiso. Con esto, se desplaza el tiempo y el coste. Con este método, se está constantemente recibiendo aprendizaje, es importante la proactividad de las personas, la rápida reacción a distintos eventos y el potenciar constantemente al equipo de trabajo.
- Programación Extrema (XP): La programación extrema tiene su foco principal en las relaciones interpersonales, lo que se pretende que sea la clave del éxito en el equipo de desarrollo. Un grato ambiente laboral, un equipo unificado, buena comunicación y un feedback constante entre pares y clientes permiten el objetivo principal de este método. Existen 12 conceptos que esta metodología asume para obtener el éxito productivo: diseño sencillo, testing, refactorización y codificación de alto estándar, propiedad colectiva del código, programación en parejas, integración continua, entregas semanales e integridad con el cliente, cliente in situ, entregas frecuentes y buena planificación.
Cuadro comparativo de las metodologías
Tradicionales | Ágiles | |
Fundamentos | Planificación detallada, específica para lograr un desarrollo ordenado cumpliendo cada etapa antes de avanzar. | Software adaptativo de alta calidad, desarrollado por distintos equipos organizados en cumplir el deseo de mejora continua y pruebas basadas en rápidas respuestas y cambios. |
Conocimientos | Explícito | Tácito |
Estilo de gestión | Comando y control constante. | Liderazgo, colaboración, trabajo en equipo. |
Comunicación | Formal en diferentes etapas de prueba y plazos. | Informal, reuniones diarias, mayor comunicación entre equipo. |
Modelo de desarrollo | Modelo de ciclo de vida ya sea: cascada, espiral, incremental, etc. | Modelos evolutivos de entrega como: Scrum, Kanban, Lean. |
Estructura Organizacional | Una estructura mecánica, alta burocracia y organización. | Flexible, comunicativo, cooperativo y trabajo en equipo. |
Control de Calidad | Planificación difícil, control estricto, pruebas tardías y difíciles. | Pruebas constantes para entregar rápida solución. |
Requisitos de usuario | Detallado y definitivo antes de la codificación o implementación. | Interacción constante de usuario y/o cliente con el desarrollo. |
Costo de cambios | Alto | Bajo |
Enfoque del desarrollo | Fijo | Adaptable al cambio |
Pruebas | Después de terminada la codificación. | Cuando se necesiten. |
Participación del Cliente | Baja | Alta |
Habilidades extras | Ninguna en específico | Herramientas comunicacionales e interpersonales, y conocimientos básicos de negocios. |
Escala del proyecto | Gran escala | Pequeña y mediana escala |
Equipo | Planificado, conocimientos propios del lenguaje a desarrollar. | Ágil, conocimientos avanzados y cooperativos. |
Clientes | Acceso al conocimiento cooperativo y representativo. | Dedicados, informados, cooperativos y capacitados. |
Requerimientos | Estables, detallados y conocidos | Emergentes, adaptables al cambio. |
Arquitectura | Diseño para requerimientos actuales y previsibles | Diseño para requerimientos actuales. |
Remodelación | Costosa | Bajo costo |
Tamaño | Grandes equipos y proyectos. | Pequeños equipos y proyectos. |
Objetivos principales | Alta Seguridad | Rápido Valor |
...