Enlaces Visitados

domingo, 22 de mayo de 2011

INGENIERÍA DE SOFTWARE (METODOLOGIA RAD)

METODOLOGIA RAD
(DESARROLLO RAPIDO DE APLICACIONES)

HISTORIA
El desarrollo de los sistemas tradicionales de ciclo de vida se originó en la década de 1960 para desarrollar a gran escala funcional de sistemas de negocio en una época de grandes conglomerados empresariales. La idea principal era continuar el desarrollo de los sistemas de información en una muy deliberada, estructurada y metódica, reiterando cada una de las etapas del ciclo de vida. Los sistemas de información en torno a las actividades resueltas pesadas para el procesamiento de datos y rutinas de cálculo.

El desarrollo rápido de aplicaciones o RAD (acronimo en inglés de rapid application development) es un proceso de desarrollo de software, desarrollado inicialmente por James Martin en 1980. El método comprende el desarrollo iterativo, la construcción de prototipos y el uso de utilidades CASE (Computer Aided Software Engineering). Tradicionalmente, el desarrollo rápido de aplicaciones tiende a englobar también la usabilidad, utilidad y la rapidez de ejecución.

CARACTERÍSTICAS
Bajos costos: RAD, por lo general, resulta en costos más bajos. Esto se debe a que se forman pequeños equipos de profesionales quienes utilizan herramientas de alta capacidad para generar los sistemas. Estas herramientas conocidas como "CASE" (Computer Aided Systems Engineering) permiten que se aligere el proceso, lo cual ayuda a que los costos aún sean más bajos sin sacrificar la calidad del producto. El método RAD utiliza estas herramientas computadorizadas y talento humano para cumplir con las metas requeridas rápida y efectivamente.

Las herramientas integradas "CASE" proveen para que la planificación, análisis e itinerarios se creen gráficamente. Los analistas de sistemas interactúan con estas herramientas por medio de diagramas.

Calidad: La calidad de un sistema se mide en términos de hasta qué punto ese sistema, al momento que se implementa, cumple con los requisitos de la compañía y sus usuarios.

El uso de herramientas "CASE" tiene el propósito de integrar diagramas para representar la información y crear modelos del sistema. Se crean diseños y estructuras bien detalladas. Cuando es apropiado, los diagramas ayudan a visualizar los conceptos. Estas herramientas computadorizadas refuerzan la exactitud de los diagramas.

Las herramientas "CASE" junto con generadores de códigos y otros instrumentos para crear prototipos proveen un medio para asegurar la calidad del producto cuando se emplean utilizando la metodología adecuada. Un término apropiado para definir la calidad de una aplicación desarrollada con el modelo RAD es satisfacer los requisitos de los usuarios lo más eficazmente posible al momento que el sistema se implementa. Mientras menos tiempo transcurre en el desarrollo del sistema menos habrán cambiado las necesidades de los usuarios.

En compañías donde se ha utilizado el método tradicional de diseño de aplicaciones, al momento de instalar el sistema ha pasado tanto tiempo que las funciones definidas por los usuarios al comienzo del desarrollo han cambiado. Este significa volver a emplear tiempo y recursos humanos en modificar esos cambios lo que resulta en una pobre calidad del producto.

CUANDO APLICAR EL ENFOQUE

La metodología conocida como diseño rápido de aplicaciones (RAD según sus siglas en inglés) ha tenido mucho auge recientemente en el mundo de la informática. Esta metodología propone un proceso de desarrollo de "software" que permite que se creen sistemas de computadoras utilizables en un periodo de tiempo entre 60 a 90 días. RAD es un ciclo de desarrollo diseñado para crear aplicaciones de computadoras de alta calidad de las que acontecen en corporaciones grandes.

El desarrollo de aplicaciones enfrenta una transformación fundamental. Hace cinco años un proyecto para desarrollar una aplicación tomaba un periodo de entre 18 a 24 meses; actualmente, con la práctica del modelo RAD toma entre 1 a 3 meses.

