• No se han encontrado resultados

Sistema de Gestion de la Informacion del Proyecto Mapeo Cerebral Humano Cubano: Modulo Examen Clinico.

N/A
N/A
Protected

Academic year: 2023

Share "Sistema de Gestion de la Informacion del Proyecto Mapeo Cerebral Humano Cubano: Modulo Examen Clinico."

Copied!
117
0
0

Texto completo

(1)

Título: Sistema de Gestión de la Información del Proyecto Mapeo Cerebral Humano Cubano:

Módulo Examen Clínico.

Trabajo de diploma para optar por el título de Ingeniero en Ciencias Informáticas

Autores: Lázaro Armas Montero Maikel Laurencio Giralt

Tutores: Ing. Ileana Centelles Rubiera Ing. Liusmila Nieto Cervantes

Julio, 2007

―Año 50 de la Revolución‖

(2)

Para que así conste firmamos la presente a los ____ días del mes de Julio del año 2007.

<nombre autor> <nombre tutor>

____________________________ _____________________________

Nombre completo del primer autor Nombre completo del segundo autor

____________________________ _____________________________

Nombre completo del primer tutor Nombre completo del segundo tutor

(3)

“El hombre puede hacer de si mismo muchas cosas producto de su propio esfuerzo físico y espiritual, el que se proponga cultivar la virtud la cultiva, el que se proponga alcanzar los más altos niveles de conocimiento los alcanza.”

Fidel Castro Ruz

(4)

de crear esta universidad y hacernos partícipes de ella, para formarnos como ingenieros y hombres de futuro en una universidad de nuevo tipo, que ha marcado huellas imborrables en nuestras vidas.

A nuestros padres por el apoyo brindado, la confianza depositada, por todos sus consejos, por su comprensión, por su ejemplo, por su infinito amor, por prepararnos para la vida. Estamos más que orgullosos de ser sus hijos.

Agradecer infinitamente a nuestras tutoras Liusmila Nieto e Ileana Centelles por su esmerada dedicación, su apoyo incondicional en cualquier momento y sobre todo por la gran paciencia que tuvieron. La contienda no fue nada fácil, vacaciones truncadas, insomnios hasta altas horas de la madrugada dándole vida al sistema, recibiendo palos de parte y parte en las reuniones de proyecto. No se si hallamos cumplido sus expectativas, pero le agradecemos que hayan mantenido la confianza en nosotros y si en algún momento esta flaqueó también se lo agradecemos por darnos la oportunidad de vernos crecer ante las dificultades. Si hoy estamos frente a este tribunal defendiendo el resultado de un trabajo ese mérito se lo debemos a ustedes por lo que humildemente, desde lo más profundo de nuestros corazones les estaremos eternamente agradecidos.

Queremos agradecer grandemente al ―Developer team‖ del proyecto mapeo, y en especial a Rodolfo (Fito), Jesús, Yosbel, Alejandro Claudio, Yenisel y Félix por hacer suyos también el trabajo, y compartir las malas noches en el laboratorio frente al monitor, por todas las neuronas consumidas en cada línea de código tecleada, por todas las dudas y consultas técnicas que pudieron ser aclaradas. A todos ustedes siéntanse orgullosos de saber que este trabajo también tiene parte de sus genes.

Agradecemos al claustro de profesores siempre preocupados por nuestra superación profesional y académica, brindándonos todo sus conocimientos de la materia.

Agradecer a todas las personas que tuvieron que ver de una forma u otra en nuestra formación y que por emoción o azar de la vida hemos olvidado mencionar sus nombres.

A todos ustedes, GRACIAS por existir,

Lázaro y Maikel

(5)

apoyarme siempre y confiar en mí.

A mi hermanito Loandry que es lo más preciado en mi vida.

A mis abuelos que me han dado todo su cariño siempre.

A Leidiana que ha sabido en tan poco tiempo prender en mí la llama del amor y me ha ayudado incondicionalmente.

A mi familia no tan cercana pero que siempre han creído en mi.

A mis amigos de siempre Cuthbert y Carlos.

A todas las personas que me han ayudado en estos cinco años de estudio a salir adelante.

De Maikel Laurencio Giralt:

Dedico este trabajo especialmente a mis padres Bertha Giralt Borges y Ventura Laurencio Ruiz por estos años de esfuerzo, sacrificio y dedicación para que pueda llegar a materializar todos mis sueños; por ser mis guías, mi fuente de inspiración, mis ejemplos, por su apoyo incondicional y por su confianza plena en mi.

A mi tía y madrina Maricela por ser su “chiquitico”.

A mis abuelos que siempre han estado para un cariño, un consejo, un regaño.

A mis tías y tíos por poder contar con ellos.

A mis hermanos con los que he tenido poco tiempo para compartir pero lo hemos sabido aprovechar.

A mi familia, por ser parte importante en mi vida y sentirse siempre orgullosos de mí.

A mis amigos de los pocos que quedan Pedro, Gustavo y Yailín; ánimo, parece increíble pero sí se puede.

A todos mis compañeros de aula, dormitorio y de la universidad por los momentos buenos y malos que compartimos, los llevaré siempre en mi corazón.

A todas las personas que de una forma u otra me han enseñado que lo que vale no son las veces que nos caemos, sino las que nos levantamos.

(6)

Como parte del proyecto se realiza un Examen Clínico formado por un grupo de entrevistas y pruebas a los sujetos que formarán parte del proyecto. El Examen Clínico se realiza para determinar la normalidad neuropsiquiátrica del sujeto. Este examen está formado por varias subpruebas:

• Examen Físico-Neurológico

• Cuestionario de Normalidad

• Examen Psicométrico

• Mini Entrevista Neuropsiquiátrica Internacional

• Cuestionario de Manualidad

El proceso de gestión de la información del Examen Clínico que se le aplica a todos los sujetos, se dificulta debido a que se realizan utilizando modelos impresos lo que provoca errores y lentitud en la recopilación de los datos. Además el almacenamiento y procesamiento de los resultados de dicho examen resulta engorroso.

Para facilitar la gestión de la información del Examen Clínico se desarrolló el Sistema de Gestión de la Información del Proyecto Mapeo Cerebral Humano Cubano: Módulo Examen Clínico, aplicando el proceso de desarrollo de software OpenUP con el principal objetivo de recoger las funcionalidades que debe tener dicho sistema y traducirlos en una especificación que describe como implementar el sistema, a través del diseño del mismo.

(7)

ÍNDICE

AGRADECIMIENTOS ... I DEDICATORIA ... II

Introducción ... 1

Capítulo 1: Fundamentación Teórica ... 7

1.1 Introducción ... 7

1.2 Gestión de la información... 7

1.3 Examen Clínico ... 8

1.3.1 Escala de Inteligencia de Weschler para adultos (WAIS-III) ... 8

1.3.2 Examen Físico-Neurológico ... 9

1.3.3 Mini Entrevista Neuropsiquiátrica Internacional ... 10

1.3.4 Cuestionario de Manualidad. ... 11

1.4 Tendencias de los roles ... 12

1.4.1 Roles a desempañar y Artefactos a realizar ... 12

1.5 Procesos de Desarrollo de Software. ... 14

1.5.1 Extreme Programming (XP) ... 14

1.5.2 Proceso Unificado de Desarrollo (RUP) ... 15

1.5.3 Open Unified Process (OpenUP) ... 16

1.6 Lenguaje de modelado. ... 18

1.7. Lenguaje de programación. ... 18

1.7.1 PHP5 ... 18

1.7.2 JavaScript ... 19

1.8 Gestor de Bases de Datos ... 20

1.8.1 MySQL ... 21

1.8.2 PostgreSQL ... 21

1.9 Herramientas CASE ... 23

1.9.1 Visual Paradigm for UML ... 24

1.9.2 DBDesigner Fork ... 24

1.10 Mapeo Relacional de Objeto (ORM) ... 26

1.10.1 Propel ... 27

1.11 Editores PHP ... 28

1.12 Editor de páginas Web ... 29

1.13 Conclusiones del capítulo ... 31

Capítulo 2: Características del sistema... 32

2.1 Introducción. ... 32

(8)

2.2.1 Objetivos estratégicos de la organización. ... 32

2.3 Flujo actual de los procesos. ... 33

