Experiencias de la Aplicación de la Ingeniería de Software en Sistema de Gestión.

<Resumen><Abstract><Introducción><Desarrollo><Metodologías>
<Garantía de la Calidad del Software><Automatización de la Gestión><Antecedentes>
<Situación Actual><Conclusiones><Referencias Bibliográficas>


Autores
:

María Rosa Mas Camacho.*
Juan Pedro Febles Rodríguez.**
Margarita Orue Carmona.***
Zoila Chávez Tur.****
Cristina Vargas Crespo.*****
José Gabriel Rodríguez Quesada.******

*Lic. en Cibernética Matemática. Profesora Auxiliar. Centro de Cibernética Aplicada a la Medicina (CECAM). Instituto Superior de Ciencias Médicas de La Habana.
E-mail: mrosa@cecam.sld.cu
**Agencia de Información para el Desarrollo. Academia de Ciencias de Cuba.
*** CECAM
**** CECAM
***** CECAM
****** CECAM


RESUMEN

Constituye un objetivo fundamental de los diseñadores de software alcanzar y mantener un nivel técnico acorde con el desarrollo actual en la automatización de la información para la gestión y la dirección, y se argumenta la importancia de la Ingeniería de Software para elevar la productividad y la calidad en diseños de sistemas automatizados a partir de un examen detallado de las metodologías existentes. En correspondencia con los Lineamientos para la Informatización de la Sociedad Cubana, se realizó un estudio sobre la evolución de la automatización de la gestión en el Instituto Superior de Ciencias Médicas de La Habana (ISCM-H), y sobre los criterios del software de gestión de la salud elaborados para ese propósito.

Se demuestra la necesidad de utilizar metodologías adecuadas para diseñar sistemas con mayor productividad y mejor calidad, y de transmitir los conocimientos de Ingeniería de Software a los profesionales de la salud vinculados con la computación, especialmente a los diseñadores de sistemas que laboran en este sector. Sobre la base de estos criterios se confeccionó y rediseñó el software existente para la gestión en los Centros de Educación Médica Superior (CEMS) y el Ministerio de Salud Pública (MINSAP). Por último se proponen criterios para evaluar la calidad del software que se confeccione.


ABSTRACT

A fundamental objective is to obtain and keep a level according to the present development in the automatization of the information for management and direction.

It deals with the importance of Software Engineering for increasing productivity and quality in designing of automated systems.

In correspondence with the Guidelines for the Informatization of the cuban society, an study was carried out about the evolution of management automatization in the Havana‘s Medical Sciences Institute and the software criteria made for this purpose.

It is proved the need of using proper methodologies for the design of systems with greater productivity and better quality and also the need of incorporating the knowledge of Software Engineering training to the professionals belonging to the health field who are related to computation, and the system designers.


INTRODUCCIÓN

La aplicación directa de recursos informáticos está cambiando radicalmente muchos de los mecanismos y procedimientos tradicionales en las entidades que han sido totalmente afectadas por las nuevas tecnologías. [7,1]

Se abren amplias perspectivas, dada la diversidad y potencialidad del equipamiento, en cuanto a capacidad y velocidad de procesamiento, capacidad de almacenamiento masivo y posibilidad de interconexión.

Los enfoques antes mencionados han constituido un reto para la ingeniería de software, que se caracteriza por el desarrollo de metodologías y herramientas que coadyuven a la productividad en el diseño e instrumentación de sistemas computacionales, así como de criterios para la verificación y la evaluación de la calidad del software y la eficiencia del mismo.

Los Centros de Enseñanza Médica Superior no están exentos de las necesidades de la automatización, estando reflejadas las principales deficiencias y los objetivos a alcanzar para la Educación Médica Superior hasta el año 2000, en lo que al desarrollo de la Computación y Nuevas Tecnologías de la Información respecta, en la estrategia que para ese propósito elaboró el Ministerio de Salud Pública; integrándose así a la tarea de Informatización de la Sociedad Cubana, la que es una preocupación del Estado Cubano en la que el Gobierno ha puesto su mayor empeño.

