DESARROLLO DE UN APLICATIVO PARA EL REGISTRO Y SEGUIMIENTO DE LA INFORMACIÓN DE LOS PROCESOS JUDICIALES EN EL CONSORCIO AJ ABOGADOS JUAN MANUEL VELA GOMEZ JHONNATAN CAMILO ORTIZ SORIANO PROYECTO DE GRADO CLAUDIA RODRIGUEZ UNIVERSIDAD DE SAN BUENAVENTURA FACULTAD DE TECNOLOGÍA TECNOLOGÍA DE SISTEMAS BOGOTA D. C. 2.008 1 DESARROLLO DE UN APLICATIVO PARA EL REGISTRO Y SEGUIMIENTO DE LA INFORMACIÓN DE LOS PROCESOS JUDICIALES EN EL CONSORCIO AJ ABOGADOS JUAN MANUEL VELA GOMEZ JHONNATAN CAMILO ORTIZ SORIANO UNIVERSIDAD DE SAN BUENAVENTURA FACULTAD DE TECNOLOGÍA TECNOLOGÍA DE SISTEMAS BOGOTA D. C. 2.008 2 Nota de Aceptación: _________________________________ _________________________________ _________________________________ _________________________________ _________________________________ _________________________________ __________________________________ Firma del presidente del jurado _________________________________ Firma del jurado _________________________________ Firma del jurado Bogotá D. C., 24/05/2008/ 3 CONTENIDO INTRODUCCIÓN ..................................................................................................... 1 1. PLANTEAMIENTO DEL PROBLEMA .............................................................. 2 1.1 ANTECEDENTES .............................................................................................. 2 1.2 DESCRIPCIÓN DEL PROBLEMA ..................................................................... 2 1.3 JUSTIFICACIÓN ................................................................................................ 3 1.4 OBJETIVOS ....................................................................................................... 3 1.4.1 OBJETIVO GENERAL .................................................................................... 3 1.4.2 OBJETIVOS ESPECÍFICOS ........................................................................... 4 1.5 ALCANCES Y LIMITACIONES .......................................................................... 4 1.5.1 ALCANCES..................................................................................................... 4 1.5.2 LIMITACIONES ............................................................................................... 4 2. MARCO DE REFERENCIA............................................................................... 5 2.1 MARCO TEÓRICO – CONCEPTUAL ............................................................... 5 2.1.1 Metodologías .................................................................................................. 5 a. Programación Extrema ........................................................................................ 5 b. Programación RUP .............................................................................................. 5 c. Métrica V3 ........................................................................................................... 6 d. Microsoft Solution Framework (MSF) .................................................................. 6 2.1.2. Lenguajes de programación......................................................................... 10 a. JSP ................................................................................................................... 10 b. PHP .................................................................................................................. 10 2.1.3 Motores de bases de datos ........................................................................... 12 a. PostgreSQL ....................................................................................................... 12 b. MySQL .............................................................................................................. 13 2.2 MARCO LEGAL ........................................................................................... 22 3. METODOLOGÍA ............................................................................................. 23 3.1 ENFOQUE DE LA INVESTIGACIÓN ........................................................... 23 4 3.2 LÍNEA DE INVESTIGACIÓN / SUB-LÍNEA DE FACULTAD/ CAMPO TEMÁTICO DEL PROGRAMA............................................................................... 23 4. DESARROLLO DEL PROYECTO .................................................................. 24 4.1 FASE 1°- PREVISION ..................................................................................... 24 4.2 FASE 2° - PLANIFICACIÓN............................................................................. 25 4.3 FASE 3° - DESARROLLO ............................................................................... 34 4.4 FASE 4° - ESTABILIZACIÓN ........................................................................... 36 4.5 FASE 5° - IMPLEMENTACIÓN ........................................................................ 36 5. PRESUPUESTO ................................................................................................ 37 BIBLIOGRAFÍA ..................................................................................................... 39 ANEXOS ................................................................................................................ 40 GLOSARIO ............................................................................................................ 61 5 LISTA DE TABLAS Tabla 1. Cuadro comparativo metodologías…..………………………………………9 Tabla 2. Cuadro lenguajes de programación…………………………………………11 Tabla 3. Cuadro comparativo motores bases de datos……………………………..15 1 LISTA DE FIGURAS Figura 1. Representación distribuida…………………………………………...……..20 Figura 2. Representación remota……………………………………………...………20 Figura 3. Lógica distribuida…………………………………………………...………..20 Figura 4. Gestión remota de datos…………………………………………………….22 Figura 5. Bases de datos distribuidos……………………………………...………....22 Figura 6. Cliente servidor a tres niveles…………………………………...………….22 Figura 7. Caso de uso contextual…………………………………………...…………25 Figura 8. Caso de uso gerente nivel 1……………………………………...…………25 Figura 9. Caso de uso gerente nivel 2……………………………………...…………26 Figura 10. Caso de uso abogado nivel 1…………………………………...……...…28 Figura 11. Caso de uso abogado nivel 2…………………………………...………...28 Figura 12. Caso de uso administrador 1…………………………………..…………30 Figura 13. Caso de uso administrador 2…………………………………..…………30 Figura 14. Caso de uso secretaria nivel 1………………………………...………….32 Figura 15. Caso de uso secretaria nivel 2………………………………...………….32 2 INTRODUCCIÓN El mundo de hoy se está globalizando y cada vez se hace más necesario que todas las partes que conforman esta sociedad se actualicen y estén a la vanguardia con las demás, por tal motivo las pequeñas empresas en Colombia y en el mundo buscan sistematizarse para así estar a la altura de las grandes empresas y poder progresar. De lo anterior surge la oferta que hace la tecnología para la solución de aquellos problemas de organización que no permite que una empresa se supere. Muchas de las labores realizadas hoy en día pueden ser o son más productivas cuando se utiliza la tecnología o un software, sea cual sea el ámbito en que se esté trabajando. Lastimosamente el área jurídica en Colombia es uno de los campos que menos hace uso de la tecnología. Por tal razón es importante el desarrollo de este proyecto, para mejorar los procesos en los que son desarrollados en una oficina normal de abogados, dentro de este trabajo se mostrará una posible solución que se les puede brindar a los servidores de la Justicia del país. Con este proyecto se pretende brindar una solución económica y a la medida de un problema que esta afectando el gremio de los abogados, debido a la falta de un aplicativo que se encuentre a su alcance en el mercado permitiendo realizar un buen registro y seguimiento de los procesos; en el país se han desarrollado software de estas características pero con algunas complicaciones de tipo económico, de ahí la importancia de su realización. 1 1. PLANTEAMIENTO DEL PROBLEMA 1.1 ANTECEDENTES A nivel internacional se han encontrado varias páginas en Internet1 que tratan de algunas aplicaciones o software que son comercializados en países como México y España, en estos programas se tienen en cuenta varios aspectos como Jurisprudencia, Leyes y el manejo de los mismos procesos, en realidad son muy completos y ya son comercializados en estos países, al parecer han tenido un gran éxito. En Colombia, la Rama Judicial posee un sistema de información para la gestión judicial el cual le permite mantener controlado el flujo de información de parte de los Juzgados, Tribunales, Cortes entre otros. Hasta el momento este sistema ha funcionado pero con algunos vacíos tanto en la parte jurídica como al nivel de tecnología, de tal forma que algunas entidades privadas y estatales han generado su propio sistema de gestión con bases de datos, pero estas se crean únicamente para el uso exclusivo de estas entidades. Existen compañías nacionales que también han desarrollado este tipo de software, tales como Emprex web, Orión jurídica y SGP, estos son comercializados pero todos están licenciados y los costos son altísimos ya que las empresas tendrían que pagar por el costo de las licencias para el manejo de los motores de bases de datos, esto limita a un gran número de usuarios que laboran en microempresas, oficinas pequeñas, como en el Consorcio AJ Abogados. 1.2 DESCRIPCIÓN DEL PROBLEMA En el Consorcio AJ abogados a diario se maneja un gran flujo de información del cual se derivan las diferentes labores, dicha información no es debidamente organizada por lo cual se pierde veracidad, aumentan los tiempos de respuesta y se extravían documentos lo cual conlleva a la perdida de diligencias que se programan en cada uno de los procesos judiciales y como última consecuencia la perdida de dinero. La falta de un sistema de información eficiente hace que los procesos se vuelvan más lentos, dispendiosos y se tenga que recurrir a métodos manuales, como por ejemplo listados hechos a mano o en el mejor de los casos recurren al uso de programas que no son los mas adecuados para el manejo de información vital en esta oficina jurídica, ya que en estos aplicativos no manejan términos jurídicos y se genera contrariedad entre una información y otra, es el caso de Excel, en el que suelen usar varias tablas para almacenar la misma información, es decir existe redundancia de información y muchas veces no es la misma información entre un tabla y otra referente a un mismo caso. 1 Para más información consulte la siguiente dirección: http://sistemas.dgsca.unam.mx/publica/pdf/jur.PDF, 22 de febrero de 2007 8:30 p.m. 2 Por otro lado la información es manipulada por personas ajenas a este oficio y no existe ningún tipo de seguridad con respecto a la documentación, dado que la información es sensible y confidencial ya que esta tiene que ver con los datos personales de cada cliente e información que se relaciona directamente con los procesos judiciales, como son los datos del demandante, el demandado, el tipo de proceso y lo que ocurre con cada proceso. FORMULACIÓN DEL PROBLEMA ¿Cómo desarrollar un software que permita el manejo eficiente y seguro de la información de los procesos en el Consorcio AJ Abogados? 1.3 JUSTIFICACIÓN Se hace necesario realizar este proyecto para el área jurídica con el fin de agilizar todo trámite ejecutado en el Consorcio AJ Abogados, la tecnología siempre ayuda a mejorar los procesos y si se aplica al ámbito jurídico puede ser muy provechoso para el mejoramiento de tiempos en cuanto a la resolución de casos y generaría simplicidad para la secretaria o el mismo abogado al realizar procesos como por ejemplo; al momento de requerir alguna información sobre algún caso que sea necesario, además no solo se verían beneficiados los abogados sino también las personas que acuden a ellos ya que habría una mayor productividad, con esto se obtendrán mayores ingresos para la oficina ya que si existe una rápida respuesta se podrá atender nuevos casos y además se reduciría en gastos de papelería para las listas hechas a mano. Es un proyecto importante que merece ser desarrollado, del cual se pueden obtener muchas retribuciones económicas ya que los abogados encontrarían en este aplicativo una gran herramienta. Además cabe destacar que las aplicaciones que se encuentran disponibles en el mercado tiene licencias para su funcionamiento por lo cual son muy costosos, este proyecto se desarrollará en software libre con esto permitirá que el software pueda ser usado sin necesidad de pagar por una licencia para el motor de base de datos. 1.4 OBJETIVOS 1.4.1 OBJETIVO GENERAL Desarrollar un aplicativo cliente/servidor para la sistematización de los procesos judiciales en el consorcio AJ abogados. 3 1.4.2 OBJETIVOS ESPECÍFICOS Analizar los procesos de registro y seguimiento de la información jurídica del consorcio de abogados. Determinar los requerimientos funcionales y no funcionales. Diseñar el modelo de la base de datos y la interfaz gráfica. Implementar el modelo de la base de datos y la interfaz gráfica. 1.5 ALCANCES Y LIMITACIONES 1.5.1 ALCANCES El trabajo culmina con el desarrollo del aplicativo cliente/servidor para el Consorcio AJ Abogados. Este aplicativo incluye registro y seguimiento de procesos judiciales mediante una interfaz gráfica y una base de datos en la cual se almacenará toda la información, permitiendo al usuario adquirir más confianza sobre la veracidad de los datos almacenados y la reducción en tiempos en cuanto a la ejecución de los casos judiciales. Con el desarrollo de este aplicativo permitirá realizar seguimientos más detallados de todo proceso realizado en el Consorcio AJ Abogados con toda seguridad, confianza y respaldo que ofrece esta oficina. 1.5.2 LIMITACIONES Este proyecto seguirá las normas y leyes vigentes, si en algún momento estas son modificadas durante o después de la realización del proyecto no serán contempladas tales modificaciones. 4 2. MARCO DE REFERENCIA 2.1 MARCO TEÓRICO – CONCEPTUAL 2.1.1 Metodologías a. Programación Extrema La programación extrema o eXtreme Programming (XP) es un enfoque de la ingeniería de software formulado por Kent Beck, autor del primer libro sobre la materia, Extreme Programming Explained: Embrace Change (1999). Es la más destacada de los procesos ágiles de desarrollo de software. Al igual que éstos, la programación extrema se diferencia de las metodologías tradicionales principalmente en que pone más énfasis en la adaptabilidad que en la previsibilidad. Los defensores de XP consideran que los cambios de requisitos sobre la marcha son un aspecto natural, inevitable e incluso deseable del desarrollo de proyectos. Creen que ser capaz de adaptarse a los cambios de requisitos en cualquier punto de la vida del proyecto es una aproximación mejor y más realista que intentar definir todos los requisitos al comienzo del proyecto e invertir esfuerzos después en controlar los cambios en los requisitos. Se puede considerar la programación extrema como la adopción de las mejores metodologías de desarrollo de acuerdo a lo que se pretende llevar a cabo con el proyecto, y aplicarlo de manera dinámica durante el ciclo de vida del software 2. b. Programación RUP El Proceso Unificado Racional (Rational Unified Process en inglés, habitualmente resumido como RUP) es un proceso de desarrollo de software y junto con el Lenguaje Unificado de Modelado UML, constituye la metodología estándar más utilizada para el análisis, implementación y documentación de sistemas orientados a objetos. El RUP no es un sistema con pasos firmemente establecidos, sino un conjunto de metodologías adaptables al contexto y necesidades de cada organización. También se conoce por este nombre al software desarrollado por Rational, hoy propiedad de IBM, el cual incluye información entrelazada de diversos artefactos y descripciones de las diversas actividades. Está incluido en el Rational Method Composer (RMC), que permite la personalización de acuerdo a necesidades. 2 http://es.wikipedia.org/wiki/Programaci%C3%B3n_Extrema, 13 de abril de 2008, hora: 3:10 p.m. 5 Originalmente se diseñó un proceso genérico y de dominio público, el Proceso Unificado, y una especificación más detallada, el Rational Unified Process, que se vendiera como producto independiente3 c. Métrica V3 Métrica tiene ya varios años de vida y su actual versión, la 3, se crea con la finalidad de incorporar las nuevas técnicas derivadas de la programación y el análisis orientado a objetos, al proceso de desarrollo de software que a través de esta metodología las administraciones públicas españolas pretenden llevar a cabo. Métrica debería ser obligatoria en cuantos contratos de desarrollo de software realiza la administración pública, sin embargo su utilización aún no está suficientemente universalizada. Todavía es frecuente ver concursos públicos donde no se establece la obligatoriedad para el contratante de seguir las pautas de métrica a la hora de llevar a cabo un proceso de construcción de software. Todo proyecto Métrica 3 consta de un conjunto de fases que se desglosan en múltiples puntos cuya cronología hay que seguir con claridad para ir avanzando en el desarrollo del proyecto.4 d. Microsoft Solution Framework (MSF) La metodología de Microsoft Solution Framework, ya que será muy útil en proyectos que requieran un desarrollo ágil de primeras versiones funcionales que luego serán sustituidas por versiones posteriores que las mejoren. Esta metodología combina los principios de los modelos cascada y espiral, proponiendo una secuencia generalizada de actividades para el desarrollo de software. La planificación basada en punto de control y beneficios de la retroalimentación del cliente constituye un proyecto bien planificado con lo cual tenemos más posibilidades de éxito en nuestro proyecto. MSF es un proceso para el manejo de proyecto, el acercamiento al desarrollo rápido con herramientas CASE y la programación extrema se puede utilizar para poner un proyecto en ejecución. 3 4 http://es.wikipedia.org/wiki/Proceso_Unificado_de_Rational, 13 de abril de 2008, 3:21pm http://www.csi.map.es/csi/metrica3/introduccion.pdf, 13 de abril de 2008, 3:32 p.m. 6 Fase 1: Previsión Fase 2: Planeación Fase 3: Desarrollo Fase 4: Estabilización Fase 5: Implementación Algunas características de esta metodología son: Combina la claridad que plantea el modelo en cascada y las ventajas de los puntos de transición del modelo en espiral. Es un método interativo. Administración de riesgos y del proyecto. Cada una de las fases comprende una parte de desarrollo del proyecto para lo cual se explicara cada una de las mismas: a. FASE 1° - PREVISIÓN Descripción: - Es la primera fase de modelo MSF - Se pretende dar una visión general del proyecto. - Identifica las tareas y los entregables que permiten al equipo a cumplir con los requerimientos y objetivos del proyecto. - Esta fase culmina con el punto de control Visión/Alcance. 7 b. FASE 2° - PLANIFICACIÓN Descripción: - En esta fase se realiza la preparación de la especificación funcional, diseño de la solución, planes de trabajo, costes estimados y calendarios para los entregables. - Implica la recogida y el análisis de los requerimientos de negocio, de usuario, operacionales y de sistema. c. FASE 3° - DESARROLLO Descripción: - La meta de la fase de desarrollo es la construcción de los elementos y entregables de la solución, incluidos los códigos de los componentes, infraestructura (software, hardware, red) y la documentación para el uso de las operaciones. d. FASE 4° - ESTABILIZACIÓN Descripción: - La solución se pasa un entorno real de exploración. - Determinar que la solución cumple los criterios de calidad necesarios para pasar a la fase de despliegue. - Reproducción de condiciones reales y el equipo se concentra en detectar y priorizar errores, reparando la solución para su despliegue. e. FASE 5° - IMPLEMENTACIÓN Descripción: - Es la última fase de modelo, en la cual se instalan los componentes, se estabiliza el proyecto y se obtiene la aprobación por parte del cliente. Para cumplir con las fases que impone esta metodología se debe tener en cuenta la elaboración de ciertos diagramas que ayudarán a mejorar el entendimiento de los procesos que va a realizar el aplicativo. 8 PROGRAMACIÓN EXTREMA PROGRAMACIÓN RUP 9 Facilidad de replanteamiento Retroalimentación Costos personal El cliente solo interfiere al iniciar el proyecto Desarrollo de software a largo plazo MÉTRICA V. 3 La realiza un solo equipo de trabajo El equipo se compone de 5 personas por lo cual Al ser un desarrollo rápido se requiere menos Al ser un desarrollo dispendioso con l eva a más el costo de desarrollo se incrementa inversión gastos Adaptable a la cantidad de personal disponible considerablemente En cada una de las fases el usuario se ve Constante, se añaden funcionalidades envuelto por el progreso del proyecto con la cual La retroalimentación solo incluye a los solicitadas por el cliente a medida que se Por intervalos de tiempo amplios en los que no existen mas probabilidades de éxito en el integrantes del equipo de trabajo más no al desarrolla se tiene en cuenta el cliente proyecto cliente Se obtiene en el momento en el que cliente Los requerimientos se definen al empezar el Se permiten modificaciones en cualquier fase analíza los entregables en la terminación de Se permiten modificaciones en los puntos de proyecto por lo que la replantación incumbe la del proyecto cada iteración del proyecto control de cada fase realización del mismo desde el principio Desarrollo de software a corto plazo Desarrollo de software a largo plazo Intervención constante del cliente en cada una de las iteraciones Intervención indirecta del cliente en le desarrollo Participación directa del cliente El grupo de trabajo se enfocaliza en una misma En equipos dependiendo de la cantidad de Distribución del trabajo parte del proyecto Se dividen partes del proyecto en grupos personal CRITERIOS Tiempo de desarrollo Intervención cliente MICROSOFT SOLUTION FRAMEWORK (MSF) Adaptable a cualquier tipo de proyecto sin impedimento de duración CUADRO COMPARATIVO DE METODOLOGÍAS Tabla 1. Cuadro comparativo metodologías 2.1.2. Lenguajes de programación a. JSP Con JSP se pueden crear aplicaciones web que se ejecuten en variados servidores web, de múltiples plataformas, ya que Java es en esencia un lenguaje multiplataforma. Las páginas JSP están compuestas de código HTML/XML mezclado con etiquetas especiales para programar scripts de servidor en sintaxis Java. Por tanto, las JSP podremos escribirlas con nuestro editor HTML/XML habitual. El motor de las páginas JSP está basado en los servlets de Java -programas en Java destinados a ejecutarse en el servidor-, aunque el número de desarrolladores que pueden afrontar la programación de JSP es mucho mayor, dado que resulta mucho más sencillo aprender que los servlets. En JSP creamos páginas de manera parecida a como se crean en ASP o PHP otras dos tecnologías de servidor-. Generamos archivos con extensión .jsp que incluyen, dentro de la estructura de etiquetas HTML, las sentencias Java a ejecutar en el servidor. Antes de que sean funcionales los archivos, el motor JSP lleva a cabo una fase de traducción de esa página en un servlet, implementado en un archivo class (Byte codes de Java). Esta fase de traducción se lleva a cabo habitualmente cuando se recibe la primera solicitud de la página .jsp, aunque existe la opción de precompilar en código para evitar ese tiempo de espera la primera vez que un cliente solicita la página.5 b. PHP PHP es un lenguaje de programación usado generalmente para la creación de contenido para sitios Web. PHP es el (acrónimo recursivo de "PHP: Hypertext Preprocessor", inicialmente PHP Tools, o Personal Home Page Tools) es un lenguaje interpretado usado para la creación de aplicaciones para servidores, o creación de contenido dinámico para sitios Web, y últimamente también para la creación de otro tipo de programas incluyendo aplicaciones con interfaz gráfica usando la librería GTK+. Los principales usos del PHP son los siguientes: 5 Programación de páginas web dinámicas, habitualmente en combinación con el motor de base datos MySQL, aunque cuenta con soporte nativo para otros motores, incluyendo el estándar ODBC, lo que amplía en gran medida sus posibilidades de conexión. Programación en consola, al estilo de Perl o Shell scripting. http://www.desarrolloweb.com/articulos/831.php, 13 de abril de 2008, 5:03 p.m. 10 Creación de aplicaciones gráficas independientes del navegador, por medio de la combinación de PHP y Qt/GTK+, lo que permite desarrollar aplicaciones de escritorio en los sistemas operativos en los que está soportado. Características Es un lenguaje multiplataforma. Capacidad de conexión con la mayoría de los manejadores de base de datos que se utilizan en la actualidad, destaca su conectividad con MySQL Capacidad de expandir su potencial utilizando la enorme cantidad de módulos (llamados ext's o extensiones). Posee una amplia documentación en su página oficial, entre la cual se destaca que todas las funciones del sistema están explicadas y ejemplificadas en un único archivo de ayuda. Es libre, por lo que se presenta como una alternativa de fácil acceso para todos. Permite las técnicas de Programación Orientada a Objetos. Biblioteca nativa de funciones sumamente amplia e incluida No requiere definición de tipos de variables. Tiene manejo de excepciones.6 Tabla 2. Cuadro comparativo de lenguajes de programación CUADRO COMPARATIVO LENGUAJES DE PROGRAMACION CRITERIOS Cantidad de usuarios JSP Se usa cuando son aplicaciones mas complejas y que requieren de mas lógica Requiere un servidor más potente para ejecutar la página web Se usa la programación orientada a objetos Soporta una cantidad de usuarios es superior a 100 Costos de hosting Son elevados para publicar la página Complejidad Tipo de servidor Tipo de programación 6 http://es.wikipedia.org/wiki/.php, 13 de abril de 2008, 5:09 p.m. 11 PHP Se debe utilizar si la aplicación es sencilla con un grado menor de lógica No requiere un servidor de grandes características para ejecutar el proyecto Se usa programación estructurada Diseñado para soportar pocos usuarios Existen hosting gratuitos para publicar la página en internet 2.1.3 Motores de bases de datos a. PostgreSQL Los sistemas de mantenimiento de Bases de Datos relacionales tradicionales (DBMS, s) soportan un modelo de datos que consisten en una colección de relaciones con nombre, que contienen atributos de un tipo específico. En los sistemas comerciales actuales, los tipos posibles incluyen numéricos de punto flotante, enteros, cadenas de caracteres, cantidades monetarias y fechas. Esto generalmente reconocido que este modelo será inadecuado para las aplicaciones futuras de procesado de datos. El modelo relacional sustituyó modelos previos en parte por su "simplicidad espartana". Sin embargo, como se ha mencionado, esta simplicidad también hace muy difícil la implementación de ciertas aplicaciones. Postgres ofrece una potencia adicional sustancial al incorporar los siguientes cuatro conceptos adicionales básicos en una vía en la que los usuarios pueden extender fácilmente el sistema. Clases Herencia Tipos Funciones Otras características aportan potencia y flexibilidad adicional: Restricciones (Constraints) Disparadores (triggers) Reglas (rules) Integridad transaccional Estas características colocan a Postgres en la categoría de las Bases de Datos identificadas como objeto-relacionales. Nótese que éstas son diferentes de las referidas como orientadas a objetos, que en general no son bien aprovechables para soportar lenguajes de Bases de Datos relacionales tradicionales. Postgres tiene algunas características que son propias del mundo de las bases de datos orientadas a objetos. De hecho, algunas Bases de Datos comerciales han incorporado recientemente características en las que Postgres fue pionera.7 7 http://es.tldp.org/Postgresql-es/web/navegable/tutorial/intro.html, 13 de abril de 2008, 5:20 p.m. 12 b. MySQL MySQL es un sistema de gestión de base de datos relacional, multihilo y multiusuario con más de seis millones de instalaciones. MySQL AB desarrolla MySQL como software libre en un esquema de licenciamiento dual. Por un lado lo ofrece bajo la GNU GPL, pero, empresas que quieran incorporarlo en productos privativos pueden comprar a la empresa una licencia que les permita ese uso. Está desarrollado en su mayor parte en ANSI C. Al contrario de proyectos como el Apache, donde el software es desarrollado por una comunidad pública, y el copyright del código está en poder del autor individual, MySQL es propiedad y está patrocinado por una empresa privada, que posee el copyright de la mayor parte del código. Esto es lo que posibilita el esquema de licenciamiento anteriormente mencionado. Además de la venta de licencias privativas, la compañía ofrece soporte y servicios. Para sus operaciones contratan trabajadores alrededor del mundo que colaboran vía Internet. MySQL AB fue fundado por David Axmark, Allan Larsson, y Michael Widenius. Aplicaciones MySQL es muy utilizado en aplicaciones web como MediaWiki o Drupal, en plataformas (Linux/Windows-Apache-MySQL-PHP/Perl/Python), y por herramientas de seguimiento de errores como Bugzilla. Su popularidad como aplicación web está muy ligada a PHP, que a menudo aparece en combinación con MySQL. MySQL es una base de datos muy rápida en la lectura cuando utiliza el motor no transaccional MyISAM, pero puede provocar problemas de integridad en entornos de alta concurrencia en la modificación. En aplicaciones web hay baja concurrencia en la modificación de datos y en cambio el entorno es intensivo en lectura de datos, lo que hace a MySQL ideal para este tipo de aplicaciones. MySQL funciona sobre múltiples plataformas, incluyendo AIX, BSD, FreeBSD, HPUX, GNU/Linux, Mac OS X, NetBSD, Novell NetWare, OpenBSD, OS/2 Warp, QNX, SGI IRIX, Solaris, SunOS, SCO OpenServer, SCO UnixWare, Tru64, Windows 95, Windows 98, Windows NT, Windows 2000, Windows XP, Windows Vista y otras versiones de Windows. MySQL es un sistema de administración de bases de datos. 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 y procesar datos guardados en un computador, se necesita un administrador como MySQL Server. Dado que los computadores son muy buenos manejando 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. 13 MySQL es un sistema de administración relacional de bases de datos. 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. MySQL es software de fuente abierta. Fuente abierta significa que es posible para cualquier persona usarlo y modificarlo. Cualquier persona puede bajar el código fuente de MySQL y usarlo sin pagar. Cualquier interesado puede estudiar el código fuente y ajustarlo a sus necesidades. MySQL usa el GPL (GNU General Public License) para definir qué puede hacer y que no puede hacer con el software en diferentes situaciones. Si no se ajusta al GLP o requiere introducir código MySQL en aplicaciones comerciales, se puede comprar una versión comercial licenciada. Características Distintivas Las siguientes características son implementadas únicamente por MySQL: Múltiples motores de almacenamiento (MyISAM, Merge, InnoDB, BDB, Memory/heap, MySQL Cluster, Federated, Archive, CSV, Blackhole y Example en 5.x), permitiendo al usuario escoger la que sea más adecuada para cada tabla de la base de datos. Agrupación de transacciones, reuniendo múltiples transacciones de varias conexiones para incrementar el número de transacciones por segundo. Características Generales Un amplio subconjunto de ANSI SQL 99, y varias extensiones. Soporte a Multiplataforma. Procedimientos almacenados. Triggers Cursors Vistas Actualizables. Soporte a Varchar. Information Schema. Modo Strict. Motores de almacenamiento independientes (MyISAM para lecturas rápidas, InnoDB para transacciones e integridad referencial). Transacciones con los motores de almacenamiento InnoDB, BDB Y Cluster; puntos de recuperación (savepoints) con InnoDB. Soporte para SSL. Query caching. 14 Sub-SELECTs (o SELECTs anidados). Indexing y buscando campos de texto completos usando el motor de almacenamiento MyISAM. Soporte completo para Unicode. Conforme a las reglas ACID usando los motores InnoDB, BDB y Cluster. Uso de multihilos mediante hilos del kernel. Usa tablas en disco b-tree para búsquedas rápidas con compresión de índice. Completo soporte para cláusulas group by y order by, soporte de funciones de agrupación. Completo soporte para operadores y funciones en cláusulas select y where. Soporta gran cantidad de datos. MySQL Server tiene bases de datos de hasta 50 millones de registros. Se permiten hasta 64 índices por tabla (32 antes de MySQL 4.1.2). Cada índice puede consistir desde 1 hasta 16 columnas o partes de columnas. El máximo ancho de límite son 1000 bytes (500 antes de MySQL 4.1.2).8 Tabla 3. Cuadro comparativo motores bases de datos CUADRO COMPARATIVO MOTORES BASES DE DATOS CRITERIOS PostgreSQL Garantiza un número ilimitado de bases de datos Crecimiento y tablas con tamaño de hasta 32 TB Gran parte de la documentación se encuentra en La documentación es amplia y de gran variedad inglés, además es escasa y en Colombia hasta Soporte de autores, en varios idiomas ahora se esta masificando Modelo Trabaja con modelo de datos relacional Trabaja con modelo de datos relacional Consume pocos lo que lo hace muy adaptable a Consume gran cantidad de recursos de la Recursos máquinas con pocos recursos máquina Es dos o tres veces mas lento que MySQL en Velocidad de transacción Al momento de hacer operaciones es muy ágil cuanto a la realización de operaciones 8 MySQL Soporta bases de datos pequeñas con poca cantidad de datos http://es.wikipedia.org/wiki/MySQL, 13 de abril de 2008, 5:23p.m. 15 2.1.4 Lenguaje Unificado Modelado Lenguaje Unificado de Modelado (UML, por sus siglas en inglés, Unified Modeling Language) es el lenguaje de modelado de sistemas de software más conocido y utilizado en la actualidad; aún cuando todavía no es un estándar oficial, está respaldado por el OMG (Object Management Group). 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. 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. UML cuenta con varios tipos de diagramas, los cuales muestran diferentes aspectos de las entidades representadas. En UML 2.0 hay 13 tipos diferentes de diagramas. Para comprenderlos de manera concreta, a veces es útil categorizarlos jerárquicamente, como son: Diagramas de estructura enfatizan en los elementos que deben existir en el sistema modelado: Diagrama de Clases. Diagrama de Componentes. Diagrama de Objetos. Diagrama de Estructura Compuesta. Diagrama de Despliegue. Diagrama de Paquetes. Diagramas de comportamiento enfatizan en lo que debe suceder en el sistema modelado: Diagrama de Actividades. Diagrama de Casos de Uso. Diagrama de Estados. 16 Diagramas de Interacción, un subtipo de diagramas de comportamiento, que enfatiza sobre el flujo de control y de datos entre los elementos del sistema modelado: Diagrama de Secuencia. Diagrama de Colaboración. Diagrama de Tiempos. Diagrama de Vista de Interacción. 2.1.5 Sistemas Distribuidos Sistemas cuyos componentes hardware y software, que están en ordenadores conectados en red, se comunican y coordinan sus acciones mediante el paso de mensajes, para el logro de un objetivo. Se establece la comunicación mediante un protocolo prefijado por un esquema cliente-servidor. Características: Concurrencia.- Esta característica de los sistemas distribuidos permite que los recursos disponibles en la red puedan ser utilizados simultáneamente por los usuarios y/o agentes que interactúan en la red. Carencia de reloj global.- Las coordinaciones para la transferencia de mensajes entre los diferentes componentes para la realización de una tarea, no tienen una temporización general, esta más bien distribuida a los componentes. Fallos independientes de los componentes.- Cada componente del sistema puede fallar independientemente, con lo cual los demás pueden continuar ejecutando sus acciones. Esto permite el logro de las tareas con mayor efectividad, pues el sistema en su conjunto continua trabajando. a. Cliente-Servidor Sistema donde el cliente es una máquina que solicita un determinado servicio y se denomina servidor a la máquina que lo proporciona. Los servicios pueden ser: Ejecución de un determinado programa. Acceso a un determinado banco de información. Acceso a un dispositivo de hardware. Es un elemento primordial, la presencia de un medio físico de comunicación entre las máquinas, y dependerá de la naturaleza de este medio la viabilidad del sistema. 17 Categorías de Servidores: A continuación se presenta una lista de los servidores más comunes: Servidores de archivos.- Proporciona archivos para clientes. Si los archivos no fueran tan grandes y los usuarios que comparten esos archivos no fueran muchos, esto sería una gran opción de almacenamiento y procesamiento de archivos. El cliente solicita los archivos y el servidor los ubica y se los envía. Servidores de Base de Datos.- Son los que almacenan gran cantidad de datos estructurados, se diferencian de los de archivos pues la información que se envía está ya resumida en la base de datos. Ejemplo: El Cliente hace una consulta, el servidor recibe esa consulta (SQL) y extrae solo la información pertinente y envía esa respuesta al cliente. Servidores de Software de Grupo.- El software de grupo es aquel, que permite organizar el trabajo de un grupo. El servidor gestiona los datos que dan soporte a estas tareas. Por ejemplo: almacenar las listas de correo electrónico. El Cliente puede indicarle, que se ha terminado una tarea y el servidor se lo envía al resto del grupo. Servidores WEB.- Son los que guardan y proporcionan Páginas HTML. El cliente desde un browser o link hace un llamado de la página y el servidor recibe el mensaje y envía la página correspondiente. Servidores de correo.- Gestiona el envío y recepción de correo de un grupo de usuarios (el servidor no necesita ser muy potente). El servidor solo debe utilizar un protocolo de correo. Servidor de objetos.- Permite almacenar objetos que pueden ser activados a distancia. Los clientes pueden ser capaces de activar los objetos que se encuentran en el servidor. Servidores de impresión.- Gestionan las solicitudes de impresión de los clientes. El cliente envía la solicitud de impresión, el servidor recibe la solicitud y la ubica en la cola de impresión, ordena a la impresora que lleve a cabo las operaciones y luego avisa a la computadora cliente que ya acabo su respectiva impresión. Servidores de aplicación.- Se dedica a una única aplicación. Es básicamente una aplicación a la que pueden acceder los clientes. 18 Arquitecturas Cliente / Servidor A continuación mostramos las arquitecturas cliente-servidor más populares: Arquitectura Cliente-Servidor de Dos Capas.- Consiste en una capa de presentación y lógica de la aplicación; y la otra de la base de datos. Normalmente esta arquitectura se utiliza en las siguientes situaciones: Cuando se requiera poco procesamiento de datos en la organización. Cuando se tiene una base de datos centralizada en un solo servidor. Cuando la base de datos es relativamente estática. Cuando se requiere un mantenimiento mínimo. Arquitectura Cliente-Servidor de Tres Capas- Consiste en una capa de la Presentación, otra capa de la lógica de la aplicación y otra capa de la base de datos. Normalmente esta arquitectura se utiliza en las siguientes situaciones: Cuando se requiera mucho procesamiento de datos en la aplicación. En aplicaciones donde la funcionalidad este en constante cambio. Cuando los procesos no están relativamente muy relacionados con los datos. Cuando se requiera aislar la tecnología de la base de datos para que sea fácil de cambiar. Cuando se requiera separar el código del cliente para que se facilite el mantenimiento. Esta muy adecuada para utilizarla con la tecnología orientada a objetos. Clasificación de los sistemas cliente servidor: A continuación mostramos la clasificación de de los sistemas cliente/servidor de acuerdo al nivel de abstracción del servicio que ofrecen: a. Representación distribuida.- La interacción con el usuario se realiza en el servidor, el cliente hace de pasarela entre el usuario y el servidor. 19 Figura 1. Representación distribuida b. Representación Remota.-La lógica de la aplicación y la base de datos se encuentran en el servidor. El cliente recibe y formatea los datos para interactuar con el usuario. Figura 2. Representación remota c. Lógica Distribuida.- El cliente se encarga de la interacción con el usuario y de algunas funciones triviales de la aplicación. Por ejemplo controles de rango de campos, campos obligatorios, etc. Mientras que el resto de la aplicación, junto con la base de datos, están en el servidor. Figura 3. Lógica distribuida 20 d. Gestión Remota de Datos.- El cliente realiza la interacción con el usuario y ejecuta la aplicación y el servidor es quien maneja los datos. Figura 4. Gestión remota de datos e. Base de Datos Distribuidas.- El cliente realiza la interacción con el usuario, ejecuta la aplicación, debe conocer la topología de la red, así como la disposición y ubicación de los datos. Se delega parte de la gestión de la base de datos al cliente. Figura 5. Bases de datos distribuidos f. Cliente servidor a tres niveles.- El cliente se encarga de la interacción con el usuario, el servidor de la lógica de aplicación y la base de datos puede estar en otro servidor. Figura 6. Cliente servidor a tres niveles 21 2.2 MARCO LEGAL Colombia es un Estado Social de Derecho, que garantiza la convivencia, la participación, la justicia y los derechos de todos los ciudadanos a través de su constitución política como norma suprema, presentando una serie de principios generales protegen los derechos fundamentales de las personas, como también normas básicas que permiten la organización del Estado tanto política, administrativa, como territorialmente. Paralelamente a la Constitución Nacional existen unas normas inferiores, pero no menos importantes, que nos regulan en casos y situaciones especificas, que no permiten también ejercer nuestros derechos como también nos dicta lo deberes que debemos cumplir como ciudadanos de este país. El derecho está dividido en ramas, y estas son las siguientes: CIVIL, PENAL, COMERCIAL, ADMINISTRATIVO, LABORAL, POLICIVO, DE FAMILIA Y AGRARIO, en lo que respecta a nuestro trabajo nos vamos a centrar únicamente en el ramo civil, para dar una limitación al desarrollo del mismo. Para el caso de este proyecto se aplica una de estas ramas, la CIVIL, que compila sus normas en el Código Civil; el Código Civil tiene sus orígenes en chile mediados del siglo XIX, gracias a dos Andrés Bello quien fue su creador. El código civil rige las relaciones entre personas ya sea Naturales o Jurídicas, como por ejemplo de las personas en cuanto a su nacionalidad y domicilio, en cuanto al principio y fin de la existencia de las personas, del matrimonio en cuanto a la nulidad, efectos y disolución, de las obligaciones y derechos entre cónyuges, también de los bienes y de su dominio, uso y goce, de la sucesión por causa de muerte y de las donaciones entre vivos y de las obligaciones en general y de los contratos. 22 3. METODOLOGÍA 3.1 ENFOQUE DE LA INVESTIGACIÓN Empírico-analítico: cuyo interés es el técnico, orientado a la interpretación y transformación del mundo material. 3.2 LÍNEA DE INVESTIGACIÓN / SUB-LÍNEA DE FACULTAD/ CAMPO TEMÁTICO DEL PROGRAMA Tecnologías Actuales y Sociedad / Sistema de Información y Comunicación / Desarrollo de Software. 23 4. DESARROLLO DEL PROYECTO A partir del análisis de las metodologías ya mencionadas se define que la metodología más adecuada para la realización de este proyecto es la Microsoft Solution Framework ya que esta metodología ofrece una comunicación directa con el cliente, una amplia documentación del proyecto y además se acomoda a los tiempos de desarrollo. Ya definida la metodología a utilizar se procede a desarrollar cada una de sus fases de la siguiente manera. 4.1 FASE 1°- PREVISION Esta fase que fue conceptualizada en el marco teórico comprende la definición del problema, los antecedentes, los objetivos generales y específicos, los alcances y limitaciones, por ende esta fase desarrollada en el capítulo 1 del presente proyecto, lo único que no se encuentra definido dentro del capítulo nombrado son los requerimientos definidos por el usuario, estos se nombraran a continuación: REQUERIMIENTOS FUNCIONALES Registrar información completa de los clientes: Número de Cédula, Nombre, Apellido, Dirección, Teléfono Fijo, Teléfono Móvil, Barrio, Localidad. Registrar información de los procesos judiciales con: Número de proceso, Código de Juzgado, Código Tipo Proceso, Número de Documento de la Contraparte, Nombre, Apellido, dirección, teléfono de la Contraparte. Vincular la información de los clientes almacenada a un formulario que muestre los datos de la cedula, dirección, teléfono, etc. Vincular la información de los procesos almacenada a un formulario que muestre los datos del número del proceso, el demandante, el historial de las actuaciones, etc. La aplicación debe calcular los términos de las actuaciones e informar cuando en un proceso se esté venciendo un término. Restringir el acceso a ciertas funciones, de acuerdo al perfil del usuario. La información de los barrios debe contener también la información de la localidad a la que pertenece. Cada cliente debe estar ligado a un número de carpeta, el cual corresponde a un número de proceso y cada proceso a un juzgado. Actualizar la información de los clientes 24 REQUERIMIENTOS NO FUNCIONALES El proyecto debe ser desarrollado en herramientas de software libre Los equipos deben poseer un mínimo de componentes físicos que permitirán funcionamiento correcto del software El aplicativo debe ser desarrollado en ambiente web 4.2 FASE 2° - PLANIFICACIÓN Esta fase comprende el diseño del aplicativo que ayudara a tener un punto base para el desarrollo del mismo, para esto la metodología nos exige varios modelos que deben implementarse para un mejor entendimiento del funcionamiento del software. Figura 7. Caso de Uso Contextual ABOGADO APLICATIVO PARA EL REGISTRO Y SEGUIMIENTO DE LA INFORMACIÓN DE LOS PROCESOS JUDICIALES EN EL CONSORCIO AJ ABOGADOS SECRETARIA GERENTE ADMINISTRADOR Descripción caso de uso contextual: Este caso de uso demuestra los actores que intervienen en el aplicativo de una manera muy general, sin tener un caso de uso concreto dentro del diagrama. 25 Figura 8. Caso de Uso Gerente Nivel 1 Registrar Validar Usuario «extends» Consultar «extends» Autenticar Usuario «extends» Actualizar «extends» GERENTE Validar Contraseña Eliminar Figura 9. Caso de Uso Gerente Nivel 2 «inherits» Registrar «inherits» Registrar Usuarios Registrar Actuaciones «inherits» Validar Usuario «extends» Registrar Procesos «extends» Consultar «inherits» «extends» Consultar Clientes «inherits» Autenticar Usuario «extends» Consulta Procesos Actualizar «extends» «inherits» GERENTE «extends» «inherits» Actualizar Clientes Validar Clave Actualizar Actuaciones Eliminar «inherits» Eliminar Usuarios 26 Descripción caso de uso Gerente: El gerente posee dentro del sistema el permiso para realizar cualquier proceso: registrar, consultar, actualizar y eliminar. Para ello se requiere validación de un usuario y contraseña. Flujo de Eventos 1. El actor introduce el usuario, la contraseña y luego pulsa el botón ingresar. 2. El sistema muestra los vínculos que lo llevará a las diferentes funciones que maneja el sistema. 3. Dependiendo de la opción escogida por el actor este será llevado a una interfaz diferente, cada una de estas cumple unas funciones específicas dentro del sistema, como es registrar, consultar, actualizar o eliminar. 4. Dentro de la opción registrar se encuentran varias opciones que el actor puede elegir como registrar usuarios, actuaciones y procesos, en cada una de estas se registran datos en especifico tal y como su nombre lo indica. 5. Dentro de la opción consultar se encuentran opciones que permitirán una búsqueda efectiva del contenido de la base de datos como son consultar clientes y procesos. 6. Dentro de la opción actualizar se encuentran opciones que permitirán modificar los datos de los clientes y de las actuaciones. 7. Dentro de la opción eliminar le permitirá al actor eliminar únicamente usuarios. Flujos Alternativos Cuando el usuario y contraseña son inválidos arrojará un mensaje de error. Si el actor desea consultar un usuario y este no existe arrojará un mensaje de error. Si el actor desea eliminar un usuario y este no existe arrojará un mensaje de error. 27 Precondiciones El usuario debe estar registrado en la base de datos para poder validar El usuario no podrá realizar ninguna acción que no esté autorizada por el administrador. Los registros que se quieran consultar, eliminar deben estar previamente registrados en la base de datos Figura 10. Caso de Uso Abogado Nivel 1 Registrar Validar Usuario «extends» «extends» Autenticar Usuario Consultar «extends» ABOGADO Validar Contraseña Actualizar Figura 11. Caso de Uso Abogado Nivel 2 «inherits» Registrar Validar Usuario Registrar Actuaciones «inherits» «extends» «extends» Registrar Procesos «inherits» «extends» Autenticar Usuario Consultar Clientes Consultar «inherits» «extends» «extends» Consulta Procesos ABOGADO Validar Clave Actualizar 28 «inherits» Actualizar Actuaciones Descripción caso de uso Abogado: El abogado posee dentro del sistema el permiso para realizar ciertos procesos: registrar, consultar y actualizar. Para ello se requiere validación de un usuario y contraseña. Flujo de Eventos 1. El actor introduce el usuario, la contraseña y luego pulsa el botón ingresar. 2. El sistema muestra los vínculos que lo llevará a las diferentes funciones que maneja el sistema. 3. Dependiendo de la opción escogida por el actor este será llevado a una interfaz diferente, cada una de estas cumple unas funciones específicas dentro del sistema, como es registrar, consultar y actualizar. 4. Dentro de la opción registrar se encuentran varias opciones que el actor puede elegir como registrar procesos y actuaciones, en cada una de estas se registran datos en especifico tal y como su nombre lo indica. 5. Dentro de la opción consultar se encuentran opciones que permitirán una búsqueda efectiva del contenido de la base de datos como son consultar clientes y procesos. 6. Dentro de la opción actualizar la única opción que puede efectuar el actor es modificar las actuaciones. Flujos Alternativos Cuando el usuario y contraseña son inválidos arrojará un mensaje de error. Si el actor desea consultar un cliente y este no existe arrojará un mensaje de error. Precondiciones El usuario debe estar registrado en la base de datos para poder validar El usuario no podrá realizar ninguna acción que no esté autorizada por el administrador. Los registros que se quieran consultar deben estar previamente registrados en la base de datos 29 Figura 12. Caso de Uso Administrador Nivel 1 Registrar Validar Usuario «extends» Consultar «extends» Autenticar Usuario «extends» Actualizar «extends» ADMINISTRADOR Validar Contraseña Eliminar Figura13. Caso de Uso Administrador Nivel 2 «inherits» Registrar «inherits» Registrar Usuarios Registrar Actuaciones «inherits» Validar Usuario «extends» Registrar Procesos «extends» Consultar «inherits» «extends» Consultar Clientes «inherits» Autenticar Usuario «extends» Consulta Procesos Actualizar «extends» «inherits» ADMINISTRADOR «extends» «inherits» Actualizar Clientes Validar Clave Actualizar Actuaciones Eliminar «inherits» Eliminar Usuarios 30 Descripción caso de uso Administrador: El administrador posee dentro del sistema el permiso para realizar cualquier proceso: registrar, consultar, actualizar y eliminar. Para ello se requiere validación de un usuario y contraseña. Flujo de Eventos 1. El actor introduce el usuario, la contraseña y luego pulsa el botón ingresar. 2. El sistema muestra los vínculos que lo llevará a las diferentes funciones que maneja el sistema. 3. Dependiendo de la opción escogida por el actor este será llevado a una interfaz diferente, cada una de estas cumple unas funciones específicas dentro del sistema, como es registrar, consultar, actualizar o eliminar. 4. Dentro de la opción registrar se encuentran varias opciones que el actor puede elegir como registrar usuarios, actuaciones y procesos en cada una de estas se registran datos en especifico tal y como su nombre lo indica. 5. Dentro de la opción consultar se encuentran opciones que permitirán una búsqueda efectiva del contenido de la base de datos como son consultar clientes y procesos. 6. Dentro de la opción actualizar se encuentran opciones que permitirán modificar los datos de los clientes y de las actuaciones. 7. Dentro de la opción eliminar le permitirá al actor eliminar únicamente usuarios. Flujos Alternativos Cuando el usuario y contraseña son inválidos arrojará un mensaje de error. Si el actor desea consultar un usuario y este no existe arrojará un mensaje de error. Si el actor desea eliminar un usuario y este no existe arrojará un mensaje de error. Precondiciones El usuario debe estar registrado en la base de datos para poder validar. 31 Los registros que se quieran consultar, eliminar deben estar previamente registrados en la base de datos Figura 14. Caso de Uso Secretaria Nivel 1 Registrar Validar Usuario «extends» «extends» Autenticar Usuario Consultar «extends» SECRETARIA Validar Contraseña Actualizar Figura 15. Caso de Uso Secretaria Nivel 2 «hereda» Registrar Validar Usuario Registrar Actuaciones «hereda» «extends» «extends» Registrar Procesos «hereda» «extends» Autenticar Usuario Consultar Consultar Clientes «hereda» «extends» Consulta Procesos «extends» SECRETARIA «hereda» Validar Clave Actualizar 32 Actualizar Clientes Descripción caso de uso Secretaria: La secretaria posee dentro del sistema el permiso para realizar ciertos procesos: registrar, consultar y actualizar. Para ello se requiere validación de un usuario y contraseña. Flujo de Eventos 1. El actor introduce el usuario, la contraseña y luego pulsa el botón ingresar. 2. El sistema muestra los vínculos que lo llevará a las diferentes funciones que maneja el sistema. 3. Dependiendo de la opción escogida por el actor este será llevado a una interfaz diferente, cada una de estas cumple unas funciones específicas dentro del sistema, como es registrar, consultar y actualizar. 4. Dentro de la opción registrar se encuentran varias opciones que el actor puede elegir como registrar procesos y actuaciones, en cada una de estas se registran datos en especifico tal y como su nombre lo indica. 5. Dentro de la opción consultar se encuentran opciones que permitirán una búsqueda efectiva del contenido de la base de datos como son consultar clientes y procesos. 6. Dentro de la opción actualizar la única opción que puede efectuar el actor es modificar las actuaciones. Flujos Alternativos Cuando el usuario y contraseña son inválidos arrojará un mensaje de error. Si el actor desea consultar un cliente y este no existe arrojará un mensaje de error. Precondiciones El usuario debe estar registrado en la base de datos para poder validar. Los registros que se quieran consultar deben estar previamente registrados en la base de datos. 33 4.3 FASE 3° - DESARROLLO Para este desarrollo se elaboraron cuadros comparativos que se muestran en el marco teórico, cada uno de ellos se elaboró con el fin de facilitar la definición de la mejor y más aplicable tecnología para el proyecto. De acuerdo a la documentación relacionada con los servidores para el proyecto aplican los sistemas distribuidos, el sistema cliente-servidor con el cual se podrá implementar un tipo de servidor que permita ubicar la base de datos en un solo equipo y que los demás se conecten y envíen al servidor las sentencias SQL para que sean ejecutadas en el motor de base de datos; para esto se utilizará un servidor de base datos que permitirá hacer lo anterior, por los elementos físicos existentes en la oficina y además por qué no requieren dentro del proyecto se puede decir que no aplica ningún otro tipo de servidor. El cuadro comparativo sobre los lenguajes compara dos lenguajes de programación libres JSP y PHP, del análisis de este cuadro se pudo definir que el lenguaje más adecuado para el desarrollo de la aplicación web es PHP por la lógica del mismo y porque PHP se ajusta más a las necesidades que este requiere. Por último un cuadro donde se comparan los motores de base de datos, MySQL y PostgreSQL, aunque ambos son libres y similares se encontró que el más adecuado es MySQL, por la rapidez al generar las transacciones, la amplia documentación que facilita el desarrollo, consume pocos recursos de máquina y además de esto el motor se adapta fácilmente al lenguaje de programación seleccionado anteriormente. Después de haber seleccionado, el lenguaje y el motor de base de datos se procede a instalar un paquete llamado AppServ v. 2.5.9 que incluye: Apache Web Server v. 2.2.4 PHP Script Language v. 5.2.3 MySQL Database v. 5.0.45 Este paquete brinda las herramientas necesarias para el montaje de los diseños elaborados previamente, estas herramientas son un servidor web, un soporte de librerías PHP para desarrollar la interfaz y un motor de base de datos. Para el desarrollo de la base de datos se usó la herramienta case llamada DBDesigner 4, lo que permitió hacer más fácil y rápido la implementación de las tablas. 34 Para el diseño de las interfaces y la programación se instala la aplicación Adobe Dreamweaver CS3. Dentro de la aplicación se utilizó una función que suma fechas, esta se uso para determinar la fecha fin del termino para poder mostrarla en los mensajes que se encuentran en todas las interfaces, esta función consiste en pasar la fecha a segundos y luego suma los días que se determinen también en segundos, después devuelve la fecha en el formato original ya con los días sumados: function suma_fechas1($fecha, $ndias) { list($año, $mes, $dia) = split("-",$fecha); $nueva = mktime(0,0,0, $mes,$dia,$año) + $ndias * 24 * 60 * 60; $nuevafecha = date("Y-m-d",$nueva); return ($nuevafecha); } En cuanto a las líneas especiales de código se encuentran las de conexión a la base de datos, estas consisten en pasar un usuario y una clave al motor de base de datos para que valide el acceso y se abra la conexión. $link=mysql_connect ("localhost", "root", "root"); Después de crear el string de conexión se debe seleccionar la base de datos que se va a trabajar en esta sentencia también exige el string de conexión como parámetro mysql_select_db ("consorcio", $link); Por último se debe generar el query con lo que se ejecutara una acción sobre la base de datos, estas acciones pueden ser de consulta, actualización, eliminación y de inserción $query = mysql_query("select nombre_act, tipo_actuacion where cod_tipo_act ='$cod'"); n_dias from Por último se debe cerrar la conexión a la base de datos con la siguiente sentencia que pide como parámetro el string de conexión: mysql_close($link); 35 Esta función mysql_close() cierra el enlace con la base MySQL que está asociada con el identificador de enlace especificado ($link). Si no se especifica el identificador de enlace, se asume por defecto el último enlace. Normalmente no es necesario cerrar el enlace ya que la aperturas no son persistentes, son cerradas automáticamente al final de la ejecución del script. Se usó un JavaScript para generar alertas de diferentes tipos ya que el lenguaje PHP no permite hacer este tipo de avisos, como se muestra en la siguiente sintaxis: echo" <script language='JavaScript'> alert('no se registro'); </script>"; Para facilitar el diseño de las interfaces se obtuvieron libremente plantillas que fueron modificadas a solicitud del cliente, lo que permitió dar un aspecto agradable y sencillo a la aplicación. 4.4 FASE 4° - ESTABILIZACIÓN La fase estabilización no aplica por qué no está definido en el alcance del proyecto. 4.5 FASE 5° - IMPLEMENTACIÓN La fase implementación no aplica por qué no está definido en el alcance del proyecto. 36 5. PRESUPUESTO PRESUPUESTO CONCEPTO VALOR UNIDAD CANTIDAD VALOR TOTAL ASESOR $20.000/HORA 16 $ 320.000 LIBROS $60.000/C/U 2 $ 120.000 INTERNET $25.000/MES 5 $ 125.000 PAPELERIA $ 70.000 $ 70.000 TOTAL $ 635.000 37 6. CONCLUSIONES Entre las diferentes metodologías que se confrontaron a través de un cuadro comparativo, se esclarecieron todas las características de cada una, por lo cual se escogió la metodología a Microsoft Solution Framework (MSF), lo que permitió un desarrollo ágil del aplicativo. Las herramientas case y los frameworks mejoran los tiempos de desarrollo proporcionando código predefinido y funciones ejecutables de una manera sencilla. El gremio de los abogados no cuenta con la tecnología para trabajar de una manera eficiente generando problemas de tiempos y la complicación de los casos judiciales. 38 BIBLIOGRAFÍA BOOCH Grady, RUMBAUGH James, JACOBSON Ivar, El Lenguaje Unificado de Modelado 2 edición, ED. Pearson, 527pgs. GUTIERREZ Abraham, BRAVO Ginés, PHP5, Alfa omega Ra-Ma, 552pgs. http://es.wikipedia.org/wiki/Portada, Enciclopedia Libre. http://giga4.es/archivos/raiz/moviendoarchivos/2008/febrero/presentacion_tac.pdf http://www.lablaa.org/, Biblioteca Virtual Luis Ángel Arango. http://www.netpecos.org/docs/mysql_postgres/x108.html JENKINS Neil, Redes de área Hispanoamericana, 1995, 309pgs. local (LAN), México, Prentice Hall PÉREZ LÓPEZ Cesar, MySQL: Para Windows y Linux, México, Alfa omega, 2004, 454p. PRESSMAN, Roger S. Ingeniería de Software. Quinta Edición. McGraw-Hill Interamericana. Madrid. 2002. WEITZENFELD Alfredo, Ingeniería de Software Orientada a Objetos con UML java e internet, México, International Thomson Editors, 2005, 678p. 39 ANEXOS Anexo 1. Manual del Usuario SISTEMA DE GESTIÓN CONSORCIO AJ ABOGADOS MANUAL DEL USUARIO 40 INTRODUCCION El aplicativo para el registro y seguimiento de la información de los procesos judiciales en el Consorcio AJ Abogados es una aplicación Web sobre una base de datos relacional en plataforma MySQL e interfaces con PHP, el cual permite sistematizar y apoyar todos los procesos judiciales en el Consorcio AJ Abogados. El presente manual hace referencia a la forma de navegación dentro de los menús de la aplicación, describiendo paso a paso que deberá seguir el usuario final del software (según el perfil) para registrar, actualizar, consultar y eliminar en el sistema de información, los datos relacionados con los procesos judiciales como son sus actuaciones, datos personales del cliente y contraparte. 41 TABLA DE CONTENIDO ENTORNO GENERAL DEL APLICATIVO PARA EL REGISTRO Y SEGUIMIENTO DE LOS PROCESOS JUDICIALES EN EL CONSORCIO AJ ABOGADOS43 ¿Cómo ingresar al aplicativo Consorcio AJ Abogados? 44 ¿Cómo registrar un nuevo usuario en el aplicativo Consorcio AJ Abogados? 44 ¿Cómo registrar un proceso en la base de datos del aplicativo Consorcio AJ Abogados? 45 ¿Cómo actualizo los datos de un cliente en el aplicativo Consorcio AJ Abogados? 48 ¿Cómo registrar una actuación en un proceso en el aplicativo Consorcio AJ Abogados? 49 ¿Cómo modificar el registro de una actuación en el aplicativo? 50 ¿Cómo eliminar usuarios de la aplicación? 52 42 ENTORNO GENERAL DEL APLICATIVO PARA EL REGISTRO Y SEGUIMIENTO DE LOS PROCESOS JUDICIALES EN EL CONSORCIO AJ ABOGADOS El aplicativo está diseñado en ambiente web que posee una barra de menú, alertas y vínculos de interés general estándar para todas las interfaces de registro, consulta, actualización y eliminación de la información. La barra de menú está compuesta por diferentes links que le permitirán al usuario realizar registros, consultas, actualizaciones y eliminaciones, como se puede apreciar en la siguiente figura: 43 ¿Cómo ingresar al aplicativo Consorcio AJ Abogados? Para ingresar al aplicativo solo basta con hacer “doble click” sobre el icono de acceso directo que se encuentra en el escritorio Después de hacer “doble click” se abrirá una ventana del navegador predeterminado que se encuentre instalado en la máquina, donde será validado el Usuario y contraseña. En usuario debe digitar el nombre de usuario que le ha sido asignado. En contraseña debe digitar la clave de acceso. ¿Cómo registrar un nuevo usuario en el aplicativo Consorcio AJ Abogados? En el menú se encuentra un link que le permitirá registrarse: , el cual lo llevará al formulario 44 Una vez se haya creado el nuevo usuario este lo devolverá nuevamente a la página de inicio desde la cual usted podrá ingresar a las funciones de la aplicación y cuando usted haya validado la clave y el usuario se presentará el siguiente formulario que tiene habilitadas todas las funciones que pueden realizar cada uno de los usuarios. ¿Cómo registrar un proceso en la base de datos del aplicativo Consorcio AJ Abogados? Lo primero que se debe hacer es registrar el proceso, llenando todos los campos requeridos (*) en el formulario que aparecerá después de hacer click en el link, en seguida podrá registrar al cliente junto con sus datos personales y por último se registra la contraparte como se ve en la siguiente figura: 45 N° Carpeta: Ingrese el número de la carpeta donde se va archivar. N° Proceso: Ingrese el número del proceso. Tipo de Proceso: Seleccione el tipo de proceso que corresponde. Juzgado: Seleccione el Juzgado. Frente al Tipo de Proceso y Juzgado se encuentra el vínculo nuevo!!!, lo que le permitirá insertar nuevos Tipos de Procesos y Juzgados: Para registrar un nuevo tipo de proceso, únicamente se necesita llenar el campo Tipo Proceso y luego dar Click en el botón Guardar. 46 Para registrar un nuevo juzgado, se requiere llenar los siguientes campos; No. Juzgado: Ingrese el número del juzgado. Nombre: Ingrese el nombre del juzgado. Contacto: Ingrese el nombre de una persona de contacto en ese juzgado. Teléfono: Ingrese el número telefónico del contacto. N° Cédula: Ingrese el número de identificación del cliente. Nombre: Ingrese el nombre del cliente. Apellido: Ingrese el apellido del cliente. Dirección: Ingrese la dirección de residencia del cliente. Teléfono Fijo: Ingrese el número telefónico fijo de contacto al cliente. Teléfono Móvil: Ingrese el número telefónico del móvil del cliente si posee. Barrio: Ingrese el barrio donde reside el cliente. Localidad: Ingrese la localidad a la que pertenece el barrio. N° Identificación: Ingrese el número de identificación de la contraparte. Nombre: Ingrese el nombre de la contraparte. Apellido: Ingrese apellido de la contraparte si posee. 47 Dirección: Ingrese la dirección de ubicación de la contraparte. Teléfono Fijo: Ingrese el número telefónico fijo de contacto a la contraparte. ¿De qué manera puedo consultar un cliente en la base de datos del aplicativo? Hay dos maneras de consultar un cliente, puede ser por su número de cédula ó por su nombre: La consulta permite visualizar todos los datos registrados: ¿Cómo actualizo los datos de un cliente en el aplicativo Consorcio AJ Abogados? Se realiza primero la consulta del cliente que desea actualizar a través del link , mediante de su número de identificación: 48 Después de realizada la consulta, permitirá hacer las modificaciones dentro de los mismos campos de texto: Dando un click en el botón “Actualizar”, este guardará las modificaciones hechas arrojando este mensaje: ¿Cómo registrar una actuación en un proceso en el aplicativo Consorcio AJ Abogados? Este registro se realiza a través del link siguiente formulario: 49 , el cual lo llevará al Fecha de actuación: Es la fecha del día esta se cargará automáticamente ya que es tomada del sistema. Carpeta: Ingrese el número de la carpeta a la cual le va a registrar la actuación Observaciones: Ingrese las anotaciones que crea convenientes Tipo de actuación: Seleccione el tipo de actuación Llenando todos los campos se almacenarán en su carpeta correspondiente, según el tipo de actuación se le asignará una fecha de término y el número de registro: ¿Cómo modificar el registro de una actuación en el aplicativo? Esta operación se encuentra en el vínculo , al dar clic en este se solicitará el número de registro de la actuación que le proporciona el sistema en el momento de registrar la actuación. En caso de olvido puede ser consultado en el historial del proceso: 50 Después de digitar el número del registro de la actuación que desea modificar, al hacer clic en el botón enviar se mostrará la consulta realizada en el siguiente formulario: Este formulario presenta todos los campos con los datos actuales de la actuación, los cuales pueden ser modificados desde ellos mismos. Y por último cuando le de click al botón actualizar le aparecerá un mensaje como el siguiente indicándole que la modificación fue almacenada en la base de datos: 51 ¿Cómo eliminar usuarios de la aplicación? Para la eliminación de usuarios que trabajan con la aplicación cabe recordar que esta función solo podrá ser llevada a cabo por el administrador o el gerente, para ello se debe hacer click sobre el vinculo , este vinculo lo llevará a un nuevo formulario que le pedirá el nombre del usuario que desea eliminar como se muestra en la siguiente figura: A continuación para ejecutar la eliminación deberá dar click sobre el botón eliminar y por último le aparecerá un mensaje confirmando si desea eliminar el usuario, si da clic en aceptar el usuario ha sido eliminado de la base datos, por lo tanto esta persona ya no tendrá acceso a la aplicación. Si da clic en cancelar la operación no será realizada. 52 Anexo 2. Manual Técnico SISTEMA DE GESTIÓN CONSORCIO AJ ABOGADOS MANUAL TÉCNICO 53 DESCRIPCIÓN GENERAL DEL APLICATIVO Descripción General El aplicativo está basado en una base de datos relacional, en la cual se almacenan toda la información de los procesos judiciales, clientes, contrapartes y actuaciones en el Consorcio AJ Abogados. El usuario mediante la interfaz grafica podrá insertar nuevos procesos, clientes, contrapartes y actuaciones en la base de datos, además los datos que se encuentran registrados podrán ser modificados. El aplicativo cuenta con una función de sumar fechas que permite calcular la fecha de término en una actuación procesal. REQUERIMIENTOS Y ASPECTOS TÉCNICOS Última Versión: 1.0 (Mayo de 2008) Idioma en Pantalla: Español Modo de Funcionamiento: Interactivo Modo de Operación: Multiusuario Plataforma Operativa: Windows 95/98/2000/ME/NT/XP/Vista Herramientas de Diseño: Dreamweaver CS3 Requerimientos de Hardware Disco Duro: Memoria RAM: Procesador: 10 GB 256 Mb AMD ó Pentium > 400Mhz INSTALACION Para la instalación del aplicativo se debe tener en cuenta que el servidor debe contar con el motor de base de datos MySQL para poder gestionar la base de datos, además de esto también debe contar con servidor web el más apropiado es el apache 2.2.4, por último se debe aclarar que todos los formularios desarrollados en la herramienta de diseño deben estar copiados en cada uno de los equipos usuarios, dentro de la carpeta C: /AppServ/www. 54 CAMPOS CALCULADOS Para el correcto desarrollo del aplicativo fue necesario agregar una función desarrollada en PHP, como se muestra a continuación: function suma_fechas($fecha,$ndias) { list($año, $mes, $dia) = split("-",$fecha); $nueva = mktime(0,0,0, $mes, $dia, $año) + $ndias * 24 * 60 * 60; $nuevafecha = date("Y-m-d",$nueva); return ($nuevafecha); } Esta función nos permite sumar días a la fecha del sistema, los días a sumar están almacenados en la base de datos. DISEÑO LOGICO Y MODELO DE DATOS Reglas del negocio Cada cliente debe estar relacionado a un número de carpeta, la que corresponde a un número de proceso y cada proceso a un juzgado, este número de carpeta es único e irrepetible. Cada proceso posee unas actuaciones que se muestran como un historial del mismo. Al insertar una nueva actuación se deben contar los días de termino 55 MODELO DE DATOS 56 57 CAMPO Cod_Juz No_Juzgado Contacto Tel_contacto DESCRIPCIÓN CAMPO No. Cedula Cod_Proc DESCRIPCIÓN CAMPO No_cedula Nombre Apellido Dirección Teléfono_fijo Teléfono_mov Cod barrio DESCRIPCIÓN CAMPO Cod_Proc N_Proc Cod_Juz Cod_Tipo_Proc No_doc_deman DESCRIPCIÓN TIPO DATO texto texto texto numérico TIPO DATO texto numérico TIPO DATO texto texto texto texto numérico numérico numérico TIPO DATO texto numérico numérico numérico numérico LONGITUD 12 50 50 10 LONGITUD 13 3 LONGITUD 13 50 50 20 10 10 3 LONGITUD 3 7 12 3 13 Tabla intermedia entre cliente y proceso. LLAVER PRIMARIA LLAVE FORANEA OBLIGATORIO DOMINIO x SI 0 - 999999999999 SI NO NO 0 - 9999999999 TABLA 4 - JUZGADO Tabla intermedia entre cliente y proceso. LLAVER PRIMARIA LLAVE FORANEA OBLIGATORIO DOMINIO x SI 1 - 999999999999 x SI 0 - 999 TABLA 3 - CLIENTE_PROCESO DESCRIPCION número de identificación de juzgado nombre del juzgado nombre del contacto en el juzgado número de teléfono del contacto DESCRIPCION número de identificación del cliente número único para cada expediente Esta tabla contiene la información básica sobre cada uno de los clientes. LLAVER PRIMARIA LLAVE FORANEA OBLIGATORIO DOMINIO DESCRIPCION x SI 1 - 9999999999999 número de identificación del cliente SI nombre del cliente SI apellido cliente SI dirección residencia del cliente SI 2000000-8999999 número telefónico residencia cliente NO 3002000000-3508999999 número celular del cliente X SI 1 - 999 número para identificar del barrio TABLA 2 - CLIENTE Esta tabla contiene la información sobre cada uno de los expedientes como el juzgado, el numero entre otros. LLAVER PRIMARIA LLAVE FORANEA OBLIGATORIO DOMINIO DESCRIPCION x SI 0 - 999 número único para cada expediente SI 0 - 9999999 número de proceso llevado en el juzgado x SI 0 - 999999999999 número único para cada juzgado x SI 0 - 999 número para identificar el tipo de proceso x SI 0 - 999999999999 número para identificar los demandados TABLA 1 - PROCESO DICCIONARIO DE DATOS 58 CAMPO Cod_Act Cod_Proc Cod_Tipo_Act Fecha_Mov Observaciones Fecha_Fin DESCRIPCIÓN CAMPO Cod_Tipo_Act Nombre_Act DESCRIPCIÓN CAMPO No_Localidad Nombre DESCRIPCIÓN CAMPO Cod_Barrio Nombre_bar No_Localidad DESCRIPCIÓN TIPO DATO autonumérico numérico numérico fecha texto fecha TIPO DATO texto texto TIPO DATO texto texto TIPO DATO texto texto numérico 200 LONGITUD 3 3 3 LONGITUD 3 50 LONGITUD 3 50 LONGITUD 3 50 3 DESCRIPCION número de identificación del barrio nombre del barrio número de la localidad a la que pertenece el barrio Tabla intermedia entre proceso y tipo de actuación. LLAVER PRIMARIA LLAVE FORANEA OBLIGATORIO DOMINIO x SI 0 - 999 x SI 0 - 999 x SI SI 01/01/1900 No SI 01/01/1900 TABLA 8 - PROC_TIPO_ACT DESCRIPCION número de identificación de la actuación número de identificación del proceso número de identificación del tipo actuación fecha de la actuación observaciones acerca de la actuación fecha término de la actuación Tabla informativa sobre las actuaciones que tiene un proceso. LLAVER PRIMARIA LLAVE FORANEA OBLIGATORIO DOMINIO DESCRIPCION x SI 0 - 999 número de identificación de la actuación SI nombre de la actuación TABLA 7 - TIPO_ACTUACION Contiene información sobre la localidad donde se encuentra el barrio. LLAVER PRIMARIA LLAVE FORANEA OBLIGATORIO DOMINIO DESCRIPCION x SI 0 - 999 número de la localidad a la que pertenece el barrio SI nombre de la localidad TABLA 6 - LOCALIDAD Contiene información sobre el barrio donde reside el cliente. LLAVER PRIMARIA LLAVE FORANEA OBLIGATORIO DOMINIO x SI 0 - 999 SI x SI 0 - 999 TABLA 5 - BARRIO 59 TIPO DATO texto texto texto texto numérico CAMPO Cod_usuario Usuario Clave DESCRIPCIÓN TIPO DATO texto texto numérico CAMPO TIPO DATO Cod_Proc texto No_doc_deman numérico DESCRIPCIÓN CAMPO No_documento Nombre Apellido Dirección Teléfono DESCRIPCIÓN CAMPO TIPO DATO Cod_Tipo_Proc texto Nombre texto DESCRIPCIÓN LONGITUD 3 50 8 LONGITUD 3 13 LONGITUD 13 50 50 20 10 LONGITUD 3 50 DESCRIPCION número de identificación del tipo de proceso nombre del tipo de proceso DESCRIPCION número de identificación del proceso nombre de identificación del demandado Tabla que contiene los datos que le permitirán al usuario acceder al programa LLAVER PRIMARIA LLAVE FORANEA OBLIGATORIO DOMINIO DESCRIPCION x SI 0 - 999 número de identificación del usuario SI nombre o login para identificación del usuario SI 1 - 99999999 número que será clave personal TABLA 12 - USUARIOS Tabla intermedia entre proceso y demandado LLAVER PRIMARIA LLAVE FORANEA OBLIGATORIO DOMINIO x SI 0 - 999 SI 1 - 9999999999999 TABLA 11 - PROC_DEMANDADO Esta tabla contiene la información básica sobre cada uno de los demandados LLAVER PRIMARIA LLAVE FORANEA OBLIGATORIO DOMINIO DESCRIPCION x SI 1 - 9999999999999 número de identificación del demando SI nombre del demandado SI apellido del demandado No dirección residencia del demandado No 2000000-8999999 número telefónico residencia demandado TABLA 10 - DEMANDADO Tabla informativa sobre los tipo de procesos LLAVER PRIMARIA LLAVE FORANEA OBLIGATORIO DOMINIO x SI 0 - 999 SI TABLA 9 - TIPO_PROCESO ASPECTOS DE SEGURIDAD, MECANISMOS DE ACCESO DE LOS DATOS El aplicativo posee un mecanismo de seguridad que consiste en el control de acceso por medio de un Usuario y Contraseña, lo que permitirá evaluar el perfil de la persona que va ingresar. Cada usuario tiene un perfil específico con ciertas restricciones. 60 GLOSARIO ABOGADO Persona que de conformidad con las exigencias académicas y legales, han obtenido un título que las habilita para defender la justicia, los derechos de la sociedad y de los particulares, asesorar, patrocinar y asistir a las personas en la ordenación y desenvolvimiento de sus relaciones jurídicas. ACCIÓN DE TUTELA Toda persona que ejerza reclamar la protección judicial inmediata de los derechos fundamentales. Procede cuando un derecho fundamental haya sido vulnerado o amenazado por la acción u omisión de cualquier autoridad pública. Procede en los casos señalados en la ley contra ciertos particulares. ACTUACIONES Son todas las tramitaciones que constituyen las piezas de asuntos redactas durante el desarrollo del juicio o proceso. ADJUDICACIÓN Acción y efecto de conceder a uno la propiedad de alguna cosa. APELACIÓN Recurso planteado ante una jurisdicción superior, para obtener la revocación total o parcial de una decisión de la jurisdicción inferior. APODERADO Persona que ha recibido mandato de otra para ejercer en su lugar ciertos poderes. ARANCEL Tarifas oficiales, tablas o catálogos en que se determinan las cantidades que se han de pagar por la prestación de determinado servicio o para la liquidación de alguna tasa o impuesto. AUDIENCIA Acto por intermedio del cual una autoridad administrativa o judicial, en función de juzgar, oye a las partes o recibe las pruebas. AUTO En el lenguaje forense esta voz se utiliza en singular y plural, en ambos modos hace referencia a una categoría de resoluciones judiciales. CANCELACIÓN Liquidación o pago total de una deuda; eliminación de un saldo deudor o acreedor de una cuenta, mediante un asiento practicado con esta finalidad. CAUCION Prevención, precaución o cautela. / Seguridad personal de que se cumplirá lo pactado, prometido o mandado. 61 CITACIÓN Acto por el cual un juez o tribunal ordena la comparencia de una persona, sea parte, testigo, perito o cualquier otro tercero, para realizar o presenciar una diligencia que afecte a un proceso CÓDIGO Cuerpo de leyes dispuestas según un plan metódico y sistemático. / Con menos importancia jurídica, es también la recopilación de leyes o estatutos de un país. COMPETENCIA Autoridad y jurisdicción entre los funcionarios que ejercen una y otra. Objetivamente, la competencia en el conjunto de negocios o actuaciones en el que puede un funcionario ejercer legalmente sus atribuciones. CONCILIACIÓN Acción de componer y ajustar los ánimos de los que estaban opuestos entre si. / Acuerdo entre dos personas que se hallan en pleito obtenido por intermedio de un juez. CURADOR Persona encargada del cuidado de la persona o bienes del incapaz sometido a curatela o de la administración de los bienes del menor, púber o adulto. DEFENSA Exposición de argumentos jurídicos que el defendido y su abogado oponen a la acusación o demanda para demostrar que las razones alegadas no están ajustadas a derecho. DEFENSOR Abogado que en el proceso penal representa y asiste al procesado. DEMANDA Petición prestada ante una autoridad jurisdiccional, con el fin de obtener la administración de justicia en un caso concreto. DEMANDADO Persona contra quien se actúa o a quien se le reclama algo en juicio, exigiéndole alguna cosa o prestación determinada. DEMANDANTE Persona que formula una demanda en juicio, en reclamación de una cosa o reconocimiento de un derecho. DERECHO Conjunto de normas previstas de sanciones que rigen las relaciones de los hombres en la sociedad. DESPACHO El mantenimiento y orden que hace un juez por escrito, determinado que se dé, haga o no se haga alguna cosa; verbigracia, el oficio que un juez o tribunal manda a otro de inferior categoría que él, para que practique alguna diligencia. 62 EJECUTIVO Instrumento del sector público en cuyo vértice están situados el Presidente de la República, jefe de estado y suprema autoridad administrativa y los altos funcionarios, ministros y jefes de departamentos administrativos, que con él integran el gobierno. EMBARGO Deudor real a quien se embarga un bien. / Retención de bienes hecha con mandamiento de juez competente con razón de deuda o delito. EXPROPIACIÓN Privación de la propiedad, por causa de utilidad pública o interés preferente y a cambio de una indemnización previa. FALLO Resolución pronunciada por un juez, magistrado o árbitro. La sentencia es una providencia judicial que decide sobre las pretensiones de la demanda o las excepciones que no tienen el carácter de previas, cualquiera que sea la instancia en que se pronuncie, o resuelve uno de los recursos extraordinarios. El laudo arbitral es la decisión a través de la cual se decide por árbitros una controversia susceptible de transacción, surgida entre personas capaces de transigir. GNU (GFDL) la licencia de documentación libre, que cubre los artículos de la Wikipedia, la Open Audio License, para trabajos musicales, etcétera, y otras menos restrictivas, como la MGPL, o la LGPL (Lesser General Public License o Library General Public License), que permiten el enlace dinámico de aplicaciones libres a aplicaciones no libres. GPL (Licencia Pública General) es una licencia creada por la Free Software Foundation a mediados de los 80, y está orientada principalmente a proteger la libre distribución, modificación y uso de software. Su propósito es declarar que el software cubierto por esta licencia es software libre y protegerlo de intentos de apropiación que restrinjan esas libertades a los usuarios. INSTANCIA Cada una de las etapas o grados del proceso. Corrientemente, en la tramitación de juicio se pueden dar dos instancias: una primera, que va desde su iniciación hasta la primera sentencia que lo resuelve, y una segunda, desde la interposición del recurso de y una segunda, desde la interposición del recurso de apelación hasta la sentencia que en ella se pronuncie. JUEZ En sentido amplio llamase así todo miembro integrante del Poder Judicial, encargado de juzgar los asuntos sometidos a su jurisdicción. Tales magistrados están obligados al cumplimiento de su función de acuerdo con la Constitución y las leyes, con las responsabilidades que aquélla y éstas determinan. JURISDICCIÓN Del latín iurisdictio, administración del derecho. Acción de administrar el derecho, no de establecerlo. Es, pues, la función específica de los jueces. También, la extensión y límites del poder de juzgar, ya sea por razón de la materia, ya sea por razón del territorio, si se tiene en cuenta que cada tribunal no 63 puede ejercer su función juzgadora sino dentro de un espacio determinado y del fuero que le está atribuido. En este último sentido se habla de jurisdicción administrativa, civil, comercial, correccional, criminal, laboral, etc. MAGISTRADO Funcionario judicial que, integrando una sala, forma parte de un tribunal colegiado. NULIDAD Ineficacia de un acto jurídico como consecuencia de la ilicitud de su objeto o de su fin, de la carencia de los requisitos esenciales exigidos para su realización o de la concurrencia de algún vicio de la voluntad en el momento de su celebración. La nulidad puede ser absoluta (insubsanable) o relativa (subsanable). PODER Documento que le confiere a una persona la autoridad para actuar por cuenta de la otra. PROCESO Conjunto de actos que se ejecutan por o ante una autoridad jurisdiccional, con el fin de obtener la administración de justicia en un caso concreto. SECRETARIO JUDICIAL El funcionario público que en juzgados, audiencias y tribunales, está encargado de dar fe de las actuaciones y diligencias, y auxiliar a los jueces y magistrados en sus funciones características. Su antiguo nombre español fue el de escribano. SENTENCIA Dictamen, opinión, parecer propio. /Máxima, aforismo, dicho moral o filosófico. /Decisión extrajudicial de la persona a quien se encomienda resolver una controversia, duda o dificultad. /Resolución judicial por una causa. /El más solemne de los mandatos de un juez, por oposición a auto o providencia. /Parecer o decisión de un jurisconsulto romano. / SUJETO Obligado. / Propenso. / Persona. / Titular de un derecho u obligación. TÉRMINO Momento en que un acto jurídico debe comenzar a producir o dejar de producir sus efectos característicos. Denominase también plazo. TÉRMINO IMPRORROGABLE Es el que no puede ser objeto de prórroga. TÉRMINO JUDICIAL Es aquél que determina y fija el juez. TÉRMINO LEGAL La denominación de legal, corresponde al término que se encuentra expresamente fijado por la ley. 64 TRASLADO Copia o testimonio de un documento original autorizada por funcionario o notario competente al efecto. Conocimiento dado a una de las partes de las pretensiones de la otra con objeto de que pueda alegar lo que estime procedente en defensa de su derecho. TRIBUNAL Órgano de jurisdicción destinado a la aplicación del derecho por la vía del proceso. 65 FECHA 24 de mayo de 2008 NÚMERO RAE PROGRAMA AUTOR (ES) TÍTULO Tecnología en Sistemas VELA GÓMEZ, Juan Manuel; ORTIZ SORIANO, Jhonnatan Camilo Desarrollo de un aplicativo para el registro y seguimiento de la información de los procesos judiciales en el Consorcio AJ Abogados PALABRAS CLAVES Procesos judiciales, juzgados, actuación, PHP, desarrollo web, MySql, Microsoft Solution Framework, software. DESCRIPCIÓN Este trabajo contiene el análisis que se realizó para el desarrollo de la aplicación del Consorcio AJ Abogados, en términos generales el documento se compone, de un marco teórico el cual contempla diferentes metodologías de desarrollo que permitieron selección la metodología MSF (Microsoft Solution Framework), la cual contempla las siguientes etapas. La aplicación permite registrar, consultar, insertar todas las actuaciones sobre los procesos judiciales. La aplicación fue desarrollada con las herramientas php y mysql. FUENTES BIBLIOGRÁFICAS BOOCH Grady, RUMBAUGH James, JACOBSON Ivar, El Lenguaje Unificado de Modelado 2 edición, ED. Pearson, 527pgs. GUTIERREZ Abraham, BRAVO Ginés; PHP5; Alfa Omega Ra-Ma; 552pgs. JENKINS, Neil; Redes de área local (LAN); México: Prentice Hall Hispanoamericana, 1995.; 309pgs. http://www.netpecos.org/docs/mysql_postgres/x108.html http://giga4.es/archivos/raiz/moviendoarchivos/2008/febrero/presentacion_tac.pdf 66 CONTENIDOS Los objetivos definidos para el trabajo son: OBJETIVO GENERAL Desarrollar un aplicativo cliente/servidor para la sistematización de los procesos judiciales en el Consorcio AJ Abogados. OBJETIVOS ESPECÍFICOS Analizar los procesos de registro y seguimiento de la información jurídica del Consorcio de Abogados. Determinar los requerimientos funcionales y no funcionales. Diseñar el modelo de la base de datos y la interfaz gráfica. Implementar el modelo de la base de datos y la interfaz gráfica. La investigación se resume en la parte donde se desarrolla la metodología ya que en este capitulo se muestra paso a paso como fue la elaboración del proyecto. Fase 1 Previsión Esta fase comprende la definición del problema, los antecedentes, los objetivos generales y específicos, los alcances, imitaciones y requerimientos Fase 2 Planificación Esta fase comprende el diseño del aplicativo que ayudara a tener un punto base para el desarrollo del mismo, para esto la metodología nos exige la elaboración de casos de uso que deben implementarse para un mejor entendimiento del funcionamiento del software. Fase 3 Desarrollo Esta fase trata sobre el desarrollo en sí de la aplicación, la definición del lenguaje usado para la programación, el motor de base de datos utilizado para implementar el diseño, las funciones y líneas de código especiales utilizadas para un mejor desarrollo de la aplicación 67 NÚMERO RAE PROGRAMA Tecnología en Sistemas METODOLOGÍA ENFOQUE DE LA INVESTIGACIÓN Empírico-analítico: cuyo interés es el técnico, orientado a la interpretación y transformación del mundo material. LÍNEA DE INVESTIGACIÓN / SUB-LÍNEA DE FACULTAD/ CAMPO TEMÁTICO DEL PROGRAMA Tecnologías Actuales y Sociedad / Sistema de Información y Comunicación / Desarrollo de Software CONCLUSIONES Entre las diferentes metodologías que se confrontaron a través de un cuadro comparativo, se esclarecieron todas las características de cada una, por lo cual se escogió la metodología a Microsoft Solution Framework (MSF), lo que permitió un desarrollo ágil del aplicativo. Las herramientas case y los frameworks mejoran los tiempos de desarrollo proporcionando código predefinido y funciones ejecutables de una manera sencilla. El gremio de los abogados no cuenta con la tecnología para trabajar de una manera eficiente generando problemas de tiempos y la complicación de los casos judiciales. 68