2.3.1 Análisis crítico de la ejecución de los procesos ... 33

2.4 Objeto de automatización. ... 34

2.5 Especificación de los Requerimientos de la aplicación ... 34

2.5.1 Requerimientos funcionales ... 34

2.5.2 Requerimientos no funcionales ... 37

2.6 Modelo de Casos de Usos del Sistema ... 39

2.7 Descripción textual de los casos de usos del sistema ... 39

2.7.1 Descripción textual caso de uso Gestionar Sujeto ... 39

2.8 Conclusiones. ... 62

Capítulo 3: Diseño del Sistema ... 63

3.1 Introducción. ... 63

3.2 Patrones de Arquitectura y Patrones de Diseño. ... 63

3.2.1 Concepto de Patrón ... 63

3.2.2 Patrones de diseño ... 64

3.2.3 Patrones de asignación de responsabilidades (GRASP) ... 65

3.3 DIAGRAMAS DE CLASES... 69

3.4 Diagramas de Secuencia ... 75

3.5 Modelo de Datos ... 86

3.6 Modelo de Despliegue... 86

3.7 Conclusiones ... 87

Capítulo 4: Implementación ... 88

4.1 Introducción ... 88

4.2 Diagrama de componentes ... 88

4.3 Pantallas de la aplicación ... 94

4.4 Conclusiones ... 101

Conclusiones ... 102

Recomendaciones ... 103

Referencias Bibliográficas ... 104

Bibliografía ... 106

Glosario de términos ... 108

(9)

Introducción

Cuando se concluye el programa del genoma humano, que fuera en su tiempo un desafío colosal para la humanidad y hoy una gran hazaña, se presenta entonces para los científicos otro reto de alcance similar:

―el Proyecto del Mapeo Cerebral Humano‖. El hecho de hacer un mapa de cuáles son las diferentes funciones del cerebro que representa tanto la superficie cortical como los núcleos internos es en realidad un logro para la ciencia moderna. [1]

El objetivo principal de este proyecto es crear una gigantesca base de datos que incluya toda la información del cerebro conocida hasta la fecha. Los científicos tratan de agrupar lo obtenido, organizarlo y crear así, una cartografía de las regiones del cerebro a todos los niveles: químicos, biológicos y su relación con las enfermedades. [1]

El Consorcio Internacional para el Mapeo Cerebral (ICBM, por sus siglas en inglés) fue creado en 1993 con el apoyo del Instituto Nacional de Salud de los EE.UU. (NIH, por sus siglas en inglés) con el objetivo de organizar y desarrollar este proyecto a escala mundial. [2]

Este consorcio está compuesto en su núcleo fundamental por 4 centros de investigación, ellos son:

• UCLA, University of California, Los Ángeles.

• Montreal Neurologic Institute.

• University of Texas at San Antonio.

• Institute of Medicine at Juelich && Heinrich Heine University.

Adicionalmente se han creado otros centros para la adquisición de datos en Asia y Europa, que contribuyen con esta entidad.

El ICBM ha analizado los cerebros de aproximadamente 7000 personas en 9 países. Se destacan las investigaciones realizadas a:

• 174 gemelos en EE.UU.

• 305 adultos en Canadá.

• 738 adultos en Japón.

• 504 niños de 4 a 18 años en EE.UU.

(10)

Los estudios realizados en el proyecto se basan en la adquisición de neuroimágenes por diferentes métodos, Resonancia Magnética (RM), Resonancia Magnética Funcional (MRI, por sus siglas en inglés), Tomografía Axial Computarizada (TAC) y Tomografía por Emisión de Positrones (PET, por sus siglas en inglés). A partir de estas neuroimágenes se construye un atlas de las regiones del cerebro a todos los niveles: químicos, biológicos y su relación con las enfermedades.

Algunos de los resultados clínicos más destacados de estos estudios son:

• Descubrimiento del adelgazamiento progresivo de la corteza cerebral que acompaña la aparición de la esquizofrenia en la adolescencia.

• Hallazgo de cambios degenerativos precoces que anuncian la aparición de la enfermedad de Alzheimer.

• Demostración de las alteraciones cerebrales permanentes que acompaña al maltrato en niños pequeños.

• Esclarecimiento de los cambios estructurales cerebrales en niños autistas.

Cuba a pesar de ser un país bloqueado se ha integrado al proyecto debido a la experiencia de los especialistas del Centro de Neurociencias de Cuba (CNEURO) en el procesamiento de neuroimágenes. El proyecto cubano no sólo ha introducido novedosas técnicas, sino también es el primero a nivel internacional en incorporar el mapeo de la actividad eléctrica cerebral, a través del Electroencefalograma (EEG). [3 ]

Para llevar a cabo el proyecto Mapeo Cerebral Humano Cubano (MCHC) se tomó como muestra poblacional inicialmente las personas del municipio La Lisa, provincia Ciudad de La Habana debido a la heterogeneidad social que según estudios estadísticos existen en este territorio, además se considera una muestra representativa de numerosos lugares del país y la cercanía al centro hospitalario donde se encuentra instalado el equipo de RM. Se pretende, en un futuro, llevar el proyecto a todo el país para realizar así una mejor normalización de los resultados y obtener un atlas que sea representativo de la población cubana.

El proyecto MCHC pretende dar cumplimiento a los siguientes objetivos:

• Crear un Atlas Cuantitativo del desarrollo cerebral normal del cubano.

• Determinar las influencias genético/ambientales sobre el cerebro.

(11)

• Ver bases cerebrales de diferencias interindividuales debidas a edad, sexo, nivel educacional, coeficiente de Inteligencia y otros factores.

• Detectar las diferencias en los cerebros de sujetos de los estudios especiales con relación al Atlas.

• Desarrollar métodos de pesquisa temprana de desórdenes cerebrales.

• Crear bases para ensayos terapéuticos rigurosos de terapias para el tratamiento de disfunciones cerebrales.

• Comparar los datos con los del Proyecto Internacional.

Para dar cumplimiento a los objetivos planteados por el proyecto MCHC el CNEURO cuenta con la colaboración de varias entidades, la Dirección Municipal de Salud Lisa, los policlínicos de la Lisa, Instituto de Neurología, Hospital CIMEQ, Universidad de las Ciencias Informáticas y Centro de Genética Médica:

ISCM.

Hasta el momento se han encuestado un gran número de ciudadanos seleccionados al azar de la población general del municipio La Lisa, con edades comprendidas entre 8 y 81 años. Actualmente la muestra en estudio comprende fundamentalmente las edades entre 15 a 68 años. A continuación se muestra el flujo de trabajo del proyecto MCHC.

• Muestra aleatoria de la población a partir de los listados de los carné de identidad.

• Captación de los sujetos por parte de las enfermeras comunitarias y firma del consentimiento informado.

• Selección para el estudio mediante el llenado de un cuestionario que establezca que el sujeto es sano. Obtención de la muestra de sangre para estudios genéticos y una evaluación médica completa.

• Evaluación psico-cognitiva incluyendo, por primera vez en el país, la aplicación completa de los tests de inteligencia WAIS-IIIR. Además de otras pruebas como el Examen Físico-Neurológico, Cuestionario de Normalidad, Mini Entrevista Neuropsiquiátrica Internacional y Cuestionario de Manualidad.

• Realización de un estudio de electroencefalograma con un MEDICID de 64 ó 128 canales para estudiar la fisiología cerebral mediante la Tomografía Eléctrica Cerebral (TEC), técnica desarrollada en nuestro país.

(12)

• Realización de un estudio de Resonancia Magnética Cerebral anatómica para ver integridad de estructuras cerebrales.

• Realización de un estudio de Resonancia Magnética Cerebral Funcional de la difusión del agua para evaluar conexiones Cerebrales.

Para llevar a cabo las actividades de selección del sujeto mediante un cuestionario que establezca que el mismo es sano y de evaluación psico-cognitiva realizadas en el flujo de trabajo del proyecto MCHC se aplica un Examen Clínico. Este examen está compuesto por un conjunto de pruebas que validan los resultados del estudio y el pesquisaje del sujeto. Las pruebas aplicadas son: el Examen Físico- Neurológico, el Cuestionario de Normalidad, la Mini Entrevista Neuropsiquiátrica Internacional y Cuestionario de Manualidad y el Examen Físico-Neurológico.

