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.