CICLO DE VIDA
Etapa de planificación de los requisitos: Esta etapa requiere que usuarios con un vasto conocimiento de los procesos de la compañía determinen cuales serán las funciones del sistema. Debe darse una discusión estructurada sobre los problemas de la compañía que necesitan solución. Por lo general esta etapa se completa rápidamente cuando se crean equipos que envuelven usuarios y ejecutivos con un conocimiento amplio sobre las necesidades de la institución la planificación de los requisitos se da en modalidad de taller conocido como Junta de Planificación de Requisitos (JRP por sus siglas en inglés).


Etapa de diseño: Esta consiste de un análisis detallado de las actividades de la compañía en relación al sistema propuesto. Los usuarios participan activamente en talleres bajo la tutela de profesionales de la informática. En ellos descomponen funciones y definen entidades asociadas con el sistema. Una vez se completa el análisis se crean los diagramas que definen las alteraciones entre los procesos y la data. Al finalizar el análisis se traza el diseño del sistema. Se desarrollan los procedimientos y los esquemas de pantallas. Los prototipos de procedimientos críticos se construyen y se repasan y el plan para implementar el sistema se prepara.


Construcción: En la etapa de construcción el equipo de desarrolladores trabajando de cerca con los usuarios finaliza el diseño y la construcción del sistema. La construcción de la aplicación consiste de una serie de pasos donde los usuarios tienen la oportunidad de afirmar los requisitos y repasar los resultados. Las pruebas al sistema se llevan a cabo durante esta etapa. También se crea la documentación y las instrucciones necesarias para manejar la nueva aplicación, rutinas y procedimientos para operar el sistema.


Implementación: Esta etapa envuelve la instalación del nuevo producto y el manejo del cambio del viejo al nuevo sistema. Se hacen pruebas comprensivas y se adiestran los usuarios. Los cambios organizacionales y la operación del nuevo sistema se hacen en paralelo con el viejo sistema hasta que el nuevo se establezca completamente.


Consultado en:

DESCRIPCIÓN
Entre las principales características del RAD tenemos:
1. Equipos Híbridos
Equipos compuestos por alrededor de seis personas, incluyendo desarrolladores y usuarios de tiempo completo del sistema así como aquellas personas involucradas con los requisitos. Los desarrolladores de RAD deben ser "renacentistas": analistas, diseñadores y programadores en uno.
2. Herramientas Especializadas
Desarrollo "visual"
Creación de prototipos falsos (simulación pura)
Creación de prototipos funcionales
Múltiples lenguajes
Calendario grupal
Herramientas colaborativas y de trabajo en equipo
Componentes reusables Interfaces estándares (API)
Control de versiones
3. "Timeboxing"
Las funciones secundarias son eliminadas como sea necesario para cumplir con el calendario.
4. Prototipos Iterativos y Evolucionarios
Reunión JAD (Joint Application Development):
  • Se reúnen los usuarios finales y los desarrolladores.
  • Lluvia de ideas para obtener un borrador inicial de los requisitos.
  • Iterar hasta acabar:
  • Los desarrolladores construyen y depuran el prototipo basado en los requisitos actuales.
  • Los diseñadores revisan el prototipo.
  • Los clientes prueban el prototipo, depuran los requisitos.
  • Los clientes y desarrolladores se reúnen para revisar juntos el producto, refinar los requisitos y generar solicitudes de cambios.
  • Los cambios para los que no hay tiempo no se realizan. Los requisitos secundarios se eliminan si es necesario para cumplir.

Consultado en:

NORMATIVA
Norma ISO 12207-1 Actividades del Ciclo de Vida se agrupan en 5 procesos principales, 8 procesos de soporte y 4 procesos generales

ISO/IEC 12207 establece un proceso de ciclo de vida para el software que incluye procesos y actividades que se aplican desde la definición de requisitos, pasando por la adquisición y configuración de los servicios del sistema, hasta la finalización de su uso. Este estándar tiene como objetivo principal proporcionar una estructura común para que compradores, proveedores, desarrolladores, personal de mantenimiento, operadores, gestores y técnicos involucrados en el desarrollo de software usen un lenguaje común. Este lenguaje común se establece en forma de procesos bien definidos.