El proceso de gestión de la información del Examen Clínico que se le aplica a todos los sujetos que forman parte del estudio, se dificulta debido a que se realiza manualmente utilizando modelos impresos.

Todo este proceso provoca errores en la recopilación de la información, lentitud en la realización de los cálculos y dificultad en la obtención, almacenamiento y procesamiento de los resultados de dicho examen.

Este trabajo surge como necesidad de dar solución a las dificultades en la gestión de la información del Examen Clínico anteriormente planteadas por lo que se define como problema científico: ¿Cómo contribuir al proceso de gestión de la información generada por el Examen Clínico del proyecto MCHC?

El problema planteado se enmarca en el objeto de estudio : Proceso de gestión de la información del proyecto MCHC.

El objeto de estudio delimita el campo de acción: Proceso de gestión de la información del Examen Clínico

Para dar solución al problema se define como objetivo: Desarrollar una aplicación informática que gestione la información que se genera en el Examen Clínico.

Del objetivo general se derivan los siguientes objetivos específicos:

• Analizar el proceso de gestión de la información del Examen Clínico.

• Identificar las funcionalidades que debe cumplir el módulo: Examen Clínico.

• Diseñar el Sistema de Gestión de la Información del Examen Clínico.

• Desarrollar una base de datos para la gestión de los datos del sistema.

• Implementar el proceso de gestión de la información del Examen Clínico.

(13)

Para dar cumplimiento a los objetivos específicos se definen las siguientes tareas:

• Investigación sobre otros sistemas de gestión de información de Mapeo Cerebral Humano.

• Investigación y selección de las tecnologías y tendencias actuales para el desarrollo de software.

• Entrevistas al cliente para lograr la familiarización con el flujo de trabajo existente en el proceso de gestión de la información del Examen Clínico.

• Identificar, describir y validar los requisitos funcionales el cumplir el módulo Examen Clínico.

• Realización del diseño de las clases candidatas para la implementación.

• Diseño de una base de datos para la gestión de los datos del sistema.

• Implementación de una base de datos para la gestión de los datos del sistema.

• Implementación del proceso de gestión de la información del módulo Examen Clínico.

Con el desarrollo de este sistema se espera que los involucrados en este proceso cuenten con una herramienta de trabajo que facilite el proceso de gestión de la información en el Examen Clínico.

El trabajo consta de introducción, 4 capítulos, conclusiones, recomendaciones, referencias bibliográficas, bibliografía y anexos. El presente documento se divide en varios capítulos:

Capítulo 1: Fundamentación Teórica.

Este capítulo comprende el estado del arte sobre el tema tratado, hace una breve explicación del problema, las tendencias actuales que existen sobre el proyecto MCH a nivel nacional. Se describe la justificación de las tecnologías y metodologías utilizadas para la solución del problema.

Capítulo 2: Características del sistema.

En este capítulo se hace una definición del objeto de estudio del problema, se plantean los objetivos estratégicos de la organización. Descripción de los procesos que serán objeto de automatización.

Descripción general de la propuesta de sistema, como debe funcionar. Se especifican los requerimientos funcionales y no funcionales. Se identifican los casos de uso del sistema con sus respectivas descripciones y la relación existente con los actores del sistema.

Capítulo 3: Diseño del sistema.

(14)

En el capitulo se traducen los requisitos a una especificación que describe como implementar el sistema, a través del diseño. Se realizan los diagramas de clases del diseño y diagramas interacción más relevantes.

Se explica la arquitectura utilizada y los principales patrones de diseño utilizados.

Capítulo 4: Implementación.

En el capítulo se exponen los artefactos e información necesaria para llevar a cabo la implementación del sistema. Se realiza el modelo de despliegue y los diagrama de componentes.

(15)

Capítulo 1: Fundamentación Teórica

1.1 Introducción

En este capítulo se realiza una descripción general del objeto de estudio. Además se estudia el comportamiento de las tendencias actuales en el uso de aplicaciones similares en el mundo y en Cuba. Se describen también las técnicas, metodologías y herramientas utilizadas para dar solución al problema con el fin de justificar su uso para el desarrollo del proyecto.

1.2 Gestión de la información

La gestión de la información se puede definir como un proceso permanente que reúne, organiza, coordina y controla los procesos, productos y servicios de información de una institución o proceso, para responder a las necesidades de los usuarios. Esta gestión involucra la captura, organización, recuperación, publicación y distribución de la información para percibir y generar conocimiento. [4]

Actualmente en el mundo los gestores de información juegan un papel importante en el funcionamiento de numerosas instituciones de salud, de servicios y de todas las ramas donde incursione el ser humano. Esto se debe a la gran cantidad de información que genera cualquier proceso. Esta información ya no es factible almacenarla en papeles ya que debido a su volumen es casi imposible gestionarla de forma manual. Para esto han surgido programas que son capaces de gestionar todo tipo de información; desde simples agendas electrónicas hasta otros más complejos que permiten generar conocimientos con la información almacenada.

Después de realizar una búsqueda en la webgrafía (World Wide Web), no se encontró ningún software que integrara los exámenes clínicos que se realizan en el proyecto MCHC. Por tal motivo CNEURO solicitó la confección de un software que permitiera la gestión de la información de todos los exámenes clínicos.

Para poner en marcha el módulo Examen Clínico del proyecto MCHC es necesario el procesamiento de una gran cantidad de información referida a entrevistas a pacientes, test psicológicos y resultados de

(16)

pruebas, para facilitar la gestión de esta gran cantidad de información es necesario desarrollar un sistema que sea capaz de tratar y realizar las acciones requeridas por el mismo.

1.3 Examen Clínico

El Examen Clínico es un conjunto de pruebas que se le aplican a los sujetos que forman parte del proyecto MCHC para determinar si el sujeto es funcionalmente sano.

Para este estudio surge la necesidad del proyecto de contar con herramientas estándares que permitan realizar un pesquisaje neuropsiquiátrico en la muestra del estudio que permita determinar los sujetos funcionalmente sanos. Se necesitan instrumentos avalados internacionalmente que den validez al estudio y un criterio diagnóstico clínico, que sean rápidos de aplicar debido a la cantidad de sujetos a los que se le realiza y tratar de no agobiar al sujeto en la aplicación de dichos exámenes logrando un bajo nivel de deserción por este concepto. Entre estos exámenes se encuentran:

Examen Psicométrico (WAIS-III).

Examen Físico-Neurológico.

Mini Entrevista Neuropsiquiátrica Internacional (M.I.N.I. por sus siglas en inglés) Cuestionario de Manualidad.

Escala de Normalidad.

1.3.1 Escala de Inteligencia de Weschler para adultos (WAIS-III)

Wechsler Adult Intelligence Scale (Escala Wechsler de Inteligencia para Adultos) o WAIS es un test construido para evaluar la inteligencia global, entendida como concepto de Coeficiente de Inteligencia (CI), de individuos entre 16 y 64 años, de cualquier raza, nivel intelectual, educación, orígenes socioeconómicos y culturales y nivel de lectura.[5] Es individual y consta de 2 escalas: verbal y de ejecución. En Cuba es la primera vez que se aplica este test de inteligencia. Para el proyecto MCHC sólo se incluirán en la muestra, como normales, los que punteen por encima de 70, y se realizará el estudio con 14 subtests, 7 para evaluar Función Verbal y 7 para evaluar Función Ejecutiva. Existen normas a seguir para determinar el CI del sujeto.

(17)

Puntaje Crudo: se suma el puntaje de cada ítem, de cada subtest.

Puntaje Escalar: se toma como referencia el puntaje crudo y se usa la escala de conversión desde puntaje crudo a estándar. Se ubica el puntaje crudo de cada prueba para adjuntarlo al estándar. Se suman los puntajes estándar de los 7 subtest de la Escala Verbal, así como los de la Escala de Ejecución.

CI: El WAIS entrega tres CI por examinado: verbal, manual y total. Se debe calcular la edad del sujeto (anotar fecha de nacimiento y de aplicación del test), y con ella se ubica en el índice, la tabla de conversión de puntaje estándar a CI, correspondiente al grupo de edad a la que pertenezca el individuo.

Se ubica el CI correspondiente al CI Verbal y al Manual.

