Desarrollo Rápido de Aplicaciones (RAD: Rapid Application Development)



El Desarrollo Rápido de Aplicaciones o RAD es una técnica ágil de desarrollo de software que da prioridad a las entregas rápidas de prototipos. A diferencia otras metodologías, como la Metodología de Cascada, tiene en cuenta mucho más el uso del software y la participación de un usuario activo que la planificación rigurosa y el registro de los requisitos.




  A esta metodología la creó e introdujo James Martin en el año 1991 basado en el trabajo realizado por Scott Schultz en los 80’ conocido como RIPP (Rapid Interactive Productive Prototyping)


  Etapas de la Ing. del Software cubiertas en el modelo RAD 

  Esta metodología cubre los aspectos de Descripción y Desarrollo de la Ingeniería del Software. Descripción, ya que se centra mucho en describir el sistema, proponiendo el estudio de cada componente por separado y su relación con los demás engranajes del proyecto. También, por otra parte, se basa en el Desarrollo interactivo, ya que la herramienta a utilizar es de vital importancia en el proceso de la implementación de la solución y en el resultado de la misma.   


Clasificación de la Metodología

  Esta metodología se basa en la construcción de software basada en componentes, es decir, que presta especial atención a las funcionalidades que se van a requerir en el sistema. Se puede decir que es una adaptación de la clásica Metodología Lineal-Secuencial, ya que sus etapas se realizan una después de la otra hasta el final, pero con la particularidad de que en este modelo se propicia el uso de herramientas automatizadas de desarrollo que le permiten modelar y montar un sistema de forma rápida y eficiente sin perder calidad en el proceso.
 

Objetivos

  El desarrollo de prototipos de la aplicación de manera veloz, que, junto con la interacción del usuario, permite la creación de prototipos cada vez más específicos y adecuados a las operaciones que se quieren realizar o los resultados que se buscan obtener.
  Para ello basa su estructura en la reutilización de código o de software de generación automática del mismo, que, con la ayuda de desarrolladores especializados, permite que puedan ser corregidos los problemas que puedan existir o aparecer durante el proceso.
  Finalmente, los desarrolladores se encargan de pulir al máximo el programa realizando el mantenimiento correspondiente utilizando los mecanismos apropiados, para obtener el producto final en el menor tiempo posible.

FASES DE LA METODOLOGÍA RAD
El Desarrollo Rápido de Aplicaciones consta de 5 etapas básicas: Modelado de Gestion, Modelado de Datos, Modelado de Procesos, Generación de Aplicaciones y Pruebas de Entrega. 

1.    Modelado de Gestión
  En esta primera etapa, se estudia los requerimientos y el modelo de negocio, es decir, se recopila la información que se va a utilizar en el sistema una vez terminado el desarrollo y el entorno en el cual va a ser usado. El analista del proyecto debe contestar preguntas esenciales en esta etapa, como son: ¿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 la proceso?
A su vez, en esta etapa también se define el alcance del sistema en cuestión.

2.    Modelado de Datos
  En esta segunda etapa, se procesa la información obtenida en la primera fase y se realiza un proceso de abstracción para definir cuáles van a ser los aspectos importantes para el proyecto. Asimismo, se dividen en módulos las partes intervinientes y se las define como una entidad u objeto dentro del ámbito del proyecto, también se describen sus distintas características o atributos. Y, por último, se indican las distintas relaciones entre los componentes del sistema.

3.    Modelado de Procesos
  En esta tercera etapa, se adquiere un enfoque más funcional, ya que se define y a su vez se describe el tipo de comunicación que va a haber entre los distintos objetos del sistema para cumplir con los requerimientos definidos anteriormente. Estas operaciones de comunicación pueden ser: añadir, modificar, suprimir o recuperar datos.