La estructura del estándar ha sido concebida de manera que pueda ser adaptada a las necesidades de cualquiera que lo use. Para conseguirlo, el estándar se basa en dos principios fundamentales: Modularidad y responsabilidad. Con la modularidad se pretende conseguir procesos con un mínimo acoplamiento y una máxima cohesión. En cuanto a la responsabilidad, se busca establecer un responsable para cada proceso, facilitando la aplicación del estándar en proyectos en los que pueden existir distintas personas u organizaciones involucradas, no importando el uso que se le de a este.

Los procesos se clasifican en tres tipos: Principales, de soporte y de la organización. Los procesos de soporte y de organización deben existir independientemente de la organización y del proyecto ejecutado. Los procesos principales se instancian de acuerdo con la situación particular.

Procesos principales.
Adquisición.
Suministro.
Desarrollo.
Operación.
Mantenimiento.

Procesos de soporte.
Documentación
Gestión de la configuración.
Aseguramiento de calidad.
Verificación.
Validación.
Revisión conjunta.
Auditoría.
Resolución de problemas.

Procesos de la organización.
Gestión.
Infraestructura.
Mejora.
Recursos Humanos.


Consultado en:

FASES
Modelado de gestión: el flujo de información entre las funciones de gestión se modela de forma que responda a las siguientes preguntas:
¿Qué información conduce el proceso de gestión? ¿Qué información se genera? ¿Quién la genera? ¿A dónde va la información? ¿Quién lo proceso?


Modelado de datos: el flujo de información definido como parte de la fase de modelado de gestión se refina como un conjunto de objetos de datos necesarios para apoyar la empresa. Se definen las características (llamadas atributos) de cada uno de los objetos y las relaciones entre estos objetos.


Modelado de proceso: los objetos de datos definidos en la fase de modelado de datos quedan transformados para lograr el flujo de información necesario para implementar una función de gestión. Las descripciones del proceso se crean para añadir, modificar, suprimir, o recuperar un objeto de datos. Es la comunicación entre los objetos.


Generación de aplicaciones: El RAD usa técnicas de cuarta generación. En lugar de crear software con lenguajes de programación de tercera generación, el proceso RAD trabaja para volver a utilizar componentes de programas ya existentes (cuando es posible) o a crear componentes reutilizables (cuando sea necesario). En todos los casos se utilizan herramientas automáticas para facilitar la construcción del software.


Pruebas de entrega: El proceso RAD enfatiza la reutilización de los componentes de los programas ya comprobados. Esto reduce tiempo de pruebas. Sin embargo, se deben probar todos los componentes nuevos y ejercitar todas las interfaces a fondo.

LENGUAJE DE PROGRAMACIÓN
Más dependientes de las herramientas que se usan que del lenguaje propiamente dicho. Hay un COMO de herramientas de desarrollo para GUI (Interfaz gráfico de usuario), aunque está desfasado. Con una buena herramienta gráfica se pueden realizar RAD. A veces los RAD se basan en la reutilización de código también, por lo que el software libre nos puede proporcionar un buen punto de partida.

Ejemplos
Describe los campos de programación en los que normalmente se usa el lenguaje. Se dan otros tipos de usos, buenos y malos, aunque no son tan frecuentes.
Comentarios
Información adicional sobre el lenguaje, como son sus capacidades y dialectos.


Lenguajes Principales
PERL
Ejemplos: Scripts, administración de sistemas, www
Comentarios: Potente para la manipulación de textos y cadenas
Python
Ejemplos: Scripts, scripts de aplicaciones, www
TCL
Ejemplos: Scripts, administración de sistemas, aplicaciones
PHP
Ejemplos: Www
Comentarios: Popular para las bases de batos basadas en web
Java
Ejemplos: Aplicaciones para plataformas cruzadas, www
Lisp
Ejemplos: Modos de Emacs (para elisp), AI
Comentarios: Variantes Elisp, Clisp y Scheme
Fortran
Ejemplos: Aplicaciones matemáticas
Comentarios: Variantes f77 y f90/95
C
Ejemplos: Programación de sistemas, aplicaciones
Comentarios: Muy popular


Consultado en:

No hay comentarios:

Publicar un comentario en la entrada