METODOLOGÍAS DEL DESARROLLO DEL SOFTWARE
METODOLOGÍAS TRADICIONALES
MODELO EN CASCADA
Este tipo de modelo se utiliza especialmente en proyectos donde los requisitos son muy estables, no varían durante el proceso de desarrollo.
VENTAJAS y Desventajas
ventajas
Una estructura sencilla gracias a unas fases de proyecto claramente diferenciadas.
Buena documentación del proceso de desarrollo a través de unos hitos bien definidos.
Los costes y la carga de trabajo se pueden estimar al comenzar el proyecto.
Proyectos bien estructurados se puedes representar cronológicamente de forma sencilla
Desventajas
las necesidades de conocer todos los requerimientos al comienzo del proyecto
Es rígido poco flexible y con muchas restricciones
Si se comete errores en las etapas y no se detecta, es costoso y difícil volver a tras para realizar corrección
Los resultados no se ven hasta las etapas finales del siclo
FASES DE MODELO
El modelo de desarrollo en cascada sigue una serie de etapas de forma sucesiva, la etapa siguiente empieza cuando termina la etapa anterior.
Requisitos del software
Diseño de sistema
Diseño del programa
Modificaión
Pruebas
Mantenimiento
PROTOTIPADO
Este modelo se utiliza para dar al usuario una vista preliminar de lo que será el sistema.
VENTAJAS - INCONVENIENTES
Ventajas
Permiten el desarrollo de un sistema a partir de requisitos poco claros o cambiantes.
Son más fáciles de abordar con los usuarios finales.
Su uso redunda en una mayor satisfacción del usuario con el producto final, ya que él o ella han participado activamente de su diseño.
Proporciona al usuario un mayor conocimiento del sistema con una curva menor de aprendizaje.
Inconvenientes
Debido a que el usuario ve que el prototipo funciona piensa que este es el producto terminado y no entienden que recién se va a desarrollar el software.
Los prototipos generan o pueden generar otro tipo de problemas si su presentación y discusión con los usuarios no es controlada.
Requiere participación activa del usuario, al menos, para evaluar el prototipo.
FASES DE MODELO
se inicia con la definición de los objetivos globales para el software, luego se identifican los requisitos conocidos y las áreas del esquema en donde es necesaria más definición
Conocimiento
Desarrollo,entrega retroalimentación
Plan rapido
Construcción del protocolo
Modelo diseño rapido
MODELO INCREMENTAL
Este modelo combina el desarrollo en cascada con el modelo de construcción de prototipos.
ventajas y Desventajas
ventajas
Resulta más sencillo acomodar cambios al acotar el tamaño de los incrementos.
El cliente conoce el avance del proyecto
Es un modelo mas flexible,por lo que se reduce el costo en el cambio de alcance y requisitos
Desventajas
Requiere de mucha planeación, tanto administrativa como técnica.
no es recomendable para casos de sistemas de tiempo real, de alto nivel de seguridad, de procesamiento distribuido, y/o de alto índice de riesgos
Requiere de metas claras para conocer el estado del proyecto
FASES DE MODELO
Se generan incrementos de la funcionalidad del software haciendo entregas de funcionalidades específicas de la plataforma, conforme transcurre el tiempo.
Analisis
Diseño
Programación
Prueba
MODELO EN ESPIRAL
Se utiliza con éxito en proyectos donde el coste de un fallo es un gran riesgo, de ahí que su principal aportación sea considerar la gestión de esos riesgos, algo que en los modelos anteriores ni siquiera se menciona.
Ventajas y Desventajas
Ventajas
Los factores de riesgo son reducidos.
El desarrollo es iterativo y se pueden incorporar funcionalidades progresivamente.
Desventajas
La duración de la ejecución no es concreta.
Fallos en el análisis de riesgos podría influir negativamente a todo el proyecto.
FASES DE MODELO
Consiste en seguir ciclos crecientes de cuatro fases cada uno, que se van realizando siguiendo una forma de espiral
Planeación
Análisis de riesgos
Implementación
Evaluación
METODOLOGÍAS ÁGILES
SCRUM
Define un marco para la gestión de proyectos, que se ha utilizado con éxito durante los últimos 10 años.
Está especialmente indicada para proyectos con un rápido cambio de requisitos
CARACTERÍSTICAS
El desarrollo de software se realiza mediante iteraciones, denominadas sprints, con una duración de 30 días.
El resultado de cada
sprint es un incremento ejecutable que se muestra al cliente.
La segunda característica
importante son las reuniones a lo largo proyecto, entre ellas destaca la reunión diaria de 15
minutos del equipo de desarrollo para coordinación e integración.
FASES DE LA METOLOGIA DE SCRUM
¿Qué y quién? El producto que queremos conseguir una vez terminemos el Sprint, y los roles de equipo con sus tareas asignadas.
¿Dónde y cuándo? El plazo y el contenido del Sprint.
¿Por qué y cómo? Las distintas herramientas para aplicar esta metodología ágil.
LAS 5 ETAPAS DE LOS SPRINTS DE UN DESARROLLO DE SCRUM
1. Reunión de planificación de Sprint
4. Revisión del Sprint
5. Retrospectiva del Sprint
2. El Scrum Diario
3. Trabajo de desarrollo durante el Sprint
ROLES DE SCRUM
Project Owner. Se asegura de que el proyecto se esté desarrollando acorde con la estrategia del negocio. Escribe historias de usuario, las prioriza, y las coloca en el Product Backlog.
Master Scrum o Facilitador. Elimina los obstáculos que impiden que el equipo cumpla con su objetivo.
Development team Member. Los encargados de crear el producto para que pueda estar listo con los requerimientos necesarios. Se recomienda que sea un equipo multidisciplinar, de no más de 10 personas.
KANBAN
Es una técnica creada por Toyota para controlar el avance del trabajo en la creación de automóviles, pero ha sido implementada ampliamente en el desarrollo de proyectos de software, apoyando a su vez metodologías como Scrum.
CARACTERÍSTICAS
Lista de tareas "To Do": aquí se engloba la lista de tareas que están pendientes y que se pueden afrontar inmediatamente.se colocan arriba las de mayor prioridad y orden descendente el resto, posteriormente, se puede pasar a otras columnas
En desarrollo O "Doing": Aquí se sitúa una tarea hasta que se complete
Pruebas: se realiza las comprobaciones o test necesarios para ver si la tarea se ha realizado con éxito o no
Despliegue: una vez validado el código se añade a esta columna para su subida a producción en el sistema
Terminado o "Done": Aqui se incluyen las tareas que están finalizadas por completo
FUNCIONAMIENTO
Visualizar:El diagrama o cuadro es la base para que todos los miembros comprendan cómo avanza el flujo de trabajo.
Limitar el trabajo en curso: La metodología ágil Kanban se basa, entre otras cosas, en establecer metas asequibles.
Limitar el trabajo en curso
:La metodología ágil Kanban se basa, entre otras cosas, en establecer metas asequibles.
Ver los errores como oportunidades de mejora:Ya que el equipo tiene un entendimiento común a todo el proceso del trabajo, a la hora de buscar soluciones para un problema todos podrán colaborar y proponer acciones de mejora que puedan ser aprobadas por todos.
VENTAJAS
Flexibilidad
Fácil visualización y control del flujo de trabajo
Fácil de utilizar
DESVENTAJAS
No es útil para proyectos grandes y tiempos muy definidos
No controlas los tiempos dedicados
No existe feedback de las tareas realizadas
EXTREME PROGRAMMING
Es una metodología orientada a aplicar mejores prácticas de ingeniería de software en el desarrollo de proyectos, mejorar la productividad en los proyectos y aumentar la calidad del desarrollo de los productos de software.
CARACTERÍSTICAS
Se considera al equipo de proyecto como el principal factor de éxito del proyecto
Software que funciona por encima de una buena documentación.
Interacción constante entre el cliente y el equipo de desarrollo.
Planificación flexible y abierta.
Rápida respuesta a cambios.
ROLES
Cliente: responsable de definir y conducir el proyecto así como sus objetivos.
Programadores: estiman tiempos de desarrollo de cada actividad y programan el proyecto.
Tester: Encargado de Pruebas.
Tracker: Encargado de Seguimiento.
Coach: Entrenador. Su papel es guiar y orientar al equipo.
Big Boss: Gestor del proyecto, gerente del proyecto, debe tener una idea general del proyecto y estar familiarizado con su estado.
FASES
Planificación
Diseño
Desarrollo
Prueba