4.    Generación de Aplicaciones
  El Desarrollo Rápido de Aplicaciones, en general, se caracteriza por la utilización de las Técnicas de Cuarta Generación para el desarrollo de sus aplicaciones, sacándole máximo provecho a las ventajas que esta ofrece. Entre sus principales ventajas podemos mencionar:
a.    La generación automática de código fuente a partir de una especificación, es decir, que el programador no tiene la tarea de codificar todo el código fuente, sino que, en lugar de eso, se deberá encargar de solo definir cada elemento del sistema y la forma en que estos se van a relacionar.
b.    La velocidad en el desarrollo que ofrece la reutilización de software que ya ha sido probado en el pasado, es otro aspecto importante. Como ya se mencionó, la RAD busca agilizar los tiempos de entrega, por lo que, en vez de crear software de la forma tradicional, en esta metodología se trabaja reutilizando componentes ya existentes, de ser posible, o bien creando componentes reutilizables para el futuro.

5.    Pruebas de Entrega
  Al momento de concluir la realización del prototipo del sistema, se debe pasar por una etapa de prueba o testing. Esto es de vital importancia para asegurar la calidad del sistema que se construyó, ya que a pesar de que se pueda reutilice componentes de proyectos anteriores, que fueron debidamente testeados en el pasado, no todos los proyectos son iguales, y se debe probar la integridad de todo el sistema. Aun así, los tiempos de pruebas se van a acortar bastante comparado al testeo de una aplicación desarrollada usando los métodos tradicionales.




Roles o intervinientes

  En esta metodología se distinguen principalmente dos grandes participantes. Uno de ellos son los usuarios, cuya función es: determinar cuáles son los requerimientos del sistema, es decir, son los que van a definir las funcionalidades que esperan que el sistema posea una vez terminado. Otro participante, es el equipo de desarrollo que se encargará de interpretar y traducir en software los requerimientos solicitados por los usuarios.
  Este mecanismo se utilizará durante todo el proceso de desarrollo, para que el producto final cumpla con todas las expectativas del cliente.


Ventajas y Desventajas de la Utilización del RAD
Como todo, esta metodología tiene sus ventajas, algunas de las cuales ya se mencionaron en este informe, pero también posee ciertas desventajas para tener en cuenta.


Ventajas de la Metodología RAD

  • ·         Comprar puede ahorrar dinero en comparación con construir, siempre y cuando compremos las herramientas mejor adaptadas a las necesidades del proyecto.
  • ·         Los entregables pueden ser fácilmente trasladados a otra plataforma.
  • ·         El desarrollo se realiza a un nivel de abstracción mayor. Es decir que se diseña una solución general para un gran conjunto de problemas similares.
  • ·         Visibilidad temprana. Permite obtener un prototipo de manera pronta para evaluar si el camino tomado de desarrollo es el adecuado, utilizando interfaces de usuario interactivas.
  • ·         Mayor flexibilidad. Permite dividir las tareas en varios grupos reducidos.
  • ·         Menor codificación manual. Debido a que la mayoría de las herramientas son códigos reutilizables.
  • ·         Mayor involucramiento de los usuarios. Tanto en la etapa inicial como en la evaluación de los prototipos.
  • ·         Posiblemente menos fallas. Ya que se reutilizan códigos probados por la comunidad.
  • ·         Posiblemente menor costo. Porque requieren un equipo reducido de recursos humanos altamente enfocados, y las herramientas diseñadas son económicas respecto al costo de tener que diseñarlas de 0.
  • ·         Ciclos de desarrollo más pequeños. Basados en incrementos, donde en cada incremento se le va agregando funcionalidad al sistema.
  • ·         Interfaz gráfica estándar.