La inteligencia es cuantificada como una capacidad global del individuo para actuar útil y racionalmente, y desenvolverse con eficacia en el ambiente. El WAIS es el test de inteligencia más utilizado para evaluar la inteligencia en forma profunda en adultos.

Existe algunas herramientas como el Programa de Calificación Sistematizada para el WAIS ―W-SYS‖ que permite obtener todos los coeficientes de su interés, además de gráficas y textos interpretativos. El programa W-SYS transforma los puntajes directos de la prueba de inteligencia WAIS para adultos, proporcionando todo el puntaje típico de las escalas verbal y manipulativa. Proporciona el CI verbal, el CI manipulativo y el CI total, de acuerdo con la edad del sujeto. Adicionalmente, W-SYS proporciona los coeficientes de deterioro, depresión, esquizofrenia y de neurosis y desórdenes de la personalidad. Sólo basta con introducir la edad de la persona y los 11 puntajes directos de las correspondientes subpruebas del WAIS. El precio para adquirir el producto y la licencia personal o corporativa es de US $70.00. [6]

1.3.2 Examen Físico-Neurológico

En el Examen Físico se evalúan parámetros importantes de los principales sistemas del organismo como son: aparato respiratorio, aparato cardiovascular y sistema vascular periférico; así como otros puntos fundamentales tales como la piel, la mucosa, la higiene entre otros de relevancia para este estudio.

Además se hace una descripción de lo patológico en cada caso, de encontrar alguna anormalidad. Para la determinación de la normalidad del Examen Neurológico, se evalúan los parámetros del NEUROLOGICAL SINGLE SYSTEM EXAM (1997 Guidelines), de los cuales deben evaluarse al menos 23, de los 25 aspectos que los constituyen.

(18)

Como parte del Examen Neurológico se realiza el Mini-Mental State Examination (M.M.S.E. o Mini Examen del Estado Mental) que es un test de screening para confirmar y cuantificar el estado mental de una persona es una de las más utilizadas. El M.M.S.E. es un test que tiene alta dependencia del lenguaje y consta de varios ítems relacionados con la atención. Se puede efectuar en 5-10 minutos según el entrenamiento de la persona que lo efectúa. Evalúa la orientación, el registro de información, la atención y el cálculo, el recuerdo, el lenguaje y la construcción. Cada ítem tiene una puntuación, llegando a un total de 30 puntos. En la práctica diaria una puntuación menor de 24 sugiere demencia, entre 23-21 una demencia leve, entre 20-11 una demencia moderada y menor de 10 de una demencia severa. [7]

1.3.3 Mini Entrevista Neuropsiquiátrica Internacional

Teniendo en cuenta que el proyecto abarcará el examen de más de 5 000 sujetos, con el objetivo de recuperar 2 000 sujetos normales, que constituirá el total de la base final en la edad adulta que se evalúa, y valorando el tiempo que cada sujeto debe someterse a todos los estudios señalados, se decidió seleccionar un instrumento que estuviese validado internacionalmente, y que arrojara un criterio de normalidad que incluyese todos los aspectos del examen psiquiátrico, pero además que su tiempo de aplicación lo convirtiera en un instrumento factible para su aplicación, por lo que se eligió la Mini International Neuropsychiatric Interview (M.I.N.I.), que es una entrevista breve y altamente estructurada de diagnóstico, elaborada por grupos de psiquiatras y clínicos de los Estados Unidos y Europa, con el objetivo de tener una herramienta corta pero precisa, para ensayos clínicos multicéntricos, estudios epidemiológicos, y como primer paso en la búsqueda de elementos clínicos en la práctica médica cotidiana. Fue elaborada por Y. Lecrubier y colaboración de la Salpétriére de París, y D.Sheehan y colaboración de la Universidad de Florida en Tampa, en 1992, 1994, 1998. Esta entrevista clínica explora para detección y/u orientación diagnóstica, los principales trastornos psiquiátricos del Manual Diagnóstico y Estadístico de los Trastornos Mentales. Tiene un tiempo promedio de aplicación de 15 a 30 minutos (aunque su aplicación completa puede oscilar entre 20 y 120 minutos),

La M.I.N.I. está dividida en módulos identificados por letras, cada uno, correspondiente a una categoría diagnóstica. Al final de cada módulo, una o varias casillas diagnósticas, permiten al clínico indicar si se cumplen los criterios diagnósticos. Independientemente de que el objetivo del proyecto es determinar si el sujeto es normal o no, se tendrá la oportunidad de crear grupos de diagnosticar y categorizar un grupo de pacientes que habitualmente se consideran sanos, pero cuando se les aplica este tipo de instrumento, se

(19)

definen determinadas patologías primariamente sub-registradas; este instrumento tiene una elevada sensibilidad (entre 75 y 80 %) aunque menor especificidad (entre 65 y 70 %), si a esto se le suma que los sujetos serán evaluados por especialistas en Psiquiatría, cabe esperar que el número de falsos negativos en el estudio sea mínimo.

1.3.4 Cuestionario de Manualidad.

Este cuestionario se aplica para determinar el grado de manualidad del sujeto en estudio, es decir, que tanto es zurdo o derecho. Para ello se realizan varias preguntas sobre que mano utiliza el sujeto para realizar algunas actividades entre las que se encuentra las siguientes:

Escribir.

Tirar una pelota.

Tomar las tijeras para recortar.

Tomar el cepillo para cepillar los dientes.

Tomar el cuchillo para cortar el pan.

Tomar la cuchara para comer.

Se cuentan las respuestas para cada mano y con la siguiente fórmula se determina la manualidad del sujeto:

LQ = (R-L)/(R+L) * 100

Si LQ= 0 es sujeto es ambidiestro, si LQ=100 el sujeto es extremo derecho y si LQ=-100 el sujeto es extremo izquierdo.

Después de realizado un estudio de las diferentes instrumentos que permiten realizar un pesquisaje neuropsiquiátrico para determinar si un sujeto es funcionalmente sano, se llega a la conclusión que no existe una herramienta en la Web grafía que integre el conjunto de pruebas que conforman el Examen Clínico, ni gestione la información generada de la aplicación de estos test al sujeto, ni se adapte a las características particulares del estudio del Proyecto MCHC. Por lo que se decide realizar un sistema de gestión de la información generada por el Examen Clínico para el Proyecto MCHC. Este sistema va a

(20)

exámenes son realizados por varios especialistas que tienen una visión individual del problema por lo que el sistema permitirá homogeneizar el proceso de análisis clínico para que una vez recogido el dato primario todos los criterios converjan en una misma dirección, evitando así la ocurrencia de errores humanos al manipular los datos y la subjetividad en el análisis clínico.

1.4 Tendencias de los roles

1.4.1 Roles a desempañar y Artefactos a realizar

Los roles que se desempeñarán en el trabajo son: el de Analista y Desarrollador.

Analista: Las personas en este rol representan al cliente y los usuarios finales involucrados, obteniendo información desde los stakeholders para entender el problema a ser resuelto, capturar y ajustar las prioridades para los requerimientos. Este rol puede ser asignado en equipos ágiles y pequeños, es frecuentemente compartido entre varios miembros del equipo que también desempeñan otros roles, y además, uno o más miembros del equipo desempeñan este rol exclusivamente. Esta alternativa es comúnmente adoptada cuando los requerimientos complejos son difíciles de capturar. [8]

Los artefactos que debe realizar el rol de Analista son:

Glosario: Este artefacto define términos importantes usados por el proyecto. Estos términos son las bases para una colaboración efectiva con los stakeholders y otros miembros del equipo.

Requisitos: Este artefacto captura requisitos generales del sistema no capturados en los escenarios o casos de uso, incluyendo requisitos sobre atributos de calidad y requisitos funcionales globales. [8]

Modelo de Casos de Uso: Este artefacto es la base para el acuerdo entre las partes interesadas y el equipo del proyecto en relación con la funcionalidad para el sistema. También ayuda a orientar las diversas tareas en el ciclo de vida de desarrollo de software. [8]

Casos de Uso: Este artefacto captura la secuencia de acciones que un sistema realiza, que produce un resultado observable de valor a su interacción con el sistema. Los Casos de Uso capturan el comportamiento requerido del sistema desde la perspectiva del usuario final, alcanzar una o más metas. Diferentes usuarios se benefician en diferente forma:

(21)

o Los Clientes los usan para describir, o aprobar, la descripción del comportamiento del sistema.

o Los Usuarios Potenciales los usan para entender el comportamiento del sistema.

o Los Desarrolladores los usan para entender los comportamientos requeridos del sistema de tal manera que ellos puedan identificar clases desde el flujo de eventos de los Casos de Uso.

o Los Arquitectos los usan para identificar la funcionalidad arquitectónicamente significativa.

Desarrollador: La persona en este rol es responsable por desarrollar una parte del sistema, incluyendo diseñar esta, para que se ajuste a la arquitectura, posiblemente prototipar la interfaz de usuario y entonces implementar, hacer pruebas unitarias e integrar los componentes que son parte de la solución. Una persona que desempeñe este papel puede tener conocimientos especializados en una determinada área técnica, pero también deben tener una amplia comprensión de todas las tecnologías que intervienen para poder trabajar con otros miembros del equipo técnico. [8]

El desarrollador debe realizar los siguientes artefactos:

Build: Este artefacto es una versión operativa de un sistema o parte de un sistema que demuestra un subconjunto de las capacidades que se incluirá en el producto final. Esta versión ejecutable del sistema suele tener un número de archivos de apoyo que también se consideran parte de este artefacto compuesto. En un ciclo de vida iterativo, cada iteración debe evolucionar la construcción de la iteración anterior a construir, añadiendo más funcionalidad y mejorar la calidad. [8]

Diseño: Este artefacto describe la realización de la funcionalidad necesaria del sistema en términos de componentes y sirve como una abstracción del código fuente. El objetivo es describir los elementos del sistema a fin de que puedan ser examinados y entendido en un sentido que no sea posible la lectura del código fuente. Se comunica abstracciones particulares de parte de la aplicación y puede describir un encapsulado subsistema, un alto nivel de análisis del sistema, un punto de vista del sistema en un solo contexto, u otras perspectivas que explican una solución a un problema específico que necesita ser comunicad. [8]

(22)

Implementación: Este artefacto es la colección de uno o más de estos elementos: archivos de código fuente, archivos de datos, crear scripts y el resto de archivos que se transforman en el sistema ejecutable. El objetivo de este artefacto es representar las partes física que componen el sistema a ser construido, organizado de una manera que sea comprensible y manejable. [8]

1.5 Procesos de Desarrollo de Software.

El proceso de desarrollo de software es difícil de controlar, surge entonces la necesidad de tener una metodología que garantice cumplir con los planes de producción del software y la satisfacción del cliente para que se puedan alcanzar los objetivos del proyecto. Los desarrolladores muchas veces cuando se enfrentan a un nuevo proyecto se preguntan ¿Qué metodología debemos usar para el desarrollo del software? La respuesta correcta se tendrá después de analizar la situación del proyecto, de saber a lo que se enfrentan y lo que deben producir. Entre las metodologías que más se utilizan a nivel mundial existen dos corrientes de importancia: los denominados métodos pesados y métodos ligeros. Entre las más reconocidas se encuentran el Proceso Unificado de Desarrollo (RUP), exponente de la metodología pesada; Extreme Programming (XP) y Open Unified Process (OpenUP) como exponentes de las metodologías ligeras o ágiles.

1.5.1 Extreme Programming (XP)

Es una de las metodologías de desarrollo de software más exitosas en la actualidad utilizadas para proyectos de corto plazo, equipo y cuyo plazo de entrega era ayer. La metodología consiste en una programación rápida o extrema, cuya particularidad es tener como parte del equipo, al usuario final, pues es uno de los requisitos para llegar al éxito del proyecto.

Características de XP

Entre las características fundamentales de este proceso de desarrollo se tienen:

Pruebas unitarias: esta característica está basada en realizar pruebas a los procesos principales para poder detectar posibles errores que puedan suceder.

Refabricación: esta característica se basa en la reutilización de código lo que le permite ser más flexible al cambio.

(23)

Programación en pares: esta característica se basa en que dos desarrolladores participen en un proyecto en una misma estación de trabajo con el propósito de lograr un mismo objetivo, la satisfacción del cliente.

¿Qué es lo que propone XP?

Empieza en pequeño y añade funcionalidad con retroalimentación continua.

El manejo del cambio se convierte en parte sustantiva del proceso.

El costo del cambio no depende de la fase o etapa.

No introduce funcionalidades antes que sean necesarias.

El cliente o el usuario se convierte en miembro del equipo.

Esta metodología permite la comunicación entre los desarrolladores y el cliente, simplifica el desarrollo de módulos y posibilita una retroalimentación, concreta y frecuente del equipo de desarrollo, el cliente y los usuarios finales. No existe documentación del proyecto lo que más se acerca a la documentación son las historias de usuario, pero al concluir el proyecto se descartan. Inclusive se recomienda hacer dos secciones, una con todas las historias de usuario que faltan desarrollar, y otra donde se archiven las concluidas, esto aproximará el estado de avance del proyecto.

1.5.2 Proceso Unificado de Desarrollo (RUP)

Es un proceso bien definido, estructurado y adaptable a las características y necesidades de cada proyecto específico. RUP es un proceso iterativo e incremental que se encarga de dividir el trabajo en partes más pequeñas o en mini proyectos. Este proceso se divide en 4 fases para el desarrollo de software.

Inicio: El Objetivo en esta etapa es determinar la visión del proyecto.

Elaboración: En esta etapa el objetivo es determinar la arquitectura óptima.

Construcción: En esta etapa el objetivo es obtener la capacidad operacional inicial.

Transición: El objetivo es llegar a obtener la liberación del proyecto.

RUP hace uso de arquitectura basada en componentes, permite el modelado visual del software y la

(24)

de Software. RUP brinda un proceso integrado que utiliza el estándar de notación UML para permitir desarrollar un proceso de forma iterativa e incremental a partir de la identificación e implementación de los casos de uso.

Flujos de trabajo:

Modelado del negocio: Describe los procesos de negocio, identificando quiénes participan y las actividades que requieren automatización.

Requerimientos: Define qué es lo que el sistema debe hacer, para lo cual se identifican las funcionalidades requeridas y las restricciones que se imponen.

Análisis y diseño: Describe cómo el sistema será realizado a partir de la funcionalidad prevista y las restricciones impuestas (requerimientos), por lo que indica con precisión lo que se debe programar.

Implementación: Define cómo se organizan las clases y objetos en componentes, cuáles nodos se utilizarán y la ubicación en ellos de los componentes y la estructura de capas de la aplicación.

Prueba (Testeo): Busca los defectos a los largo del ciclo de vida.

Instalación: Produce release del producto y realiza actividades (empaque, instalación, asistencia a usuarios, etc.) para entregar el software a los usuarios finales.

Administración del proyecto: Involucra actividades con las que se busca producir un producto que satisfaga las necesidades de los clientes.

Administración de configuración y cambios: Describe cómo controlar los elementos producidos por todos los integrantes del equipo de proyecto en cuanto a: utilización/actualización concurrente de elementos, control de versiones, etc.

RUP es uno de los procesos más generales de los existentes actualmente, ya que en realidad esta pensado para adaptarse a cualquier proyecto.

1.5.3 Open Unified Process (OpenUP)

Open Unified Process (OpenUP) es un proceso de desarrollo unificado que está basado en Rational Unified Process (RUP). Mantiene las mismas características de RUP, que contiene el desarrollo iterativo, casos de uso y escenarios de conducción de desarrollo, gestión de riesgos, y el enfoque centrado en la arquitectura.

(25)

OpenUP es una parte del Eclipse Process Framework (EPF), un proceso de código abierto desarrollado en el marco de la organización Eclipse de fuente abierta. Ofrece las mejores prácticas de una variedad de desarrollo de software líderes de pensamiento y de la más amplia comunidad de desarrollo de software que cubren un conjunto diverso de perspectivas y necesidades de desarrollo.

