TECNOLOGÍA DE LA INFORMACIÓN Y COMUNICACIÓNES
Componente para la Manipulación de Archivos XML
REPORTE FINAL DE ESTADÍA JOSÉ LUIS RUBIO VELÁZQUEZ
SANTA CATARINA NUEVO LEON, AGOSTO DEL 2009
DEDICATORIA Para mis padres José Luis Rubio Domínguez y Julia Aracely Velázquez Cuellar por su interminable apoyo en todo momento de mi vida, por sus enseñanzas, consejos, eterna paciencia que nunca cedió ante las más difíciles adversidades y por el infinito amor que me brindaron.
A mis hermanas Nickté Aracely, Nailea Iztlalik y Fátima Marvelia Rubio Velázquez por su interminable fe en mi, que en todo momento han sido apoyo y fuerza para seguir adelante y llegar a esta meta.
A mi hermana Xiomara Carolina Rubio Velázquez, por permanecer en mis recuerdos, en mi corazón y ser mi inspiración.
A mi sobrino José Emiliano Rubio Velázquez, aun por ser pequeño me hacia olvidar de los momentos de tensión y enseñarme a ser paciente al momento de aprender.
A toda mi familia por el amor y cariño que me han dado siempre.
AGRADECIMIENTOS A SYTECSO, que me permitió realizar la estadía y obtener experiencia en el entorno laboral y profesional. Al todo el personal de la fábrica de software, por la completa disponibilidad al momento de resolver dudas, asignación de tareas importantes, capacitación y en especial por depositar su plena confianza al hacerme participe del proceso de evaluación para la obtención de la certificación en CMMI nivel 3.
A la profesora Martha Cecilia Rodríguez, por las asesorías brindadas para la realización de este documento.
A todos los maestros de la Universidad Tecnológica Santa Catarina, por su apoyo, comprensión y valoración de los trabajos realizados a lo largo de la carrera, así como los consejos y disponibilidad aun y cuando no se tenía la impartición de alguna materia.
A mis amigos y compañeros de la Universidad, por hacer agradable la duración de la carrera.
Son muchas las personas a las que quiero gustaría agradecer su amistad, apoyo, ánimo y compañía en las difíciles etapas de mi vida. Algunas están aquí conmigo, otras en mis recuerdos y en el corazón. Sin importar en donde estén o si alguna vez llegan a leer estas dedicatorias quiero darles las gracias por formar parte de mi, por todo lo que me han brindado y por todas sus bendiciones.
Agradezco a DIOS, que aun y en momentos de dudas jamás me abandono, y que mi camino siempre lo lleno de personas correctas, además me ayudo a confirmar que mi decisión fue correcta al estudiar la carrera de Técnico Superior Universitario en Tecnologías de la Información y Comunicación.
INDICE INTRODUCCIÓN ................................................................................................................. 4 CAPÍTULO I ......................................................................................................................... 5 Antecedentes ................................................................................................................... 5 Justificación ...................................................................................................................... 6 Objetivos .......................................................................................................................... 7 CAPITULO II ........................................................................................................................ 8 Marco Referencial ............................................................................................................ 8 Descripción de la problemática ...................................................................................... 15 Análisis Situacional ........................................................................................................ 16 CAPITULO III ..................................................................................................................... 17 Marco Descriptivo........................................................................................................... 17 Desarrollo del Proyecto .................................................................................................. 18 CAPITULO IV .................................................................................................................... 30 Resultados ..................................................................................................................... 30 Conclusiones .................................................................................................................. 31 ANEXOS ............................................................................................................................ 32 Referencias bibliográficas .............................................................................................. 32 Productos alternos de la estadía .................................................................................... 34
INTRODUCCIÓN El presente reporte, recoge las actividades desarrolladas durante la estadía laboral en SYTECSO, dentro del área de Fábrica de Software.
La fabrica de software de SYTECSO, se halla abocada a una serie de procesos tendientes a la consolidación de un modelo de trabajo que sea cada vez mas equitativo, solidario y eficiente en el que la concepción de una red integrada de todos sus efectores constituye un elemento clave de gestión que facilita la implementación de metodologías de productos de software tendientes a garantizar la calidad de manera universal.
Dentro de este contexto se plantea el proyecto de construcción de un nuevo componente, como efector para resolver dentro de la interacción de datos la expresión de información estructurada y derivar a la Arquitectura de Software aquellos manejos que requieran una complejidad mayor, con la visión de tener una fabrica de software capaz de dar una respuesta adecuada y eficiente a los requerimientos de atención, tendiente a crear u consolidar un nuevo modelo de trabajo.
CAPÍTULO I ANTECEDENTES SYTECSO es una empresa con una experiencia mayor a 10 años, obtenida de las empresas especializadas en la Industria de Tecnologías de la Información y Comunicaciones (TIC). Actualmente la conforma un equipo de más de 120 profesionales a nivel nacional, con amplia experiencia en diferentes plataformas tecnológicas y sólida presencia en las principales ciudades del país. Soportan su operación en las principales metodologías actualizadas de Desarrollos y Mantenimiento de Sistemas, Productos de Software CMMI (Capability Maturity Model Integration) y proceso de negocios. Participan con clientes líderes en su ramo.
Además de su especialización e investigación continua en las diferentes tecnologías de vanguardia, metodologías y en las soluciones integrales pensando en el cliente. SYTECSO es distinguida por compartir su conocimiento y tecnología a sus clientes, contar como cultura de trabajo manejar metodologías y estándares en constante actualización.
Su visión es ser uno de los principales socios de negocio de sistemas, tecnologías y soluciones en el mercado Mexicano e Internacional.
La misión es Lograr relaciones exitosas y el reconocimiento de sus clientes como su mejor proveedor de tecnología de información, contribuyendo en el incremento de su productividad y ventajas competitivas a través de la entrega de productos y servicios de valor agregado e impulsando con ello el desarrollo económico y social de nuestro entorno.
5
JUSTIFICACIÓN
SYTECSO al ser una empresa distinguida y especializada en la investigación continua de tecnologías, trabaja con un modelo de Arquitectura Multicapas Orientado a Objetos. En la capa de datos existe la interacción con bases de datos (Base de Datos, conjunto de elementos de información cuantitativos y/o cualitativos interrelacionados que se almacenan con objeto de satisfacer)
en adelante BD
creadas bajo lenguaje SQL
(Structured Query Language - Lenguaje Estructurado de Consulta lenguaje de programación interactivo y estandarizado para extraer información y actualizar una base de datos.) y ORACLE (herramienta cliente/servidor que se desarrolla para la gestión de Bases de Datos). Últimamente se ha contemplado la opción de agregar el lenguaje XML (metalenguaje de definición de documentos estructurados mediante marcas o etiquetas) ya que permite la compatibilidad entre sistemas para compartir la información de una manera segura, fiable y fácil. Esto lleva a buscar nuevas herramientas que permitan el manejo de estos archivos, y es por eso por lo cual es necesario desarrollar un nuevo componente de la capa de servicios, que permita la interacción completa con las bases de datos basadas en XML.
6
OBJETIVOS Desarrollar un componente estándar que pueda utilizarse en una amplia variedad de entornos y aplicaciones. Facilitando el proceso de fabricación de software basado en la manipulación de archivos XML tomando fundamentos en las funciones básicas que se pueden realizar con una BD como lo son Altas, Bajas, Cambios, Consulta, etc. Este componente soportara fácilmente la evolución del sistema; ya que los cambios sólo afectan a las capas vecinas y se pueden cambiar las implementaciones respetando las interfaces con las capas adyacentes. Así de esta manera considerar los archivos XML como una fuente más de interacción de base de datos.
7
CAPITULO II Marco Referencial El presente trabajo es ubicado dentro de las Tecnologías de la Información y Comunicación, en su vertiente Desarrollo de Software definiéndola como “la disciplina o área de la informática que ofrece métodos y técnicas para desarrollar y mantener software de calidad”, cabe mencionar que el área Desarrollo de Software también es conocida como Ingeniería de Software (IS), basándonos en autores como Pete McBreen ("Software Craftmanship") lo correcto es Desarrollo de Software ya que Ingeniería de Software implica niveles de rigor y prueba de procesos que no son apropiados para todo tipo de desarrollo de software.
El software es conocido como un programa de computadora, este comprende los procedimientos, reglas, documentación y datos asociados que forman parte de las operaciones para hacer posible la realización de una tarea específica.
El componente de software es todo aquel recurso desarrollado para un fin concreto y que puede formar solo o junto con otro/s, un entorno funcional requerido por cualquier proceso predefinido. Son independientes entre ellos, y tienen su propia estructura e implementación.
La arquitectura de software define, de manera abstracta, los componentes que llevan a cabo alguna tarea de computación, sus interfaces y la comunicación entre ellos. Generalmente, no es necesario inventar una nueva arquitectura de software para cada sistema de información. Lo habitual es adoptar una arquitectura conocida en función de sus ventajas e inconvenientes para cada caso en concreto. Las arquitecturas mas utilizadas son: -
Monolítica: El software se estructura en grupos funcionales muy acoplados.
8
-
Cliente-servidor: El software reparte su carga de cómputo en dos partes
independientes pero sin reparto claro de funciones. -
Arquitectura Multicapas Orientado a Objetos: Especialización de la
arquitectura cliente-servidor donde la carga se divide en tres partes (o capas) con un reparto claro de funciones: una capa para la presentación (interfaz de usuario), otra para el cálculo (donde se encuentra modelado el negocio) y otra para el almacenamiento (persistencia).
La programación por capas es un estilo de programación en el que el objetivo primordial es la separación de la lógica de negocios de la lógica de diseño; un ejemplo básico de esto consiste en separar la capa de datos de la capa de presentación al usuario. El Lenguaje de Programación es un conjunto de sintaxis y reglas semánticas que definen los programas de computadora. Es decir el “idioma” que el programador usará para escribir su código. (Perl, Visual Basic, C, C#, etc.)
C# es un lenguaje orientado a objetos moderno, simple y poderoso. Fue desarrollado por Microsoft y posteriormente estandarizado. Fue modelado principalmente en base a C++ y Java.
Microsoft Visual Studio 2005 es un entorno de desarrollo integrado (IDE, por sus siglas en inglés) para sistemas Windows. Soporta varios lenguajes de programación tales como Visual C++, Visual C#, Visual J#, ASP.NET y Visual Basic .NET, aunque actualmente se han desarrollado las extensiones necesarias para muchos otros.
XML es un conjunto de reglas que sirven para definir etiquetas semánticas para organizar un documento, es decir nos ayuda a tener nuestra información estructurada jerárquicamente por medio de etiquetas ó Tags que nosotros mismos crearemos.
UML es un "lenguaje de modelado" para especificar o para describir métodos o procesos. Se utiliza para definir un sistema, para detallar los artefactos en el sistema y para
9
documentar y construir. En otras palabras, es el lenguaje en el que está descrito el modelo.
SQL es un lenguaje declarativo de acceso a bases de datos relacionales que permite especificar diversos tipos de operaciones en éstas. Una de sus características es el manejo del álgebra y el cálculo relacional permitiendo efectuar consultas con el fin de recuperar -de una forma sencilla- información de interés de una base de datos, así como también hacer cambios sobre ella.
ORACLE es un sistema de gestión de base de datos relacional (o RDBMS por el acrónimo en inglés de Relational Data Base Management System), desarrollado por Oracle Corporation
Trigger es un procedimiento que se ejecuta cuando se cumple una condición establecida al realizar una operación de inserción (INSERT), actualización (UPDATE) o borrado (DELETE).
PL-SQL es el lenguaje de programación que proporciona Oracle para extender el SQL estándar con otro tipo de instrucciones.
Data Warehouse es una colección de datos orientado a temas, integrado, no volátil, de tiempo variante, que se usa para el soporte del proceso de toma de decisiones gerenciales.
CMMI Nivel 3 es un modelo para la mejora y evaluación de procesos para el desarrollo, mantenimiento y operación de sistemas de software. Además de ser un proceso gestionado se ajusta a la política de procesos que existe en la organización, alineada con las directivas de la empresa.
10
Tecnologías de Información es el estudio, diseño, desarrollo, implementación, soporte o dirección de los sistemas de información computarizados, en particular de software de aplicación y hardware de computadoras.
Bases de Datos es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso. En este sentido, una biblioteca puede considerarse una base de datos compuesta en su mayoría por documentos y textos impresos en papel e indexados para su consulta.
HashTable es una implementación concreta de un Dictionary. Se puede utilizar una instancia de Hashtable para almacenar objetos arbitrarios que están indexados por cualquier otro objeto arbitrario. La utilización más habitual de una Hashtable es utilizar una String como clave para almacenar objetos como valores.
Un servidor es una computadora que, formando parte de una red, provee servicios a otras computadoras denominadas clientes.
Un caso de uso es una secuencia de interacciones que se desarrollarán entre un sistema y sus actores en respuesta a un evento que inicia un actor principal sobre el propio sistema. Los diagramas de casos de uso sirven para especificar la comunicación y el comportamiento de un sistema mediante su interacción con los usuarios y/u otros sistemas.
El diagrama de secuencia es uno de los diagramas más efectivos para modelar interacción entre objetos en un sistema. Un diagrama de secuencia muestra la interacción de un conjunto de objetos en una aplicación a través del tiempo y se modela para cada método de la clase. Mientras que el diagrama de casos de uso permite el modelado de una vista business del escenario, el diagrama de secuencia contiene detalles de implementación del escenario, incluyendo los objetos y clases que se usan para implementar el escenario, y mensajes intercambiados entre los objetos.
11
Los Modelos de Calidad son herramientas que guían a las Organizaciones a la Mejora Continua y la Competitividad dando les especificaciones de que tipo de requisitos deben de implementar para poder brindar productos y servicios de alto nivel.
Un programa es una secuencia de instrucciones que indica cuales operaciones se deben realizar sobre un conjunto de datos. Una version ejecutable de un programa, también llamado un programa ejecutable, es una version de un programa que es entendible para el CPU del computador y esta listo para funcionar tan pronto como se copia en memoria. Esto contrasta con la version de codigo fuente de un programa, el cual es la version originalmente escrita por lenguaje de alto nivel, y luego es traducido a lenguaje de maquinas por otro programa especializado llamado compilador.
Una instancia de un programa es creado típicamente por el click de usuario en un icono de una interfaz Gráfica para usuarios GUI o por la entrada de un comando en una interfaz de linea de comandos CLI y presionando la tecla ENTER. Instancias de programas puede ser creado por otros programas.
Multitareas, permite a multiples programas aparentemente ejecutarse simultaneamente en el mismo computador, también permite que multiples instancias de un mismo programa se ejecuten simultaneamente, si el programa lo permite.
Los objetos son entidades que combinan estado, comportamiento e identidad:
* El estado está compuesto de datos, será uno o varios atributos a los que se habrán asignado unos valores concretos (datos). * El comportamiento está definido por los procedimientos o métodos con que puede operar dicho objeto, es decir, qué operaciones se pueden realizar con él.
12
* La identidad es una propiedad de un objeto que lo diferencia del resto, dicho con otras palabras, es su identificador (concepto análogo al de identificador de una variable o una constante).
La programación orientada a objetos expresa un programa como un conjunto de estos objetos, que colaboran entre ellos para realizar tareas. Esto permite hacer los programas y módulos más fáciles de escribir, mantener, reutilizar y volver a utilizar.
De aquella forma, un objeto contiene toda la información que permite definirlo e identificarlo frente a otros objetos pertenecientes a otras clases e incluso frente a objetos de una misma clase, al poder tener valores bien diferenciados en sus atributos. A su vez, los objetos disponen de mecanismos de interacción llamados métodos que favorecen la comunicación entre ellos. Esta comunicación favorece a su vez el cambio de estado en los propios objetos. Esta característica lleva a tratarlos como unidades indivisibles, en las que no se separan ni deben separarse el estado y el comportamiento.
Los métodos (comportamiento) y atributos (estado) están estrechamente relacionados por la propiedad de conjunto. Esta propiedad destaca que una clase requiere de métodos para poder tratar los atributos con los que cuenta. El programador debe pensar indistintamente en ambos conceptos, sin separar ni darle mayor importancia a ninguno de ellos. Hacerlo podría producir el hábito erróneo de crear clases contenedoras de información por un lado y clases con métodos que manejen a las primeras por el otro. De esta manera se estaría realizando una programación estructurada camuflada en un lenguaje de programación orientado a objetos.
Una cadena (string) es cualquier serie de caracteres de texto, como letras, números, caracteres especiales y espacios. Las cadenas pueden ser frases y oraciones legibles, como "El rápido zorro de color café salta sobre el perro perezoso" o una combinación aparentemente ininteligible como "@#fTWRE^3 35Gert".
13
Las variables String se crean del mismo modo que otras variables: declarando primero la variable y asignándole un valor
Un procedimiento almacenado (stored procedure en inglés) es un programa (o procedimiento) el cual es almacenado físicamente en una base de datos. Su implementación varía de un manejador de bases de datos a otro.
Un parser es un programa o la parte de un programa que analiza un string alfanumérico para poder reconocer unidades gramaticales.
14
DESCRIPCIÓN DE LA PROBLEMÁTICA Cuando se desea compartir información con otras personas, suele enviarse información vana, como el formato de datos, tamaño, tipo de datos, etc. La tecnología XML busca dar solución al problema de expresar información estructurada de la manera más abstracta y reutilizable posible. Actualmente en la empresa se saben los beneficios al manejar los archivos XML, sin embargo por carga de trabajo no ha sido posible asignar personal exclusivo para la creación de algún componente que permita realizar operaciones básicas con los XML, y que este a la vez sea reutilizable, y sea adaptable para cualquier proyecto que este por construirse, las operaciones a las que se desea asistir con:
a)
Lectura de archivos XML: Cuando un archivo en formato XML es recibido, toda la
información esta ordenada por etiquetas similar a una estructura HTML, esta entendible únicamente por personas con conocimientos en XML.
b)
Manipulación de archivos XML: Para operar un archivo XML, es necesario conocer
como está constituido, ya que al adicionar algún registro, se tiene que saber a que parte del archivo se debe colocar, y en dado case de querer eliminar, consultar o buscar algún dato se tiene que conocer la ubicación del ya existente debido a que el archivo depende al 100% de la estructura en que está definido. Al auxiliar estos puntos, se podrá trabajar cómodamente con la adaptación de este componente en muchas plataformas de interacción, facilitando al usuario la lectura y manipulación de archivos XML aun y cuando este tenga un desconocimiento absoluto sobre este tipo de archivos. Con esto la empresa se beneficiara al contar con una herramienta propia que soportara fácilmente la evolución del sistema, ya que se podrán cambiar las implementaciones, sin que ningún otro componente se vea afectado, además se evitaran gastos innecesarios por necesidad de adquirir componentes o software que al final resultan ser confusos, de manejo complicado o están repletos de librerías inoperantes.
15
ANÁLISIS SITUACIONAL
Durante la estadía laboral en la empresa, se sostuvo una conversación con el Ingeniero de Software. Oscar Reyna consultor en la Fabrica de Software, nos comenta que actualmente SYTECSO trabaja con la Arquitectura Multicapas Orientado a Objetos esto permite tener una visión concreta de cómo tienen que ser distribuidas las operaciones del software logrando que pueda ser 100% seguro y eficaz. Esta arquitectura es dividida por 3 capas llamadas Backend, Business Framework y Front-end, la capa Backend es conocida como capa de datos, en esta son contenidos las bases de datos y sus respectivos componentes (Procedimientos almacenados, Vistas, etc.), esta capa no podrá realizar ninguna operación a menos que se indique, estos lo realiza la capa Business Framework, esta capa contiene los componentes que darán las indicaciones a la capa Backend de realizar alguna operación con la base de datos, todo esto no es visible para el usuario final del software, ya que todas estas operaciones son invocadas por la capa Front-end, esta capa es lo que permitirá al usuario final interactuar con el software, es decir, contiene los botones, links, caja de texto, la pantalla, consola, pagina web, etc. Que permitirán al usuario realizar las operaciones.
Al comentarnos acerca de la arquitectura nos hace saber que actualmente poseen componentes que permiten la interacción con bases de datos SQL y ORACLE, los más utilizados, sencillos de manejar y además lo más seguros en el mercado, sin embargo en ocasiones cuando se desea compartir información con otras personas, suele enviarse información vana, como el formato de datos, descripciones de campos, llaves maestras, etc. El Ing. Oscar Reyna nos platica sobre el interés de la empresa de manejar archivos XML, explica que estos archivos no son manejadores de bases de datos como SQL y ORACLE, pero pueden almacenar registros contenidos en las tablas de las bases de datos estructurándolos con etiquetas, no contienen información de sobra (tipo de datos, comentarios, etc.), guardan únicamente los datos que sean indicados de manera segura.
16
CAPITULO III MARCO DESCRIPTIVO
Para desarrollar este proyecto se tendrán que desempeñar actividades y técnicas adquiridas durante la formación académica dentro de la Universidad.
Análisis: El propósito del Análisis es establecer un entendimiento común para los requerimientos del cliente que serán diseccionados a través del proyecto de desarrollo de software a fin de mantener la integridad sobre los productos generados y mantener la consistencia entre los planes, los productos de trabajo y las actividades de los proyectos.
Diseño: Es diseñar cualquier sistema nuevo o las aplicaciones que se requieren para satisfacer las necesidades.
Codificación: Es la generación real del programa con un lenguaje de programación. En esta etapa se hace uso de la lógica que desarrolló en el paso del diseño del programa para efectivamente generar un programa. Se debe seleccionar el lenguaje apropiado para resolver el problema.
Prueba: Consiste en verificar la funcionalidad del programa a través de varios métodos para detectar errores posibles.
17
DESARROLLO DEL PROYECTO Para la fabricación del componente se realizo un análisis completo sobre las necesidades básicas para la creación de este componente, siendo las funciones básicas realizadas en una BD, Altas, Bajas, Consultas y Cambios. El componente estará manejando XML, por lo cual no se estará utilizando como un gestor de BD, si no como un medio de interacción para el compartimiento de información importante. Se realizo la búsqueda de componentes existentes, muchos de estos son complicados en su manejo, debido que para realizar una función se tienen que invocar otras funciones, y al utilizar esas funciones se tienen que utilizar otras más, esto genera uso de tiempo de trabajo.
El diseño del componente se baso en separar las operaciones que este realizara con los archivos XML, de esta manera cuando el programador decida hacer el uso de alguna tarea con el archivo, simplemente la tendrá que invocar y el componente según la acción regresara un resultado y este mismo podrá ser usado por el programador acorde sus necesidades.
A continuacion se muestra un diagrama general de casos de uso para el componente XML llamado en adelante parser. uc Diagrama General de Casos de Uso
Parser
Ingeniero de Softw are
Una vez especifican quienes serán los usuarios del componente, se comienza a establecer las tareas que serán realizadas por este mismo, esto se logra especificando los casos de uso para el componente.
18
uc Parser_Actualizar
Actualizar
Ingeniero de Softw are
Caso de Uso Objetivo Precondiciones Actores Prioridad CU de los que depende CU dependientes
Parser_Actualizar Actualizar los datos del registro solicitado El registro deberá de estar dentro del archivo XML indicado Ingeniero de Software Alta N/A N/A
Salida Mensaje de Error Fecha de Modificación Descripción del Cambio Pasos 1
Se realizan cambios en el XML No realiza cambios. N/A N/A Acciones Ingeniero de Software: El ingeniero de software deberá ingresar dirección del archivo a manejar, Nombre del campo principal, Dato principal, Campo a modificar, valor anterior, nuevo valor.
2
Parser: Realiza búsqueda de los registros indicados y realiza actualización N/A Múltiple Es a criterio del ingeniero de software realizar validaciones de la existencia de los registros utilizando búsqueda de estos mimos
Reglas de Negocio Interfaces Validaciones
19
uc Parser_Agregar
Agregar
Ingeniero de Softw are
Caso de Uso Objetivo Precondiciones Actores Prioridad CU de los que depende CU dependientes Salida Mensaje de Error Fecha de Modificación Descripción del Cambio Pasos 1
2
Reglas de Negocio Interfaces Validaciones
Parser_Agregar Ingresar los registros indicados en el documento XML El tipo de registros deberán existir dentro del documento XML Ingeniero de Software Alta N/A N/A Ingreso de datos en el documento No realiza ingreso de datos N/A N/A Acciones Ingeniero de Software: El ingeniero de software deberá ingresar dirección del archivo a manejar, Nombre del tipo a ingresar (ejem. Autos, Libros, etc.,) y los datos a ingresar dentro de un Hashtable. Parser: Buscara en el documento el lugar donde se deberán ingresar los datos y guardara los cambios. N/A Múltiple Es criterio del Ingeniero de software realizar búsqueda después de ingresar datos para confirmar su inserción
20
uc Parser_Borrar
Borrar
Ingeniero de Softw are
Caso de Uso Objetivo Precondiciones Actores Prioridad CU de los que depende CU dependientes
Parser_Borrar Eliminar registro indicado Los registros deben existir dentro del documento XML Ingeniero de Software Alta N/A N/A
Salida Mensaje de Error Fecha de Modificación Descripción del Cambio Pasos 1
Eliminación de datos en el documento Los datos deben existir dentro del documento N/A N/A Acciones Ingeniero de Software: El ingeniero de software deberá ingresar dirección del archivo a manejar, nombre del campo principal, valor del campo principal.
2
Parser: Buscara en el documento los datos a eliminar
Reglas de Negocio Interfaces Validaciones
N/A Múltiple Es criterio del ingeniero buscar los datos después de haber eliminado, para confirmar su eliminación
21
uc Parser_Buscar
Buscar
Ingeniero de Softw are
Caso de Uso Objetivo Precondiciones Actores Prioridad CU de los que depende CU dependientes
Parser_Buscar Buscar datos en el documento XML Existencia del documento XML Ingeniero de Software Alta N/A N/A
Salida Mensaje de Error Fecha de Modificación Descripción del Cambio Pasos 1
Datos Encontrados No mostrara resultados N/A N/A Acciones El ingeniero de software deberá ingresar dirección del archivo a manejar, Nombre del valor a buscar
2
Parser: Se encargara de mostrar un arreglo con los datos encontrados en la búsqueda N/A Múltiple Es criterio del ingeniero de software ingresar algún mensaje si no encuentra valor buscado.
Reglas de Negocio Interfaces Validaciones
22
uc Parser_Mostrar
Mostrar
Ingeniero de Softw are
Caso de Uso Objetivo Precondiciones Actores Prioridad CU de los que depende CU dependientes
Parser_Mostrar Mostrar todos los datos contenidos en un XML El Documento XML debe estar con la estructura correcta de una BD. Ingeniero de Software Alta N/A N/A
Salida Mensaje de Error Fecha de Modificación Descripción del Cambio Pasos 1
Datos existentes dentro de un archivo XML N/A N/A N/A Acciones El ingeniero de software deberá ingresar dirección del archivo a mostrar
2
Parser: Mostrara todos los datos contenidos dentro del XML.
Reglas de Negocio Interfaces Validaciones
N/A Múltiple Es criterio del Ingeniero la forma de visualizar los resultados.
23
Con los casos de uso especificados se realiza la explicación del uso mediante los diagramas de secuencia, los cuales mostraran la secuencia de trabajo con el componente.
sd Parser_Actualizar :claseparser :Ingeniero de Software
updateValue(File, keyid, id, key, oldvalu, valu)
Realiza Cambios()
Parser_Actualizar
La secuencia nos indica los pasos que seguira el ingeniero de softwware con el uso del Parser para actualizar datos.
El Ingeniero de Software ejecuta la Intruccion updatevalue, indicando los valores File( direccion del archivo), keyid (nombre del campo identificador), id (valor del campo indentificador), oldvalu (valor anterior), valu(valor nuevo).
La clase Parser al tomar los datos ejecuta los cambios en el documento.
24
sd Parser_Agregar :claseparser :Ingeniero de Software
addValues(File, child, hash)
Ingresa Datos()
Parser_Agregar
La secuencia nos indica los pasos que seguira el ingeniero de softwware con el uso del Parser para ingresar datos.
El Ingeniero de Software ejecuta la Intruccion addvalue, indicando los valores File( direccion del archivo), child (nombre del identificador de los campos), hash (hashtable con los datos a ingresar en el archivo).
La clase Parser al tomar los datos ejecuta las instrucciones para agregar los datos en el lugar correcto del archivo.
25
sd Parser_Borrar :claseparser :Ingeniero de Software
deteleValue(File, keyid, id)
Borra Datos()
Parser_Actualizar
La secuencia nos indica los pasos que seguira el ingeniero de software con el uso del Parser para borrar datos.
El Ingeniero de Software ejecuta la intruccion deletevalue, indicando los valores File( direccion del archivo), keyid (nombre del campo identificador), id (valor del campo indentificador).
La clase Parser tomoara los datos para borrarlos del documento XML indicado.
26
sd Parser_Buscar :claseparser :Ingeniero de Software
getValue(Fila, valu) :string
Busqueda de datos()
mostrar(string) :String
Parser_Buscar
La secuencia nos indica los pasos que seguira el ingeniero de software con el uso del Parser para Brscar datos.
El Ingeniero de Software ejecuta la Intruccion getvalue, indicando los valores File( direccion del archivo), valu(valor a buscar).
La clase Parser al tomara los datos y realizara la busqueda de los registros en relacion con los datos ingresados.
27
sd Parser_Mostrar :claseparser :Ingeniero de Software
mostrar(string) :String
ParseURL(File) :ArrayList Regresa los datos contenidos en un texto()
Parser_Mostrar
La secuencia nos indica los pasos que seguira el ingeniero de softwware con el uso del Parser para mostrar datos.
El Ingeniero de Software ejecuta la Intruccion mostrar, indicando los valores File( direccion del archivo).
La clase Parser al tomara la direccion y lo escaneara por completo para identificar por completo todos los datos dentro del documento.
28
Para la construcción del componente se estudiaron lenguajes de programación aprovechados por la empresa, de estos se decidió utilizar C#, por ser hoy en día el lenguaje más practicado, contar con una gran facilidad de manejo y además de poder ser utilizado en diversas interfaces.
Se puede decir que es la fase más tardada ya que se buscan métodos que contribuyan a la facilidad del manejo del componente por el ingeniero de software. Consultando libros y páginas de internet se encontraron diversos ejemplos, los cuales mencionan las diversas formas de hacer que el lenguaje de programación pueda realizar las operaciones requeridas con el documento XML, de estas se seleccionan las más sencillas y eficaces, esto se reflejara proporcionando estabilidad, maniobrabilidad y seguridad al momento de llegar a utilizar el componente.
Durante y al finalizar la construcción del componente es importante realizar pruebas, esto nos permitirá ver el contenido de los archivos XML y así corroboraremos que las tareas indicadas por el componente estén siendo realizadas correctamente. Observando diferentes herramientas y formas se pudo detectar que la más eficaz y fácil de utilizar para estas pruebas es el Notepad o Block de Notas, este no requiere de algún tipo de instalación o configuración compleja, permitiendo así trabajar de manera rápida y eficaz con la programación.
Una vez concluido por completa la fabricación, este es entregado a la empresa, los encargados de la fábrica de software se encargan de comunicar internamente la disponibilidad de la nueva herramienta, del mismo modo guardan la herramienta en el servidor de la empresa, garantizando seguridad y completa disponibilidad al ser requerido en futuras fabricaciones.
29
CAPITULO IV RESULTADOS
El resultado final de la elaboración del Parser XML con la aplicación de las técnicas de análisis, diseño, construcción y prueba, fue un componente funcionando y listo para utilizarse cuando sea requerido.
El componente fue probado y aceptado por SYTECSO, este componente será implementado en proyectos que están en fase de análisis, y próximos a fabricarse,
El componente Parser XML puede ser programado en cualquier plataforma de desarrollo como Web, Consola, Winforms, etc. También puede ser utilizado en algún futuro para la creación de nuevas herramientas según las necesidades de la empresa y según las necesidades evolutivas del software.
30
CONCLUSIONES
Podemos concluir que en la actualidad existen muchas tecnologías para el procesamiento de la información, tal es el caso de los archivos de datos XML. Actualmente el uso de XML es más constante en el desarrollo de sistemas de información,
El componente fabricado es ideal para permitir a las organizaciones manejar de manera rápida y segura la información contenida en archivos XML, así evitarse el proceso de conversión de datos de un formato a otro. Además, teniendo en cuenta que por ahora aún no existe un lenguaje estándar para el procesamiento de los datos XML, este tipo de componentes
son
adecuadas
para
realizar
búsquedas
sobre
los
documentos
almacenados.
XML es una muy buena alternativa para el almacenamiento de la información no solo porque la información estará almacenada en un formato estándar, XML, sino porque facilitará el desarrollo de aplicaciones basadas en XML, como por ejemplo los Web Services.
31
ANEXOS REFERENCIAS BIBLIOGRÁFICAS Cómo leer un fichero XML (C#) 18 de enero de 2008 Autor: Dámaso Velázquez http://www.webprogramacion.com/registro.aspx?id=124
How to delete elements from XML file 12 de agosto de 2008 Autor: Foro de discusión http://social.msdn.microsoft.com/forums/en-US/csharpgeneral/thread/7413a6a1-0b6544ac-a88b-ddb00d560d88http://social.msdn.microsoft.com
How to update XML file? 25 de mayo de 2007 Autor: Foros de discusión http://bytes.com/topic/c-sharp/answers/652496-how-update-xml-file
Introducción al XmlSerializer 07 de marzo de 2003 Autor: Juan M. Servera http://www.elguille.info/colabora/puntoNET/soylan_XmlSerializer.htm
Learning C 24 de junio de 2008 Autor: Desconocido http://www.fincher.org/tips/Languages/csharp.shtml
32
Reading from an XML file. Fecha desconocida Autor: Desconocido http://www.java2s.com/Code/CSharp/XML/ReadingfromanXMLfile.htm
VB.NET and C# Comparison 12/30/2008 Tom Shelton, Fergus Cooney, Steven Swafford, Gjuro Kladaric, and others http://www.harding.edu/fmccown/vbnet_csharp_comparison.html
XmlWriter Tutorial in C# 5 de junio de 2009 Autor: Sam Allen http://dotnetperls.com/xmlwriter
33
PRODUCTOS ALTERNOS DE LA ESTADÍA
Durante el tiempo de la estadía SYTECSO impartió diferentes programas de capacitación las cuales son muy enriquecedoras, las capacitaciones recibidas son:
UML SQL ORACLE Trigger y PL-SQL Data Warehouse
Estas fueron recibidas antes de comenzar con el proyecto establecido, al término de este SYTECSO brindo capacitación sobre CMMI nivel 3, para obtener participación en el área TS-PI (solución técnica e integración del producto) y así ser parte de la evaluación y junto con la empresa lograr la certificación.
34