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.
Pagina Oficial: https://www.yessoftware.com/index2.php
·
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.
Pagina Oficial: https://www.sysdevkalipso.com/
·
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.
Pagina Oficial: https://www.dataaccess.com/
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.
Página web: https://www.coca-colacompany.com/
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.
Página web: https://www.iarchiva.com/
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
·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
Publicar un comentario