Date post: | 14-Dec-2015 |
Category: |
Documents |
Upload: | veronica-alejandra-sanchez |
View: | 6 times |
Download: | 0 times |
Universidad de Guadalajara
Centro Universitario de Ciencias Económico
Administrativas
Análisis y optimización del sistema de control y gestión de honorarios de
una entidad hospitalaria
Tesis que Presenta:
José Abelardo Bonilla Suarez
Para obtener el grado de:
Maestro en Tecnologías de Información
Director de Tesis
Mtro. Sergio Javier Uribe Nava
Zapopan, Jalisco
Agradecimientos
Le agradezco a dios, por a ver cuidado de mi hasta, como hasta ahora lo ha
hecho por protegerme de y darme unos padres de los cuales estoy muy
orgulloso de presumirlos, por darme la sabiduría para poder salir adelante en
mi vida y por darme experiencia y aprendizaje.
Le doy gracias a mis hijos, por estar a lado mío, por brindarme felicidad cuándo
mas estresado estaba, por darme amor y cariño como nunca imagine que
pudiera tener, porque cada vez que los veía siempre seguí luchando más por
darme la oportunidad de tener en mi vida algo que soñé y que hoy en día se
hace realidad.
Le agradezco toda la confianza que puso en mí el Mtro. Mtro. Sergio Javier Uribe
Nava, por apoyarme en este proyecto el cual no hubiera sido posible sin él, siempre estuvo hay
orientándome y sacándome de muchas dudas, de desesperación, de no saber que hacer en
cierto momento de mi vida tanto en lo personal como en lo profesional.
Le agradezco a la maestría por ser una gran institución en la cual estoy
formándome para ser un mejor ser humano y un mejor profesionista, por
darme la confianza que hoy día se está transmitiendo en frutos del termino
postgrado.
Índice
Tabla de contenido
Índice...............................................................................................................................................3
Resumen............................................................................................................................................5
Abstract..............................................................................................................................................7
Capítulo 1...........................................................................................................................................9
1.1 Introducción.............................................................................................................................9
1.2 Motivación.............................................................................................................................11
1.3 Objetivo General....................................................................................................................12
1.4 Objetivos Particulares.............................................................................................................12
1.5 Alcance...................................................................................................................................13
1.6 Aportaciones..........................................................................................................................13
1.7 Relevancia..............................................................................................................................14
1.8 Estructura del trabajo de tesis................................................................................................14
Capítulo 2.........................................................................................................................................15
2.1 Análisis del sistema planteado...............................................................................................15
2.2 Sistemas Heredados...............................................................................................................18
2.3 Riesgos de un sistema Heredado............................................................................................21
2.4 Usabilidad...............................................................................................................................23
2.4.1 Usabilidad Ágil.................................................................................................................23
2.4.2 Metodología ágil centrada en el usuario U-CD................................................................24
2.5 Bases de Datos.......................................................................................................................27
2.6 ¿Que es un sistema de Base de Datos?..................................................................................27
2.7 Seguridad de bases de datos..................................................................................................31
2.8 Seguridad de la información...................................................................................................31
2.9 Integridad de la información..................................................................................................31
2.10 Confidencialidad de la información......................................................................................32
2.11 Disponibilidad de la información..........................................................................................32
2.12 Auditar manejo de la información........................................................................................33
2.13 Objetivos de la Auditoría......................................................................................................33
2.14 Manejadores........................................................................................................................33
2.15 Indexación de Datos.............................................................................................................35
2.16 Tecnologías de Conectividad de Datos (Microsoft)..............................................................37
2.17 Interface de programación...................................................................................................38
2.18 Tecnologías de Conectividad................................................................................................39
2.19 Acceso mediante DAO, RDO, ADO........................................................................................40
2.20 Lenguajes de Programación.................................................................................................45
2.20.1 Visual Basic...................................................................................................................47
2.20.2 Visual Basic NET.............................................................................................................48
2.20.3 Java....................................................................................................................................50
Capitulo 3.........................................................................................................................................51
3.1 Introducción...........................................................................................................................51
3.2 Planteamiento del problema..................................................................................................51
3.3 Justificación............................................................................................................................51
Capitulo 4.........................................................................................................................................51
4.1 Introducción...........................................................................................................................51
4.2 Desarrollo de la metodología.................................................................................................51
4.3 Propuesta para el Análisis y optimización del sistema de honorarios....................................51
4.3.1.........................................................................................................................................51
Resumen
Los sistemas hospitalarios enfocados en los honorarios médicos, son sistemas que tiene gran
deficiencia en cuanto a funcionamiento y a aclaraciones de manejo de información, de los
honorarios.
¿Cómo podríamos lograr un desarrollo y una implementación de buenas prácticas en un
sistema como este? Pues haciendo un análisis profundo de las deficiencias, errores humanos,
huecos informáticos y con el pasar del tiempo con el cual podemos detectar que ha habido
irregularidades en este tipo de eventos.
Organizaciones tales como son los hospitales el manejo de la información de honorarios
en una parte muy crítica y fundamental para el sustento del hospital, porque de ahí se puede
derivar el que un doctor lleve o no a un paciente a dicha institución para su operación, chequeo, o
incluso algún seguimiento de por vida.
Debido a esto y a las grandes tormentas que han aparecido en este problema me di a la
tarea de hacer un análisis y optimizar el sistema que actualmente se lleva en el hospital, el
presente trabajo de tesis propone un caso de estudio de migración para un mejor manejo de la
información, fundamentado en las deficiencias de otros sistemas y la poca robustez de lo que un
sistema de honorarios debería de tener.
¿Cuáles son las causas o los problemas del porqué, un sistema comercial no cubre lo que
realmente un hospital necesita para llevar acabo sus funciones?
1. La mala planeación
2. Datos no congruentes
3. Desarrollo solo por el programador.
4. Juntas reales con gente de hospitales (administrativos) para darle un valor agregado a lo
ya desarrollado.
5. Pruebas reales tras la realización del sistema.
Se estuvo verificando los sistemas que actualmente están y no cumplían con requisitos
básicos, pues el desarrollo era un enfoque administrativo no médico, no veían más allá de un
sistema de información de datos los cuales no arrojaban la información necesaria para poder
empalmar información del médico-administrativo.
Es por eso que se pensó en un sistema que pudiera facilitar el manejo de los demás hospitales
privados, para sus mejores prácticas
Se basó en sistemas más robustos como son SQL y Oracle como medios locales y de alto
rendimiento y alta disponibilidad para el tipo de información.
Se pensó en la economía, rendimiento, operatividad, desarrollo practico, por eso se pensó
también en el sistema de visual Basic 6, el cual nos ayuda a poder realizar acciones más fáciles y
con menos tiempo de desarrollo.
Se utilizara un sistema de muy simple y de forma práctica para el usuario final, que fuera de
una forma diferente y que contuviera la información que necesitaba y que pudiera hacerlo en
tiempos cortos.
Palabras clave:
Análisis, bases de datos, sistema, usabilidad, entidad hospitalaria, sistemas
heredados, desarrollo programación, seguridad en tecnologías de información.
Abstract
Hospital systems focused on medical fees, are systems that have great
deficiency in terms of operation and information management clarification of
the fees.
How can we achieve development and implementation of good practice in a
system like this? Well doing a thorough analysis of the deficiencies, human
errors, gaps computer and with the passage of time with which we can detect
that there have been irregularities in these events.
Organizations such as hospitals handling fee information in a very critical and
important to the livelihood of the hospital, because there you can derive a
doctor or take a patient to the institution for its operation, check , or even
some lifelong monitoring.
Because of this and the great storms that have appeared in this issue I found
the task to analyze and optimize the system currently been in the hospital, this
thesis proposes a case study of migration for better handling information,
based on the shortcomings of other systems and little robustness of what a
system should have fees.
What are the causes or problems of why a trading system does not cover the
hospital really needs to carry out its functions?
1. The poor planning
2. Data not consistent
3. Development only by the programmer.
April. Together hospitals actual people (administrative) to give added value to
the already developed.
May. Actual Tests system after completion.
He was checking the systems that are currently not met basic requirements for
the development was a non-medical administrative approach, did not see
beyond a data information system which did not throw the information needed
to join medical-information administrative.
That's why I thought of a system that would facilitate the management of
other private hospitals for their best practices
It was based on more robust systems such as SQL and Oracle as local media,
high performance and high availability for the type of information.
It was felt in the economy, performance, operation, development practice, so
he also thought the Visual Basic 6 system, which helps us to perform actions
easier and with less development time.
They used a system of simple and practical way to the end user, it was a
different way and contained the information I needed and I could do in a short
time.
Keywords:
Analysis, databases, system usability, hospital entity, legacy systems,
programming development, information technology security.
Capítulo 1
1.1 Introducción
Actualmente en las empresas del sector saludo privado se manejan sistemas de
honorarios rudimentarios, basados en sistemas básicos de Microsoft Excel o en su
defecto sistemas que aplican en una plataforma de Microsoft Access.
La integración de esta aplicación basada en análisis y optimización del sistema de
control y gestión de honorarios de una entidad hospitalaria, es una herramienta la cual
generara de forma correcta ciertos huecos que actualmente están sucediendo en un
hospital en específico el cual esta tenido de cierta forma perdidas de dinero, falta de
información bien fundamentada por la forma en la que se están utilizando, Hoy en día
las bases de datos son parte fundamental para el manejo de procesos que hacen
eficiente la productividad de los clientes siempre y cuándo se busque una base de
datos adecuada
Las bases de datos, el sistema de desarrollo visual Basic, contabilidad y un buen
orden lógico completan la información ya desarrollada en los sistemas para optimizar y
modificar ciertos errores o generar reportes con consultas específicas, esas
modificaciones se adquieren a través de los lenguajes de programación, se habla de
SQL Server como plataforma de programación para la realización de dichas actividades
que se realizan dentro de los esquemas que actualmente se usan.
El desarrollo de las nuevas tecnologías de información contribuyen a un crecimiento
en el ramo médico para el desarrollo tanto de sistema de hospitalarios como la
elaboración de productos mecánicos que contribuyen a una mejora en el alcance
medico científico.
Un elemento central de las sociedades del conocimiento es la “capacidad para
identificar, producir, tratar, transformar, difundir y utilizar la información con vistas a
crear y aplicar los conocimientos necesarios para el desarrollo humano” (Binde, 2005).
En otras palabras la sociedad médica ha tenido un gran desarrollo en las
tecnologías de la información, tanto así que hoy en día el gobierno tiene apoyos para el
desarrollo de nuevas oportunidades en el área de las tecnologías de la información, con
el propósito de levantar de una forma significativa el sector salud.
Noelia Escobar Hernández el 12 de mayo del 2007 comento:
En México tenemos equipos de alta tecnología que permiten un diagnóstico
médico preciso, al que es posible acceder de forma remota.
La tecnología nos permite tener equipos de alta calidad, que nos ofrezcan
diagnósticos precisos en los cuales basarnos para indicar tratamientos efectivos.
Podemos realizar exámenes médicos con equipos que dictaminan rápidamente y con la
posibilidad de que los estudios puedan ser consultados de forma electrónica por
diversos especialistas que se encuentren en distintas ciudades o continentes.
Una Unidad de Radiodiagnóstico de la ciudad de México adquirió una
Resonancia Magnética de 1.5 Teslas de Philips que permite estudios diagnósticos a la
comunidad médica especializada. Este Centro permitirá realizar exámenes de una
manera inocua y con la más alta calidad diagnóstica en áreas como neurología,
ortopedia y angiografía, entre otras.
Este equipo tiene un sistema que produce estudios con un gran nivel de detalle
y permite exploraciones corporales totales a órganos específicos, por lo que es posible
conocer diversas enfermedades. Es un diseño innovador que no da sensación de
claustrofobia porque es abierto.
Entonces le ámbito laboral dentro de un sector salud privado, se están desarrollando
sistemas que puedan interactuar con el médico-paciente, para un mejor diagnóstico,
más rápido, mas eficiente, con mayor seguridad, por lo tanto se cree que este sector
todavía tiene muchas cosas que explotar para poder dar mejor apoyo al paciente,
porque esa es la finalidad de las tecnologías de la información, tener un soporte detrás
de los servicios hospitalarios que brindan cuidado al paciente.
Wayne nos relata que también con autoridades de los institutos Mexicano del Seguro
Social (IMSS), de Seguridad y Servicios Sociales de los Trabajadores del Estado
(ISSSTE) y de hospitales particulares, para inaugurar el segundo foro anual México-
Estados Unidos sobre Cuidado de la Salud, Tecnología y Negocios, en el centro de
convenciones del IMSS. El tema de este año, “Tecnologías de Información en la Salud:
Transformado el Valor del Cuidado de la Salud”, es de largo alcance, concierne a los
más jóvenes y a los muy viejos, y desde los menos afortunados hasta los más
influyentes, detalló Wayne.
En l actualidad son más las empresas que son capaces de facilitar en el ramo medico
una satisfacción al paciente con eficiencia por parte de todo el grupo que esta
alrededor del médico tratante, se está mejorando el cuidado, las aclaraciones, la
atención de los administrativos hacia los médicos, la puntualidad y el seguimiento a los
pagos de aseguradoras, pues hoy en día podemos darnos cuenta que pasa con las
cuentas por pagar, las aclaraciones, entre otras muchas cosas.
1.2 Motivación
El presente trabajo nace las oportunidades detectadas en un área enfocada
a la administración de grandes bases de datos y aplicaciones, donde se
identificó la necesidad de migrar un sistema el cual no tenía ningún tipo de
orientación administrativa médica.
Me di a la tarea de migrar una aplicación al cual pudiera aumentar las
oportunidades dentro de una empresa de ramo médico, de saber que era de
suma importancia aplicar alguna metodología que pudiera hacer mis procesos
y mi desarrollo de migración, asimismo se fortaleció la problemática que hoy
en día surge para tal cambio, esta metodología es cualitativa ya que cubre de
cierta forma los requisitos que pudiera necesitar para poder hacer dicha
aplicación como un marco de referencia.
¿Porque decidí realizar dicha modificación? Porque es de mucha
importancia llegar a un punto en al que tengamos certeza de que la
información a la cual estamos accesando son datos “confiables”.
Se estarán tratando puntos de información según la necesidad de la
empresa, pero que sea estandarizada con la finalizad de que sea amigable y se
adapte a las necesidades de las demás empresas (hospitales privados), porque
la finalizad es distribuir el sistema que pueda suplantar las fallas básicas de los
que están en el mercado actual, y así poder contribuir a una práctica más ágil y
simple.
Poder contribuir con algún desarrollo que pueda generar un crecimiento
personal con el cual la comunidad pueda dar testimonio de las aportaciones
que la gente de sistemas pueda aportar a un ámbito muy diferente de lo que
uno está acostumbrado a realizar día con día, es algo que lo mueve a uno
desarrollar, a probar, a ser arriesgado para un fin publico y privado, es lo que
me llevó a realizar este tipo de acciones, así como generar seguridad
informativa para un uso critico de datos que pueden afectar a los médicos
involucrados en la realización del mismo si no se trata de la manera más
discreta y confiable.
1.3 Objetivo General
El objetivo en la gestión de honorarios de una entidad hospitalaria, es
precisamente aminorar, optimizar y reestructurar la forma y el manejo de la
información haciendo un análisis de las necesidades fundamentales de la
empresa, con el fin de poder realizar de una forma correcta y preciosa el
manejo de los datos, la veracidad de la información así como poder sacar y
generar arqueos cada determinado tiempo para corroborar que el sistema de
cierta forma arroja la información que se necesite, organizar y poder detectar
los pagos de los servicios de honorarios sean entregados y avalado por la
empresa responsable y dicha empresa pueda respaldar los manejos de la
repartición del dinero, recibos, indicadores de entrega, tipos de pagos, usuarios
responsables del recibir y de entregar dicho dinero dé una forma correcta.
1.4 Objetivos Particulares
Mantener a tener la integridad, confiabilidad y disponibilidad de la
información desde un desarrollo de mejor práctica.
Disminuir las mesclas de información del personal implicado en la
ejecución del sistema, para la elaboración de reportes que ayuden a
identificar los errores más rápidamente.
Poder realizar ciertos procedimientos de bases de datos que sean un
factor para llevar de la mano al usuario final como se comentó
anteriormente, a poder generar mesclas de dinero, tanto de depósito
como del día y poder hacer ciertas ejecuciones (triggers), automatizadas
para señalar y separar las funciones de una forma diferente, pues cada
acción dependiendo del usuario tiene ciertas funciones para poder
ejecutar el disparador o trigger.
Tener el control interno de la cantidad de dinero que se maneja, ya que
la perdida ha sido grande considerablemente, para la empresa y lo que
conlleva a perder algún cliente potencial.
1.5 Alcance
El presente trabajo de tesis esta planeado para poder optimizar y analizar y
desarrollar una metodología cualitativa para optimizar la forma de trabajo,
elaborar e ingresar reportes y cortes con los cuales se pueda detectar de
manera clara y transparente de cualquier movimiento y/o aclaración que
pueda ver en algún futuro, así como establecer una serie de requerimientos
de seguridad por las partes involucradas.
1.6 Aportaciones
Las aportaciones que se pretenden obtener en este punto de análisis son:
Seguridad
Una estructura de datos organizada
Información verídica
Una forma más practica fácil y segura de utilizar el sistema
Reducción de errores humanos
Que sea un sistema heredado pero con mejoras en la
interface(usabilidad)
Detección de cobros pagos y entrega de honorarios médicos reales.
Implementar una metodología que pueda hacer eficiente las deficiencias
antes obtenidas enfocadas en bases de datos más consistentes y con un
desempeño mayor al que se tiene actualmente.
1.7 Relevancia
Acortar tiempos
Mejora en el proceso de entregas, pagos
Cortes de caja por usuario
Arqueos reales
Mayor velocidad
Resultados en la información basado en incidencia más rápidas de
detectar
Agilizar la documentación que implica la entrega de dinero al médico
involucrado.
1.8 Estructura del trabajo de tesis.
El presente trabajo está desarrollado en:
5 Capítulos
Un glosario de términos
Referencias bibliográficas
Tablas
Figuras
Anexos
El capítulo 1 contiene una introducción a la importancia del análisis y la
optimización en un enfoque metodológico cualitativo, la motivación de porque
tuvo una tendencia de este tipo, se redacta el objetivo general, particular, así
como el alcance y las contribuciones de la misma hacia el nuevo desarrollo y
sus beneficios.
El capítulo 2 se redacta un marco teórico que es un sustentó del trabajo de
investigación que se viene realizando para poder llegar al alcance y los
objetivos o del porque me respaldo al utilizar ciertas herramientas las cuales
soportan el manejo de la investigación, como lo son bases de datos,
conectividad, plataformas de desarrollo.
El capítulo 3 habla sobre el planteamiento del problema y como abordarlo para
aunar y solucionar envase a una justificación de porque se escogió cierta
metodología que pueda dar esa cambio y estabilidad a esta implementación.
El capítulo 4 contiene la metodología propuesta, en al cual la cual consta de
varias fases para poder dar solución al problema requerido.
El capítulo 5 son conclusiones.
Capítulo 2
2.1 Análisis del sistema planteado
En el análisis de sistema vemos como poder interactuar y tener una gran
gama de cualidades de cierta forma con los usuarios finales para poder tener
una exacto concepto del la gravedad que tiene actualmente en la empresa, un
análisis de sistema de información como es el caso de la del requerimiento
actual para realizar soluciones, oportunidades, objetivos factibles y que
alcance del proyecto queremos o pretendemos llegar, teniendo en cuenta que
debemos administrar y coordinar debidamente el sistema o el levantamiento al
cual se quiere llegar.
A continuación presentaremos un esquema que se basa en el ciclo de un
análisis de información parla implementación en los sistemas informáticos [1]
Quienes son los implicados en este tipo de análisis:
Analistas
Usuarios
Trabajadores
Gerentes de área de operaciones
Diseñador de sistemas
Porque es necesaria la involucración des estas personas? Porque el analista
necesita conocer detalladamente las funciones del sistemas actual: él quien (la
gente involucrada), el que (la actividad del negocio),el donde(el entorno donde
se desarrollan las actividades, él cuando(el momento oportuno) y el cómo(la
manera en que se realizan los proyectos actuales)del negocio que se estudia[1]
Dentro de este análisis tenemos que hacer énfasis en la parte del desarrollo de
sistemas, porque es él quien recibe del analista el levantamiento del proyecto,
y es él quien tiene que saber traducir o transformar lo que se desea realizar
dentro del proyecto que se está requiriendo, pues es la base para el trabajo
terminal del programador.
En muchos casos, el analista y el diseñador son la misma persona o el miso
grupo unificado de personas. Aun cuando sean personas distintas, es
importante que se mantengan en contacto directo a lo largo del proyecto. La
razón por la que se necesita esta retroalimentación continua entre diseñador y
analista, es la siguiente:
La mayor parte de las veces el analista y el programador son la misma
persona, pero es importante que ambas personas o la misma este en constante
comunicación ya sea con las personas involucradas o con el mismo dándole
seguimiento a los cambios o procesos que puedan estar pasando en el análisis
del proyecto.
El analista tiene que ofrecer información detallada suficiente como para que el
diseñador pueda elaborar un diseño tecnológicamente superior y el diseñador
debe proveer suficiente información para que le análisis pueda darse cuenta si
los requerimientos que del usuario esta documentando son tecnológicamente
posibles [2]
En esta parte realizaremos un diseño lógico del sistema de información que
vamos a desarrollar, con la finalizad de que dichos datos sean los correctos
para el inicio del análisis el cual vamos a desarrollar, con esto podres realizar
un diseño de formularios y pantallas adecuadas para los usuarios implicados en
el sistema hospitalario relacionado con sistemas de usabilidad para la
visualización del sistema.
En esta parte también se analizara el diseño de las bases de datos en el que se
almacenaran los datos que se almacenaran en el sistema para su posterior
consulta de información del encargado en curso, porque no podemos dejar a
un lado el saber que una información bien recopilada puede ahorrar costos,
deficiencias, tiempos, información verídica y confiable claramente se tendrá
que seguir interactuando con los usuarios tanto en el ámbito de información
como de datos porque a final de cuentas ellos junto análisis y el desarrollo
interactuaran con el sistema terminado.
En la parte del análisis del sistema se tendrá que contemplar un control y
procedimientos de sistemas de respaldo que solidifiquen que la información
que se está almacenando sea debidamente resguardada por el encargado en
curso.
Antes de poner el sistema en funcionamiento es necesario probarlo. Es mucho
menos costoso encontrar los problemas antes que el sistema se entregue a los
usuarios. Una parte de las pruebas las realizan los programadores solos, y
otras las llevan acabo de maneja conjunta con los analistas de sistemas.
Primero se realiza una seria de pruebas con datos de muestra para determinar
con precisión cuales son los problemas y posteriormente se relaza otra con
datos reales del sistema actual [1]
Por último se implementara el sistema de información (Análisis y optimización
del sistema de control y gestión de honorarios de una entidad hospitalaria), Se
capacitara al personal, con la finalidad que puedan explotar al 100% la nueva
herramienta, parte de esa capacitación la da el analista no el desarrollador,
¿porque?, Porque se tendrá que hacer una planeación gradual entre los
sistemas anteriores al sistema que actualmente se desarrollo con el objetivo de
mejoras en reportes, consultas, tiempos, procesos más cortos, se hará una
evaluación, para corroborar que el sistema se está usando de una forma
correcta, con esto no podemos despejar que una vez corriendo la nueva
aplicación, tengamos retrocesos cíclico, podemos estar terminado las etapas
del desarrollo y tener un problema en fases previos, (diseño, análisis,
implementación) según sea el caso.
2.2 Sistemas Heredados
Un Sistema de Información Heredado es cualquier sistema de información que
se resiste significativamente a cambios y modificaciones” [BRODI95]. Por otro
lado, estos sistemas normalmente son de misión crítica dentro de una
organización [BISBA97], esto significa que si alguno de ellos falla o se detiene
traerá graves consecuencias en el desempeño de la organización. De acuerdo
con Wu et al. [WU97], este tipo de sistemas conforman la columna vertebral
del flujo de información en una organización y son el principal vehículo para la
consolidación de información acerca del negocio de ésta [3].
Las principales características de un sistema heredado son:
Típicamente son grandes, con millones de líneas de código,
• Son antiguos, más de 8 años desde su construcción,
• Se basan en bases de datos heredadas o archivos planos,
• Generalmente funcionan en hardware obsoleto que es lento y caro de
mantener,
• Son autónomos (independientes de otras aplicaciones),
• Generalmente, son difíciles de comprender y no existe documentación
suficiente
o apropiada acerca de ellos,
• Su mantención implica un alto costo para la organización y
• Que generalmente cumplen una “misión-crítica” dentro de la organización.
El sistema que existe actualmente de honorarios en la entidad hospitalaria es
desarrollo de una persona que tenía una empresa que generaba software a las
necesidades del cliente, pero que por consecuencia no tenia documentación
alguna y era un sistema muy plano y solo podía ser accedido por el encargado
de sistemas en curso, con 6 años de uso en la empresa, con código fuente
externa no modificada más que por el desarrollador.
Este sistema heredado está corriendo un hardware de más de 8 años de uso,
por consecuencia se volvió muy lento y poco optimo, sin persona que pueda
darle mantenimiento al sistema pues no se tiene le código fuente del mismo,
por eso el análisis de crear y gestionar un sistema que puede ser el heredero el
que está actualmente con un código nativo propio.
El sistema cumple con una función crítica dentro del seno de la empresa pues
son miles de pesos los que se mueven mensualmente (millón y medio por mes
aproximadamente).
Bisbal et al. [BISBA99], plantea que las soluciones a esta problemática se
encuadran básicamente en 3 categorías: redesarrollo, que implica volver a
escribir la aplicación existente; wrapping (envoltura), que provee una nueva
interfaz para el sistema heredado o algún componente de éste, lo que permite
mayor accesibilidad desde otras aplicaciones; y migración, que mueve al
sistema heredado a un nuevo ambiente o plataforma más flexible, reteniendo
la funcionalidad y los datos del sistema original. Cada una de estas soluciones
tiene un mayor o menor grado de impacto en el sistema y, en consecuencia, en
la organización. Por otro lado, la mantención no se aborda como solución para
este tipo de sistemas porque se la considera parte del ciclo de vida de
cualquier sistema de información, además de su alto costo. [3]
Que en este caso se optara por migrar el sistema a una nueva plataforma
(Visual Basic) con la finalidad de optimizar los procesos, dar mayor seguridad
Brodie y Stonebraker [BRODI95], plantean la migración como una solución
lógica al problema de los sistemas heredados, la cual conllevaría la
problemática de reemplazar el hardware y software, incluyendo las interfaces,
aplicaciones, y bases de datos que componen la infraestructura del sistema
heredado, por un hardware y software nuevos y más modernos. Ellos
consideran que la migración de un sistema heredado implica comenzar con un
sistema heredado y terminar con un nuevo sistema de información
equivalente. El nuevo sistema será significativamente diferente del original,
pero deberá contener la funcionalidad elemental y los datos del sistema
heredado. [3]
En este análisis se plantea que el sistema heredado pueda reestructurar las
fallas que se tiene actualmente en la empresa, para poder ser una empresa
competitiva en el aspecto administrativo, actualmente sigue existiendo
sistema de honorarios que se manejan por medio de un sistema de archivo de
Excel, el cual no da garantía de ser un sistema que pueda proteger de cierta
forma la integridad de la información que es lo que se busca realizar, por
seguridad del dinero de los médicos.
Bisbal et al. [BISBA97,BISBA99], consideran que las migraciones si son exitosas
traen mayores beneficios a largo plazo. Por ejemplo, la migración permitirá
mayor entendimiento de sistema, facilidad y reducción de costos en
mantención. Ellos definen la migración de un sistema heredado como el
proceso de mover el sistema heredado a un nuevo ambiente o plataforma que
permita que el nuevo sistema de información sea fácilmente mantenido y
adaptado a los nuevos requerimientos de negocios de la organización, sin que
pierda la funcionalidad del sistema heredado y sin tener que re-desarrollarlo
completamente. [3]
Componentes de un sistema heredado [4]
1. Sistema de Hardware: Son sistema que en la mayoría de los casos
fueron creados para mane-frame y actualmente no entran en las
políticas de un IT.
2. Software de Apoyo: se puede contar tanto con hardware, sistemas
operativos y utilidades para un sistema heredado, pero se puede volver
a tener un sistema obsoleto por parte del proveedor que desarrollo la
aplicación.
3. Software de aplicación: proporciona los servicios del negocio que
suelen ser sistemas independientes, desarrollados en tiempos
diferentes, el termino sistema heredado significa este software de
aplicación en lugar de un sistema completo.
4. Datos de Aplicación: En muchas de las ocasiones es información
acumulada en el tiempo que la aplicación fue re requería, es decir con
demasiada información incongruente o en sus caso duplicada.
5. Proceso de Negocio: Puede ser algún requerimiento que la empresa al
momento de hacer una migración del sistema pueda plantarlo para ser
parte de la nueva aplicación heredada.
6. Políticas y reglas de Negocio: Son definidas de cómo llevar a cabo
los negocios y las restricciones sobre estos.
2.3 Riesgos de un sistema Heredado
Los sistemas heredados se consideran problemáticos por los
desarrolladores de software por diferentes motivos, porque? Porque son
sistemas que operan en servidores obsoletos y lentos y cuyo mantenimiento
puede ser costo porque no se tiene la información del software o porque a
cualquier cambio puede ocasionar una cierta irregularidad o en su defecto
dejar de funcionar, ya sea un cambio de hardware o alguna actualización de
software.
Los negocios por lo general reemplazan sus equipos y maquinaria con
sistemas más modernos. Sin embargo, desechar un sistema que se utiliza
actualmente y reemplazarlo con nueva tecnología puede generar un alto
impacto en la empresa significativos. Reemplazar un sistema heredado es
una estrategia de negocios arriesgada por varias razones:
1. Rara vez existe una especificación completa de los sistemas heredados.
Si existe una especificación, no es probable que tenga los detalles de
todos los cambios hechos en el sistema. Por lo tanto, no existe ninguna
forma directa de especificar un nuevo sistema que sea funcionalmente
idéntico al sistema que se utiliza.
2. Los procesos de negocios y las formas en que los sistemas heredados
operan a menudo están intrincadamente entrelazados. Estos procesos
se diseñaron para aprovechar los servicios del software y evitar sus
debilidades. Si el sistema se reemplaza, estos procesos también tendrán
que cambiar, con costos y consecuencias impredecibles.
3. Las reglas de negocio importantes están contenidas en el software y no
suelen estar anotadas en ningún documento de la empresa. Una regla
de negocio es una restricción que aparece en algunas funciones del
negocio y romper esa restricción puede tener consecuencias
impredecibles para éste. Por ejemplo, las reglas para valorar el riesgo
de la aplicación de una política de una compañía de seguros pueden
estar contemplados en su software. Si a estas reglas no se les da
mantenimiento, la compañía puede aceptar políticas de riesgo altas que
conduzcan a costosas reclamaciones.
4. El desarrollo de nuevo software es por sí mismo arriesgado, ya que
pueden existir problemas inesperados. Puede ser, por ejemplo, que no
se entregue a tiempo con el precio previsto.
2.4 Usabilidad
Jakob Nielsen define la usabilidad como
“La utilidad de un sistema, en tanto que medio para obtener un objetivo, tiene
una componente de funcionalidad (utilidad funcional) y otra basada en el modo
en que los usuarios podemos utilizar dicha funcionalidad”.
Los estándares ISO/IEC 9126 i ISO/IEC 9241 realizan las definiciones:
“La usabilidad se refiere a la capacidad de un software de ser entendido,
aprendido, utilizado y ser atractivo para el usuario, en condiciones específicas
de uso
Usabilidad es la efectividad, eficiencia y satisfacción con la que un producto
permite conseguir unos objetivos específicos a usuarios específicos en un
contexto de uso específico.”
Javier Vegas, en un artículo en w3aeiou:
“Usabilidad es ingeniería de la información y su tratamiento, usabilidad es el
arte de diseñar herramientas, usabilidad es el oficio de hacer las cosas bien,
usabilidad es en definitiva, trabajar pensando en el usuario.”
2.4.1 Usabilidad Ágil
“La implementación de software usando metodologías ágiles de desarrollo es
rápida y entrega software de excelente calidad.
El problema es que ese software no necesariamente es amigable para el
usuario y muchas veces no es usado ya que no es lo que se quiere o posee
funcionalidades que no se necesitan, es decir, mucho tiempo gastado en
funcionalidades que no se van a utilizar por los usuario finales.
Esos mismos usuarios, después ocuparán mucho más tiempo en hacer tareas
de su negocio, forzándose a trabajar con un software que no es útil para ellos.
Por el otro lado, software que se concentra mucho en la usabilidad puede ser
muy lento de desarrollar, no cumplir con los plazos o terminar con un software
de mala calidad. Es por esto que se desea utilizar una metodología que una los
dos conceptos para obtener un software de calidad y a tiempo, pero que
también cumpla con las expectativas y necesidades de los usuarios.”[10]
2.4.2 Metodología ágil centrada en el usuario U-CD
Jeff Patton propone en su paper “Hitting the Target: Adding Interaction Design
to Agile Software Development” [11], una metodología de usabilidad ágil, la
cual se explica a Continuación.
1. Identificar los participantes.
Juntar a un diverso grupo de personas en una habitación a colaborar en el
diseño.
Incluir expertos en el dominio, personas encargadas del negocio,
programadores y testers.
2. Recolección de conceptos previos.
Soltarse. Cada uno debe hacer un Brain Dump acerca del software que se va a
escribir.
Describir funcionalidades innovadoras que se desea que el 16 producto tenga.
Escuchar las dudas y opiniones de cada uno de los integrantes.
Escribir esto en papeles y colgarlos en la muralla.
3. Revisar el dominio del problema.
Expertos en el dominio del problema explican el proceso de negocio que existe
actualmente.
¿Quién está involucrado en el proceso?
¿Qué combinación de procesos manuales e informáticos deben realizar los
participantes para alcanzar sus objetivos?.
4. Definir roles de usuario y modelos de usuario.
Hacer un Brainstorm de los roles de usuario en tarjetas de 3 x 5.
¿Quién usará este software?
¿Cuáles son sus objetivos?
Priorizar los roles revolviendo la pila de tarjetas.
Escoger lo roles más importantes.
Etiquetar estos roles como focales.
Ponerlos en la mesa de manera de que los que Tengan más similitud estén
más cerca.
Discutir los roles entre cada participante.
Este es un modelo de roles.
5. Definir tareas y modelos de tareas.
Ahora que se sabe quién usará el software, hacer brainstorm de tareas que
estos roles deberá realizar para cumplir sus objetivos en tarjetas de 3 x 5.
Revolver las tarjetas y priorizarlas en orden de importancia y frecuencia.
Notar las más importantes y frecuentes.
Etiquetar éstas como tareas focales. Situar las tarjetas en la mesa.
Colocar cerca las tareas que sean similares con otras, y juntas, las que
dependan de otras.
Colocar tareas que no tengan que ver con otras, bien separadas.
Discutir la relación que existe entre cada una de las tareas.
Éste es un modelo de tareas.
6. Definir contextos de interacción.
Para cada grupo de tareas obtenido en el paso anterior definirlo como un
contexto de interacción.
7. Definir tareas de usuario.
Para cada tarea en el contexto de interacción, escribir un Caso de Tarea
directamente en la tarjeta. El Caso de Tarea debe ser escrito de manera
conversacional.
Usabilidad ágil recomienda simplificar y generalizar estos Casos de Tarea.
Usar una forma conversacional los hacen fácil de leer.
Limitar el alcance y objetivo, previene de que sean muy amplias o muy
detalladas.
Generalizarlas produce que queden cortas, disminuyendo el tiempo que se
ocupa después para hacer referencias.
8. Crear un prototipo abstracto.
Por cada contexto de interacción, usando los casos de tareas que se crearon,
crear un prototipo de interfaz abstracta.
Al final de este proceso se sabrá, cuales son los componentes que irán en el
contexto de interacción.
9. Crear una interfaz de usuario “wireframe”.
Con lápiz y papel construir prototipos fieles a una versión digital de cada
contexto de interacción.
10.Testear los contextos de interacción.
Usar role-playing, para iterar por cada uno de los pasos de los casos de tarea
en los contextos de interacción.
Un participante toma el rol del usuario final, y otro de la interfaz de usuario.
Validar que se cumplan los objetivos usando ese contexto de usuario.
2.5 Bases de Datos
En este apartado veremos porque se decidió utilizar SQL server como
manejador de bases de datos para el desarrollo del sistema hospitalario,
actualmente el manejador es Access como fuente de información guardada en
el sistema.
Se entiende que necesitamos un sistema de información confiable que
no se vuelva obsoleto como lo está actualmente el desarrollo del sistema de
honorarios médicos y por consecuencia al migrar un sistema heredado se
mejorara la forma de trabajar por parte del usuario final no se empezara de 0
se tendrá una base del sistema actual y se mejorara para su optimo
funcionamiento se manejara información concreta y de mucha utilidad.
La creación de una base de datos, así como su creación, modificación,
eliminación, consultas mediante un programa o programas se le conoce como
manejadora de bases de datos.
Un sistema de Bases de Datos es básicamente un sistema
computarizado para llevar registros. Es posible considerar a la propia base de
datos como una especie de armario electrónico para archivar, es decir un
depósito o contenedor de una colección de archivos de datos computarizados.
[8].
2.6 ¿Que es un sistema de Base de Datos?
En un sistema de bases de datos es un sistema computarizado en el cual se
almacena información que posteriormente se recupera y se modifica por los
usuarios en base a peticiones de un sistema ya desarrollado o simplemente el
manejo de información por medio de reportes o consultas.
Una base de datos es un “almacén” que nos permite guardar grandes
cantidades de información de forma organizada para que luego podamos
encontrar y utilizar fácilmente, el término de bases de datos fue escuchado por
primera vez en 1963, en un simposio celebrado en California, USA. Una base
de datos se puede definir como un conjunto de información relacionada que
se encuentra agrupada ó estructurada [16].
Desde el punto de vista informático, la base de datos es un sistema formado
por un conjunto de datos almacenados en discos que permiten el acceso
directo a ellos y un conjunto de programas que manipulen ese conjunto de
datos.
La figura nos muestra de forma simplificada como está compuesto un sistema
de bases de datos:
1. Datos
2. Hardware
3. Software
4. Usuarios
Sistema de Bases de Datos [8]
Datos
Los sistemas de bases de datos son aquellos que están disponibles ya sea en maquinas
personales en las que un solo usuarios puede acceder a ellas o en multi usuario (en servidores) en
el cual se manejas por diferentes usuarios para sacar dicha información.
El objetivo general de los datos del sistema es que todo quede almacenado en un solo lugar, si es
que hablamos de sistemas multi usuarios con acceso de diferentes lugares y usuarios de las bases
de datos.
Hardware
Los componentes de hardware del sistema constan de:
Manejo de servidores con alta disponibilidad con sistemas como:
1. Raid (0,1,5)
2. Memoria
3. Discos duros en arreglo para el manejo del raid.
4. Procesador Xeon
Software
Entre la base de datos física, es decir los datos como están almacenados físicamente y los
usuarios del sistema, hay una capa de software de manera indistinta como el administrador de
bases de datos o el servidor de bases de datos; o más comúnmente como el sistema de
administración de bases de datos.[8]
Por obvias razones el componente más importante es el sistema de administración de
bases de datos, que claro tendríamos que ver que aparte de las bases de datos tenemos en cuenta
el desarrollo del sistema, el sistema operativo, las políticas de seguridad a la base de datos, el
generador de informes y el administrador de transacciones.
Usuarios
Existen 2 tipos:
1. Programadores de aplicaciones que en este caso se usara Visual Basic como plataforma de
desarrollo para el sistema de honorarios médicos.
2. Usuarios Final
Que a final de cuentas es el que interactúa de forma final con la aplicación y con la
funcionalidad de las bases de datos por medio de consultas (que por lo regular se utilizan
sentencias SQL) y que al final son los usuarios los que determinan si al aplicación cumple
con las necesidades de la empresa dependiendo del área involucrada.
Pero que al final ellos podrán aviso de las fallas o los bugs que pueda contener la
aplicación o en su defecto las fallas de la información en la base de datos.
“La mayoría de los sistemas proporcionan además interfaces adicionales en las que los
usuarios no emiten en absoluto solicitudes explicitas a las bases de datos, como SELECT,
sino que en vez de ello operan mediante, la selección de elementos en un menú o llenado
de casillas de un formulario. Estas interfaces controladas por menú o por formularios
tienden a facilitar el uso a personas que no cuentan con una capacidad formal en IT”. [8]
Ejemplo
2.7 Seguridad de bases de datos
Hoy en día el éxito de una organización depende en gran parte de la gestión de la seguridad de la
información cuyo objetivo es proteger la información y garantizar su correcto uso. Por su puesto,
la seguridad de los sistemas informáticos y los procedimientos juegan un papel muy importante en
la consecución de dicho objetivo [17].
2.8 Seguridad de la información
Es la gestión de todos los riesgos relativos a la información. Esto implica identificar tanto usuarios
autorizados y no autorizados, así como la alteración, destrucción o divulgación de la información
[18].
Sistema de seguridad de Bases de Datos [18]
La seguridad de la información consiste en poder tener de forma activa, y resguardada la
información, parque un cierto número usuarios con ciertos permisos, puedan acceder o modificar
el contenido resguardado en la base de datos en el momento en el que sea necesario.
2.9 Integridad de la información
Es aquella información no ha sido violada de forma indirecta por parte de algún usuario no
autorizado o por parte del administrador de bases de datos, es decir, tener la certeza o garantía
de que la información no ha sido cambiada de forma incorrecta o por alguien sin autorización a
excepción de las personas que hacen uso completo del manejador como administradores.
2.10 Confidencialidad de la información.
Es la garantía de que solo un grupo de usuarios designados tengan la autoridad para hacer
uso de la información de forma correcta, como por ejemplo hacer manejos de actualizaciones de
la información, puede ser posible que el ataque de un virus informático puede alterar los archivos
o la información de las bases de una compañía o que un súper usuario no haya tenido el permiso
de hacer algún movimiento que pudiera tener algún impacto en la base de datos.
2.11 Disponibilidad de la información.
Cuando hablamos de la disponibilidad de la información, no referimos no solo al cuidado
de las bases de datos, sino también a la seguridad de la información, a las políticas de acceso de
cada usuario dentro y fuera de una empresa, o incluso a la negación del mismo.
Podemos entender que si nuestra información está planificada en cuanto a los respaldos
de información, podemos dar por entendido que tenemos disponible los datos que algún usuario
requiera, diciendo con esto que el problema de seguridad está controlado.
Sin embargo puede surgir un ataque de negación de servicio el cual puede ser provocado
por un virus informático o en su defecto algún dispositivo enfocado a la seguridad de la
información como lo es un Firewall, la prevención de un DoS puede estar asociado a una mala
configuración del encargado de seguridad en el área de sistemas.
¿Que puede provocar un DoS?
Se suele tener acceso no autorizado a las computadoras que utilizan recursos de algún sistema,
para inundar le sistema destino.
2.12 Auditar manejo de la información
La auditoría es un mecanismo que nos permite evaluar hacer o desarrollar ciertos
comportamientos de las bases de datos en una aplicación ya sea critica o no, podemos monitorear
cada cuando existen esos cambios y porque con el fin de poder tener un panorama más amplio
para cualquier futura aclaración.
2.13 Objetivos de la Auditoría
Este tipo de herramienta es fundamental para poder darnos cuenta que podemos monitorear
todos los procesos y manejos de la información que actualmente se tiene, y que por lo tanto
podemos detectar movimientos no permitidos, fallas, e incluso podemos detectar quien hiso uso
de la información y con que fin.
2.14 Manejadores
Actualmente existen muchos manejadores de bases de datos por mencionar algunos por los
cuales yo me inclinaba para el desarrollo del proyecto como:
SQL server
Oracle
Mysql
Access
otros
Veremos cómo puede influir un manejador dentro de un sistema de desarrollo local para la
empresa que se está realizando el levantamiento del nuevo proyecto, el cual se decidió que fuera
lo suficientemente estándar para la migración o en su defecto para alguna actualización posterior.
Dentro de lo ya nombrado se descarto el uso de la base de datos ORACLE por aspectos de
licenciamiento que son muy costosos para el uso primordial y viendo que en cuestión de
funcionamiento iba hacer de forma casi similar, claro anteponiendo que no podemos comparar
una base de datos con otra, porque son plataformas que de cierto modo se utilizan para
cuestiones técnicas diferentes o para datos más robustos (hablando del caso de ORACLE).
Pero como el caso fue analizado a nivel de mono usuario, es decir no había gran
trascendencia, claro después le sistema se engero a modo multi-usuarios y con las consultas
corriendo desde el cliente para poder así quitar un poco la carga al servidor en el cual se
implementara el sistema.
Se pesó en el uso de mysql como manejador de bases de datos para el programa de
honorarios, pero, “Inicialmente se implementó SOB en MySQL sin embargo en este ultimo los
volúmenes de datos causaban tiempos de ejecución de procesos que demoro 2 días y no finalizo,
se descarto el producto, que también había mostrado ciertas limitantes en cuanto al número de
datos que manejaba. A pesar de que se atribuyo esto a la versión del producto que estaba
disponible, se prefirió cambiar de manejador” [6]
Otras de las desventajas que se encontró o más bien que al hacer el levantamiento, fue
que el sistema tenía un alcance por lo pronto a nivel local o sea solo a la empresa que requirió el
desarrollo de producto, y que dicha empresa ya tenía el licenciamiento del SQL Server como
manejador y que mysql de ser un producto gratuito se iba a volver de paga y ya el soporte se tenía
que cobrar.
Cuando se empezó el análisis se puso como sugerencia crear el sistema en una bases de
datos convencional como es Access, esto no quiere decir que esta solución no sea la adecuada
pero, se encontró que había un sistema que trabajaba honorarios pero si una estructura y muy
lenta al momento de generar las consultas, porque localmente cada máquina montaba su
ejecutable y guardaba información local que con esto provocaba que al hacer consultas por medio
del Access los usuarios empezaron de tener ciertas inconformidades por el desempeño del sistema
de honorarios, tenían que generarse una serie de pasos que no termino de convencer su
desempeño como una base de datos optima para lo que se buscaba.
Además se busco hacer con la base de datos un espejo para la alta disponibilidad de un sistema
que debe estar trabajando los 365 días del año.
En la actualidad, los sistemas de información han permitido a las organizaciones
Automatizar sus procesos y almacenar la información de sus transacciones diarias en bases de
datos relacionales de manera que se asegure la confidencialidad, integridad y disponibilidad de la
información hacia los usuarios finales.
Para llevar a cabo la implementación de un sistema de información es muy importante
realizar el diseño y creación de objetos relacionados a bases de datos como tablas, procedimientos
almacenados e índices.
Dado que las aplicaciones cambian regularmente por razones como nuevas necesidades,
crecimiento de las organizaciones, entre otros como parte de un proceso evolutivo, la tarea de
gestionar y controlar los cambios en la base de datos se convierte en una labor crítica para todo
administrador de base de datos.
“Para lograr que las bases de datos tengan modelos actualizados acorde con las nuevas
versiones de las aplicaciones, usualmente se recurre a métodos manuales de sincronización los
cuales pueden derivar a cometer distintos errores y causar inconsistencia en la información y
estructura de las bases de datos, originando así malestar en el usuario final por la posible pérdida
de información o por continuos errores en las aplicaciones que consulta a la base de datos”. [7]
2.15 Indexación de Datos
Se pensó en hacer ciertos procedimientos para la indexación de las bases de datos que se
iban a generar, a partir del análisis para el desarrollo de las mismas, porque es vital mantener la
integridad y la funcionalidad de forma rápida de la información de forma ordenada.
Para una base de datos es vital evitar el problema de la fragmentación pero me di cuenta
que el tamaño de información que se iba a manejar ya recabada la información anteriormente no
era como para generar un indexación, Esto de cierta manera que pierde importancia en la base de
datos que no es tan robusta que para otras empresas es un factor de éxito porque sus bases de
datos medianas o grandes que tienen cierta actividad.
La fragmentación es uno de los principales problemas de rendimiento con SQL Server, son
cuando el tamaño de la información tiende hacer de gran tamaño.
Se analizara en primer término el uso de búsquedas simples es decir sin un índice alguno:
• El acceso constante en el aspecto de escritura puede provocar una tabla desordenada
• La ordenación de una tabla es una operación costosa, porque el servidor tendrá que hacer
ciertos movimientos para la ordenación de las tablas, es decir tendrá que parar para poder hacer
este ejercicio.
• La mayoría de las tablas tiene más de una ordenación eso implicaría desordenar otras.
• La inserción y eliminación de datos sin alterar el orden en una tabla es costosa: la inserción de
un registro en una tabla grande implicaría una larga espera en la actualización de la misma.
• Si se opta por mantener la tabla desordenada (que es la opción más viable), una búsqueda
implicaría forzosamente un recorrido secuencial (también denominado full scan), registro por
registro.
Envase a estos ejemplos se valora si el uso de índices puede ser crítico para el sistema que
se migrara a una nueva versión de software con bases de datos distinta a la que se tiene
actualmente.
Porque decimos esto:
1. Porque la magnitud de la información no están relevante en corto y mediano plazo
2. Porque anteriormente se trabajaba con un sistema sin índices que trabajaba de
forma efectiva hasta que su desempeño fue decreciendo por la forma de
desarrollo que no fue la más adecuada para el proceso que se estaba manejando.
3. A pesar de que el sistema no contaba con índices, se está contemplando para ver
el desempeño y las búsquedas una vez indexadas como se comportarían al
generarlas.
A continuación veremos las ventajas y desventajas de un sistema indexado
2.8.1 Ventajas
1. Permite ordenar las tablas por varios criterios simultáneamente.
2. Es menos costoso ordenar un archivo índice, porque incluye sólo referencias a la
información y no la información en sí.
3. El coste de inserción y eliminación es menor.
4. Con los registros siempre ordenados se utilizaran algoritmos mucho más eficientes que el
simple recorrido secuencial en las consultas.
2.8.2 Desventajas
1. Los índices ocupan espacio en disco.
2. Aun teniendo registros pequeños, el mantener en orden un índice disminuye la velocidad
de las operaciones de escritura sobre la tabla.
A pesar de estos inconvenientes, la utilización de índices ofrece mayores ventajas que
desventajas, sobre todo en la consulta de múltiples tablas, y el aumento de rendimiento es mayor
cuanto mayor es la tabla.
A continuación se recomienda tener índices en las siguientes Consultas:
1. En las llaves primarias y foráneas.
2. En las consultas de rango de valores tales como el BETWEEN.
3. En las consultas de ordenación tales como el ORDER BY.
4. En las consultas de cruces de tablas tales como el JOIN.
5. En las consultas de agrupación de tablas tales como el GROUP BY.
Tampoco quiere decir que le usar índices nos facilita la vida, porque el mal uso podría
provocar un golpe al rendimiento del sistema, por lo tanto si queremos tener buenas consultas,
deberías ver que tablas son las que tiene más accesos de forma continua y hacer de forma
correcta una consulta, con una buena práctica seria el no usar por ejemplo el (*) para todas las
consultas.
2.16 Tecnologías de Conectividad de Datos (Microsoft)
En este apartado se conocerá como es que se enlaza las conexiones de la aplicación que se
va a desarrollar para la conexión con SQL Server, ya que hoy en día Microsoft cuenta con una
tecnología, la cual por medio de un desarrollo podremos manipular los datos guardados en la base
de datos sin necesidad de acceder por medio del manejador el cual solo es manipulado por el
desarrollador o en su defecto por el administrador de las bases de datos.
Tal información puede estar en formatos diferentes talos como Access o SQL Server, ya
sea de forma local o remota según sea el caso.
En esta ocasión el sistema será accedido de forma local (intranet), pero se está trabajando
para hacer las conexiones vía remota como un plus para el manejo de los honorarios médicos,
claro este uso es exclusivo para ciertas persona.
Porque este tipo de informes si no se ajusta a cierto grupo de usuarios puede tener algún
tipo de consecuencia fiscal o legal, porque no todos los honorarios cobrados generan recibo de
honorarios, así que por lo pronto solo se harán pruebas solo para hacer consultas o tener alguna
aclaración de los pagos realizados algún cierto doctor o en su caso, por laguna reclamación o duda
por parte de la empresa que utilizara este sistema.
Estas tecnologías han ido evolucionando con el tiempo, algunas sustituyendo a otras,
aunque actualmente coexisten una media docena.
Cada una de tales tecnologías tienen su propia idiosincrasia y posibilidades, según sea el tipo de
Aplicación que se desee desarrollar y el tipo de datos a los que se desee acceder.
“En las siguientes secciones se describirá cada una de las tecnologías de acceso a bases de
datos disponibles en el entorno de Microsoft Windows, y se detallarán sus principales
características.
1. ventajas y desventajas de uso.
2. Luego se realizará una comparación entre ellas.
3. Finalmente se sugieren algunas recomendaciones para los desarrolladores que deban
Elegir una o varias tecnologías de acceso a bases de datos.
2.17 Interface de programación
Las interfaces de programación que permiten a una aplicación Windows conectarse a
datos externos pueden categorizarse en tres:
(a) Interfaces a bases de datos basadas en archivos de datos
(b) Interfaces a sistemas gerenciadores de bases de datos
(c) Interfaces a otros formatos de datos no almacenados en servidores de bases de datos.” [13]
En las interfaces de programación en el caso del desarrollo que este proponiendo al
hospital se estuvieron analizando las interfaces que sean de mayor trascendencia y de
conectividad constante de la aplicación de visual Basic, para un buen uso del programa, en este
caso vamos a ver los tipos de conexiones y cuál puede ser la que mejor se puede adaptar a las
necesidades del programa.
Dentro de las interfaces tenemos que ajustar la que hay entre los programas involucrados
(desarrollo y SQL), en este apartado se describen las principales tecnologías por la cual una
aplicación puede conectarse a una base de datos ya sea en ISAM (Método de Acceso Secuencial
Indexado) o en un motor de SQL.
2.18 Tecnologías de Conectividad
“JET
El motor JET es el manejador de datos ISAM disponible en Access y Visual Basic. Incluye un
Procesador de consultas, que bajo ciertas circunstancias puede ser salteado si se desea utilizar el
Procesador nativo de otro DBMS. La manipulación del motor JET se realiza mediante dos
Interfaces de programación: DAO (Data Access Objects) y RDO (Remote Data Objects) que se
Describirán más adelante.
DBLIB y SQL-DMO
DBLIB es el protocolo nativo de SQL Server, implementado bajo la forma de una API con
funciones para acceder a los datos almacenados en SQL Server. En Visual Basic, el control VBSQL
es la implementación de DBLIB. SQL-DMO (Data Maintenance Objects) actúa como una interfaz
sobre las funciones de administración disponibles en SQL Server. SQL-DMO dispone de controles
para manipular a las tablas, procedimientos almacenados, vistas, triggers y propiedades de
configuración de SQL Server.
ODBC
ODBC es un estándar abierto que permite conectividad y uso de un SQL estándar (SQLODBC)
de forma tal que una aplicación se comunique con un ambiente heterogéneo de BMSs.
Si bien una aplicación se puede comunicar directamente con las funciones de la ODBC API,
ODBC puede verse como una base de bajo nivel con la cual se comunican objetos definidos en la
interfaz
DAO y RDO.
OLE DB
OLE DB es una de las tecnologías más nuevas de Microsoft, surgida como una mezcla de OLE y
ODBC. La utilización de OLE DB permite a una aplicación comunicarse con datos ODBC (residentes
por ejemplo en DBMSs) y datos OLE (planillas, documentos, etc.) en forma uniforme.”[13]
2.19 Acceso mediante DAO, RDO, ADO
En este apartado veremos los diferentes accesos que utiliza Microsoft para los desarrolladores que
son:
DAO (Direct Access Objects)
Es una interface de programación el cual reside para conexiones normalmente locales, sin
embargo, DAO abre datos remotos ODBC pero teniendo un alto impacto en el desempeño, que
quiere decir esto que es ineficiente en la negociación de conexiones y a que no realiza caché de
los datos ODBC, es un tipo de conexión no segura para la relación cliente-servidor. Como dato
importante, DAO está siendo discontinuado por Microsoft.
RDO (Remote Data Objects)
La ayuda de Microsoft comenta:
“RDO (Objetos de datos remotos) es una interfaz de acceso a datos para ODBC orientada a
objetos, que incorpora un estilo sencillo de DAO y cuya interfaz expone prácticamente toda la
flexibilidad y eficacia de bajo nivel de ODBC.
Sin embargo, RDO presenta limitaciones al no proporcionar un acceso apropiado a las
bases de datos Jet o ISAM, y al sólo permitir el acceso a bases de datos relacionales a través de los
controladores ODBC existentes.
A pesar de ello, se ha constatado que RDO es la interfaz elegida por muchos
programadores de SQL Server, de Oracle y de otras bases de datos relacionales de gran tamaño.
RDO proporciona los objetos, las propiedades y los métodos necesarios para tener acceso a los
aspectos más complejos relacionados con los procedimientos almacenados y los conjuntos de
resultados.”(msdn).
Qué ventajas tiene sobre DAO:
Ejecución de Procedimientos almacenados del servidor de base de datos,
Ejecución asincrónica de consultas y procesamiento de múltiples tipos de cursores.
La principal ventaja de RDO es que fue diseñado para el uso eficiente de las funcionalidades
de ODBC. Como principales
Qué desventajas tiene sobre DAO:
RDO sólo dispone de conexión a datos ODBC a través de drivers de 32-bit y no está disponible
en el Visual Basic en aplicaciones para Microsoft office, esto último es una limitación fuerte para
los desarrolladores de aplicaciones Office.
ADO (ActiveX Data Objects)
Ado es más que nada un OLEDB y es más un modelo que una implementación, DAO surgió por
la necesidad de generar conexiones remotas mediante una aplicación de desarrollo, no
necesariamente una conexión a una base de datos de intranet o internet, se está optando por
este modelo porque Microsoft lo ve como un sucesor de las otras conexiones que actualmente ya
no tiene mucho auge en el mercado de la programación, también se dice que es por eso que es un
sucesor de los accesos DAO y RDO.
Si bien ADO aún no es una tecnología estable, Microsoft apunta a consolidarla como "su"
tecnología futura de acceso a datos.
Porque esta tecnología es va en evolución? Porque al al migrar las características de las otras 2
conexiones lo hace con menos objetos y mas propiedades (métodos y argumentos).
La Ayuda de Microsoft comenta “Por ejemplo, en ADO no existe un equivalente de los objetos
rdoEngine y rdoEnvironment expuestos por el administrador de controladores ODBC y las
interfaces hEnv. Tampoco es posible crear orígenes de datos ODBC desde ADO, a pesar de que
puede exponer su propia interfaz a través del proveedor de servicios OLE DB de ODBC.” (msdn)
A continuación se mostraran ejemplos de las conexiones ya antes mencionadas.
Ejemplo 1. DAO
'Creacion del espacio de trabajo de JET
Dim ws as Workspace
Set ws = CreateWorkspace("", "loginid", "passwd", dbUseJet)
'Conexion a una base de datos JET
Dim db as Database
Set db = ws.OpenDatabase("C:\data\northwind.mdb")
'Abrir un cursor
Dim rs as RecordSet
Set rs = db.OpenRecordset("Empleados", dbOpenDynaset, dbReadonly)
'Procesamiento
…
'Cierre y desconexion
rs.Close
db.Close
ws.Close
Ejemplo 2. DAO + ODBCDirect
'Creacion del espacio de trabajo
Dim ws as Workspace
Set ws = CreateWorkspace("", "loginid", "passwd", dbUseODBC)
'Conexion a una base de datos ODBC
Dim cn as Connection
Set cn = ws.OpenConnection("",,,"ODBC; DATABASE=pubs; UID=sa; PWD=; DSN=pubsdata")
'Abrir un cursor
Dim rs as RecordSet
Set rs = db.OpenRecordset("Empleados", dbOpenDynamic)
'Procesamiento
…
'Cierre y desconexion
rs.Close
db.Close
ws.Close
Ejemplo 3. RDO
'Conexion
Set cn = New rdoConnection
With cn
.Connect = "DSN=pubsdata; UID=sa; PWD="
.EstablishConnection
End With
'Abrir un cursor
Dim rs as rdoresultset
Set rs = cn.OpenResultSet("Empleados", rdOpenKeyset, rdConcurReadOnly)
Ejemplo 4. DAO
'Abrir un cursor
Dim rs As New ADODB.Recordset
Rs.Open "Empleados; DSN=pubsdata; UID=sa; PWD="
'Procesamiento del cursor
Do Until rs.EOF
Print rs!apellido
Rs.MoveNext
Loop
Es.Close
Siendo este último ejemplo el tipo de conexión que se usara en el desarrollo del análisis de
sistemas de honorarios.
Como se muestra en esta imagen se verá el comparativo entre cada una de estas conexiones que
estamos explicando y cuáles son sus ventajas y desventajas.
METODO VENTAJAS DESVENTAJAS
DAO • Interface consolidada
• Eficiente en ISAM
• ODBCDirect para acceso a ODBC sin usar JET
• Ineficiente en ODBC
• En retroceso por parte de Microsoft
RDO • Optimizado para ODBC
• Compatibilidad con ISAM
• Disponible solo para plataformas
32-bits
• No disponible para aplicaciones de
office 97
ADO • Superset de RDO
• Acceso a otros formatos de datos(plantillas, documentos.
etc.)
• Interfaz a aplicaciones que usen DCOM
• Apoyo muy visible de Microsoft
• Especificación aún en elaboración
• Implementación aún no
consolidada
Comparación de métodos de acceso programático [13]
2.20 Lenguajes de Programación
En los lenguajes de programación se opto por tener en mente visual Basic, Visual Basic Net
y Java para la cuestión web, ¿porque estos lenguajes?
Por una simple razón, la interface de cada uno de estos lenguajes es muy amigable, las
programación está orientada (en el caso de Visual Basic) a generar códigos por acciones de cada
objeto, es decir la interface grafica está elaborada y con opciones de formas más concretas, la
detección de fallas es mucho más fácil de detectar, es muy grafico, las ventanas son interactivas,
en fin es un lenguaje muy proactivo.
IDE (Entrono Integrado de DesarrolloVB6 [14]
El IDE es el que contiene los elementos y herramientas graficas de visual Basic para algún
desarrollo de una aplicación,
¿Por qué se pretende hablar de visual Basic net? Pues de cierta forma es el sucesor de
Visual Basic 6, pues se puede migrar casi al 100% la migración 6 a net o al menos ese concepto
tengo del lenguaje por lo que he visto, leído y movido, porque mantiene la misma hegemonía de
como se manejaba vb6 ojo la interface ya es orientada a objetos pero el funcionamiento gráficos
sigue siendo un entorno fácil de entender.
Esto que quiere decir que en un momento dado que la empresa requiera migrar a una
plataforma en la cual se pudiera migrar a un desarrollo web, esta podría ser una solución, con la
firmeza que no se perdería mucho le esquema que se elaborara actualmente aparte de que
seguiría siendo una diseño amigable para el usuario final.
¿Por qué se pretende hablar Java? Porque es un desarrollo gratuito y en su defecto es un
sistema muy utilizado en la actualidad para muchos procesos o incluso formularios o manejo de
imágenes.
Esta es una de las opciones por la cual se integró java al análisis porque es una propuesta a
futuro, ¿por qué? Anterior mente se menciono que este tipo de información es muy crítica, ya
que es dinero que se maneja por cada uno de los médicos que integran la empresa o incluso gente
externa y es información que no debería ser expuesta al público por motivos de seguridad.
2.20.1 Visual Basic
La mayoría de la gente cree que Visual Basic es un lenguaje de programación por ser un
tipo de desarrollo RAD (Desarrollo rápido de aplicaciones), se cree que la realidad es que este
lenguaje es de propósito general de aplicaciones.
Visual Basic proporciona elementos gráficos de diseño de aplicaciones, compiladores,
editor de programas con capacidad de depuración al instante y asistencia basada en colores,
ayuda contextual, poderosos asistentes (wizards) que automatizan tareas de uso común, tan
disímbolas en su objeto como en su complejidad, por citar solo algunas características.[14]
José Felipe Ramírez también explica que” Visual Basic lleva en su nombre los dos elementos
generales que lo conforman.
Su parte “Visual” indica que es una interface grafica de usuario (GUI). Que en lugar de
requerir el uso de comandos escritos para realizar tareas, solo requiere el uso de
herramientas graficas, de tal forma que desarrollar se asemeja a mucho a estar
“dibujando” el trabajo. “[14]
Su parte “Basic” indica que aquellas tareas que no se pueden realizar a través de las
herramientas graficas (que no pueden ser dibujadas), son posibles a través de un lenguaje
de programación basado en el legendario lenguaje de propósito general llamado Código
de instrucciones Simbólicas Multipropósito para principiantes (Basic) con el que
prácticamente se puede desarrollar cualquier cosa” [14]
2.20.2 Visual Basic NET
Como podemos ver visual net es un descendente de BASIC que ha existido mucho tiempo
atrás,
BASIC (Beginners´All-Purpose Symbolic Instruction Code), el cual fue desarrollado a principios de
los 60´s por la Dartmouth University en 1964 como lenguaje para programadores principiantes.
BASIC como tal fue una fuente de desarrollo con el cual las personas dedicadas a este
entorno empezaron a familiarizarse como uno de los lenguajes de programación para
posteriormente poder adquirir alguno otro nuevo lenguaje.
Después de que BASIC apareció se decidió desarrollar otro lenguaje el cual se llamo Visual
Basic que apareció a principios de los 90´s como desarrollo de aplicaciones, ya que permitía la
creación de programas arrastrando y soltando componentes en lugar de tener que codificar
manualmente los elementos.
“Desde muchos puntos de vista Visual Basic .NET supone la madurez de ese proyecto que
nació hace más de diez años.
La nueva versión, Visual Basic .NET, incorpora características de orientación a objetos de
tal manera que podría considerarse un lenguaje totalmente diferente a sus predecesores y
totalmente orientado a objetos, ya que en versiones anteriores Visual Basic era considerado un
Lenguaje de programación con sintaxis de objetos, pero no un verdadero lenguaje
orientado a objetos.
Las principales novedades que incorpora son:
- La herencia, tan solicitada por miles de programadores.
- Desarrollo de programas con múltiples hilos de ejecución.
- Control estructurado de excepciones.
- Inicializadores, que permiten establecer los valores iniciales de las variables.”[15]
Como comenta el guille en su página web “Debido a que la nueva versión de Visual Basic no es
sólo una mejora con respecto a las versiones anteriores, sino que cambia mucho, tanto como si de
otro lenguaje de programación se tratara, creo que se merece que se explique de forma más o
menos fácil de comprender para que cualquiera que se decida a elegirlo como su lenguaje de
programación lo tenga, valga la redundancia, fácil.”
Dado que visual net está basado en el corazón de .Net frame
¿Qué es .Net Frame?
La ayuda de Microsoft nos dice que:
".NET Framework es un entorno para construir, instalar y ejecutar servicios Web y otras
aplicaciones.
Se compone de tres partes principales: el Common Language Runtime, las clases Framework y
ASP.NET”
Net está basado en este lenguaje para la creación de algún proyecto ya sea vía web o
intranet, actualmente los manejos de los sistemas se basan en web, también por eso se opto por
tener en cuenta el desarrollo del sistema por medio de esta oportunidad de cambio la cual podría
ser un brincó a un siguiente nivel de lenguaje de programación, tales como c#, java o el mismo net
frame.
A continuación se muestra la ventanas que muestra Visual Basic .Net
Elementos de interface para iniciar un nuevo proyecto [15]
2.20.3 Java
Este lenguaje de programación es uno de los más comerciales hoy en día, se puede
programar en java en algún futuro para poder realizar acciones vía internet, se pensó en java por 2
Razones, compatibilidad con navegadores de diferentes marcas y porque hoy en día ´puedes
encontrar bastante información acerca del desarrollo así como ejemplos y demás.