A finales de la década del 80 se comenzó la implantación en todas las Facultades e Institutos del país de varios sistemas informáticos con propósitos específicos, pero a pesar de esto no se ha logrado incorporar la computación a la actividad de dirección en la medida necesaria.

Dadas las particularidades de la docencia médica superior y del equipamiento actual y perspectivo, se precisa de una estrategia en el proceder informático, utilizando las experiencias acumuladas y las nuevas herramientas que para la elaboración de software se disponen, que permita lograr calidad en las actividades organizativas y de control relativas a la gestión y dirección de los CEMS.

Incorporar elementos de Ingeniería de Software como respuesta a la crisis actual en la elaboración de tales sistemas, situación compartida por los informáticos de la esfera de la medicina, es una necesidad que persigue como propósito aumentar la calidad de la gestión en cada instancia.

Se identifica el estado actual del uso de la computación en la dirección en el ISCM-H y se proponen las actividades de inmediata automatización, analizando el estado de la crisis del software en la entidad y estableciendo un criterio para la utilización de las herramientas de la Ingeniería de Software.


DESARROLLO

Sobre Ingeniería de Software

Hoy día existe consenso sobre la necesidad de un enfoque más disciplinado para el desarrollo de sistemas de computación que el que se ha utilizado hasta ahora. Este enfoque está comprendido en la frase ”Ingeniería de Software”.

La Ingeniería de Software se yergue hoy como una disciplina por derecho propio. El ingeniero de software debe poder evaluar y aplicar las técnicas de computación existentes de manera rentable y fácil de usar. [5,2]

La crisis que durante cierto tiempo ha afectado a la industria informática tiene por raíz el desarrollo del software. Esta crisis fue el resultado directo del desarrollo del hardware. Lamentablemente, los costos del software no han disminuido con los del hardware. La práctica de la ingeniería de software tiene por objeto la construcción de grandes y complejos sistemas de una forma rentable. Por tanto, quizás no sea exagerado sugerir que la prosperidad futura de los países industrializados depende de una ingeniería de software efectiva.

Hoy el problema está dado por el desafío de reducir el costo y mejorar la calidad de las soluciones basadas en computadoras, soluciones que se implementan con el software.

Como respuesta a la “crisis del software” ha evolucionado un conjunto de técnicas denominadas colectivamente Ingeniería de Software. Estas técnicas se enfrentan con el software como un producto de ingeniería.

Los problemas asociados con la “crisis del software” se han producido por el carácter lógico del software y por los errores de los procesos encargados del desarrollo del mismo, donde el factor humano incide por la prevalencia de la “mitología” relativa al software, por el temor a los cambios en los procesos de elaboración y el rechazo a lo desconocido. Sin embargo, es verdaderamente irónico que, mientras el hardware experimenta enormes cambios, la gente del software, responsable de aprovechar dicho potencial, se oponga normalmente a los cambios cuando se discuten y se resista al cambio cuando se introduce.

La mitología surge en los primeros años del desarrollo del software. Aparecieron declaraciones razonables de hechos asociadas a usuarios y a realizadores (algunas veces conteniendo elementos verdaderos), que tuvieron un sentido intuitivo y frecuentemente fueron promulgadas por expertos. Hoy, la mayoría de los profesionales competentes reconocen en los mitos actitudes negativas que han causado serios problemas. Sin embargo, las viejas actitudes y hábitos son difíciles de modificar, teniendo todavía credibilidad algunos restos de los mitos del software.

El reconocimiento de las realidades del software es el primer paso hacia la formulación de soluciones prácticas para el desarrollo del mismo.

Se han propuesto varias definiciones de Ingeniería de Software, las que tienen como elemento común que la ingeniería de software trata de la construcción de sistemas utilizando principios de ingeniería para el desarrollo de estos.

Consideramos completa la definición de Fritz Bauer quien expresa que “la Ingeniería de Software consiste en el establecimiento y uso de principios de ingeniería robustos, orientados a obtener software económico que sea fiable y funcione de manera eficiente sobre máquinas reales”.

La Ingeniería de Software está conformada por:

Herramientas: Soporte automático o semiautomático a los métodos, orientadas a etapas particulares en el diseño de un software. Herramientas CASE.

Métodos: Cómo se construye el software (planificación, análisis de los requisitos, diseño del sistema, codificación, prueba y mantenimiento).

Procedimientos: Secuencia en que se aplican los métodos, entregas y controles. Son los que unen los métodos con las herramientas.

El ciclo de vida clásico para el desarrollo de software permanece como el modelo procedimental más ampliamente usado por los ingenieros del software. Sin embargo, con el paso de los años se han producido críticas a este paradigma. Entre los problemas que se presentan se encuentran:

· Las dificultades del cliente para establecer explícitamente al principio todos los requerimientos.

· Una versión, funcionando, del programa no estará disponible hasta las etapas finales del desarrollo del proyecto.

· Los costos de mantenimiento suelen superar a los costos de desarrollo.

La mayor parte de los costos de mantenimiento del software no resultan de errores del sistema, sino del cambio en las necesidades. Por tanto, para reducir los costos de mantenimiento y, en consecuencia, los costos totales del ciclo de vida, deben establecerse una expresión más exacta de las necesidades reales del usuario. Esto condujo a las propuestas de Mc Cracken y Jackson, 1982, y Gladden, 1982, de que el modelo de ciclo de vida anteriormente descrito debía ser reemplazado por un modelo más evolutivo del desarrollo del software. [5,2]

El modelo evolutivo se basa en la idea de que al usuario se le debe presentar, lo antes posible, un prototipo del sistema para experimentación, retroalimentando con información a los constructores del sistema. Después, el prototipo se modifica para reflejar las necesidades modificadas del usuario. Este proceso de evolución del prototipo continúa hasta que el usuario esté satisfecho con el sistema que se le entrega.

La construcción del prototipo facilita al programador la creación de un modelo de software a construir y reduce drásticamente el ciclo de vida y el tiempo de desarrollo.

La naturaleza de la aplicación dictará la aplicabilidad del método de construcción de prototipos (recomendable si el software exige una fuerte interacción hombre/máquina). En tales casos puede usarse a veces un lenguaje de cuarta generación (L4G) para desarrollar rápidamente el prototipo o pueden aplicarse los pasos de diseño e implantación del ciclo de vida clásico para desarrollar el software formalmente.


METODOLOGÍAS

En lo relativo a las metodologías, estas aparecen por la necesidad de poner orden al proceso de construcción del software. Resulta importante que el desarrollo de sistemas informáticos sea tratado bajo una disciplina ingenieril, con el fin de desarrollar e implantar sistemas realmente eficaces y eficientes.

En [3,4] se plantea que las metodologías guían el proceso de desarrollo y la experiencia ha demostrado que la clave del éxito de un proyecto de software es la elección correcta de la metodología, que puede conducir al programador a desarrollar un buen sistema de software. La elección de la metodología adecuada es más importante que utilizar las mejores y más potentes herramientas.

El crecimiento de la calidad y la productividad se logra utilizando nuevas metodologías y tecnologías para desarrollar y mantener el software.

En Cuba se usa fundamentalmente la Metodología ADESA, que está enfocada a la programación estructurada.

Un grupo de especialistas del Instituto Superior Politécnico José A. Echeverría (ISPJAE) se ha dedicado a la elaboración de Metodologías para el Software. Asociadas al tipo de programación han sido confeccionadas dos metodologías: MetVisualE, para cuando se realiza la programación en lenguajes estructurados (Visual Basic, Microsoft ACCESS, etc.), recomendable para la construcción de sistemas fuertemente interactivos, y la metodología ADOOSI, como respuesta a la necesidad de poseer un conjunto de métodos e instrumentos que permitan el desarrollo de proyectos que utilicen un enfoque orientado a objetos.

La disciplina para el desarrollo del software, llamada ingeniería de software, combina métodos para todas sus fases, utiliza mejores herramientas y realiza una construcción más poderosa por el predominio de la coordinación y el control, garantizando así la calidad del producto.


