viernes, 8 de junio de 2018

Metodología RAD




INTRODUCCIÓN 

La metodología RAD surge tras un amplio proceso de desarrollo de metodologías que pasan de un desarrollo lineal y general con poco involucramiento del cliente y usuarios finales a la especificación de requerimientos basados en procesos y actividades reales y la importancia del cliente en la definición de requerimientos.

En este documento analizaremos que es lo que caracteriza a RAD como una metodología diferente a sus predecesoras y él porque permitió la realización de proyectos en periodos breves, su estructura, elementos y funcionalidad.

RAD logró ser un antes y después para las metodologías de desarrollo siendo la primera en catalogarse como tipo ágil iniciando así un nuevo periodo de desarrollo de técnicas para el desarrollo de proyectos.









Índice


  • ANTECEDENTES
  • CONTEXTO EN EL QUE SURGE LA METODOLOGÍA
  • DESCRIPCIÓN
  • ESTRUCTURA
  • ELEMENTOS
  • CARACTERÍSTICAS
  • FUNCIÓN
  • EVOLUCIÓN
  • TENDENCIAS
  • CONCLUSIONES
  • BIBLIOGRAFÍA







ANTECEDENTES

La metodología RAD surge debido a diversos factores tales como, una crisis la cual afectaba el desarrollo del software, todo esto generando procesos lentos entre los años 70 y 80. Se buscaba el desarrollo de una metodología la cual fuera más veloz y eficaz.  Por otra parte, igual se buscaba mejorar los procedimientos de elaboración. Esta metodología se basa en la metodología cascada, pero evitando hacer un ciclo.

Entre los años de 1950 y 1960, no existían metodologías, pero ya entre 1961 y 1970 se empezó a desarrollar modelos, pero simplemente se basaban en los procesos. Ya en los años de 1971 y 1985, las metodologías toman una mayor fuerza, surge el modelo en cascada, modelo V, modelo iterativo entre otros. Pero estos modelos solo se preocupaban por lo que tenía que hacer el desarrollador, más no toman importancia a lo que el cliente en realidad requería y dichos métodos eran lentos.  para 1986 y 1999 se desarrollan la metodología RAD, que se creó para una mayor eficacia y evitando el ciclo de vida del proceso, lo cual lograba una mayor velocidad en la entrega de proyectos.

CONTEXTO EN EL QUE SURGE LA METODOLOGÍA

Dentro del contexto en el que surge la metodología RAD desde la década de los 80 podemos encontrar que antes de esta se encontraban metodologías tales como las SSADM la cual está enfocada en el análisis y diseño de los sistemas teniendo como característica principal la participación del usuario final para determinar los requisitos.
Por otra parte, las técnicas del método SADT surgen como herramientas de organizadores gráficos para representar procesos, estableciendo relaciones entre las actividades pertenecientes a cada uno, resultando así en un análisis detallado de los procesos que deberá considerar el sistema.
Otra de los métodos es la ingeniería de información que contempla una serie de actividades propias para el análisis equivalente a la ingeniería de software diferenciando en que esta se basa solo en cuatro etapas, la estrategia, el análisis, el diseño y la construcción.
Uno de los eventos importantes que se dieron al momento en que se desarrollaba la metodología fue la colaboración entre IBM y AD/Cycle en la década de los 90 para la creación de una herramienta CASE enfocado en actividades de documentación y soporte para los desarrolladores contemplando los procesos e información de requerimientos.
En estos años igualmente se logra recobrar la confianza por las herramientas CASE y reintegrar su uso en los procesos de ingeniería de software, pero retirando la palabra CASE del nombre de las herramientas.
También comienzan a tornarse cada vez más complejos los sistemas integrando relaciones, operaciones y comunicación con subsistemas.


DESCRIPCIÓN

El método comprende el desarrollo interactivo, 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.
Hoy en día se suele utilizar para referirnos al desarrollo rápido de interfaces gráficas de usuario tales como Glade, o entornos de desarrollo integrado completos. Algunas de las plataformas más conocidas son Visual Studio, Lazarus, Gambas, Delphi,Foxpro , Anjuta, Game Maker, Velneo o Clarion.


ESTRUCTURA

La estructura de esta metodología está definida por la norma ISO 12207-1 para las actividades del ciclo de vida en la que agrupa 5 procesos principales, 8 procesos de soporte y 4 procesos generales.

El ISO/IEC 12207 define el ciclo de vida para el software como un conjunto de procesos y actividades que se aplican para establecer requisitos, pasando por la adquisición y configuración de los servicios del sistema, hasta la finalización de su uso. Este estándar es empleado para brindar estructura común para el uso de un léxico común entre compradores, proveedores, desarrolladores, personal de mantenimiento, operadores, gestores y técnicos involucrados en el desarrollo de software.
Los procesos se clasifican en tres tipos: Principales, de soporte y de la organización. Los procesos de soporte y de organización deben desarrollarse independientemente de la organización y del proyecto.

  • 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.


