FUNDACION UNIVERSITARIA DE POPAYAN
Popayán, Junio de 2006
Metodologías para el desarrollo de software: Modelo Radial
Ing. Diego Felipe Hurtado
Objetivo: Diseñar una metodología propia para el desarrollo de software de alta calidad, basada en la simplicidad, que sea eficiente, que asegure la buena calidad, utilidad y confiabilidad del producto final, el éxito de los proyectos y satisfaga tanto a los clientes que hacen parte fundamental del proceso como a los programadores.
Modelo Radial Es una metodología de desarrollo de software utilizada para diversos proyectos, bien sea de corto o largo plazo, con mucho o poco equipo y cuyo plazo de entrega se adapta a la solicitud del cliente. Consiste en una programación simple, rápida y efectiva, cuya particularidad es tener como parte del equipo, al cliente/usuario. (1)
¿Que se persigue? La simplificación y optimización de los procesos que se llevan a cabo para el desarrollo de software hecho a la medida. Es una metodología flexible que puede ser empleada para todo tipo de proyectos, desde los mas pequeños hasta los mas grandes.
Modelo Radial
¿Para que sirve? Para desarrollar software de alta calidad, que cumpla con todos los requisitos, en el menor lapso posible. Esta metodología permitirá la consecución de dicho objetivo de una manera simple y clara. (2)
Modelo Radial
Es una metodología Orientada al Objeto
El Modelo Radial es una metodología de desarrollo orientado al objeto, porque permite crear modelos de una forma más lógica y sencilla, lo que muestra en si su esencia “LA SIMPLICIDAD”.
Modelo Radial
Pero ¿por qué metodologías orientadas a objetos? Porque se eliminan fronteras entre las fases del ciclo de vida debido a la naturaleza iterativa del desarrollo orientado al objeto. Porque son iterativas e incrementales. Fácil división del sistema en varios subsistemas independientes; y fomentan la reutilización de componentes. (3)
Modelo Radial
CARACTERÍSTICAS DEL MODELO RADIAL Cobertura total del ciclo de desarrollo Verificaciones intermedias Planificación y control Comunicación efectiva (Equipo desarrollador-Cliente) Utilización sobre diversos tipos de proyectos Fácil aprendizaje Simplificación de las fases o etapas Herramientas CASE (4)
Soporte de la reutilización de software No necesita mucha experiencia los constructores. Proporciona una guía para las actividades de un equipo de desarrollo. Dirige las tareas de cada desarrollador por separado y del equipo en conjunto. Características
Fases o etapas que componen el Modelo Radial:
Investigación Diseño Codificación y desarrollo Ensayos Fase de optimización
Investigación Reunir información y comprender las áreas del negocio para determinar los requisitos del sistema, para esto tenemos en cuenta: Las necesidades del cliente Las necesidades de la organización Los factores internos y externos que afectan al sistema.
En esta fase se pretende conocer el entorno del sistema. El equipo debe familiarizarse con este campo, el cual delimita el alcance del sistema, es decir, qué tareas de todas las posibles realiza dentro del entorno. (5)
La decisión sobre “qué” debe hacer el sistema, debe acordarse con el usuario. Los métodos para levantar la información, que el Modelo Radial recomienda son: (6)
Observación Encuesta Entrevistas Repaso de portafolio
Investigación
Diseño Una vez recolectada la información organizacional y establecidos los requisitos del software, el diseño es la primera de las tres actividades técnicas: diseño, codificación y pruebas. Es aquí donde se toman las decisiones que afectaran finalmente al éxito de la implementación del programa; es la visualización de lo que se quiere construir y donde se establece el comportamiento del sistema deseado por el cliente/usuario.
El diseño es la única forma mediante la cual se puede traducir con precisión los requisitos del cliente. El Modelo Radial propone que el diseño se realice en dos pasos: El diseño preeliminar: se centra en la transformación de los requisitos en los datos, es la vista general de la organización. (7) El diseño detallado: se ocupa del refinamiento del diseño preeliminar, es decir, aquí se realiza una descomposición de los procesos y termina cuando todas las instrucciones están expresadas en un plano que el equipo desarrollador comprenda. Traduce los requisitos del software a un conjunto de representaciones graficas que describen elementos como: la arquitectura, el procedimiento algorítmico y las características de las interfaces. Diseño
“Un dibujo vale mas que mil palabras” Esta metodología emplea una notación grafica de diseño tradicional que describe los procesos fácilmente. Esta notación son los diagramas de flujo, porque es la representación grafica más usada y sencilla en el ámbito de la computación, pero que representa lo que realmente se quiere plasmar.
Diseño
Codificación y desarrollo Si el diseño se realiza de una manera detallada, la codificación puede realizarse mecánicamente. Las representaciones del diseño deben ser convertidas a un lenguaje de programación, dando como resultado unas instrucciones ejecutables por la computadora. El código debe ser comprensible. El estilo de codificación del Modelo Radial debe ser una mezcla de simplicidad y claridad.
La técnica de codificación que esta metodología recomienda, contribuye a una mejor compresión del código fuente. El Modelo Radial recomienda el estándar de codificación DOTNET, porque comprende todos los aspectos de la generación de código. Un código fuente completo debe reflejar un estilo armonioso. Es necesario establecer un estándar de codificación para asegurarse de que todos los programadores del proyecto trabajen de forma coordinada. Codificación y
El estándar DOTNET propone entre otras: Mantener el tiempo de vida de las variables tan corto como sea posible. Usar los procedimientos y variables con un solo propósito. Evitar crear procedimientos multipropósito que lleven a cabo una variedad de funciones no relacionadas. Usar siempre rutinas de manejo de excepciones Ser especifico cuando declare objetos que puedan generar colisión, por ejemplo si tiene dos métodos con el mismo nombre. Evitar el uso de variables en el ámbito de aplicación web. Codificación y
Las técnicas de codificación están divididas en tres secciones:
Nombrado: es una de las ayudas más importantes para entender el flujo lógico de una aplicación. Un nombre debe expresar el "qué" y no el "cómo". Si se utiliza un nombre que evite referirse a la implementación se estará conservando la abstracción de la estructura. (9)
Comentarios: existen dos tipos de documentación de software: La documentación externa,(10) se debe mantener fuera del código fuente. La documentación interna está formada por los comentarios que los programadores escriben dentro del código fuente.
Formato: hace que la organización lógica del código sea más clara. (11) Codificación y
Ensayos Una vez que se ha generado el código, comienza la prueba del programa, la cual se centra en la lógica interna del software. Este debe ser probado para descubrir los defectos que puedan existir. El Modelo Radial recomienda las técnicas de pruebas FLOOT orientada a objetos
Las pruebas FLOOT son una colección de técnicas diseñadas para verificar y validar software orientado a objetos. Se cuenta con un amplio rango de opciones disponibles. (12)
El objetivo es encontrar defectos. Probar frecuentemente y temprano. Las pruebas construyen confianza. Entre mas riesgos existan es necesario que sea revisado y probado. Una prueba vale mil opiniones. Ensayos
Técnicas FLOOT • Prueba de Caja-Negra • Prueba de ValoresFrontera • Prueba de Clases • Prueba de Integración de Clases • Revisión de Código • Prueba de Componente • Prueba de Cubrimiento • Revisión de Diseño • Prueba de Regresión de Herencia • Prueba de Integración • Prueba de Método Ensayos
• Revisión de Modelos • Prueba de Caminos • Revisión de Prototipos • Demostrar con el código • Prueba de Regresión • Prueba de Stress • Revisión Técnica • Prueba de Escenarios de Uso • Prueba de Interfaz de Usuario • Prueba de CajaBlanca
Fase de optimización Es el proceso de clasificación e interpretación de hechos, diagnostico de problemas y empleo de la información para recomendar mejoras del sistema Intervienen solo los desarrolladores, para agregar nuevas funcionalidades y la posibilidad de realizar modificaciones. Esta fase es parte fundamental antes de entregar el software final, pues básicamente reinicia el proceso del Modelo Radial, cuando se presentan defectos.
Ciclo de vida: Modelo Radial
¿QUÉ ES LO QUE PROPONE EL MODELO RADIAL? Empezar en pequeño y añadir funcionalidad con retroalimentación continua. Que el manejo del cambio se convierta en parte característica del proceso. No introducir funcionalidades de no ser necesarias. Que el cliente o usuario se convierta en miembro activo del equipo
VENTAJAS DEL MODELO RADIAL Excelente comunicación entre el cliente y el
equipo. Estrecha relación entre el cliente y el proyecto. Satisface al cliente mediante tempranas y continuas entregas de software. Da la bienvenida a los cambios. Usa el diálogo cara a cara, como método para comunicar información dentro del equipo de desarrollo. Presta atención continua a la calidad técnica y al buen diseño. Se vale de la simplicidad en los procesos.
DESVENTAJAS DEL MODELO RADIAL Puede llegar a ser costoso, dependiendo del tamaño del proyecto. Estrecha relación del cliente con el proyecto, disponibilidad del cliente. Los cambios organizativos afectan de alguna u otra manera el proceso de desarrollo
CONCLUSIONES Esta metodología explica detalladamente los pasos necesarios para el desarrollo de software de calidad, lo cual permite a los equipos de desarrolladores ampliar los horizontes, conocer otra opción valida y ver mas allá de las metodologías tradicionales. Ésta metodología demuestra que no se necesita ser un “Gurú” en ciencias de la computación, para proponer un modelo para desarrollo de software, simplemente aportar creatividad y ambición.
No existe una metodología universal para enfrentar con éxito cualquier proyecto de desarrollo de software. Toda metodología debe ser adaptada al contexto del proyecto. (13)
El Modelo Radial ofrece una solución a una gran variedad de proyectos. Una de las cualidades más destacables en esta metodología es su sencillez, tanto en su aprendizaje como en su aplicación. Sin embargo, hay que tener presente una serie de inconvenientes y restricciones para su aplicación, como cualquier resistencia del cliente o del equipo de desarrollo hacia las prácticas y principios, lo que puede llevar el proceso al fracaso. Conclusiones
Pero ¿por qué usar esta metodología?; Se debe usar por su característica principal “La simplicidad”, resume y suprime procesos que solo representan demoras y no aportan nada significativo al resultado. La facilidad de la recolección de la información, la sencillez del diseño empleando herramientas tan básicas, confiables y estables como los diagramas de flujo. Una técnica de codificación natural. Las pruebas de rigurosidad empleadas prácticamente de manera intuitiva. Una retroalimentación constante. La estrecha relación entre el equipo desarrollador y el cliente/usuario. Esto permitirá llevar a feliz termino la consecución de software de alta calidad.
Conclusiones