El OpenUP es un proceso mínimo y suficiente, lo que significa que sólo el contenido fundamental y necesario es incluido. Por lo tanto no provee lineamientos para todos los elementos que se manejan en un proyecto pero tiene los componentes básicos que pueden servir de base a procesos específicos. La mayoría de los elementos de OpenUP están declarados para fomentar el intercambio de información entre los equipos de desarrollo y mantener un entendimiento compartido del proyecto, sus objetivos, alcance y avances. Se aplica en enfoques tanto iterativo como incremental. Este proceso puede ser desarrollado para hacer frente a una extensa diversidad de tipos de proyectos. [9]

Existe una forma más básica y fácil de manejar de OpenUP que es OpenUP/Basic, objetivos más pequeños y con sede equipos interesados en el desarrollo ágil e iterativo.

Áreas de interés

Los elementos del OpenUP dirigen la organización del trabajo en los niveles personal, de equipo y de interesados.

El proyecto en general se divide en iteraciones, las cuales son planificadas en un intervalo definido de tiempo que no superan las pocas semanas. El OpenUP tiene elementos que ayudan a los equipos de trabajo a enfocar los esfuerzos a través del ciclo de vida de cada iteración de tal forma que se puedan distribuir funcionalidades incrementales de una manera predecible, una versión totalmente probada y funcional al final de cada iteración.

El OpenUP estructura el ciclo de vida de un proyecto en 4 fases: concepción, elaboración, construcción y transición. El ciclo de vida del proyecto provee a los interesados un mecanismo de supervisión y dirección para controlar los fundamentos del proyecto, su ámbito, la exposición a los riesgos, el aumento de valor y otros aspectos.

(26)

Después de un análisis de las metodologías anteriormente expuestas se determinó que XP no es recomendable para este proyecto porque la misma exige la integración total del cliente al equipo de trabajo, condiciones con los cuales no se cuenta, ya que el cliente es un agente externo al equipo de trabajo. Debido a que módulo Examen Clínico del Proyecto Mapeo Cerebral requiere de un tiempo relativamente corto de desarrollo se decide optar por la metodología OpenUP/Basic basada en RUP. Es una metodología ágil que se aplica a proyectos de corta duración, diseñado para pequeños equipos de trabajo, generalmente de 3-6 personas y de 3-6 meses de esfuerzo de desarrollo. El mismo preserva las características esenciales de RUP, como: estar centrado en la arquitectura y estar dirigido por Casos de Uso, y es iterativo e incremental, pero con la diferencia que las partes opcionales del RUP fueron obviadas, surgiendo como resultado un proceso muy simple que cumple con los principios fundamentales de la metodología RUP.

1.6 Lenguaje de modelado.

Se utilizó el Lenguaje Unificado de Modelado (UML, por sus siglas en inglés, Unified Modeling Language) debido a que la metodología de desarrollo seleccionada lo propone como lenguaje de notación. Además UML es el lenguaje de modelado de sistemas de software más conocido y utilizado en la actualidad. Es un lenguaje gráfico para visualizar, especificar, construir y documentar un sistema de software. UML ofrece un estándar para describir un "plano" del sistema (modelo), incluyendo aspectos conceptuales tales como procesos de negocios y funciones del sistema, y aspectos concretos como expresiones de lenguajes de programación, esquemas de bases de datos y componentes de software reutilizables. Está respaldado por el OMG (Object Management Group).

Es importante resaltar que UML es un "lenguaje" para especificar y no para describir métodos o procesos.

Se utiliza para definir un sistema de software, para detallar los artefactos en el sistema y para documentar y construir. En otras palabras, es el lenguaje en el que está descrito el modelo. Se puede aplicar en una gran variedad de formas para dar soporte a una metodología de desarrollo de software (tal como el Proceso Unificado de Rational) pero no especifica en sí mismo qué metodología o proceso usar.

1.7. Lenguaje de programación.

1.7.1 PHP5

PHP es un lenguaje de programación usado generalmente para la creación de contenido para sitios Web.

(27)

PHP es un acrónimo recurrente que significa "PHP Hypertext Pre-processor" (inicialmente PHP Tools, o Personal Home Page Tools), y se trata de un lenguaje interpretado usado para la creación de aplicaciones para servidores, o creación de contenido dinámico para sitios Web. PHP5 es la última versión de dicho lenguaje; esta incorpora el paradigma de la Programación Orientada a Objetos (POO) e incluye todas las ventajas que provee el nuevo Zend Engine 2. Es un lenguaje multiplataforma. Tiene capacidad de conexión con la mayoría de los manejadores de base de datos que se utilizan en la actualidad como MySQL, PostgreSQL, mSQL, Oracle, dbm, filepro, Hyperwave, Informix, InterBase y Sybase. Posee una amplia documentación en su página oficial, La curva de aprendizaje del lenguaje es baja. Posee una biblioteca nativa de funciones sumamente amplia. Es libre y Open Source, por lo que se presenta como una alternativa de fácil acceso para todos además no se está forzado a pagar actualizaciones anuales para tener una versión que funcione.

Se decidió por parte de la dirección del proyecto utilizar php ya que, teniendo en cuenta las características mencionadas anteriormente que lo hacen muy potente para la implementación de aplicaciones en ambiente web, el equipo de desarrollo posee un mayor conocimiento de este lenguaje. Además la entrega del sistema debía realizarse en un período relativamente corto.

1.7.2 JavaScript

JavaScript es un lenguaje de programación del lado del cliente ampliamente utilizado en el mundo del desarrollo web por ser muy versátil, compatible con la mayoría de los navegadores modernos, y potente, tanto para la realización de pequeñas tareas como para la gestión de complejas aplicaciones.

JavaScript es un lenguaje interpretado que, al contrario de las aplicaciones normales, que son ejecutadas por el sistema operativo, es ejecutado por el navegador que utilizamos para ver las páginas. Eso hace que podamos desarrollar aplicaciones de muy diverso tipo, desde generadores de HTML, comprobadores de formularios, etc. hasta programas que gestionen las capas de una página. Pueden desarrollarse incluso aplicaciones que permitan poder tener capas en una página como si fueran ventanas, y dar la sensación de estar trabajando con una aplicación con interfaz de ventanas.

Con JavaScript se pueden crear efectos especiales en las páginas web y definir interactividades con el usuario. El navegador del cliente es el encargado de interpretar las instrucciones JavaScript y ejecutarlas

(28)

para realizar estos efectos e interactividades, de modo que el mayor recurso, y tal vez el único, con que cuenta este lenguaje es el propio navegador. Es un lenguaje de programación bastante sencillo y pensado para hacer las cosas con rapidez. Incluso las personas que no tengan una experiencia previa en la programación podrán aprender este lenguaje con facilidad y utilizarlo en toda su potencia con sólo un poco de práctica.[11]

Entre las acciones típicas que se pueden realizar en JavaScript se cuenta con dos vertientes. Por un lado los efectos especiales sobre páginas web, para crear contenidos dinámicos y elementos de la página que tengan movimiento, cambien de color o cualquier otro dinamismo. Por el otro, JavaScript permite ejecutar instrucciones como respuesta a las acciones del usuario, con lo que se pueden crear páginas interactivas con programas como calculadoras, agendas, tablas de cálculo, calendarios y validar informaciones entradas por el usuario para verificar su veracidad o su forma de escribirse.

¿Qué podemos hacer con JavaScript?

Páginas dinámicas (DHTML).

Comprobación de datos (Formularios).

Uso de los elementos de una página web.

Intercambiar información entre páginas web en distintas ventanas.

Manipulación de gráficos, texto, etc.

Comunicación con plug-ins: Flash, Java, Shockwave, etc.

1.8 Gestor de Bases de Datos

Se define una base de datos como una serie de datos organizados y relacionados entre sí.[12] Los Sistemas de Gestión de Bases de Datos (SGBD) son softwares específicos que se sirven de interfaz entre la base de datos, el usuario y las aplicaciones que la utilizan. Se compone de un lenguaje de definición de datos, de un lenguaje de manipulación de datos y de un lenguaje de consulta. Existen numerosos SGBD, algunos libres y otros comerciales entre los que se destacan por su uso y prestaciones:

SGBD Libres:

PostgreSQL, MySQL, SQLite

(29)

SGBD Comerciales:

Microsoft SQL Server, Microsoft Access, MAGIC, WindowBase, Progress (DBMS), Oracle, DB2, Sybase

1.8.1 MySQL