GARANTÍA DE LA CALIDAD DEL SOFTWARE

No existe un único enfoque para solucionar el mal del software. [2,4] Sin embargo, los resultados de aplicar una mejor tecnología no han resuelto el problema y es en este contexto que diversos organismos internacionales han puesto especial énfasis en la búsqueda de normas para el desarrollo de productos de software, tendientes a garantizar la calidad y la satisfacción total del usuario.

En las normas ISO 9000, en especial la ISO 9000-3 relativa al software, se destacan las mediciones del producto y mediciones del proceso. [6,5]

La ingeniería de software se interesa en buscar mejores conocimientos con relación a la calidad del software.

Es necesario que las entidades que se dedican a desarrollar software comprendan que el desarrollo de productos de alta calidad es una meta importante y constituye un factor de primer nivel en la dirección de la empresa.


AUTOMATIZACIÓN DE LA GESTIÓN EN EL INSTITUTO SUPERIOR DE CIENCIAS MÉDICAS DE LA HABANA (ISCM-H).

El trabajo de gestión en esta institución ha sido siempre un proceso difícil por su volumen, realizándose en sus inicios de forma manual hasta que el desarrollo de los medios técnicos contribuyó a facilitar su procesamiento.

El cuadro nacional actual de la informática es una preocupación que ha conllevado propuestas específicas por parte del Estado Cubano, en particular en el documento para la Informatización de la Sociedad Cubana [3,6] se expresa la necesidad de:

· Elevar la eficiencia de la gestión mediante el uso adecuado de la informática y las redes de computadoras.

· Elevar la calidad en la gestión de dirección mediante el uso adecuado de la informática, debiendo definir cada sector su estrategia de informatización sobre la base de lograr una mayor eficiencia con su ayuda.

· Elevar la calidad del trabajo de las entidades y colectivos dedicados a la automatización de la gestión de dirección. Se destacan dos orientaciones fundamentales: la primera dirigida a procurar soluciones informáticas lo más integradas posible, incluyendo funciones que apoyen la toma de decisiones, y la segunda relacionada con la necesidad de que los colectivos informáticos eleven su productividad y la calidad de los productos informáticos que diseñan, debiendo aplicar para ello las metodologías establecidas de análisis y diseño de sistemas de información.

Dando cumplimiento a la política de Informatización expuesta, el Grupo de Informática en Salud elaboró la carpeta TECAINE, donde se expresan como principios esenciales para la Informatización, lograr:

· La creación de Grupos que conduzcan el Proceso de Informatización a cada nivel.

· Elaborar el Proyecto de Informatización de cada institución.

· Garantizar la existencia de la documentación de usuario y técnica de los sistemas informáticos en desarrollo y explotación.

· Coordinar la elaboración de aplicaciones.


ANTECEDENTES

La automatización de la gestión en el Instituto Superior de Ciencias Médicas de la Habana comienza por la necesidad de disponer de las estadísticas docentes con credibilidad, en un mínimo de tiempo y a pesar de la gran matrícula existente, para la dirección del centro.

La solución a los nuevos requerimientos informáticos en la Institución fue asumida y desempeñada por el colectivo de profesionales del Centro de Cibernética Aplicada a la Medicina (CECAM) a finales de la década del 80, período en el que se lleva a cabo el perfeccionamiento de la dirección de los Centros de Enseñanza Superior (CES) y de todas las ramas de la Educación Superior en nuestro país.

En sus inicios se acometieron soluciones a tareas inmediatas de forma espontánea, según las necesidades presentadas. Como resultado de ello se confeccionó un grupo de sistemas dentro de los que, por su alcance, cabe significar los siguientes: SAIDO, SAGECU, SICRE, SACOCO, TE, CCRS y SAE.

Con el propósito de conocer la situación actual de los sistemas de gestión que se utilizan en los Departamentos de Secretaría General, Cuadros y Estadísticas en las Facultades del ISCM-H se realizaron entrevistas y se aplicaron encuestas.