Desventajas de la Metodología RAD

  • ·         Comprar puede ser más caro que construir. Cuando no existe una herramienta adecuada en el mercado para el tipo de problemas que estamos por resolver.
  • ·         Costo de herramientas integradas y equipo necesario. Necesita suficientes recursos humanos para crear el número correcto de equipos. El código reutilizable puede demandar un alto costo para conseguirlo.
  • ·         Progreso más difícil de medir. Todo dependerá del resultado del prototipo y de que pueda expresar la visión proyectada por el cliente.
  • ·         Menos eficiente. Se suelen congelar etapas para avanzar en el proyecto, y a veces esos problemas quedan sin resolver.
  • ·         Menor precisión científica.
  • ·         Riesgo de revertirse a las prácticas sin control de antaño. Sobre todo si no hay una estandarización en la forma que trabajaran los distintos equipos.
  • ·         Más fallas (por síndrome de “codificar a lo bestia”). Involucrados en la codificación pasan por alto el análisis previo de lo que se necesita realmente hacer sin evaluar la posibilidad de que esos códigos puedan existir.
  • ·         Prototipos pueden no escalar, un problema mayúsculo. Es importante que el mantenimiento sea sencillo de aplicar, sobre todo en un mercado con presión externa y constante competición.
  • ·         Funciones reducidas (por “timeboxing”). El timeboxing permite organizar el desempeño del trabajo y gestionar el alcance, ponerle un límite de tiempo a una tarea. El equipo puede saltarse el desarrollo de funciones para cumplir ese tiempo.
  • ·         Dependencia en componentes de terceros: funcionalidad de más o de menos.
  • ·         Problemas legales. Habrá que estar al tanto de las leyes que rigen en el país donde se aplicará el software e incluso evitar piratear herramientas o soluciones patentadas.
  • ·         Tiene problemas con el desarrollo de proyectos grandes.



Herramientas que soportan la metodología de Desarrollo Rápido de Aplicaciones.

 Hoy en día el desarrollo de software de manera ágil y rápida es muy utilizado alrededor del mundo y muchas empresas optan por usar este enfoque. Esto sucede por el rápido avance de las tecnologías de las telecomunicaciones en los últimos años y por las ventajas competitivas que ofrece el tener una aplicación, tanto web como móvil a disposición de los usuarios. En el mercado actual, existe una gama de oferta de herramientas que propician el uso de la metodología de Desarrollo Rapido de Aplicaciones, entre las cuales podemos mencionar:

