martes, 3 de diciembre de 2013

PROCESOS ITERATIVO

A continuación se expondrán dos enfoques híbridos, especialmente diseñados para el soporte de las iteraciones:
ü  Desarrollo en Espiral.
ü  Desarrollo incremental
Mills [9] 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 (ver Figura 10). 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.



Figura 15: Modelo de desarrollo iterativo incremental.

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.
Algunas de las desventajas identificadas para este modelo son:
·       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 BASADO EN REUTILIZACIÓN

Como su nombre lo indica, es un modelo fuertemente orientado a la reutilización. Este modelo consta de 4 fases ilustradas en la Figura 9. A continuación se describe cada fase:
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. “Ajustar la metodología para el desarrollo en cuestión”.
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 errores, ya que los componentes reutilizados han sido probados.
·       Disminuye los riesgos durante el desarrollo.

Figura 14: Desarrollo basado en reutilización de componentes

Desventajas de este modelo:   
·       Los “compromisos” en los requisitos son inevitables, por lo cual puede que el software no cumpla las expectativas del cliente.

·       Las actualizaciones de los componentes adquiridos no están en manos de los desarrolladores del sistema.

DESARROLLO FORMAL DEL SISTEMA


Este modelo se basa en transformaciones formales de los requisitos hasta llegar a un programa ejecutable.
Descripción: https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikQnbr8BvCamLCYfkqpu2F92z-c8NTVILDjZPYGwYGYj3xOIE-PRI03cnR9OOcbT-hMqpJro6ly9OHO_VSlLoXJLyodXKT6K_20e_YFNNKuH66ILMcPQQMz7PtsRh25wMhJPHcjCi97U5A/s1600/desarool.png

Figura 13: Paradigma de programación automática.

La Figura 7 (obtenida desde [20]) ilustra un paradigma ideal de programación automática. Se distinguen dos fases globales: especificación (incluyendo validación) y transformación.
Las características principales de este paradigma son: La especificación es formal y ejecutable constituye el primer prototipo del sistema, la especificación es validada mediante prototipación. Posteriormente, a través de transformaciones formales la especificación se convierte en la implementación del sistema, en el último paso de transformación se obtiene una implementación en un lenguaje de programación determinado. El mantenimiento se realiza sobre la especificación (no sobre el código fuente), la documentación es generada automáticamente y el mantenimiento es realizado por repetición del proceso (no mediante parches sobre la implementación).

Observaciones sobre el desarrollo formal de sistemas:
·       Permite demostrar la corrección del sistema durante el proceso de transformación. Así, las pruebas que verifican la correspondencia con la especificación no son necesarias.
·       Es atractivo sobre todo para sistemas donde hay requisitos de seguridad y confiabilidad importantes.
·       Requiere desarrolladores especializados y experimentados en este proceso para llevarse a cabo.
Especificación Informal
En esta especificación la descripción se realiza en lenguaje natural, con lo cual resultan ambiguas (confuso, dudoso) e imprecisas.
Especificación formal
Describe de manera precisa las propiedades que un sistema de información debe tener, sin preocuparse por la forma de obtener dichas propiedades. Describe lo que el sistema debe hacer sin decir cómo se va a hacer.
§  Se proporciona información detallada sobre los requisitos del software y del diseño.
§  Las especificaciones formales pueden ser procesadas usando herramientas de software, esto hace posible efectuar animaciones de la especificación, proveyendo de esta forma un prototipo del software.
La programación automática pretende que sea el propio ordenador o el software el que escriba los programas que necesitan las personas, siguiendo las indicaciones de estas.
Transformaciones formales

'Cada paso, denominado refinamiento, disminuye el nivel de abstracción del modelo hasta llegar a una descripción ejecutable.
 

Sample text

Redes Sociales

twitterfacebookgoogle pluslinkedinrss feedemail