Unidad uno Proceso de desarrollo de software
¿Qué es el proceso de software? ¿Qué dificultades presenta?
Es una serie de actividades relacionadas que conduce Son de rigidez ante cambios, entrega tardía de valor al
a la elaboración de un producto de software. Puede cliente, riesgo de malentendidos iniciales, no se
ser el desarrollo desde cero, o como se suele utilizar hoy adapta a proyectos a gran escala.
en día, que extiende y modifica sistemas existentes.
Modelo RAD
¿Cuáles son las descripciones que deben incluir los
Basado en el modelo lineal secuencial, con ciclos de
procesos de desarrollo de software? desarrollo extremadamente cortos(90 días). Cada
• Productos: Son resultados de una actividad del equipo maneja una parte del sistema. Enfoque de
proceso. construcción basado en el uso de componentes
reutilizables.
• Roles: Reflejan las responsabilidades de la gente
que intervienen en el proceso. Candidatos: Sistemas que se puede modularizar.
• Postcondiciones y precondiciones: Declaraciones
validas antes y después de que se realice una ¿Posee restricciones?
actividad del proceso o se cree un producto.
No todos los sistemas son aplicables (no modularizables
o bajo reúso de componentes ), no aplica en sistemas
¿Qué actividades se desarrollan en el proceso de desarrollo con gran mantenimiento ni proyectos grandes.
de software?
MODELOS EVOLUTIVOS
• Especificación: análisis de requerimientos y
especificación.
Espiral
• Diseño e implementación: Diseño arquitectural,
diseño de programas e implementación de El modelo en espiral es un enfoque iterativo que se
programas. centra en la gestión de riesgos. Divide el proyecto en
• Validación: validación y verificación. ciclos o "vueltas", donde cada vuelta incluye
• Evolución: entrega del sistema y mantenimiento. planificación, análisis de riesgos, ingeniería y
evaluación. Este enfoque es adecuado para proyectos
¿ Qué es un ciclo de vida del software? con requisitos cambiantes o inciertos.
Periodo de tiempo que comienza al concebir una idea ¿Cuáles son sus actividades principales?
de un nuevo sistema software, y termina cuando este
se retira y deja de funcionar. • Planificación: Determinación de objetivos,
alternativas y restricciones (En la primera vuelta se
¿Qué es un modelo de proceso ? recolectan requisitos y se planifica inicialmente el
proyecto y luego planificación basada en los
Es una plantilla o marco que define el proceso de
comentarios del cliente)
desarrollo a través del cual se software.
• Análisis de riesgos: Análisis de alternativas e
Son una guía respecto al orden en que deber realizarse identificación/resolución de riesgos (En la primera
las actividades. vuelta se analiza de riesgos basado en los requisitos
iniciales y en las siguientes vueltas en la reacción
¿Qué tipos de modelos existen? del cliente)
• Modelos secuenciales: Lineal, cascada, RAD. • Ingeniería: Desarrollo del producto de siguiente
• Modelos evolutivos: Incremental, espiral, basado nivel (se construye un prototipo cero y luego se va
en reúso, prototipos. refinando)
• Modelos formales: Transformacional. • Evaluación del cliente: valoración de los resultados
de la ingeniera en cada etapa.
MODELOS DE SECUENCIALES
Modelo en cascada
Este modelo organiza el desarrollo de software en una
serie de fases secuenciales, donde cada fase
depende de la finalización de la anterior.
Las fases típicas incluyen requisitos, análisis, diseño,
codificación, pruebas y mantenimiento. Es un enfoque
lineal y se utiliza cuando los requisitos son bien
comprendidos y no se esperan cambios significativos.
Incremental Basado en reúso
Divide el proyecto en incrementos o partes funcionales Un modelo basado en reuso en el desarrollo de
del software. Cada incremento agrega funcionalidad software se refiere a una estrategia o enfoque en el
adicional al sistema, hasta su entrega. cual se busca maximizar la reutilización de
componentes de software existentes (como código,
Es útil para proyectos en los que es posible una entrega módulos, bibliotecas, frameworks, etc.) en lugar de
temprana de partes del producto. construir todo el software desde cero.
Las actividades de especificación, desarrollo y
¿Cuál es su objetivo principal?
validación están entrelazadas, con rápida
retroalimentación a través de las actividades • Ahorrar tiempo, esfuerzo y recursos
• Mejorar la eficiencia y la calidad en el desarrollo
Se pueden incorporar de nuevos requisitos que pueden
de aplicaciones
no estar disponibles al iniciar el desarrollo
El primer incremento suele ser un núcleo básico ¿Qué etapas comprende?
desarrollado en base a los requerimientos centrales.
• Análisis de componentes: A partir de la
¿Posee algún inconveniente? especificación de requerimientos, se realiza una
búsqueda de componentes para implementarla
La primera iteración puede plantear los mismos • Modificación de requerimientos: Se modifican para
problemas que en un modelo lineal secuencial reflejar los componentes disponibles
Prototipos • Diseño de sistema con reutilización: Se diseña el
marco conceptual del sistema o se reutiliza uno
El modelo de prototipos se centra en la comprensión y existente
validación de los requisitos mediante la creación de • Desarrollo e integración: Se diseña el software que
representaciones visuales y funcionales tempranas del no puede procurarse de manera externa
sistema,
MODELOS FORMALES
¿Presenta inconvenientes?
El cliente ve el prototipo y lo confunde con el sistema Transformacional
real. No entiende la necesidad de volver a hacerlo.
El equipo de desarrollo toma decisiones rápidas para
poder construir el prototipo, que más tarde son difíciles
de revertir
¿Qué tipos existen?
• Ligeros: dibujos de pantallas de interfaz con
simulación de funcionamiento por enlaces a otros
dibujos.
• Operativos: Módulos de software con
funcionamiento propio que se desarrollan sin cubrir
las funcionalidades completas del sistema,
normalmente en entornos RAD
¿Presenta problemas?
• Hace falta una formación especializada para
aplicar la técnica.
• Muchos aspectos de los sistemas reales son difíciles
de especificar formalmente.
¿En qué sistemas aplica mejor?
Sistemas críticos en los que la seguridad y fiabilidad
debe poder asegurarse antes de poner el sistema en
operación.