·         CodeCharge Studio: es una solución que permite crear visualmente aplicaciones Web con bases de datos, generando una cantidad mínima de código. Posee soporte para casi todas las bases de datos, servidores web y tecnologías web. Su entorno gráfico de usuario y su generador de código permiten construir rápidamente aplicaciones web mediante la generación de código robusto, escalable de programación. CodeCharge Studio permite generar código en los lenguajes ASP.NET (C #), ASP, PHP, Java Servlets, JSP, ColdFusion y Perl.

Esta herramienta es de Ejecución de Tipo Local y es paga, aunque ofrece una versión de prueba de 20 días.


·         OpenXava: es una herramienta similar a CodeCharge pero con la diferencia que es de código abierto y es orientada al manejo de bases de datos. Utiliza el paradigma orientado a objetos con la sintaxis que proporciona el lenguaje Java, un interfaz de usuario Ajax e informes de extensión PDF. Soporta cualquier navegador y puede ser implementado en cualquier sistema operativo.

La herramienta requiere una ejecución de Tipo Local, ofrece una versión gratuita y de código abierto, pero también ofrece funciones PRO que son pagas.

Pagina Oficial: https://www.openxava.org/

·         Kalipso Studio: Es una herramienta que permite el desarrollo de aplicaciones multiplataforma. Ofrece una amplia gama de Sistemas Operativos para los cuales se puede desarrollar , tanto de escritorio como para móviles Android e IOS. Tiene la particularidad de que integra tecnologías emergentes como gps móvil y códigos de barra enfocado al almacenamiento de datos y un fácil manejo de ítems para el cliente dedicado a comercializar productos o contabilizar datos de cualquier área profesional. Es un generador de código de alto nivel de abstracción.

La herramienta se ejecuta en el ámbito Local. Es paga, pero ofrece un periodo gratuito de prueba.


·         DataFlex: Es una herramienta similar a las mencionadas anteriormente, en ella se destaca la facilidad y la rapidez a la hora de desarrollar aplicaciones. Además, posee un lenguaje propio, por lo que el usuario no tiene que manejar múltiples lenguajes de programación, scripts o técnicas de programación para usar la herramienta. Y, por si fuera poco, ofrece una plataforma estudio completa donde se puede compilar, depurar, correr y testear las aplicaciones y un Framework que puede usarse para desarrollar e implementar eficientemente software para navegadores de escritorio, dispositivos móviles y PC con Windows.

La herramienta es de ejecución de Tipo Local, ofrece una aplicación básica de uso personal que es gratuita y también ofrece versiones pagas con funciones PRO.



Empresas Que Las Utilizan

  Diversas empresas alrededor del mundo estan adoptando la metodologia RAD mediante el uso de las distintas herramientas para el desarrollo de sus aplicaciones, entre las cuales podemos mencionar:

1.    "The Coca Cola Company", haciendo uso de la herramienta Dataflex para el desarrollo de sus aplicaciones desde el año 2004.


2.    "LEOSS d.o.o.", es una compañia que provee soluciones de tipo IT (Tecnologias de la Informacion) a nivel Hardware y Software a grandes compañías y que usa Kalipso Studio para la implementacion de sus sistemas automatizados de recoleccion de datos.  Entre sus grandes clientes, podemos decir que se encuentra Renault Eslovenia.

Página web: https://leoss.si/

3.    iArchiva. es una empresa que ofrece servicios online que propone el estudio y procesado de documentos de forma automatica para ayudar la toma de decisiones de las empresas. Se uso Openxava para el desarrollo de la interfaz y para la implementacion de varias de las caracteristicas ofrecidas.


Otras empresas que usan herramientas RAD:

Triumph ERP, Datatech, Cerner Corporation, Vida Financiera, VingoSoft.




Conclusión


  Como cierre, se puede decir que es una buena metodología de desarrollo de software para aplicarla en casos donde el cliente necesita una aplicación simple de manera rápida. Tiene como punto alto, la cantidad de herramientas automatizadas que facilitan bastante el desarrollo de las aplicaciones y acortan los tiempos de producción, por ende. También, se puede mencionar que propicia la reutilización de código, otro factor importante a tener en cuenta, ya que como se ha mencionado en el informe, abarata costos y, a su vez, acorta los tiempos de entrega del mismo, suponiendo pruebas menos exhaustivas a los componentes ya testeados con anterioridad. Por otra parte, al ser una metodología que no supone de mucha carga de trabajo, en sentidos de codificación e implementación, se podría trabajar en equipos de pocas personas, aunque capacitadas en la medida necesaria para la aplicación de las técnicas y etapas que la metodología RAD conlleva. Por último, el rol activo del cliente es importante en esta metodología, ya que es la persona encargada de definir las funcionalidades que quiere en su sistema y de probarlas, por lo que, la entrega de prototipos es importante.


Bibliografía:
Paginas oficiales de las herramientas
Informe en PDF: Dialnet-HerramientasParaElDesarrolloRapidoDeAplicacionesWe-4525952.pdf
Archivo PDF, clases teoricas, Ingenieria de Software 1. Tema III, Prof. Vallejos.
·Ingenieria del Software". Septima Edicion. Ian Sommerville. Editorial. PEARSON EDUCACIÓN S.A Madrid, España. Año 2005
"Ingenieria del Softare: Un Enfoque Práctico" Septima Edicion. Roger S. Pressman. Editorial McGRAW-HILL INTERAMENRICANA EDITORES, S.A.. Año 2010

Comentarios

Entradas más populares de este blog

Tendencias Laborales Respecto al Desarrollo de Software

DIA Diagram Editor