Metodologías De Software
Enviado por jzuniga • 10 de Septiembre de 2011 • 1.876 Palabras (8 Páginas) • 924 Visitas
Metodologías o enfoques mas usados
Dado los avances en la tecnología, ha surgido la necesidad de crear e implementar software para las necesidades básicas de la humanidad. El modo en que se desarrollan estas necesidades no es fácil, ya que es necesario trabajar de un modo estructurado respectando las etapas y necesidades de cada proyecto.
Las metodologías de desarrollo de software surgen para satisfacer la necesidad de la estandarización del desarrollo de software. El origen de estas es a raíz de la denominada “Crisis del Software” [NTP]. Esta crisis fue como resultado de la instauración de la tercera generación del hardware, basados en “Circuitos Integrados”[NTP]. Con esta nueva generación el hardware dejo de ser un impedimento para obtener un software fiable y de calidad, dado su bajo costo (con respecto a las tecnologías dominantes de esos tiempos) y gran adaptabilidad.
Esta crisis dio lugar a la creación de la “Ingeniería de Software”, la cual se define como “una disciplina formada por un conjunto de métodos, herramientas y técnicas que se utilizan para el desarrollo de programas informáticos, o comúnmente conocido como Software” [REFERENCIA http://definicion.de/ingenieria-de-software/].
A pesar de la creación de esta disciplina, muchos organismos continuaron trabajando sin ningún estándar y sin aplicar ninguna practica de estas, lo que implica continuar viviendo bajo esta Crisis.
La Reingeniería de Software es la actividad que pretende dar fin a este problema.
La Reingenería de Software se define como “modificación de un producto software, o de ciertos componentes, usando para el análisis del sistema existente técnicas de Ingeniería Inversa y, para la etapa de reconstrucción, herramientas de Ingeniería Directa, de tal manera que se oriente este cambio hacia mayores niveles de facilidad en cuanto a mantenimiento, reutilización, comprensión o evaluación.”[REFERENCIA http://cnx.org/content/m17438/latest/]
Para gestionar las actividades de la reingenería, como también para gestionar cualquier proyecto de software que se adapte a las características de cada modelo, existen múltiples metodologías que se adaptan de mejor manera a cada una de las necesidades de estas etapas. Estas metodologías se pueden clasificar en dos grupos:
Metodologías Orientadas al Plan: también conocidas como “Metodologías Pesadas” [NTP], se basan en la gestión predictiva, la cual es la manera clásica de gestionar un proyecto. Estas metodologías se basan en dos puntos fundamentales:
Todos los proyectos mantiene características y comportamientos regulares [REFERENCIA Juan Palacio & Claudia Ruata, Scrum Manager Gestión de Proyectos, Enero 2011]
El objetivo de la ejecución de un proyecto es lograr el producto previsto en el tiempo planificad sin desbordar los costos estimados.
Metodologías Ágiles: se basan en la gestión adaptativa, la cual surge al cuestionar la validez de la gestión tradicional. Estas metodologías se basan en dos premisas:
No hay una forma única y válida para gestionar cualquier tipo de proyecto.
Hay proyectos que tienen como objetivo valor para el producto, y no funcionalidad, fecha y costes.
La siguiente tabla describe los criterios de idoneidad de un proyecto para escoger que método de gestión se adecua mas a las necesidades:
Adaptable (Ágiles)
Predictiva (Pesadas)
Prioridad de Negocio
Valor
Cumplimiento
Estabilidad de Requisitos
Entorno Inestable
Entorno Estable
Rigidez de Producto
Modificable
Dificil de modificar
Coste de Prototipado
Bajo
Alto
Criticidad de Sistema
Baja
Alta
Tamaño de Equipo
Reducido
Grandes
Tabla 4.1. - Criterios de idoneidad para gestión ágil o pesadas, dependiendo del proyecto [Extraída desde Libro Scrum Manager Gestión de Proyectos]
A continuación se presentan las metodologías mas comúnmente utilizadas, tanto para la gestión predictiva como para la gestión adaptable, dando hincapié en su modo de aplicación, su estructura, ventajas y desventajas.
METODOLOGIAS MAS UTILIZADAS
Metodologías de Gestión Predictiva (Metodologías Clásicas o Pesadas)
Dentro de este tipo de metodologías se encuentran:
Modelo Cascada: Este enfoque metodológico que ordena rigurosamente las etapas del ciclo de vida del software, de forma tal que el inicio de cada etapa debe esperar a la finalización de la inmediatamente anterior. la palabra cascada sugiere, mediante la metafora de la fuerza de la gravedad, el esfuerzo necesario para introducir un cambio en las fases más avanzadas de un proyecto. [Referencia http://www.mitecnologico.com/Main/ModeloDeCascada]
Modelo Cascada [Referencia http://eproano334.blogspot.es/tags/Modelo/]
Modelo Espiral: La metodología de desarrollo en espiral es una evolución de método clásico en cascada (Waterfall, top-down) y se considera un método de desarrollo incremental. Este tipo de metodología equivale al de cascada, pero en él se permite el solapamiento de varias etapas con el objetivo de flexibilizar y compensar el tiempo de desarrollo total y alcanzar resultados funcionales en etapas tempranas. Está considerada como un método de desarrollo rápido y eficiente.
Modelo Espiral [Referencia http://www.acertasoftware.com/mspiral.html]
RUP (Rational Unified Process): El Proceso Racional Unificado es un proceso de desarrollo de software y junto con el Lenguaje Unificado de Modelado UML, constituye la metodología estándar más utilizada para el análisis, implementación y documentación de sistemas orientados a objetos.
El RUP no es un sistema con pasos firmemente establecidos, sino un conjunto de metodologías adaptables al contexto y necesidades de cada organización. [Referencia http://es.wikipedia.org/wiki/Proceso_Unificado_de_Rational]
Metodología RUP [Referencia http://malkamasco.blogspot.com/2010/07/implementacion-de-metodologia-rup.html]
MSF (Microsoft Solution Framework): es un grupo de guías para lograr que una solución en sistemas de información
...