sábado, 5 de diciembre de 2015

METODOLOGÍAS DE DESARROLLO PARA SISTEMAS DE TIEMPO REAL. UN ESTUDIO COMPARATIVO

Este trabajo incentiva el uso de las metodologías de desarrollo de software de Tiempo Real. Se facilita una herramienta de soporte a los desarrolladores para determinar la metodología mas adecuada de acuerdo a las necesidades del problema. Se establecen un conjunto de criterios para comparar metodologías de desarrollo de software: COMET, Octopus/UML y ROPES, y en base a estos resultados se logra seleccionar entre ellas la más apropiada a un problema en particular. Durante la investigación, expertos y desarrolladores revisan y ratifican cada uno de estos criterios. Finalmente, se identifican las ventajas de aplicar en un proceso de desarrollo de un sistema de tiempo real los conceptos de calidad de software y evaluación arquitectónica, como herramientas para garantizar características de calidad en el sistema. Se utiliza como metodología de investigación la Investigación-Acción.
I. INTRODUCCIÓN
En los últimos años en Venezuela, como consecuencia de las políticas de estado en lo referente al desarrollo endógeno, existe actualmente una orientación estratégica hacia el desarrollo de software de Tiempo Real, tomando en cuenta las necesidades de automatización de procesos, robótica, inteligencia artificial, entre otros.
En este sentido, es importante resaltar que el desarrollo de software en el dominio de Tiempo Real puede llegar a ser un proceso complejo, por lo tanto es fundamental aplicar metodologías y herramientas del área de la ingeniería del software adecuadas, para orientar el proceso de desarrollo. Actualmente, existen una amplia variedad de metodologías y notaciones que se han desarrollado para el análisis y diseño de sistemas de Tiempo Real, de las cuales los desarrolladores deben seleccionar la más adecuada, según el contexto del problema. 
II. DESARROLLO
1. Metodología
La investigación fue desarrollada utilizando la Metodología Investigación-Acción propuesta por Susman y Evered (1978) [1], dada su adaptación en el contexto de la Ingeniería de Software y Sistemas de Información. A continuación se detallan las cinco fases presentes en el proceso iterativo:
a. Fase de Diagnóstico: Corresponde a la identificación y descripción de la situación actual.
b. Fase de Planificación de la Acción: Especifica las acciones que deben ser ejecutadas para mejorar el problema.
c. Fase de Implementación de la Acción: Se implementa la acción planificada. Los investigadores y participantes colaboran generando cambios que mejoren la situación actual.
d. Fase de Evaluación: Después de ser completadas las acciones, los investigadores evalúan las salidas, utilizando técnicas apropiadas que aporten evidencia de la calidad de las acciones emprendidas.
e. Fase de Especificación del Aprendizaje: en esta fase se reflexiona sobre los resultados de la fase de evaluación.
2. Conceptos fundamentales
En esta sección se presenta una breve revisión de los conceptos fundamentales relacionados con el desarrollo de esta investigación.
• Sistemas de Tiempo Real (STR)
Un Sistema de Tiempo Real, se define como: “Un sistema en el que el tiempo en que se produce su salida es significante.  Esto es debido a que generalmente la entrada corresponde a algún instante del mundo físico y la salida tiene relación con ese mismo instante" [2]. Entre los elementos principales de un STR, se encuentran un sistema de control, interactuando con el mundo físico a través los sensores, quienes capturan datos para ser procesados y enviar la respuesta de retorno al mundo físico a través de los actuadores.
Por otra parte, dentro de las características propias del dominio de STR se encuentran los requisitos de tiempo, de seguridad y fiabilidad, que vistos desde el modelo de calidad estándar ISO 9126-1 corresponderían con las características de calidad: Eficiencia, Funcionalidad y Fiabilidad, respectivamente.
• Metodologías de Desarrollo de Software para Aplicaciones de Tiempo Real
Una metodología puede definirse como "Una versión ampliada del ciclo de vida completo del desarrollo de sistemas, que incluyen tareas o pasos para cada fase, funciones desempeñadas en cada tarea, productos resultantes, normas de calidad y técnicas de desarrollo que se utilizan en cada tarea" [3]. En los últimos años se han desarrollado diversas metodologías de aplicación específica del diseño de STR, entre ellas se pueden encontrar ROOM/UML-RT, HRT-HOOD, OOHARTS, SiMOO-RT, ACCORD/UML COMET, Octopus/UML, ROPES [4]. Para esta investigación, se seleccionaron las tres últimas de las metodologías mencionadas, tomando en cuenta características comunes tales como, basadas en notaciones estándares como UML y enfocadas bajo el paradigma orientado a objetos, utilizan la definición arquitectura de software. A continuación, se presenta una descripción breve de cada una de ellas.
• COMET (Concurrent Object Modeling and architectural design mEThod)
COMET [4, 5] es una metodología que emplea notación UML, y está basada en un ciclo de desarrollo iterativo, con las siguientes fases: modelado de requisitos, análisis , diseño, construcción e integración incremental del software y validación del sistema (ver Figura 1).

No hay comentarios:

Publicar un comentario