Finalmente podemos definir que la metodología comprende ciertas etapas consecutivas iniciando por el modelado de gestión, modelado de datos y de procesos, siguiendo con la generación de las aplicaciones y la aplicación de pruebas a estas, todo esto en un periodo de entre 60 y 90 días.

ELEMENTOS


  • Primero se cuenta con lo necesario para cumplir con los requerimientos del usuario.
  • Se realiza el diseño. (Prototipo)
  • Se realiza la codificación para cumplir con lo acordado en el primer elemento.
  • Testing se realizan las pruebas necesarias y en caso de observar alguna anomalía en su funcionalidad, se corrige.



CARACTERÍSTICAS


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 analistas, diseñadores.
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

"Timeboxing"
             Las funciones secundarias son eliminadas como sea necesario para cumplir con el calendario.

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 el calendario.

FUNCIÓN

La función de la metodología RAD es ahorrar tiempo de desarrollo, y crear tempranamente un diseño aceptable por el cliente, para a su vez prevenir presupuestos rebasados e incumplimiento de fechas.
Esta metodología RAD tiende a funcionar cuando:
     La aplicación funcionará de manera independiente.
     Desempeño no crítico.
     Distribución limitada, interna o vertical.
     Alcance del proyecto limitado.
     Confiabilidad no crítica.
     El sistema puede dividirse en muchos módulos independientes.
     El producto está dirigido a un mercado altamente especializado


EVOLUCIÓN


Como resultado de la implementación de la metodología RAD surgen lo que son herramientas que puedan generar código, modelos e incluso documentos para poder facilitar el trabajo laborioso que estos represan ya que se dan cuenta que estos tienden a generar un patrón similar mínimo en la estructura básica para después poder implementar ya la funcionalidad necesitada por el proyecto que este involucra algunas de estas son los entornos de desarrollo integrado(IDE).
Los IDE ofrecen un marco de trabajo para la mayoría de los lenguajes de programación tales como C++, Python, Java, C#, Delphi, Visual Basic, etc. En algunos lenguajes, un IDE puede funcionar como un sistema en tiempo de ejecución, en donde se permite utilizar el lenguaje de programación en forma interactiva, sin necesidad de trabajo orientado a archivos de texto.
Es posible que un mismo IDE pueda funcionar con varios lenguajes de programación. Este es el caso de Eclipse, al que mediante plagios se le puede añadir soporte de lenguajes adicionales.

Un IDE debe tener las siguientes características:
       Multiplataforma
       Soporte para diversos lenguajes de programación
       Integración con Sistemas de Control de Versiones
       Reconocimiento de Sintaxis
       Extensiones y Componentes para el IDE
       Integración con Framework populares
       Depurador
       Importar y Exportar proyectos
       Múltiples idiomas
       Manual de Usuarios y Ayuda
Existen diferentes versiones de los IDEs pero estos son algunos del software que utilizan IDE, estos son:
a) Eclipse: Software libre. Es uno de los entornos Java más utilizados a nivel profesional. El paquete básico de Eclipse se puede expandir mediante la instalación de plugins para añadir funcionalidades a medida que se vayan necesitando.
b) NetBeans: Software libre. Otro de los entornos Java muy utilizados, también expandible mediante plugins. Facilita bastante el diseño gráfico asociado a aplicaciones Java.
Al igual como surgen empresas que desarrollan herramientas para ayudar al diseño del proyecto como lo es la compañía Neosoft que su objetivo principal es “Ofrecer a sus clientes soluciones de software potentes, intuitivas y potentes, de alta calidad, fáciles de usar” donde la mayoría de sus productos enfocados al diseño gráfico y marketing

TENDENCIAS