Como resultado se obtuvo que los sistemas de mayor uso son el SAIDO y el SAGECU, de los que se tienen criterios positivos (como se refieren en la Tabla 1); no así del SICRE, en el que es significativo el bajo porciento de usuarios que lo considera ventajoso.

Los sistemas de gestión referidos fueron elaborados siguiendo el ciclo de vida clásico de elaboración de software, siendo la etapa de mantenimiento la más prolongada y difícil de realizar por no disponer de la documentación completa de los sistemas y las insatisfacciones de los clientes por la dinámica del trabajo mismo. No obstante, es significativo el buen uso y satisfacción del usuario con el sistema SAIDO y la aceptación del SAGECU, en los que coincide que su mantenimiento se realiza por uno de los autores del sistema.

Se evidenciaron por tanto, algunos de los problemas que la crisis del software considera, como son:

· Dificultades para el mantenimiento (documentación incompleta).

· Estimación imprecisa de los costos.

· Cuestionamiento de la calidad.

La forma en que se ha desarrollado el software en el centro no ha sido diferente a la de otros centros informáticos, dependiendo de la experiencia individual en trabajos anteriores y del método personal del gestor en la elaboración del sistema.

Atendiendo a lo planteado en epígrafes anteriores, los elaboradores de software deben estar dispuestos a aprender las nuevas técnicas, aplicar métodos efectivos de control y llegar a conocer la tecnología que cambia rápidamente.

Se sugiere dar un enfoque de ingeniería al desarrollo del software, y proporcionar asistencia práctica a la persona que lo desarrolla, mediante la utilización de mejores herramientas para automatizar las fases del ciclo de vida del proyecto y mejores técnicas para la garantía de la calidad.

En el caso de la informatización de los Centros de Enseñanza Medica Superior (CEMS), la técnica de prototipado es altamente recomendable por sus facilidades en la comunicación entre el informático y el equipo de dirección.

Se recomienda además, el uso de las metodologías para la elaboración del software, teniendo en consideración el tipo de programación a realizarse: estructurada u orientada al objeto, recomendándose para cada una las Metodologías Cubanas elaboradas por el colectivo del Instituto Superior Politécnico José Antonio Echeverría (ISPJAE).

El SICRE fue elaborado en 1988 para la emisión de informaciones estadísticas de los residentes con respecto a: especialidad, cursos recibidos, evaluaciones, vías de ingreso, estancias, modalidad, unidades donde se cursa la especialidad, por solo citar los aspectos más generales. En encuesta realizada se precisaron insatisfacciones de los usuarios con respecto a la presentación de la información, el completamiento de los datos, emisiones de salidas no necesarias y ausencia de las solicitadas por los organismos competentes, así como no-correspondencia del sistema con la metodología actual para la evaluación, lo que hace que en la actualidad el mismo sea utilizado escasamente por algunas facultades, limitando su uso en el Instituto.

Se evidenció la necesidad de reelaborar el sistema existente, encontrándose el inconveniente del no completamiento de la documentación del sistema original y la ausencia del programa fuente correspondiente a la evaluación. Todo lo anterior obstaculiza el mantenimiento y perfeccionamiento del sistema, por lo que se decidió reelaborar el mismo.


SITUACIÓN ACTUAL.

Luego de analizadas las principales tareas susceptibles de ser automatizadas, se elige la de Evaluación de los Residentes, tarea a la que se da solución haciendo uso de la técnica de prototipado, por sus facilidades para la creación de un modelo del software a construir, lo cual posibilita al usuario la comprensión de cómo se producirá la interacción hombre/máquina y una mejor identificación de los requisitos de entrada, procesamiento y salida del proyecto evolutivo en el que participa.

El uso del prototipo facilita una mejor comunicación con el usuario desde etapas tempranas del análisis, logrando un aumento de la calidad del producto final.

El prototipo es diseñado por las facilidades que ofrece al sistema para su elaboración y por la naturaleza de la aplicación, dada la fuerte interacción del sistema con el usuario.

