Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Una metodologa de desarrollo de software no es ms que una serie de pasos que se realizan de
forma rigurosa tal que su resultado a partir de unos requisitos nuevos o modificados sea un
software nuevo o modificado. Se puede ver como una caja negra, como muestra la siguiente
imagen:
Una metodologa de desarrollo de software se refiere al entorno que se usa para estructurar,
planificar y controlar el proceso de desarrollo de un sistema de informacin. Una gran variedad
de metodologas se han desarrollado a lo largo de los aos, cada una de ellas con sus fortalezas
y debilidades. Una determinada metodologa no es necesariamente aplicable a todo tipo de
proyectos, ms bien cada tipo de proyecto tiene una metodologa a la que se adapta mejor.
Una Metodologa de desarrollo de software consiste en:
James Senn
1.
2.
3.
Llorens Fabregas
1.
2.
3.
4.
5.
Requerimientos.
Anlisis/Diseo.
Construccin.
Pruebas.
Produccin y mantenimiento.
Jonas Montilva
1.
2.
3.
4.
5.
Definir el proyecto.
Anlisis del contexto.
Definicin de los requerimientos.
Diseo preliminar.
Diseo detallado.
Roger Pressman
1.
2.
3.
4.
5.
1980
1990
Nuevo milenio
MODELO CASCADA
Tambin conocido como modelo
clsico, modelo tradicional o modelo
lineal secuencial. l mtodo de la
cascada es considerado como el
enfoque clsico para el ciclo de vida
del desarrollo de sistemas, se puede
decir que es un mtodo puro que
implica un desarrollo rgido. Est es
una secuencia de actividades (o
etapas) que consisten en el anlisis de
requerimientos,
l
diseo,
la
implementacin, la integracin y las
pruebas.
El anlisis de requerimientos
consiste en reunir las necesidades del producto y casi siempre su salida es texto.
El diseo describe la estructura interna del producto y suele representarse con
diagramas y texto.
La implementacin significa programacin. Producto de esta etapa es el cdigo en
cualquier nivel, incluido el producido por sistemas de generacin automtica.
La integracin es el proceso de integracin es el proceso de ensamblar las partes para
completar el producto.
Es caracterizado por ordenar de manera rigurosa las etapas del ciclo de vida de software, dado
que el comienzo de cada etapa debe esperar a la finalizacin de la inmediata anterior. Cuando la
revisin determina que el proyecto no est listo para pasar a la siguiente etapa, permanece en la
etapa actual hasta que est preparado. Y debido a que el proceso est planeado es ms fcil
determinar costos y los plazos. Est modelo puede ser visto como un modelo con forma de
cascada de agua con varios saltos, en la que cada salto representa cada una de las fases del ciclo
de vida.
Ventajas
Criticas
No refleja realmente el proceso de desarrollo del software. Ya que la mayora de los que
desarrollan proyectos no cumple con este lineamiento.
Se tarda mucho tiempo en pasar por todo el ciclo
La aplicacin de la metodologa en cascada se orienta mejor al desarrollo de proyectos
de corto plazo, de poca innovacin y proyectos definitivos y detallados.
Metodologa pueden confundir al equipo profesional en las etapas tempranas del
proyecto.
No es frecuente que el cliente o usuario final explicite clara y completamente los
requisitos.
MODELO PROTOTIPADO
Etapas
Ventajas
Desventajas
Debido a que el usuario ve que el prototipo funciona piensa que este es el producto
terminado y no entienden que recin se va a desarrollar el software.
El desarrollador puede caer en la tentacin de ampliar el prototipo para construir el
sistema final sin tener en cuenta los compromisos de calidad y mantenimiento que tiene
con el cliente
Tipos de prototipos
Hay dos clases de prototipos el desechable y el evolucionario.
El desechable: nos sirve para eliminar dudas sobre lo que realmente quiere el cliente
adems para desarrollar la interfaz que ms le convenga al cliente.
El evolucionario: es un modelo parcialmente construido que puede pasar de ser
prototipo a ser software pero no tiene una buena documentacin y calidad.
MODELO INCREMENTAL
El modelo incremental fue propuesto por Harlan Mills en el ao 1980. Surgi el enfoque
incremental de desarrollo como una forma de reducir la repeticin del trabajo en el proceso de
desarrollo y dar oportunidad de retrasar la toma de decisiones en los requisitos hasta adquirir
experiencia con el sistema. Este modelo se conoce tambin bajo las siguientes denominaciones:
El Modelo Incremental combina elementos del Modelo Lineal Secuencial con la filosofa
interactiva de Construccin de Prototipos. Como se muestra en la Figura 1, el modelo
incremental aplica secuencias lineales de forma escalonada mientras progresa el tiempo en el
calendario. Cada secuencia lineal produce un incremento del software. El primer incremento
generalmente es un producto esencial denominado ncleo.
En una visin genrica, el proceso se divide en 4 partes:
Anlisis
Diseo
Cdigo
Prueba
Sin embargo, para la produccin del Software, se usa el principio de trabajo en cadena o
Pipeline. Con esto se mantiene al cliente en constante contacto con los resultados obtenidos en
cada incremento. Es el mismo cliente el que incluye o desecha elementos al final de cada
incremento a fin de que el software se adapte mejor a sus necesidades reales. El proceso se
repite hasta que se elabora el producto completo. De esta forma el tiempo de entrega se reduce
considerablemente.
El Modelo Incremental es de naturaleza interactiva brindando al final de cada incremento la
entrega de un producto completamente operacional. Este modelo es particularmente til cuando
no se cuenta con una dotacin de personal suficiente. Los primeros pasos los pueden realizar un
grupo reducido de personas y en cada incremento se aadir personal, de ser necesario. Por otro
lado los incrementos se pueden planear para gestionar riesgos tcnicos.
Durante el proceso se trata de llevar a cabo al proyecto en diferentes partes que al final
terminar siendo la solucin completa requerida por el cliente, pero stas partes no se pueden
realizar en cualquier orden, sino que dependen de lo que el cliente este necesitando con ms
urgencia, de los puntos ms importantes del proyecto, los requerimientos ms bsicos, difciles
y con mayor grado de riesgo, ya que estos se deben hacer al comienzo, de manera que se
disminuya la dificultad y el riesgo en cada versin.
De este modo podemos terminar una aplicacin ejecutable (primera versin) que podr ser
entregada al cliente para que ste pueda trabajar en ella y el programador pueda considerar las
recomendaciones que el cliente efecte para hacer mejoras en el producto. Estas nuevas mejoras
debern esperar a ser integradas en la siguiente versin junto con los dems requerimientos que
no fueron tomados en cuenta en la versin anterior.
El modelo incremental consiste en un desarrollo inicial de la arquitectura completa del sistema,
seguido de sucesivos incrementos funcionales. Cada incremento tiene su propio ciclo de vida y
se basa en el anterior, sin cambiar su funcionalidad ni sus interfaces. Una vez entregado un
incremento, no se realizan cambios sobre el mismo, sino nicamente correccin de errores.
Dado que la arquitectura completa se desarrolla en la etapa inicial, es necesario conocer los
requerimientos completos al comienzo del desarrollo.
Al iniciar del desarrollo, los clientes o los usuarios, identifican a grandes rasgos, las
funcionalidades que proporcionar el sistema. Se confecciona un bosquejo de requisitos
funcionales y ser el cliente quien se encarga de priorizar que funcionalidades son mas
importantes. Con las funcionalidades priorizadas, se puede confeccionar un plan de
incrementos, donde en cada incremento se indica un subconjunto de funcionalidades que el
sistema entregar. La asignacin de funcionalidades a los incrementos depende de la prioridad
dada a los requisitos. Finalizado el plan de incrementos, se puede comenzar con el primer
incremento.
Caractersticas:
Se evitan proyectos largos y se entrega "algo de valor" a los usuarios con cierta
frecuencia.
El usuario se involucra ms.
Difcil de evaluar el costo total.
Difcil de aplicar a los sistemas transaccionales que tienden a ser integrados y a operar
como un todo.
Requiere gestores experimentados.
Los errores en los requisitos se detectan tarde.
El resultado puede ser positivo.
Ventajas:
Desventajas:
Conclusin:
Un modelo incremental lleva a pensar en un desarrollo modular, con entregas parciales del
producto Software denominados "incrementos" del sistema, que son escogidos en base a
prioridades predefinidas de algn modo. El modelo permite una implementacin con
refinamientos sucesivos (ampliacin y/o mejoras). Con cada incremento se agrega nueva
funcionalidad o se cubren nuevos requisitos o bien se mejora la versin previamente
implementada del producto software.
MODELO ESPIRAL
El desarrollo en espiral es un modelo de ciclo de vida del software definido por primera vez por
Barry Boehm en 1988. El modelo espiral en el desarrollo del software es un modelo meta del
ciclo de vida del software donde el esfuerzo del desarrollo es iterativo, tan pronto culmina un
esfuerzo del desarrollo por ah mismo comienza otro; adems en cada ejecucin del desarrollo
se sigue cuatro pasos principales:
1. Determinar o fijar los objetivos.
En este paso se definen los objetivos especficos para posteriormente identifica las limitaciones
del proceso y del sistema de software, adems se disea una planificacin detallada de gestin y
se identifican los riesgos.
2. Anlisis del riesgo.
En este paso se efecta un anlisis detallado para cada uno de los riesgos identificados del
proyecto, se definen los pasos a seguir para reducir los riesgos y luego del anlisis de estos
riesgos se planean estrategias alternativas.
3. Desarrollar, verificar y validar.
En este tercer paso, despus del anlisis de riesgo, se eligen un paradigma para el desarrollo del
sistema de software y se lo desarrolla.
4. Planificar.
En este ltimo paso es donde el proyecto se revisa y se toma la decisin si se debe continuar con
un ciclo posterior al de la espiral. Si se decide continuar, se desarrollan los planes para la
siguiente fase del proyecto.
Caractersticas
Es considerado como un modelo evolutivo ya que combina el modelo clsico con el diseo de
prototipos.
Conclusin
El prototipo del modelo en espiral para la ingeniera de software es en la actualidad el enfoque
ms realista para el desarrollo de software y de sistemas a gran escala. Utiliza un enfoque
evolutivo para la ingeniera de software, permitiendo al desarrollador y al cliente entender y
reaccionar a los riesgos en cada nivel del modelo en espiral. Utiliza la creacin de prototipos
como un mecanismo de reduccin de riesgo, pero, lo que es ms importante permite a quien lo
desarrolla aplicar el enfoque de creacin de prototipos en cualquier etapa de la evolucin de
prototipos.
Caractersticas De La Metodologa Xp
Pasos de la Metodologa Xp
Ventajas:
Programacin organizada.
Desventajas:
Ciclo de entrega en XP
Caractersticas De Rad
Entre las principales caractersticas del RAD tenemos:
1. Equipos Hbridos
2. Herramientas Especializadas
Desarrollo "visual"
Creacin de prototipos falsos (simulacin pura)
Creacin de prototipos funcionales
Mltiples lenguajes
Calendario grupal
Herramientas colaborativas y de trabajo en equipo
Componentes reusables
Interfaces estndares (API)
Control de versiones
3. "Timeboxing"
Las funciones secundarias son eliminadas como sea necesario para cumplir con el
calendario.