MySQL es un sistema de administración de bases de datos relacional (RDBMS).[13] Una base de datos es una colección estructurada de tablas que contienen datos. Esta puede ser desde una simple lista de compras a una galería de pinturas o el vasto volumen de información en una red corporativa. Para agregar, acceder a y procesar datos se necesita un administrador como MySQL Server. Debido a la importancia de manejar grandes cantidades de información, los administradores de bases de datos juegan un papel central en computación, como aplicaciones independientes o como parte de otras aplicaciones.

Una base de datos relacional archiva datos en tablas separadas en vez de colocar todos los datos en un gran archivo. Esto permite velocidad y flexibilidad. Las tablas están conectadas por relaciones definidas que hacen posible combinar datos de diferentes tablas sobre pedido.

Características:

Amplio subconjunto del lenguaje SQL. Algunas extensiones son incluidas igualmente.

Disponibilidad en gran cantidad de plataformas y sistemas.

Diferentes opciones de almacenamiento según si se desea velocidad en las operaciones o el mayor número de operaciones disponibles.

Transacciones y claves foráneas.

Conectividad segura.

Replicación.

Búsqueda e indexación de campos de texto.

1.8.2 PostgreSQL

PostgreSQL es un servidor de base de datos objeto relacional libre, liberado bajo la licencia BSD. Como muchos otros proyectos Open Source, el desarrollo de PostgreSQL no es manejado por una sola compañía sino que es dirigido por una comunidad de desarrolladores y organizaciones comerciales las

(30)

cuales trabajan en su desarrollo, dicha comunidad es denominada el PGDG (PostgreSQL Global Development Group).

Características:

1. Alta concurrencia.

Mediante un sistema denominado MVCC (Acceso concurrente multiversión, por sus siglas en inglés) PostgreSQL permite que mientras un proceso escribe en una tabla, otros accedan a la misma tabla sin necesidad de bloqueos. Cada usuario obtiene una visión consistente de lo último a lo que se le hizo commit. Esta estrategia es superior al uso de bloqueos por tabla o por filas común en otras bases, eliminando la necesidad del uso de bloqueos explícitos. [14]

2. Amplia variedad de tipos nativos.

Adicionalmente los usuarios pueden crear sus propios tipos de datos, los que pueden ser por completo indexables gracias a la infraestructura GiST de PostgreSQL. Algunos ejemplos son los tipos de datos GIS creados por el proyecto PostGIS. [14]

Funciones

Bloques de código que se ejecutan en el servidor. Pueden ser escritos en varios lenguajes, con la potencia que cada uno de ellos da, desde las operaciones básicas de programación, tales como bifurcaciones y bucles, hasta las complejidades de la programación orientación a objetos o la programación funcional.

PostgreSQL soporta funciones que retornan "filas", donde la salida puede tratarse como un conjunto de valores que pueden ser tratados igual a una fila retornada por una consulta (query en inglés).

Las funciones pueden ser definidas para ejecutarse con los derechos del usuario ejecutor o con los derechos de un usuario previamente definido. El concepto de funciones, en otros SGBD, son muchas veces referidas como "procedimientos almacenados" (stored procedures en inglés).

¿Por qué usar PostgreSQL?

(31)

El proyecto MCHC gestionará un gran volumen de información por lo que se escoge para el desarrollo del sistema al SGBD PostgreSQL por ser un poderoso sistema manejador de bases de datos, es decir, un sistema diseñado para administrar grandes cantidades de datos, el cual es considerado como una de las bases de datos de código abierto (Open Source) más avanzada del mundo. PostgreSQL se ha preocupado por ser una solución real a los complejos problemas del mundo empresarial y a la vez mantener la eficiencia al consultar los datos. Con ese fin, se han desarrollado y añadido a Postgres las más interesantes y útiles características que antes sólo podían hallarse en sistemas manejadores de bases de datos comerciales como Oracle, DB2 o Sybase. Tiene además un alto rendimiento, estable y capacitado para lidiar con grandes volúmenes de datos. Estas características de PostgreSQL son las que garantizan la integridad de los datos, la velocidad de acceso y consultas a la base de datos.

1.9 Herramientas CASE

Las Herramientas CASE (Computer Aided Software Engineering, Ingeniería de Software Asistida por Ordenador) son diversas aplicaciones informáticas destinadas a aumentar la productividad en el desarrollo de software reduciendo el coste de las mismas en términos de tiempo y de dinero. Estas herramientas son de gran ayuda en todos los aspectos del ciclo de vida de desarrollo del software en tareas como el proceso de realizar un diseño del proyecto, cálculo de costes, implementación de parte del código automáticamente con el diseño dado, compilación automática, documentación o detección de errores entre otras.

Las Herramientas CASE se plantean los siguientes objetivos:

Mejorar la productividad en el desarrollo y mantenimiento del software.

Aumentar la calidad del software.

Mejorar el tiempo y coste de desarrollo y mantenimiento de los sistemas Informáticos.

Mejorar la planificación de un proyecto.

Automatizar, desarrollo del software, documentación, generación de código, pruebas de errores y gestión del proyecto.

Ayuda a la reutilización del software, portabilidad y estandarización de la documentación.

Facilitar el uso de las distintas metodologías propias de la ingeniería del software.

(32)

Existen herramientas Case de trabajo visuales como DBDesigner4, Rational Rose, Embarcadero ER/Studio, GNU Ferret, MagicDraw, Umbrello, ArgoUML y Visual Paradigm que permiten realizar el modelado del desarrollo de los proyectos. A continuación se explican algunas de la herramientas CASE más utilizadas.

1.9.1 Visual Paradigm for UML

Visual Paradigm for UML una herramienta multiplataforma que permite proporcionar un ambiente modelado visual para satisfacer la tecnología del software de hoy y necesidades de comunicación. Es muy fácil de usar y presenta un ambiente gráfico agradable para el usuario. Utiliza UML como lenguaje de modelado para la construcción de los sistemas software ofreciendo soluciones de software que permiten a las organizaciones desarrollar las aplicaciones de calidad más rápido, bien y más barato. Tiene la capacidad de ejecutarse sobre diferentes sistemas operativos lo que le confiere la característica de ser multiplataforma, esta disponible para Windows, Linux, MacOS X, etc. Integra diferentes funcionalidades para el desarrollo de aplicaciones como el modelado de UML, el modelado de base de batos, el modelado de requerimientos, el modelado del proceso de negocio, la interoperabilidad con otras herramientas CASE, la generación de documentación entre otros. Permite generar código en lenguajes tan utilizados como: Java, C++, PHP, C #, Delphi, Perl.

Permite incorporar los dibujos de Visio® en cualquier diagrama de UML. Muchas herramientas CASE realizan solo diagramas de UML normales, Visual Paradigm posibilita modelar hardware, dominio- específico, el software, conectando una red de computadoras los componentes usando sus iconos, más allá de las anotaciones de UML normales.

Como el equipo de desarrollo trabaja sobre la plataforma GNU/Linux y no cuenta con una versión de Rational Rose que corra sobre dicha plataforma se usará para el desarrollo de la aplicación la herramienta CASE Visual Paradigm, software del que se tiene licencia en la Universidad de las Ciencias Informáticas.

1.9.2 DBDesigner Fork

DB Designer Fork, como su nombre lo dice, es un fork de fabFORCE DBDesigner 4 que es un sistema de diseño visual de bases de datos que integra diseño, modelado, creación y mantenimiento de estas en un único entorno para MySQL, pero el proyecto quedó descontinuado. DBDesigner Fork partió del código

(33)

existente y a partir del mismo ha creado un diseñador visual de bases de datos que integra la creación de bases de datos y permite modelar y especificar las relaciones entre las entidades. Genera scripts para Oracle, SQL Server, MySQL, PostgresSQL y FireBird.

Con acabado profesional, el programa dispone de infinidad de opciones y funcionalidades, además de ser bastante intuitivo y fácil de utilizar. En su web se dice que esta solución es comparable a otras, mucho más caras, como Oracle’s Designer©, IBM’s Rational Rose© o Computer Associates’s ERwin©, entre otras.

DBDesigner Fork tiene características interesantes como la posibilidad de poder hacer ingeniería inversa:

generar el modelo ER (Entidad-Relación) a raíz de una base de datos existente, también permite cosas como la sincronización del trabajo con servidores de bases de datos (para ir aplicando los últimos cambios que haces sobre el modelo relacional directamente a su base de datos) y dispone de dos modos principales: el Modo diseño (Design Mode) con el que crear / mantener visualmente el modelo de la base de datos; y el Modo Consulta (Query Mode), completa interfaz con la que poder trabajar con los datos de las tablas y construir consultas SQL. Además, los datos los guarda con estructura XML pudiendo trabajar con ellos a través de otras aplicaciones. Y, finalmente, dispone de un sistema de plugins de fácil manejo / desarrollo para expandir y personalizar el manejo de esta herramienta trayendo algunos de serie; uno de ellos, SimpleWebFront, permite generar una aplicación CRUD completa de tu diseño en PHP sin tocar una sola línea de código.

El listado de características a destacar de DBDesigner Fork es el que sigue:

Modo diseño / Modo consulta.

Ingeniería inversa para MySQL, Oracle, MSSQL y cualquier base de datos ODBC.

Sincronización modelo visual / base de datos.

Colocación automática de clave ajena.

Soporte de entidad débil.

Posibilidad de exportar el modelo como imagen.

Soporte integro con MySQL (tipos de datos, etc.) Tipos de datos de usuario definidos.

(34)

Control de versiones.

Manejador SQL.

Manejador de plugins.

Además es un sistema de código libre (GNU/GPL) y se pueden obtener sus ejecutables desde Internet.

Para el modelado y diseño de la Base de Datos del sistema se decidió optar por DBDesigner fork debido a que es una herramienta libre y sus características satisfacen las necesidades del equipo de desarrollo.

1.10 Mapeo Relacional de Objeto (ORM)

El mapeo objeto-relacional (más conocido por su nombre en inglés, Object-Relational mapping, o sus siglas ORM) es una técnica de programación para convertir datos entre el sistema de tipos utilizado en un lenguaje de programación orientado a objetos y el utilizado en una base de datos o se puede definir como una interfaz que traduce la lógica de los objetos a la lógica relacional. En la práctica esto crea una base de datos orientada a objetos virtual, por sobre la base de datos relacional. Esto posibilita el uso de las características propias de la orientación a objetos (básicamente herencia y polimorfismo).

La principal ventaja que aporta el ORM es la reutilización, permitiendo llamar a los métodos de un objeto de datos desde varias partes de la aplicación e incluso desde diferentes aplicaciones. La capa ORM también encapsula la lógica de los datos. La utilización de objetos en vez de registros y de clases en vez de tablas, tiene otra ventaja: permite añadir métodos accesores en los objetos que no tienen relación directa con una tabla. Si se dispone por ejemplo de una tabla llamada cliente con 2 campos llamados nombre y apellidos, puede que se necesite un dato llamado NombreCompleto que incluya y combine el nombre y los apellidos. En el mundo orientado a objetos, es tan fácil como añadir un método accesor a la clase Cliente. Desde el punto de vista de la aplicación, no existen diferencias entre los atributos Nombre, Apellidos, NombreCompleto de la clase Cliente. Solo la propia clase es capaz de determinar si un atributo determinado se corresponde con una columna de la base de datos.

Existen soluciones que proveen un mapeo básico O/R para PHP. A continuación identificamos algunos proyectos similares que existen actualmente en varios escenarios de desarrollo para PHP:

ALYOOP - un simple PHP5 DAO framework

(35)

DB_DataContainer - una solución PEAR-compliant O/R.

DB_DataObject - Solución PEAR oficial de mapeo O/R con generación de código PHP.

DB_Table - herramienta para abstraer una tabla de base de datos de Paul M. Jones.

EasyORM – una solución de objetos persistentes únicamente para MySQL.

Metastorage - Una de las capas más comprensivas persistentes para PHP, incluye generación de clases PHP.

Propel - Propel es un servicio de objeto persistente y de consulta para PHP. [15]

1.10.1 Propel

Propel es un servicio de objeto persistente y de consulta, lo que significa que provee un sistema para almacenar objetos en una base de datos y un sistema para búsqueda y restauración de objetos desde una base de datos. Propel le permite realizar consultas complejas y manipulación de bases de datos sin escribir una sola cláusula SQL con un mínimo costo de realización para su aplicación en PHP. Esta herramienta le permite hacer más fácil la escritura de aplicaciones, más fácil de desplegar, y mucho más fácil para migrar si alguna vez la situación lo amerita. [15]

Puede ser descrito como un mapeado objeto-relacional, una capa DAO, o una capa objeto persistente, optimizado para el lenguaje PHP. También genera las clases para cada tabla que exhibe algunas de las propiedades de la tabla del patrón datos de entrada. Una tabla de entrada de datos almacena todo el SQL para acceder a una sola tabla o vista: selecciones, inserciones, actualizaciones, y eliminaciones. Otro código llama los métodos para todas las interacciones con la base de datos. En Propel las clases de tabla de entrada de datos son llamadas clasesPeer, mientras las clases de filas de entrada de datos son llamadas entidad o clases objeto. [15]

El ambiente de ejecución proporciona una capa de abstracción y encapsulación de bases de datos para reglas de lógicas de negocios. Las clases Propel representan la capa modelo del tradicional patrón

(36)

Modelo-Vista-Controlador, diseñado para encapsular cualquier nivel de validación de dato necesitado por su aplicación. Propel es un proyecto de software libre. [15]

Después de un estudio de las características de propel se decidió usar esta herramienta como puente entre el sistema y la Base de Datos ya que nos brinda una abstracción de la lógica relacional a una lógica de objeto permitiendo la interacción con las bases de datos sin importar el SGBD utilizado. Además nos permite utilizar todas las ventajas del paradigma de Programación Orientado a Objeto como son la herencia y el polimorfismo.

1.11 Editores PHP

Los editores PHP son muy utilizados por desarrolladores de aplicaciones web para escribir programas en este lenguaje. Algunos de los editores que se encuentran para el lenguaje PHP son:

ZendStudio, PHP Designer, NuSphere, PHP Coder, DzSoft PHP Editor, Kumbia ZendStudio

Este Entorno Integrado de Desarrollo (IDE por sus siglas en ingles) no es libre pero son muchos los desarrolladores de aplicaciones web que trabajan con ZendStudio. Es un programa de la casa Zend, uno de los mayores impulsores de PHP, orientado a desarrollar aplicaciones web para dicho lenguaje.

ZendStudio es un editor de texto para páginas PHP que proporciona un buen número de ayudas desde la creación y gestión de proyectos hasta la depuración del código.

Existen versiones del programa para diversas plataformas debido a que está escrito en Java. ZendStudio consta de dos partes en las que se dividen las funcionalidades de parte del cliente y las del servidor. Las dos partes se instalan por separado, la del cliente contiene el interfaz de edición y la ayuda. Permite además hacer depuraciones simples de scripts, aunque para disfrutar de toda la potencia de la herramienta de depuración habrá que disponer de la parte del servidor, que instala Apache y el módulo PHP o, en caso de que estén instalados, los configura para trabajar juntos en depuración.

Referencias

Documento similar

The notified body that issued the AIMDD or MDD certificate may confirm in writing (after having reviewed manufacturer’s description of the (proposed) change) that the

En un estudio clínico en niños y adolescentes de 10-24 años de edad con diabetes mellitus tipo 2, 39 pacientes fueron aleatorizados a dapagliflozina 10 mg y 33 a placebo,

E Clamades andaua sienpre sobre el caua- 11o de madera, y en poco tienpo fue tan lexos, que el no sabia en donde estaña; pero el tomo muy gran esfuergo en si, y pensó yendo assi

Desarrollar una Aplicación Web que permita la gestión de la información resultante del procesamiento de Imágenes de Resonancia Magnéticas del proyecto Mapeo Cerebral Humano

Luego de haber realizado un estudio de las diversas técnicas que existen y teniendo en cuenta que las pruebas alcanzarán el nivel de pruebas de sistema, se decidió

Proporcione esta nota de seguridad y las copias de la versión para pacientes junto con el documento Preguntas frecuentes sobre contraindicaciones y

[r]

Contraindicaciones: El uso de la mascarilla está contraindicado para los pacientes y los miembros de sus familias, profesionales sanitarios y compañeros de