Actualmente esta metodología es bastante usada en el diseño de aplicaciones, ya que es posible asegurar un resultado exitoso si los proyectos se desarrollan con un itinerario estricto y sacrificando algún tipo de funcionalidad.
Resulta ser un modelo de desarrollo muy útil cuando se requiera poner en marcha un sistema en un periodo de tiempo corto.
Dadas las ventajas de la metodología
1.   Se reducen los riesgos asociados al desarrollo de software pues se emplea un entorno ligero que ayuda a los colaboradores a evolucionar constantemente y focalizados en entregar en poco tiempo lo que el cliente necesita. Un desarrollo se hace un 65% más rápido que con metodologías tradicionales.
2.   El desarrollo rápido con metodologías Ágiles entrega con relativa rapidez un resultado valioso al cliente. A través de un proceso continuo de mejoras se consigue el máximo potencial del producto con una planeación iterativa. Desarrollo, testeo, medición, evaluación y vuelta a empezar.
3.   Se requiere un 85% menos de programación de código nuevo gracias al uso de prototipos adaptables. 
4.   El hecho de que los tiempos de desarrollo sean más breves garantiza que los sistemas de programas informáticos se adapten mejor a las necesidades actuales del cliente y su negocio. 
5.   Algo que agradece la organización que contrata el servicio de desarrollo rápido de software es que tienen mayor visibilidad de la evolución del proyecto. 
6.   Propicia mayor adaptabilidad y apertura a los cambios en función de cómo evoluciona el desarrollo del software.
7.   En términos de mantenimiento los costes pueden ser hasta un 75% menos de las cifras habituales del mercado.
Hacen que las personas valgan más en su entorno y genere competitividad entre los desarrolladores





CONCLUSIONES


-Satisface la tendencia actual, velocidad en el desarrollo del producto, costo mínimo de desarrollo y mantención y calidad al producto.
-Permite que la productividad del usuario aumente considerablemente.
-La vida útil del sistema también aumenta

Para aplicar RAD en el desarrollo de un sistema es necesario contar con ciertos elementos:
-Apoyo y autorización de la alta administración.
-Distinguido equipo de desarrollo.
-Activa participación del (los) usuario(s).
-Mecanismos de administración de proyectos
-Técnicas que apoyen el desarrollo.
-Uso de notaciones para llevar a cabo el modelo lógico. Herramientas CASE.
-Desarrollo de Prototipos para hacer una proyección de la aplicación.
relaciones interpersonales
Este método en particular se dice ser orientado al usuario por:

-Ser muy rápido.
-Permite trabajar en el a varias personas a la vez
-Mayor flexibilidad.
-Menor codificación manual.
-Mayor involucramiento de los usuarios.
-Ciclos de desarrollo más pequeños.
-uso de interfaz gráfica estándar.
-Los entregables pueden ser fácilmente trasladados a otra plataforma.
-Visibilidad temprana.
-Funciones reducidas (por "timeboxing").
-Costo de herramientas integradas y equipo necesario.
-Más fallas (por lo rapido de la codificación).
Se Requiere recursos humanos suficientes como para crear el número correcto de equipos.

Necesita que el cliente y el desarrollador se comprometan en las actividades necesarias para completar un sistema en un tiempo corto.
Para proyectos grandes puede requerir muchos equipos de trabajo distintos
Requiere clientes y desarrolladores comprometidos en las rápidas actividades necesarias
No resulta adecuado cuando los riesgos técnicos son elevados


BIBLIOGRAFÍA


     Baretto M. (2015). Metodología SSADM. Diapositiva 4. Recuperado de: https://es.slideshare.net/mariantoniettabarreto/metodologia-ssadm-43301429
     Enrique C. (2014) Ingeniero en Software ISW. Recuperado de: http://iswugaps2rad.wordpress.com/historia/
     Mendoza Gonzalez Mena. (2015). RAD: Desarrollo Rapido de Aplicaciones Recuperado de: http://mena.com.mx/gonzalo/maestria/ingsoft/presenta/rad/
     Patricia Pons Tomás. (2010).  Blog historia de la informática, Recuperado de: http://histinf.blogs.upv.es/2010/12/28/ingenieriaa-del-software/
     Cillero M. SADT (Structured Analysis and Design Technique). Recuperado de: https://manuel.cillero.es/doc/metrica-3/tecnicas/modelado-de-procesos-de-la-organizacion/sadt/
     Instituto Nacional de Estadística e Informática (INEI). (1999). ¿Qué es Ingeniería de la Información?. Recuperado de: https://ingtecnologia.files.wordpress.com/2011/04/blog-ing-de-informacion.pdf
     IBM. IBM AD/Cycle Professional Documentation Manager/MVS & VM. Recuperado de: https://www-01.ibm.com/common/ssi/cgi-bin/ssialias?infotype=OC&subtype=NA&htmlfid=897/ENUS5648-005&appname=System%20Storage
     (2018).Introducción al desarrollo del software. Recuperado de: https://nanopdf.com/download/el-framework-para-metodologia-de-desarrollo-de-software-consiste-en_pdf
     Estrada C, A, & Pedraza J, C, & Suárez, M, A, & Torres, C, E. (2017). Metodología RAD. Recuperado de: https://ha2nv5020175.wordpress.com/2017/06/16/metodologia-rad/
     Entorno integrado de desarrollo. Recuperado de: http://foro.ignetwork.net/showthread.php?15188-IDE-Entorno-integrado-de-desarrollo

No hay comentarios:

Publicar un comentario