Presentación 1
Presentación 1
Presentación 1
software
Codificar y corregir (Code-and-Fix)
Procesos iterativos
1. Análisis de componentes: Se determina qué componentes pueden ser utilizados para el sistema en
cuestión. Casi siempre hay que hacer ajustes para adecuarlos.
2. Modificación de requisitos: Se adaptan (en lo posible) los requisitos para concordar con los componentes de
la etapa anterior. Si no se puede realizar modificaciones en los requisitos, hay que seguir buscando
componentes más adecuados (fase 1).
3. Diseño del sistema con reutilización: Se diseña o reutiliza el marco de trabajo para el sistema. Se debe
tener en cuenta los componentes localizados en la fase 2 para diseñar o determinar este marco.
4. Desarrollo e integración: El software que no puede comprarse, se desarrolla. Se integran los componentes y
subsistemas. La integración es parte del desarrollo en lugar de una actividad separada.
Las ventajas de este modelo son:
· Disminuye el costo y esfuerzo de desarrollo.
· Reduce el tiempo de entrega.
· Disminuye los riesgos durante el desarrollo.
Desarrollo incremental
Mills sugirió el enfoque incremental de desarrollo como una forma de reducir la repetición 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. Es una combinación del Modelo de Cascada y Modelo Evolutivo.
Reduce el rehacer trabajo durante el proceso de desarrollo y da oportunidad para retrasar las decisiones hasta
tener experiencia en el sistema.
Durante el desarrollo de cada incremento se puede utilizar el modelo de cascada o evolutivo, dependiendo del
conocimiento que se tenga sobre los requisitos a implementar. Si se tiene un buen conocimiento, se puede optar
por cascada, si es dudoso, evolutivo.
Entre las ventajas del modelo incremental se encuentran:
· Los clientes no esperan hasta el fin del desarrollo para utilizar el sistema. Pueden empezar a usarlo desde el
primer incremento.
· Los clientes pueden aclarar los requisitos que no tengan claros conforme ven las entregas del sistema.
· Se disminuye el riesgo de fracaso de todo el proyecto, ya que se puede distribuir en cada incremento.
· Las partes más importantes del sistema son entregadas primero, por lo cual se realizan más pruebas en estos
módulos y se disminuye el riesgo de fallos.
· Cada incremento debe ser pequeño para limitar el riesgo (menos de 20.000 líneas).
· Cada incremento debe aumentar la funcionalidad.
· Es difícil establecer las correspondencias de los requisitos contra los incrementos.
· Es difícil detectar las unidades o servicios genéricos para todo el sistema.
Desarrollo en espiral
El modelo de desarrollo en espiral es actualmente uno de los más conocidos y fue propuesto por Boehm . El ciclo de
desarrollo se representa como una espiral, en lugar de una serie de actividades sucesivas con retrospectiva de una
actividad a otra.
Cada ciclo de desarrollo se divide en cuatro fases:
1. Definición de objetivos: Se definen los objetivos. Se definen las restricciones del proceso y del producto. Se realiza
un diseño detallado del plan administrativo. Se identifican los riesgos y se elaboran estrategias alternativas
dependiendo de estos.
2. Evaluación y reducción de riesgos: Se realiza un análisis detallado de cada riesgo identificado. Pueden
desarrollarse prototipos para disminuir el riesgo de requisitos dudosos. Se llevan a cabo los pasos para reducir los
riesgos.
3. Desarrollo y validación: Se escoge el modelo de desarrollo después de la evaluación del riesgo. El modelo que se
utilizará (cascada, sistemas formales, evolutivo, etc.) depende del riesgo identificado para esa fase.
4. Planificación: Se determina si continuar con otro ciclo. Se planea la siguiente fase del proyecto.
Este modelo a diferencia de los otros toman en consideración explícitamente el riesgo, esta es una actividad
importante en la administración del proyecto.
¿CUAL ES EL MODELO DE
PROCESO MAS ADECUADO?
Las propuestas comerciales y académicas actuales promueven procesos iterativos, donde en
cada iteración puede utilizarse uno u otro modelo de proceso, considerando un conjunto de
criterios (Por ejemplo: grado de definición de requisitos, tamaño del proyecto, riesgos
identificados, entre otros).
Desarrollo basado en reutilización Medio Bajo a Alto Bajo a Medio Alto Alto
Definición
Define como se divide un proyecto en fases y las tareas a realizar en cada una.
Para cada una de las fases está especificado cuales son las entradas que reciben y las salidas que
producen.
Tienen alguna forma de gestionar el proyecto.
1. Adecuación.
2. Mantenibilidad.
3. Usabilidad.
4. Fiabilidad.
5. Corrección.
6. Eficiencia.
METODOLOGÍAS
Si tomamos como criterio las notaciones utilizadas para especificar artefactos producidos en
actividades de análisis y diseño, podemos clasificar las metodologías en dos grupos:
Metodologías Estructuradas y Metodologías Orientadas a Objetos.
Metodologías Ágiles, están mas orientadas a la generación de código con ciclos mas
cortos de desarrollo.
METODOLOGÍAS ESTRUCTURADAS
Técnica en la cual la estructura de un programa tan solo emplea tres estructuras lógicas de control:
secuencia, selección e iteración. La programación estructurada se basa en el teorema del programa
estructurado demostrado por Böhm-Jacopini, el cual establece que cualquier programa con una entrada
y una salida exclusivamente es equivalente a un programa que contiene solamente las estructuras
lógicas mencionadas anteriormente.
lenguajes para la programación estructurada. Los más famosos son: Cobol, Fortran, C, Pascal, Modula 2, ALGOL
y Ada.
Lenguajes de programación
C++
Java
Visual Basic
METODOLOGIAS
Incremental
Cooperativo
Sencillo
Adaptable