Metodologías de desarrollo de software
Enviado por soleliasg • 13 de Marzo de 2019 • Síntesis • 865 Palabras (4 Páginas) • 137 Visitas
INTRODUCCIÓN
¿Qué es una metodología de desarrollo de software?
Una metodología de desarrollo de software es una serie de pasos técnicas y herramientas con soporte documental que, como resultado, a partir de una serie de modificaciones y tras nuevos requerimientos, se obtiene un software nuevo o modificado.
Un producto de software es de calidad si cumple rigurosamente con todos sus requisitos. Es decir, calidad=requisitos satisfechos. Gracias a esto podemos medir la calidad de un producto basándonos en los requisitos iniciales.
Existen dos tipos de metodologías: las pesadas y las ligeras. Las primeras son metodologías donde todo está muy controlado y maneja demasiada documentación antes de proceder a implementar el proyecto. Con demasiado peso en el análisis y diseño. Son ideales para proyectos grandes o cuyo rendimiento y nivel de calidad son críticos para su éxito.
Las segundas son metodologías muy prácticas que dejan de lado gran parte de la documentación y son generalmente usadas en proyectos que tienen cambios constantes en sus registros durante todo el proceso.
Algunos ejemplos de metodologías ágiles son: XP, SCRUM, DAS.
Algunos ejemplos de metodologías pesadas son: PSP y TSP, RUP
Ambas tienen ventajas y desventajas, sin embargo, la metodología que se elija se adapta al contexto del proyecto, dependiendo de los recursos técnicos y humanos, tiempo de desarrollo y el tipo de sistema. (Pressman, 2010)
XP | SCRUM | DAS | PSP | TSP | RUP | |
Definición | Metodología de programación extrema, considerado el método más ágil conocido y ampliamente utilizado. | Metodología ágil que sirve para gestionar el desarrollo de software, y su principal objetivo es maximizar el retorno de la inversión para su empresa. | Desarrollo Adaptativo de Software es un método ágil de implementación de patrones para desarrollo de software. | Proceso Personal de Software, metodología enfocada en las habilidades para una ingeniería eficaz de la persona. | Proceso Equipo de Software, promueve el alto desempeño en los equipos con un proceso operativo definido. | Proceso Unificado Racional, hace una propuesta orientada por disciplinas para lograr las tareas y responsabilidades de una organización que desarrolla software. |
Características | -Desarrollo iterativo e incremental. -Programación en parejas. -Corrección de todos los errores. -Integración del equipo de programación con el cliente. -Refactorización del código. -Simplicidad. | -Gestión de las expectativas del cliente. -Resultados anticipados. -Flexibilidad y adaptación. -Retorno de inversión. -Productividad y calidad. | - Iterativo. -Orientado a componentes de software. -Tolerante a los cambios. -Guiado por los riesgos. -Sus componentes son: especular, colaborar y aprender. | -Las tareas y actividades están definidas en un conjunto de documentos llamados SCRIPTS. -Mantiene la práctica individual. -Trabaja con mediciones. | -Mantiene la practica colaborativa. -Se enfoca en metas y planes. -Trabaja con directrices al equipo. -busca la aceleración de producción. | -Centrado en la arquitectura. -Iterativo e incremental. -Enfoque orientado a objetos. -Amplio y diverso. -Permite mediciones: Estimación de costos y tiempo, nivel de avance. |
Ventajas | -Organización en la programación. -satisfacción del programador. -Reduce la tasa de errores. -Comunicación entre cliente desarrollador. -Facilita los cambios. -Ahorra tiempo y dinero. | -Cumplimiento de expectativas. -Flexibilidad a cambios. -Reducción del tiempo. -Reducción de riesgos. -Predicciones de tiempo. | -La revisión de los componentes sirve para aprender de sus errores. -Promulga colaboración. -Anticipa cambios y trata en seguida con ellos. | -Reduce defectos en el código. -Reduce la duración del ciclo de vida detectando defectos en etapas iniciales. -Reduce costos. Estimaciones precisas. | -Eleva la calidad de los proyectos. -Mejora la productividad. -Detección Temprana de riesgos y defectos. -Reducción en costos de pruebas y tiempos. | -Requiere de conocimientos del proceso y de UML. -Progreso visible en etapas tempranas. -Facilita la reutilización del código lo cual permite apreciar mejoras en el diseño. |
Desventajas | -Solo se recomienda en proyectos a corto plazo. -Si llegase a fallar, las comisiones se elevan. | -Puntualidad. -Susceptible a la ausencia de un miembro del equipo. -Limitado de tamaño(equipos pequeños y de tamaño moderado). | -Prolongación de ciclo de vida por errores no detectados. -Por ser metodología ágil implica no realizar procesos que son requeridos en las metodologías tradicionales. | Documentación y registro. -Planificación. -Comunicación entre los miembros. -Entrenar a nuevos miembros. | -Los miembros deben tener compromiso. - Se debe de contar con un buen conjunto de métricas y parámetros de calidad. -Cada miembro debe estar entrenado en PSP. | -Por el grado de complejidad puede no resultar muy adecuado. -RUP es mal aplicado en el estilo cascada. |
Aplicación | Se puede aplicar esta metodología en la industria financiera. En este campo se prefiere habitualmente el software rápido, aunque contenga errores. | Es aplicable a cualquier tipo de proyecto, en áreas empresariales pues gestiona proyectos demasiado complejos o que requieran la ejecución de actividades simultáneas. | Es un concepto que se puede usar en las empresas cambiantes como lo son las vendedoras de productos al menudeo, se recomienda usar en proyectos pequeños. | Se aplica a programas pequeños. Se centra en la administración del tiempo y calidad a través de la eliminación temprana de defectos. | Se aplica en planeación y control de proyectos, realizando un énfasis balanceado entre procesos, productos y trabajo en equipo. | Recomendado para proyectos grandes a largo plazo, a nivel de empresa con proyectos a media y alta complejidad. |
CUADRO COMPARATIVO DE METODOLOGIAS DE DESARROLLO DE SOFTWARE
...