Siendo consecuentes con los criterios referidos anteriormente, se hizo la elección de una metodología de trabajo, decidiéndose utilizar la Metodología para el desarrollo de aplicaciones para medios ambientes visuales estructurados (Met Visual E) [1,7]. La Metodología Met Visual E se basa en el uso de las técnicas de prototipo, por lo que su enfoque consiste en: "pensar un poco, construir un poco, probar un poco y entonces hacerlo de nuevo". El modelo es refinado a partir de las opiniones del usuario.

Se cumplen los atributos para la calidad referentes a:

· Completitud: Están definidas las responsabilidades del sistema de forma clara y concisa, cada entidad posee la descripción de sus atributos y se especifica el grado de asociación entre las entidades de acuerdo a los requerimientos del problema.

· Consistencia: Los guiones no muestran contradicciones teniendo un diseño uniforme y los atributos se definen de forma única.

· Complejidad: Se especifican los atributos necesarios para identificar cada entidad.

Según expresa la metodología empleada se confeccionó:

· Tabla de Eventos, donde se identifican los documentos fuentes, los usuarios finales y los eventos a los que el sistema debe responder, así como las fuentes y destinos, que pueden ser usuarios, ficheros o bases de datos.

· Diagrama de Contexto, donde se reflejan las personas, el software, el hardware, etc. que interactúan con el sistema, así como los flujos de datos que fluyen entre sí.

· Tareas

· Diagrama de flujo de datos, que ofrece una descripción gráfica de lo que se piensa que el sistema debe hacer.

· Grafo Conversacional, que especifica la secuencia de eventos que es deseable desde el punto de vista del usuario,

· Diagrama Entidad Relación, que consiste en un diagrama preliminar de los datos y sus relaciones, así como el tipo de correspondencia.

Se demostró en la práctica las ventajas de la aplicación de una metodología para aumentar la productividad de la programación e incidir en su calidad, ya que ofrece una orientación metodológica para el trabajo de programación en los nuevos sistemas.

En estos momentos se trabaja en el rediseño de los sistemas relacionados con Control de Cuadros y Becarios extranjeros, se concluye el de Control de los Residentes y se elabora el de Divisas.


CONCLUSIONES

1. Los sistemas de gestión que se explotan actualmente en los CEMS no se corresponden técnica ni metodológicamente con las exigencias que impone el estado de desarrollo actual de la computación.

2. Los realizadores de software no hacen uso de metodologías, herramientas CASE y criterios de calidad.

3. La utilización de una metodología adecuada es un elemento vital para el diseño de sistemas con más productividad y más calidad.

4. El principal resultado de la investigación es su carácter metodológico, ya que permite su generalización para los diseñadores de software en la gestión universitaria.

5. La elevación de la cultura informática en los cuadros de dirección y la identificación de las tareas a automatizar en el ISCM-H facilitan el proceso de Informatización del Instituto en correspondencia con los lineamientos planteados al respecto para la sociedad cubana.


REFERENCIAS BIBLIOGRÁFICAS

1) Francisco Villarreal. “¿Es posible el éxito empresarial con tecnologías de información?” . Pag. 4-10 Revista RED febrero/96 Nro. 65.
2) Sommerville,I. Ingeniería de Software. Sddison-Wesley Iberoamericana. 1988.
3) McClure, Carma. “CASE, la automatización del software”. Editorial Addison-Wesley Iberoamericana,SA EUA 1993.
4) García Avila, Lourdes F. Tesis para optar por el título estatal de Máster en Informática Aplicada a la Ingeniería y la Arquitectura. “Metodología para evaluar la calidad de la etapa de análisis de proyectos informáticos orientado a objetos (CAOOSI)” ISPJAE Cuba 1996.
5) Vilcapoma, Edgar. Estándares ISO para la calidad del software. Revista Competitividad. Universidad Nacional de Ingeniería. Lima, Perú, Año 1, No 2, Noviembre 1995, pp13-17.
6) “Lineamientos para la Informatización de la Sociedad Cubana.” Grupo de Especialistas designados por el Comité Ejecutivo. 1997.
7) Álvarez Cárdenas, Sofía. Metodología para el desarrollo de aplicaciones para medios ambientes visuales estructurados. 1993.


 

WWW:CECAM.SLD.CU