sistemas de informacion de la empresa

67
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

description

sistemas de informacion de la empresa metodologia de los sistemas de informacion heredados. evoltura. redesarrollo. escalabilidad

Transcript of sistemas de informacion de la empresa

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.

Capitulo 3

3.1 Introducción

3.2 Planteamiento del problema

3.3 Justificación

Capitulo 4

4.1 Introducción

4.2 Desarrollo de la metodología

4.3 Propuesta para el Análisis y optimización del sistema de honorarios

4.3.1