proyecto de sistemas de información

81
UNIVERSIDAD ALAS PERUANAS FACULTAD DE INGENIERÍAS Y ARQUITECTURA ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA PROYECTO DE SISTEMAS DE INFORMACIÓN II PROTOTIPO DE UNA HERRAMIENTA PARA INTEROPERATIVIDAD DE SISTEMAS HETEROGÉNEOS, UTILIZANDO UNA PLATAFORMA WEB PRESENTADO POR EL ALUMNO MICHAEL PINEDA ARRATIA DOCENTE Ing. Jose Ayala Pineda AREQUIPA - PERÚ 2006 1

Upload: mosherg

Post on 21-Jul-2015

979 views

Category:

Education


2 download

TRANSCRIPT

UNIVERSIDAD ALAS PERUANASFACULTAD DE INGENIERÍAS Y ARQUITECTURA

ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA

PROYECTO DE SISTEMAS DE INFORMACIÓN II

PROTOTIPO DE UNA HERRAMIENTA PARA

INTEROPERATIVIDAD DE SISTEMAS HETEROGÉNEOS,

UTILIZANDO UNA PLATAFORMA WEB

PRESENTADO POR EL ALUMNO

MICHAEL PINEDA ARRATIA

DOCENTE

Ing. Jose Ayala Pineda

AREQUIPA - PERÚ

2006

1

INTRODUCCIÓN

Las empresarios empezaron a tener una creciente necesidad de contar con

sistemas de información, para poder dar solución a los problemas que se

presentaban al interior de sus empresas, es así que empezaron a adquirir

sistemas de información, sin tomar en cuenta que estaban creando una red de

sistemas incompatibles entre si. Generando lo que hoy se conoce como sistemas

heterogéneos, sistemas que no pueden comunicarse, interactuar ni trabajar entre

si, dando origen a un nuevo problema para las empresas, la

INTEROPERATIVIDAD DE SISTEMAS HETEROGENEOS.

En el presente Proyecto de sistemas de Información, se propone dar una posible

solución a aquel problema de Interoperatividad, creando una herramienta que sea

capaz de poder comunicar dos diferentes plataformas, sistemas, bases de datos;

para poder tener una única información integrada, que sea útil para las personas

que tiene las obligación de tomar una decisión en sus labores cotidianas.

2

CAPÍTULO I

PLANTEAMIENTO DEL PROBLEMA

1.1Descripción de la Realidad Problemática

Las empresas actualmente cuentan con una serie de sistemas que fueron

adquiriendo conforme crecían sus necesidades, es así que cada sistema

brinda cierta información específica. Las empresas empiezan a necesitar

que su información este agrupada, para poder contar con información de

diferentes sistemas y que por lo tanto esta sirva como fuente de apoyo y

consulta a la hora de tomar decisiones.

El problema que presentan es no poder juntar la información que se

encuentran en diferentes sistemas, bases de datos, plataformas, etc. Y

por lo tanto incurren en tiempo y dinero en tratar de reunir la información,

para que esta sea fuente de decisiones.

1.2Delimitaciones y Definición del Problema

1.2.1 Delimitaciones:

A. Delimitación Espacial.

Mi campo para la elaboración de mi prototipo es una empresa

que cuenta con sistemas en plataformas AS400, Linux y

Windows.

B. Delimitación Temporal.

Primera fase.

Tendrá un tiempo de duración de 4 meses, desde el mes de

Agosto del 2005 al mes de Diciembre del 2005.

3

C. Delimitación social.

Dentro de la limitación social del presente proyecto, esta

orientado a la parte gerencial, estratégica de la empresa. El

desarrollo de este prototipo es una solución a la limitación de los

gerentes acerca de comprar o desarrollar una tecnología que

realice una homogenización de plataformas por su alto costo y

por lo tanto existe un rechazo a las nuevas tecnologías

D. Delimitación conceptual.

Interoperatividad

Capacidad de los programas de ordenador para intercambiar

información y utilizar mutuamente la información así

intercambiada

1.2.2 Definición del Problema

El problema que se presenta en las empresas que empezaron a

desarrollar o comprar software, es que tienen sus sistemas en

diferentes plataformas, y a su vez en diversos entornos de desarrollo

(Lenguajes de programación), impidiendo que se pueda tener una

comunicación entre ellas, además que la información útil, se

encuentra ubicada en distintos sistemas transaccionales; bases de

datos, sistemas de ficheros, etc, no pudiéndose ser utilizada en

conjunto o en un momento que así se requiera.

En un caso especial, en una empresa dedicada al rubro textil que

cuenta con sistemas de información en diferentes plataformas, y que

se requiere una integración de datos para poder generar información

a un nivel estratégico para la empresa

4

1.3Formulación del Problema.

1.3.1 Problema principal.

El contar con sistemas diversificados por factores como plataformas

y entornos de desarrollo heterogéneos, hace perder la integridad de

la información que maneja la empresa, lo cual redunda en una

evaluación tediosa e individualizada por las áreas que enfoca cada

aplicativo.

1.4Objetivo de la Investigación

1.4.1 Objetivo Principal

Generar una aplicación en plataforma web, que resuelva el problema

de interacción de la información, por interoperatividad.

1.4.2 Objetivos Específicos

A. Obtener una mejor estructura de información, que permita una

mejor usabilidad de la información por un entorno amigable y fácil

de entender.

B. Optimización de tiempo de acceso a la información por parte del

usuario, obteniendo una mejora en la producción.

C. Desarrollar un modelo de integración de información.

D. Desarrollar un componente (Middelware) utilizando tecnología

web, que logre la Interoperatividad de sistemas heterogéneos.

1.5Hipótesis de la investigación.

La interoperatividad de sistemas heterogéneos es posible ser solucionado

con la tecnología Web, logrando una plataforma homogénea y obteniendo

una herramienta integradora de información que sea de soporte para la

toma de decisiones.

5

1.6Variables e Indicadores

1.6.1 Variable Dependientes e Independientes

Variables Dependientes Variables IndependientesVD 1.Estructura de información VI 1.Mantenibilidad

VD 2.Producción VI 2.TiempoVI 3.Eficiencia

VD 3.Modelo de integración de información

VI 4.Calidad de usoVI 5.ConfiabilidadVI 6.Usabilidad

VD 4.Componente Middleware VI 7.Comunicación de datosVI 8.Actualización de datosVI 9.Facilidad de OperaciónVI 10.Seguridad, privacidad,

auditibilidad.

Cuadro Nº1. Variables Dependientes e Independientes

1.6.2 Indicadores Según Variables Dependientes e Independientes

VD 1.Estructura de información

VI 1.Mantenibilidad

Características Puntuación Capacidad de ser

analizado 4Estabilidad 3Reparabilidad 3

Tipo de medición: Nominal por descripción por mantenibilidad

Cálculo de Valor: promedio por mantenibilidad

6

VD 2.Producción

VI 2.Tiempo (Tiempo de respuesta- segundos)

Descripción Puntuación2 – 4 105 – 7 68 – 10 4

11 – mas 1

Tipo de medición: Por intervaloCálculo de Valor: promedio por tiempo de respuesta

VI 3.Eficiencia

Descripción PuntuaciónComportamiento temporal 5Conformidad de eficiencia 5

Tipo de medición: nominal por descripción de eficienciaCálculo de Valor: promedio por eficiencia

VD 3.Modelo de integración de información

VI 4.Calidad de uso

Descripción PuntuaciónEficacia 2.5Productividad 2.5Seguridad 2.5Satisfacción 2.5

Tipo de medición: nominal por descripción por calidad de uso

Cálculo de Valor: promedio por calidad de uso

VI 5.Confiabilidad

Descripción PuntuaciónDisponibilidad 2.5Fiabilidad 2.5Seguridad 2.5Protección 2.5

7

Tipo de medición: nominal por descripción por confiabilidad

Cálculo de Valor: promedio por confiabilidad

VI 6.Usabilidad

Descripción PuntuaciónEntendimiento 2.5Operabilidad 2.5Atracción 2.5Conformidad de uso 2.5

Tipo de medición: Nominal por descripción por usabilidad

Cálculo de Valor: Promedio por usabilidad

VD 4.Componente Middleware

VI 7.Comunicación de datos

Descripción PuntuaciónEstablece comunicación 5No establece comunicación 5

Tipo de medición: Por intervaloCálculo de Valor: Promedio por comunicación de datos

VI 8.Actualización de datos

Descripción PuntuaciónActualización En línea de ficheros de

control. 5 Actualización En línea de ficheros

importantes internos. 5

Tipo de medición: Por intervaloCálculo de Valor: promedio por actualización de datos

VI 9.Facilidad de Operación

8

Descripción PuntuaciónMuy fácil 10Fácil 8 Complejo 6

Tipo de medición: por intervaloCálculo de Valor: promedio por facilidad de operación

VI 10.Seguridad, privacidad, auditibilidad

Descripción PuntuaciónPrivacidad 3Auditibilidad 4 Prevencion de perdidas 1Encriptacion 2

Tipo de medición: nominal por descripción por Seguridad, privacidad, auditibilidadCálculo de Valor: promedio por Seguridad, privacidad, auditibilidad

1.7Viabilidad de la investigación.

1.7.1 Viabilidad técnica

En la parte del Hardware se cuenta con:

- Una computadora Pentium IV con un Procesador de 2.4 Ghz.,

Memoria 256 Mb.

En la parte del Software se cuenta con:

- Linux: Tomcat, a demás de Windows XP Profesional

- Lenguajes de desarrollo: Java

- Windows XP.

- Base de Datos Postgres y DB2

1.7.2 Viabilidad operativa.

9

Conocimiento intermedio en análisis y diseños de sistemas,

conocimientos en programación básica en php, asp y en inicios de

aprendizaje del lenguaje java script. Además del asesoramiento

metodológico del Msc. Ing. José Ayala y asesoramiento técnico del

Msc. Ing. José Ayala Pineda e Ing. Alfredo Saire

1.7.3 Viabilidad económica.

Los costos de la realización del prototipo serán asumidos por el autor

del proyecto

1.8Justificación e Importancia de la Investigación.

1.8.1 Justificación:

La realización de este proyecto de información es que se pueda

utilizar la tecnología Web para dar solución a diferentes problemas

de interoperatividad de sistemas heterogéneos, aprovechando la

tecnología Web.

Dado que las empresas necesitan de información integrada y

adecuada, que se fundamenta en sus decisiones y rumbos de la

empresa, es que se requiere de un medio (Sistema) que permita

darles lo que ellos necesitan, pero que no les implique altos costos

en su integración, es así que se pretende lograr esa integración con

tecnología que ya existe y que se convierte en un estándar, a un

mínimo costo para la empresa y que le traerá grandes beneficios.

1.8.2 Importancia.

10

Tener buena información que se exacta y confiable es lo que hace

que las empresas tomen buenas decisiones, y las empresas que no

logran llegar a ese nivel son consumidas por la competencia.

A demás una empresa tiene que estar apoyado por TI y SI para el

buen desarrollo empresarial, y si se obtiene TI/SI de bajo coste y

grandes resultados, los beneficios serian realmente importante por

que se estará adelantando a la competencia al menos en soporte

tecnológico.

1.9Limitaciones de la Investigación

1.9.1 Limitaciones del tema de investigación.-

No se cuenta con mucha información relevante al tema, lo cual se

suplirá con el asesoramiento técnico, así como la investigación

bibliográfica. La presente investigación esta dirigido a desarrollar

una herramienta que integre sistemas, plataformas que acepte

tecnología Web, como es el caso de la empresa textil en mención.

1.9.2 Limitaciones del Investigador.-

Poca experiencia práctica en la programación de aplicaciones Web.

1.10Tipo y Nivel de la Investigación

1.10.1 Tipo de investigación.

Aplicada

1.10.2 Nivel de investigación.

11

Correlacional

1.11Método y Diseño de la investigación

1.11.1 Método de la investigación.

Métricas Versión 3

1.11.2 Diseño de la investigación.

Experimental

1.12Técnicas e Instrumentos de Recolección de Información

1.12.1 Técnicas.

- Análisis Documental

- Entrevista

1.12.2 Instrumentos.

- Guías de entrevista

- Fichas (resumen, acotaciones, anotaciones)

1.13Cobertura de Estudio

1.13.1 Universo.

Todas las empresas que cuenten con sistemas heterogéneos (AS

400, Linux, Windows, Solaris, Netware, Mac, etc)

1.13.2 Muestra

12

Empresa textil con sistema heterogéneo, aún por establecer el

permiso de nombre

13

1.14Cronograma y Presupuesto:

1.14.1 Cronograma. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45

PSI

EVS

ASI

DSI

CSI

IAS

OBJ.

A

B

C

D

Cuadro N°2 Cronograma

Leyenda

PSI PLANIFICACION DE SISTEMA DE INFORMACIONEVS ESTUDIO DE VIABILIDAD DEL SISTEMAASI ANALISIS DE SISTEMA DE INFORMACIONDSI DISEÑO DE SISTEMA DE INFORMACIONCSI COSNTRUCCION DE SISTEMA DE INFOAMCIONIAS IMPLANTACION Y ACEPATACION DEL SISTEMA

14

1.14.2 Presupuesto.

Capital Propio

Recursos Financiados

Recursos Autogenerados

ACTIVIDAD Total

PLANIFICACION DE SISTEMA DE INFORMACION 1206 1206

ESTUDIO DE VIABILIDAD DEL SISTEMA 531 531

ANALISIS DE SISTEMA DE INFORMACION 279 279

DISEÑO DE SISTEMA DE INFORMACION 873 873

COSTRUCCION DE SISTEMA DE INFORMACION 738 738

IMPLANTACION Y ACEPATACION DEL SISTEMA 513 513

Cuadro N° 3 Presupuesto

Cuadro N° 4 Analisis VAN TIR

15

CAPÍTULO II

MARCO TEÓRICO

2.1 Antecedentes de la Investigación

2.1.1 Jaber

Jabber es un protocolo abierto basado en el estándar XML para el

intercambio en tiempo real de mensajes y presencia entre dos puntos

en Internet. La principal aplicación de la tecnología Jabber es una

extensible plataforma de mensajería y una red de MI (Mensajería

Instantánea) que ofrece una funcionalidad similar a la de otros

sistemas como AIM, ICQ, MSN Messenger y Yahoo.

Jabber destaca porque es distinto:

o Es abierto, el protocolo de Jabber es gratuito, abierto, público

y comprensible. Además, existen múltiples implementaciones

de código abierto para Servidores Jabber (consulta la lista de

servidores públicos) como numerosos clientes y librerías de

desarrollo.

o Es extensible, usando el potencial del lenguaje XML,

cualquiera puede extender el protocolo de Jabber para una

funcionalidad personalizada. Claro que para mantener la

interoperatibilidad, las extensiones comunes son controladas

por la Jabber Software Foundation.

o Es descentralizado, cualquiera puede montar su propio

servidor de Jabber, además está libre de patentes y no

depende de ninguna empresa de modo que se puede usar

ahora y siempre con total libertad.

o Es seguro, cualquier servidor de Jabber puede ser aislado de

la red pública Jabber, cualquier implementación del servidor

16

usa SSL para las comunicaciones cliente-servidor y

numerosos clientes soportan PGP-GPG para encriptar las

comunicaciones de cliente a cliente. Además, está en

desarrollo una seguridad más robusta gracias al uso de SASL

y contraseñas de sesión.

Jabber puede crear confusión en un principio respecto a otros

sistemas de mensajería instantánea porque habitualmente, en otros

IM, se identifica el cliente con el protocolo. En el caso de Jabber esto

no es así: existe un protocolo y cada uno de los clientes es una

implementación.

2.1.2 Samba

Samba es una suite de aplicaciones GNU/Linux (o Unix) que habla el

protocolo SMB (Server Message Block). Muchos sistemas

operativos, incluídos Windows y OS/2, usan SMB para operaciones

de red cliente-servidor. Mediante el soporte de este protocolo, Samba

permite a los servidores Unix entrar en acción, comunicando con el

mismo protocolo de red que los productos de Microsoft Windows. De

este modo, una máquina Unix con Samba puede enmascararse

como servidor en tu red Microsoft y ofrecer los siguientes servicios:

• Compartir uno o más sistemas de archivos.

• Compartir impresoras, instaladas tanto en el servidor como en los

clientes.

• Ayudar a los clientes, con visualizador de Clientes de Red.

• Autentificar clientes logeándose contra un dominio Windows.

• Proporcionar o asistir con un servidor de resolución de nombres

WINS.

17

Samba es la idea de Andrew Tridgell, quien actualmente lidera el

equipo de desarrollo de Samba development desde su casa de

Canberra, Australia. El proyecto nació en 1991.

2.2 Marco Histórico.

2.2.1.Workflow

El Flujo de trabajo (workflow en inglés) es el estudio de los aspectos

operacionales de una actividad de trabajo: cómo se estructuran las

tareas, cómo se realizan, cuál es su orden correlativo, cómo se

sincronizan, cómo fluye la información que soporta las tareas y cómo

se le hace seguimiento al cumplimiento de las tareas. Generalmente

los problemas de flujo de trabajo se modelan con redes de Petri.

Si bien el concepto de flujo de trabajo no es específico a la

tecnología de la información, una parte esencial del software para

trabajo colaborativo (groupware) es justamente el flujo de trabajo.

2.2.2.Sistemas de workflow

El propósito de los sistemas de workflow es acercar personas,

procesos y máquinas, con el objeto de reducir tiempo y acelerar la

realización de un trabajo. Estos sistemas permiten trabajar en equipo

desde diferentes lugares físicos.

Los sistemas de workflow facilitan la automatización de los flujos de

trabajo entre procesos y permiten integrar los procesos de la

empresa, rediseñados de acuerdo con ayuda de nuevas estrategias.

2.2.3.Business Process Management

18

Disciplina empresarial cuyo objetivo es mejorar la eficiencia a través

de la gestión sistemática de los procesos de negocio (BPR), que se

deben modelar, automatizar, integrar, monitorizar y optimizar de

forma continua.

Básicamente son servicios y herramientas que soportan la

administración explicita de procesos: análisis, definición, ejecución y

monitorización, etc.

Existen diversos motores que mueven la gestión de Procesos de

Negocio (BPM), dichos motores son:

• Extensión del programa institucional de calidad

• Cumplimiento de legislaciones

• Crear nuevos y mejores procesos

• Entender que se está haciendo bien o mal a través de la

compresión de los procesos

• Documentar procesos para outsourcing y definición de SLA

(Service Level Agreement)

• Automatización de procesos

• Crear y mantener las cadenas de valor

2.2.4.JDBC

La conectividad de la base de datos de Java (JDBC , Java Database

Connectivity) es un marco de programación para los desarrolladores

de Java que escriben los programas que tienen acceso a la

información guardada en bases de datos, hojas de calculo, y archivos

"planos". JDBC se utiliza comúnmente para conectar un programa

del usuario con una base de datos por “detrás de la escena”, sin

importar qué software de administración o manejo de base de datos

se utilice para controlarlo. De esta manera, JDBC es una plataforma-

cruzada . Este artículo proporcionará un código de introducción que

19

demuestra el acceso a la base de datos de los programas de Java

que utilizan las clases JDBC API, que está disponible para la

transferencia directa libre del sitio de Sun.

Una base de datos que conecta con otros programas se llama fuente

de datos. Muchas fuentes de datos, incluyendo los productos

producidos por Microsoft y Oracle, utilizan ya un estándar llamado

conectividad abierta de la base de datos” (ODBC, Open Database

Connectivity). Mucho de la herencia en la programación en C y de los

programas del Perl utilizan ODBC para conectar con las fuentes de

datos. El ODBC consolidó mucha de la concordancia entre los

sistemas de administración de base de datos. Las estructuras de

JDBC están construidos en esta característica, e incrementa el nivel

de abstracción. Los puentes de JDBC-ODBC se han creado para

permitir que los programas de Java conecten con el software

compatible ODBC de la base de datos.

2.3 Marco Conceptual

2.3.1.Midleware Convencional

Las tecnologías middleware son herramientas para abordar la

interacción entre aplicaciones distribuidas y heterogeneas. Se

presentan las tecnologías de integración de aplicaciones como un

concepto distinto, aunque relacionado con las tecnologías

middleware.

Workflow management Systems (WFMs) para de hacer explícita la

lógica de integración. Los broker de mensajes ocultan la

heterogeneidad y los aspectos de distribución y los WFMSs facilitan

la gestión y mantenimiento de la lógica de integración Finalmente se

20

presentan las tecnologías básicas que permiten integrar aplicaciones

en la Web.

2.3.2.Sistemas de Gestión Sistemas de Gestión Workflow Workflow (WfMS)

Un sistema que define, crea y gestiona automáticamente la ejecución

de modelos workflow mediante el uso de uno o más motores

workflow que se encargan de interpretar la definición de

procesos(mapa workflow), interactuaron los agentes y, cuando se

requiera, invocar el uso de los sistemas de información implicados en

el trabajo

Estándares Workflow

• Tendencias iniciales (procesos y API)

• Tendencias presentes (objetos)

o WfMC(Workflow Management Coalition)

o WARIA (Workflow & Reingineering International Asociation)

o OMG(Object Management Group)

• Ultimas tendencias

o Desarrollo de Ontologias

o XML –RDF

o Introducción a los métodos formales

2.3.3.Sistema Heterogéneo

Son aquellos elementos que cuentan con características físicas y

operativas distintas entre si, pero cuentan con medios comunes que

le permiten comunicarse e interactuar entre si.

2.3.4.Plataforma de heterogeneidad

21

La heterogeneidad de basa en gran numero de dispositivos y medio

conectados, como software de comunicación y sistemas operativos

disponibles en una red que no posea una base homogénea.

Pero la forma de comunicarse de un sistema heterogéneo que tiene

HW y SW distinto, es por medios comunes (estándares) para su

comunicación e interacción

2.3.5.Tomcat (también llamado Jakarta Tomcat o Apache Tomcat).

Funciona como un contenedor de servlets desarrollado bajo el

proyecto Jakarta en la Apache Software Foundation. Tomcat

implementa las especificaciones de los servlets y de JavaServer

Pages (JSP) de Sun Microsystems. Se le considera un servidor de

aplicaciones.

2.3.6.METRICAS VERSION 3

A. Planificación de Sistemas de Información (PSI)

El objetivo de un Plan de Sistemas de Información es proporcionar

un marco estratégico de referencia para los Sistemas de Información

de un determinado ámbito de la Organización. El resultado del Plan

de Sistemas debe, por tanto, orientar las actuaciones en materia de

desarrollo de Sistemas de Información con el objetivo básico de

apoyar la estrategia corporativa, elaborando una arquitectura de

información y un plan de proyectos informáticos para dar apoyo a los

objetivos estratégicos. Por este motivo es necesario un proceso

como el de Planificación de Sistemas de Información, en el que

participen, por un lado los responsables de los procesos de la

organización con una visión estratégica y por otro, los profesionales

de SI capaces de enriquecer dicha visión con la aportación de

ventajas competitivas por medio de los sistemas y tecnologías de la

información y comunicaciones.

22

B. Desarrollo de Sistemas de Información

El proceso de Desarrollo de MÉTRICA Versión 3 contiene todas las

actividades y tareas que se deben llevar a cabo para desarrollar un

sistema, cubriendo desde el análisis de requisitos hasta la instalación

del software. Además de las tareas relativas al análisis, incluye dos

partes en el diseño de sistemas: arquitectónico y detallado. También

cubre las pruebas unitarias y de integración del sistema. En

MÉTRICA Versión 3 se han abordado los dos tipos de desarrollo:

estructurado y orientado a objeto, por lo que ha sido necesario

establecer actividades específicas a realizar en alguno de los

procesos cuando se utiliza la tecnología de orientación a objetos.

Para este último caso se ha analizado alguna de las propuestas de

otras metodologías orientadas a objetos y se han tenido en cuenta la

mayoría de las técnicas que contempla UML 1.2 (Unified Modeling

Language).

El desarrollo en MÉTRICA Versión 3 lo constituyen los procesos:

a. ESTUDIO DE VIABILIDAD DEL SISTEMA (EVS).

El propósito de este proceso es analizar un conjunto concreto de

necesidades, con la idea de proponer una solución a corto plazo. Los

criterios con los que se hace esta propuesta no serán estratégicos

sino tácticos y relacionados con aspectos económicos, técnicos,

legales y operativos. Los resultados del Estudio de Viabilidad del

Sistema constituirán la base para tomar la decisión de seguir

adelante o abandonar. Si se decide seguir adelante pueden surgir

uno o varios proyectos que afecten a uno o varios sistemas de

información. Dichos sistemas se desarrollarán según el resultado

obtenido en el estudio de viabilidad y teniendo en cuenta la cartera

de proyectos para la estrategia de implantación del sistema global.

23

b. ANÁLISIS DEL SISTEMA DE INFORMACIÓN (ASI).

El propósito de este proceso es conseguir la especificación detallada

del sistema de información, a través de un catálogo de requisitos y

una serie de modelos que cubran las necesidades de información de

los usuarios para los que se desarrollará el sistema de información y

que serán la entrada para el proceso de Diseño del Sistema de

Información.

Como ya se ha dicho MÉTRICA Versión 3 cubre tanto desarrollos

estructurados como orientados a objetos, y las actividades de ambas

aproximaciones están integradas en una estructura común aunque

presenta alguna actividad exclusiva para cada tipo de desarrollo.

c. DISEÑO DEL SISTEMA DE INFORMACIÓN (DSI).

El propósito del Diseño del Sistema de Información (DSI) es obtener

la definición de la arquitectura del sistema y del entorno tecnológico

que le va a dar soporte, junto con la especificación detallada de los

componentes del sistema de información. A partir de dicha

información, se generan todas las especificaciones de construcción

relativas al propio sistema, así como la especificación técnica del

plan de pruebas, la definición de los requisitos de implantación y el

diseño de los procedimientos de migración y carga inicial, éstos

últimos cuando proceda. El diseño de la arquitectura del sistema

dependerá en gran medida de las características de la instalación, de

modo que se ha de tener en cuenta una participación activa de los

responsables de Sistemas y Explotación de las Organizaciones para

las que se desarrolla el sistema de información.

d. CONSTRUCCIÓN DEL SISTEMA DE INFORMACIÓN (CSI).

La construcción del Sistema de Información (CSI) tiene como objetivo

final la construcción y prueba de los distintos componentes del

sistema de información, a partir del conjunto de especificaciones

24

lógicas y físicas del mismo, obtenido en el Proceso de Diseño del

Sistema de Información (DSI). Se desarrollan los procedimientos de

operación y seguridad y se elaboran los manuales de usuario final y

de explotación, estos últimos cuando proceda. Para conseguir dicho

objetivo, se recoge la información relativa al producto del diseño

Especificaciones de construcción del sistema de información, se

prepara el entorno de construcción, se genera el código de cada uno

de los componentes del sistema de información y se van realizando,

a medida que se vaya finalizando la construcción, las pruebas

unitarias de cada uno de ellos y las de integración entre subsistemas.

e. IMPLANTACIÓN Y ACEPTACIÓN DEL SISTEMA (IAS).

Este proceso tiene como objetivo principal, la entrega y aceptación

del sistema en su totalidad, que puede comprender varios sistemas

de información desarrollados de manera independiente, según se

haya establecido en el proceso de Estudio de Viabilidad del Sistema

(EVS), y un segundo objetivo que es llevar a cabo las actividades

oportunas para el paso a producción del sistema. Se establece el

plan de implantación, una vez revisada la estrategia de implantación

y se detalla el equipo que lo realizará. Para el inicio de este proceso

se toman como punto de partida los componentes del sistema

probados de forma unitaria e integrados en el proceso Construcción

del Sistema de Información (CSI), así como la documentación

asociada. El Sistema se someterá a las Pruebas de Implantación con

la participación del usuario de operación cuya responsabilidad, entre

otros aspectos, es comprobar el comportamiento del sistema bajo las

condiciones más extremas. También se someterá a las Pruebas de

Aceptación cuya ejecución es responsabilidad del usuario final.

C. Mantenimiento de Sistemas de Información (MSI)

25

El objetivo de este proceso es la obtención de una nueva versión de

un sistema de información desarrollado con MÉTRICA, a partir de las

peticiones de mantenimiento que los usuarios realizan con motivo de

un problema detectado en el sistema o por la necesidad de una

mejora del mismo. Como consecuencia de esto, sólo se considerarán

en MÉTRICA Versión 3 los tipos de Mantenimiento Correctivo y

Evolutivo. Se excluyen los tipos de Mantenimiento Adaptativo y

Perfectivo, que abarcan actividades tales como la migración y la

retirada de software que precisarían el desarrollo de un tipo de

metodología específica para resolver su cometido. Ante una petición

de cambio de un sistema de información ya en producción, se realiza

un registro de las peticiones, se diagnostica el tipo de mantenimiento

y se decide si se le da respuesta o no, en función del plan de

mantenimiento asociado al sistema afectado por la petición, y se

establece con qué prioridad.

26

CAPÍTULO III

CONSTRUCCION DE LA HERRAMIENTA

3.1 Generalidades

El prototipo que se construye trata de probar que usando tecnología Web ya

existente se puede crear una herramienta intermediaria, denominado

Middleware, y sirva como una plataforma única de comunicación y que los

sistemas que se encuentran en diferentes plataformas denominados,

“sistemas heterogéneos”, puedan formar parte de una unica plataforma

tecnológica, de tal manera el prototipo pueda hacer interactuar los sistemas

de información, bases de datos, de las empresas como si fuesen uno solo,

ahorrando dinero, tiempo y recursos de las empresas.

Para el presente trabajo se utilizara deiferentes herramientas que nos

permitan construir el prototipo.

Lenguaje de Modelamiento Unificado (UML).

Herramienta “Racional Rose 2000”

J2SE Runtime Enviroment – Java

Apache – Tomcat 5.5.16

3.2 Estudios de Factibilidad

3.2.1 Factibilidad técnica

- Contar con una Computadora con todas las configuraciones y

herramientas necesarias para el desarrollo de la aplicación.

- El SW de desarrollo en este caos es Java

- Contar con la herramienta CASE que soporte METRICAS

VERSION 3.

3.2.2 Factibilidad operativa

27

La factibilidad operativa esta garantizada, por que en la actualidad

muchas empresas no cuentan con un software que solucione estos

problemas, además que cuentan con personal que esta familiarizada

con herramientas computacionales evitando así, su rechazo al uso

de la presente herramienta. El sistema propuesto se ajusta a los

requerimientos propuestos por el (los) usuarios, y para mayor

garantía del uso del sistema en mención se realizará una

capacitación para el personal destinado al uso de la herramienta.

3.2.3 Factibilidad económica

Para una mejor explicaron de la factibilidad económica, será dividida

en tres etapas como nos especifica la metodología de METRICAS

VERSION 3.

A. FASE DE ANALISIS

Para un mejor entendimiento se mostrara un cuadro de gastos.

g

B. FASE DE DISEÑO

Para un mejor entendimiento se mostrara un cuadro de gastos.

28

C. FASE DE CONSTRUCCION

Para un mejor entendimiento se mostrara un cuadro de gastos.

3.3 Análisis del Sistema

3.3.1 Requerimientos del Sistema.

A. Requisitos Funcionales

29

Los requisitos funcionales especifican que es lo que el usuario

quiere que el sistema haga para el.

B. Requisitos no Funcionales

Tener Instalado el jdk-1_5_0_01JDK

apache-tomcat-5.5.16

3.4 Diseño de la Herramienta

3.4.1 Diagrama de Contexto

A. Diagrama de Caso de Uso Genérico

30

Grafico N° 1. Diagrama Caso de uso Genérico

Caso de Uso Validar UsuarioCDU-001

Actores Usuario

ResumenVerificar que el usuario tenga los acceso respectivos

Tipo PrimarioReferenciaReferencias CruzadasFlujos Normales

Actor Sistema1. El usuario se valida 2. Realiza la búsqueda de

usuario3. Llena usuario y contraseña 4. Devuelve Conformidad de

validación 5. Ingresa al prototipo

Flujos Alternativos :4. En caso de no ser el usuario o clave correcta, el sistema no dará el acceso debido

Caso de Uso Conectar BDCDU-002

ActoresUsuario y Sistema Heterogeneo

Resumen

Generan el acceso a las Bases de Datos correspondientes

Tipo PrimarioReferenciaReferencias CruzadasFlujos Normales

Actor Sistema1. El usuario genera la petición de conexión2. El sistema heterogéneo genera las reglas de negocio

3. Realiza la conexión4. Realiza la petición generada

Incluye: JDBCEs un modelo que permite al sistema realizar instancia hacia las bases de datos correspondientes

31

Caso de Uso Visualizar SelecciónCDU-003

Actores Usuario

ResumenVerificación de que los resultados sena los esperados

Tipo PrimarioReferenciaReferencias CruzadasFlujos Normales

Actor Sistema1. El usuario comprueba la selección de la petición

2. Visualiza la petición

Extend: ImprimirSi el usuario lo desea puede imprimir los resultados

Extend: Modificar GuardarPodrá modificar la selección realizada u operación Flujos Alternativos :1. En caso de no ser los resultados esperados cancela la operación.

32

B.

C.

Grafico N° 2. Diagrama Caso de uso: Conectar BD

Caso de Uso cDatosCDU-004

Actores Sistema Heterogéneo

ResumenMuestra la conexión a las bases de datos

Referencia CDU 002Flujos Normales

Actor Sistema1. El sistema le manda un parámetro de nominado “Tipo” donde indica el driver, url, user y password del sistema y la base de datos a conectar

2. decepcionar el parámetro “tipo” y procesar la petición hacia que base de datos debe conectarse

Incluye: JDBCEl JDBC verifica que el driver coincida con la base de datos que se desea conectar.Include: ConfigAquí realiza la configuración de todas las bases existente para el prototipo, con los parámetros Driver, URL, user, pasw Flujos Alternativos :1. En caso de que el parámetro tipo no sea el adecuado no podrá hacer ninguna conexión

33

B. Diagrama de Actividades

1. Validar Usuario

Grafico N°3 Diagrama de actividades: Validar Usuario

2. Conectar Base de datos

Grafico N°4 Diagrama de actividades: Conectar BD

34

C. Diagrama de Clases

Grafico N°5 Diagrama de Clases

35

D. Diagrama de Estados

1. cUsuarios

Grafico N°6 Diagrama de Estados: cUsuarios

2. cNegocio

Grafico N°7 Diagrama de Estados: cNegocio

36

3. cDatos

Grafico N°8 Diagrama de Estados: cDatos

37

E. Diagrama de Secuencia

1. Verificar Usuario

C.

Grafico N°9 Diagrama de Secuencia: Usuario

38

2. Conectar Base de Datos

Grafico N°10 Diagrama de Secuencia: Conectar Base de datos

F. Diagrama de Colaboración

1. Verificar Usuario.

39

Grafico N°11 Diagrama de Colaboracion: Usuario

2. Conectar Base de Datos

40

Grafico N°9 Diagrama de Colaboracion: base de datos

41

G. Diagrama de Componentes

Grafico N°13 Diagrama de Componenetes

H. Diagrama de Despliegue

Grafico N°14 Diagrama de Despliegue

42

3.4.2 Diseño de Pantallas

LISTADO

Imagen N°1 Listado

Listado de Requisiciones

Imagen N° 2 Articulos

43

NUEVA REQUISICION

Imagen N° 3 Nueva requisicion

INGRESO DE NUEVO REGISTRO

Imagen N° 4 ingreso de Nuevo registro

44

3.5 Codificación

CLASES

CAPA DE DATOS

Clase “cDatos”

package datos;

import java.util.*; import java.io.BufferedReader;import java.io.FileReader;import java.sql.*;

public class cDatos { private String driver = ""; private String url = ""; private String user = ""; private String pasw = ""; private Connection db;

public cDatos(String tipo) { readConfig( tipo );

}

public void openConnection() { try{ Class.forName(driver); this.db = DriverManager.getConnection( url, user, pasw ); }catch(Exception e){ e.printStackTrace(); } } // cierra la conexion a la BD public void closeConnection() { try{ // cierra la conexion this.db.close(); }catch(SQLException e){ e.printStackTrace(); } }

45

// convierte un ResultSet a un Vector private Vector ResultSetToVector(ResultSet rs) throws SQLException { Vector vRows = new Vector(); // lee registro por registro while(rs.next()){ Vector vCol = new Vector(); // lee cada campo del query int nroFields =rs.getMetaData().getColumnCount(); for(int i = 1 ; i<=nroFields ; i++){ String strTmp = rs.getString(i); vCol.add(strTmp); } vRows.add(vCol); } return vRows; } // ejecuta delete,insert ó update public void performance(String str){ try{ // crea el statement Statement stmt = this.db.createStatement(); // ejecuta el update stmt.executeUpdate(str); //cierra statement stmt.close(); } catch(SQLException e){ e.printStackTrace(); } }

public void performance(String str, String aParam[] ){ PreparedStatement pstm; try{ // crea el statement pstm = this.db.prepareStatement( str ); // ejecuta el update for ( int xc=0 ; xc < aParam.length ; xc ++ ) pstm.setString( xc+1, aParam[xc] ); pstm.executeUpdate(); //cierra statement pstm.close(); } catch(SQLException e){ e.printStackTrace(); } }

46

// ejecuta solo los query public Vector query(String strQuery){ Vector vRet = null; try{ // crea el statement Statement stmt = this.db.createStatement(); // ejecuta el query ResultSet rs = stmt.executeQuery(strQuery); // convierte el ResultSet to Vector vRet = ResultSetToVector(rs); // cierra el ResultSet rs.close(); // cierra el statement stmt.close(); }catch(SQLException e){ e.printStackTrace(); } return vRet; }

public Vector query(String strQuery, String xcod ){ Vector vRet = null; try{ // crea el statement PreparedStatement pstm =

this.db.prepareStatement( strQuery ); // Inicializa parametros pstm.setString( 1, xcod ); // ejecuta el query ResultSet rs = pstm.executeQuery(); // convierte el ResultSet to Vector vRet = ResultSetToVector(rs); // cierra el ResultSet rs.close(); // cierra el statement pstm.close(); }catch(SQLException e){ e.printStackTrace(); } return vRet; }

public void sp_proc( String sp_name, String aParam[] ) {

try { CallableStatement cs = this.db.prepareCall( sp_name ); for( int xc=0 ; xc < aParam.length ; xc++) cs.setString( xc+1, aParam[xc]);

47

cs.execute(); } catch( Exception e ){ e.printStackTrace(); }

}

public void sp_proc( String sp_name, String aParam ) { try {

CallableStatement cs = this.db.prepareCall( sp_name ); cs.setString( 1, aParam );

cs.execute(); } catch( Exception e ){

e.printStackTrace(); }

}

// ejecuta un delete public void delete(String strDelete){ performance(strDelete); } // ejecuta un update public void update(String strUpdate){ performance(strUpdate); } // ejecuta un insert public void insert(String strInsert){ performance(strInsert); }

public void delete(String strDelete, String aParam[] ){ performance(strDelete, aParam); }

public void update(String strUpdate, String aParam[] ){ performance(strUpdate, aParam); }

public void insert(String strInsert, String aParam[] ){ performance(strInsert, aParam);

} public void readConfig( String tipo ) {

try { String linea = "";

String archivo = System.getProperty("user.dir") + "\\config.ini";

48

System.out.println( archivo ); BufferedReader reader = new BufferedReader( new

FileReader(archivo) ); tipo = tipo.toUpperCase(); boolean flag = false; while ( (linea = reader.readLine().trim()) != null && !flag) {

if ( linea.charAt(0) == '[' ) { linea = linea.substring(1,linea.length()-1); if ( linea.equals( tipo ) ) { flag = true; while ( (linea = reader.readLine().trim()) != null ) { if ( linea.charAt(0) == '[' ) break; int xpos = linea.indexOf( '=' ); String clave = linea.substring(0,xpos).trim(); String dato = linea.substring(xpos+1).trim(); if ( clave.toUpperCase().equals("DRIVER")) this.driver = dato; if ( clave.toUpperCase().equals("URL")) this.url = dato; if ( clave.toUpperCase().equals("USER")) this.user = dato; if ( clave.toUpperCase().equals("PASW")) this.pasw = dato; } } } }

} catch (Exception ex ) {

} }

}

CAPA DE NEGOCIO

Clase “cAlmacenes”

package negocio;

import java.util.*;

import javax.servlet.http.*;

import datos.cDatos;

public class cAlmacenes {

49

private cDatos db; private String sql; private Vector vr;

public cAlmacenes(String tipo) { this.db = new cDatos(tipo); this.db.openConnection(); }

public Vector getRegistros() { sql = "SELECT * from CIGCTBALM"; System.out.println( sql ); vr = this.db.query( sql ); return this.vr; }

public Vector getRegistro( String xcod ) { sql = "SELECT * from CIGCTBALM where TAALMA=" + xcod; System.out.println( sql ); vr = this.db.query( sql ); return this.vr; }

public void grabarNuevoRegistro( HttpServletRequest request ) {String xnroalm = request.getParameter( "xnroalm" );String xnomalm = request.getParameter( "xnombre" );String xdivisi = request.getParameter( "xdivision" );String xtipo = request.getParameter( "xtipo" );String xclasif = request.getParameter( "xclasi" );String xsubcla = request.getParameter( "xsubcla" );

sql = "INSERT INTO CIGCTBALM (TAALMA,TADESA,TADIVI,TATIPO,TACLAS,TASCLA) "; sql += "VALUES ("+ xnroalm + ",'" + xnomalm + "','" + xdivisi + "','" + xtipo + "','" + xclasif + "'," + xsubcla + ")";

this.db.insert( sql ); }

public void grabarModificarRegistro( HttpServletRequest request ) {String xnroalm = request.getParameter( "xnroalm" );String xnomalm = request.getParameter( "xnombre" );String xdivisi = request.getParameter( "xdivision" );String xtipo = request.getParameter( "xtipo" );String xclasif = request.getParameter( "xclasi" );String xsubcla = request.getParameter( "xsubcla" );

50

sql = "UPDATE CIGCTBALM SET TADESA='" + xnomalm + "', TADIVI='" + xdivisi + "', TATIPO='" + xtipo + "', TACLAS='" + xclasif + "', TASCLA=" + xsubcla + " "; sql += "WHERE TAALMA=" + xnroalm ;

this.db.update( sql ); }

public void eliminarRegistros( String aData[] ) {boolean inicio;

if ( aData.length <= 0 ) return;

sql = "DELETE FROM CIGCTBALM WHERE TAALMA in ( "; inicio = true; for( int xc = 0 ; xc < aData.length ; xc++ ) { if ( inicio ) sql += aData[xc]; else sql += "," + aData[xc]; inicio = false; } sql += ")";

this.db.delete( sql ); }

}

51

Clase “ cArticulos “

package negocio;

import java.util.*;

import javax.servlet.http.*;

import datos.cDatos;

public class cArticulos { private cDatos db; private String sql; private Vector vr;

public cArticulos(String tipo) { this.db = new cDatos(tipo); this.db.openConnection(); }

public Vector getRegistros() { // sql = "SELECT articulo, \"descripcionK\", unidad, grupoinv, tipo, descripcion_larga, fecha_modificado, responsable, cod_anterior, descripcion, linea from articulo order by articulo"; sql = "SELECT * from articulo"; System.out.println( sql ); vr = this.db.query( sql ); return this.vr; }

public Vector getRegistros(String acod[]) { // sql = "SELECT articulo, \"descripcionK\", unidad, grupoinv, tipo, descripcion_larga, fecha_modificado, responsable, cod_anterior, descripcion, linea from articulo order by articulo"; sql = "SELECT * from articulo where articulo in ("; boolean inicio = true; for( int xc = 0 ; xc < acod.length ; xc++ ) { if ( inicio ) sql += "'" + acod[xc] + "'"; else sql += ",'" + acod[xc] + "'"; inicio = false; } sql += ")"; vr = this.db.query( sql ); return this.vr; }

52

public Vector getRegistro( String xcod ) { // sql = "SELECT articulo, \"descripcionK\", unidad, grupoinv, tipo, descripcion_larga, fecha_modificado, responsable, cod_anterior, descripcion, linea from articulo order by articulo"; sql = "SELECT * from articulo where articulo='" + xcod + "'"; System.out.println( sql ); vr = this.db.query( sql ); return this.vr; }

public void grabarNuevoRegistro( HttpServletRequest request ) {String xart = request.getParameter( "xarticulo" );String xdesK= request.getParameter( "xdescripcionK" );String xuni = request.getParameter( "xunidad" );String xgrpi= request.getParameter( "xgrupoinv" );String xtipo= request.getParameter( "xtipo" );String xdesL= request.getParameter( "xdescripcionL" );String xfecm= request.getParameter( "xfecha_modificado" );String xresp= request.getParameter( "xresponsable" );String xcoda= request.getParameter( "xcod_anterior" );String xdes = request.getParameter( "xdescripcion" );String xlin = request.getParameter( "xlinea" );

sql = "INSERT INTO articulo (articulo, \"descripcionK\", unidad, grupoinv, tipo, descripcion_larga, fecha_modificado, responsable, cod_anterior, descripcion, linea) "; sql += "VALUES ('"+ xart + "','" + xdesK + "','" + xuni + "','" + xgrpi + "','" + xtipo + "','" + xdesL + "'," + xfecm + ",'" + xresp + "','" + xcoda + "','" + xdes + "','" + xlin + "')";

this.db.insert( sql ); }

public void grabarModificarRegistro( HttpServletRequest request ) {String xart = request.getParameter( "xarticulo" );String xdesK= request.getParameter( "xdescripcionK" );String xuni = request.getParameter( "xunidad" );String xgrpi= request.getParameter( "xgrupoinv" );String xtipo= request.getParameter( "xtipo" );String xdesL= request.getParameter( "xdescripcionL" );String xfecm= request.getParameter( "xfecha_modificado" );String xresp= request.getParameter( "xresponsable" );String xcoda= request.getParameter( "xcod_anterior" );String xdes = request.getParameter( "xdescripcion" );String xlin = request.getParameter( "xlinea" );

53

sql = "UPDATE articulo SET \"descripcionK\"='" + xdesK + "', unidad='" + xuni + "', grupoinv='" + xgrpi + "', tipo='" + xtipo + "', descripcion_larga='" + xdesL + "', fecha_modificado=" + xfecm + ", responsable='" + xresp + "', cod_anterior='" + xcoda + "', descripcion='" + xdes + "', linea='" + xlin + "' "; sql += "WHERE articulo='" + xart + "'";

this.db.update( sql ); }

public void eliminarRegistros( String aData[] ) {boolean inicio;

if ( aData.length <= 0 ) return;

sql = "DELETE FROM articulo WHERE articulo in ( "; inicio = true; for( int xc = 0 ; xc < aData.length ; xc++ ) { if ( inicio ) sql += "'" + aData[xc] + "'"; else sql += ",'" + aData[xc] + "'"; inicio = false; } sql += ")";

this.db.delete( sql ); }

}

Clase “Ciartidb”

package negocio;

import java.util.*;

import javax.servlet.http.*;

import datos.cDatos;

public class cCiartidb { private cDatos db; private String sql; private Vector vr;

public cCiartidb(String tipo) {

54

this.db = new cDatos(tipo); this.db.openConnection(); }

public Vector getRegistros() { sql = "SELECT * from CIARTIDB"; System.out.println( sql ); vr = this.db.query( sql ); return this.vr; }

public void grabarRegistros( Vector arrData ) { for ( int xc = 0 ; xc < arrData.size() ; xc++ ) { Vector fila = (Vector)arrData.get(xc); String xcod = (String)fila.get(0); String xdes = (String)fila.get(1); String xuni = (String)fila.get(2); String xgrp = (String)fila.get(3); String xlin = (String)fila.get(10); String xtip = (String)fila.get(4); sql = "INSERT INTO CIARTIDB (DAARTI,DADESC,DAUNME,DAGRIN,DALIPR,DATIPR) VALUES ("; sql += "'" + xcod + "','" + xdes + "','" + xuni + "','" + xgrp + "','" + xlin + "','" + xtip +"')"; this.db.insert( sql ); } }}

CAPA DE PRESENTACION

VISTAS

Vista “m_almacenes”

<%@ page import="negocio.cAlmacenes" %><%@ page import="java.util.*" %><% cAlmacenes obj = new cAlmacenes("DB2"); String xopc = request.getParameter("xopc"); Vector arrData; if ( xopc == null ) xopc = "LISTADO";

System.out.println( "-- " + xopc ); if ( xopc.compareTo( "LISTADO" ) == 0) {

55

arrData = (Vector)obj.getRegistros(); request.setAttribute( "arrData", arrData ); request.getRequestDispatcher( "m_almacenes_tpl.jsp" ).forward( request,response ); } else if ( xopc.compareTo( "NUEVO_ELIMINAR_REGISTRO" ) == 0 ) { if ( request.getParameter( "boton" ).compareTo( "Nuevo Registro") == 0 )

request.getRequestDispatcher( "m_almacenes_nuevo_tpl.jsp" ).forward( request,response ); else { obj.eliminarRegistros( request.getParameterValues("xcod") ); response.sendRedirect("m_almacenes.jsp"); } } else if ( xopc.compareTo( "GRABAR_NUEVO_REGISTRO" ) == 0 ) { if ( request.getParameter( "boton" ).compareTo( "GRABAR" ) == 0 )

obj.grabarNuevoRegistro( request ); response.sendRedirect("m_almacenes.jsp"); } else if ( xopc.compareTo( "MODIFICAR_REGISTRO" ) == 0 ) { String xcod = request.getParameter( "xcod" ); arrData = obj.getRegistro(xcod); request.setAttribute( "arrData", arrData); request.getRequestDispatcher( "m_almacenes_modificar_tpl.jsp" ).forward( request,response ); } else if ( xopc.compareTo( "GRABAR_MODIFICAR") == 0 ) { System.out.println( "Grabar modificar ............." ); if ( request.getParameter( "boton" ).compareTo( "GRABAR" ) == 0 ) { obj.grabarModificarRegistro( request ); } response.sendRedirect("m_almacenes.jsp"); } %>

Vista m_articulos

<%@ page import="negocio.cArticulos" %><%@ page import="java.util.*" %><% cArticulos objOpc = new cArticulos("PGSQL"); String xopc = request.getParameter("xopc"); Vector arrData; if ( xopc == null ) xopc = "LISTADO";

System.out.println( "-- " + xopc ); if ( xopc.compareTo( "LISTADO" ) == 0) {

56

arrData = (Vector)objOpc.getRegistros(); request.setAttribute( "arrData", arrData ); // out.println( arrData.size() ); request.getRequestDispatcher( "m_articulos_tpl.jsp" ).forward( request,response ); } else if ( xopc.compareTo( "NUEVO_ELIMINAR_REGISTRO" ) == 0 ) { if ( request.getParameter( "boton" ).compareTo( "Nuevo Registro") == 0 )

request.getRequestDispatcher( "m_articulos_nuevo_tpl.jsp" ).forward( request,response ); else { objOpc.eliminarRegistros( request.getParameterValues("xcod") ); response.sendRedirect("m_articulos.jsp"); } } else if ( xopc.compareTo( "GRABAR_NUEVO_REGISTRO" ) == 0 ) { if ( request.getParameter( "boton" ).compareTo( "GRABAR" ) == 0 )

objOpc.grabarNuevoRegistro( request ); response.sendRedirect("m_articulos.jsp"); } else if ( xopc.compareTo( "MODIFICAR_REGISTRO" ) == 0 ) { String xcod = request.getParameter( "xcod" ); arrData = objOpc.getRegistro(xcod); request.setAttribute( "arrData", arrData); request.getRequestDispatcher( "m_articulos_modificar_tpl.jsp" ).forward( request,response ); } else if ( xopc.compareTo( "GRABAR_MODIFICAR") == 0 ) { System.out.println( "Grabar modificar ............." ); if ( request.getParameter( "boton" ).compareTo( "GRABAR" ) == 0 ) { objOpc.grabarModificarRegistro( request ); } response.sendRedirect("m_articulos.jsp"); } %>

Vista m_alamacenes_tpl

<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %><html> <head><title>Almacenes</title></head> <body> <form method=POST action=m_almacenes.jsp> <h3>Listado Almacenes</h3> <input type=HIDDEN name=xopc value="NUEVO_ELIMINAR_REGISTRO"> <table border=1> <tr bgcolor=lightblue> <th><font face="Helvetica" color=Red>Sel.</font> <th><font face="Helvetica" color=Red>Nro. del Almacen</font>

57

<th><font face="Helvetica" color=Red>Nombr.del Almacen</font> <th><font face="Helvetica" color=Red>Division</font> <th><font face="Helvetica" color=Red>Tipo</font> <th><font face="Helvetica" color=Red>Clasificacion</font> <th><font face="Helvetica" color=Red>Sub-Clasificacion</font> <c:forEach items="${arrData}" var="registro"> <tr><td><input type=checkbox name='xcod' value=<c:out value='${registro[0]}'/> > <td><c:out value='${registro[0]}' /> <td><a href=m_almacenes.jsp?xopc=MODIFICAR_REGISTRO&xcod=<c:out value='${registro[0]}'/> > <c:out value='${registro[1]}' /></a> <td><c:out value='${registro[2]}' /> <td><c:out value='${registro[3]}' /> <td><c:out value='${registro[4]}' /> <td><c:out value='${registro[5]}' /> </c:forEach> </table> <input type=submit name=boton value="Eliminar Registros"> <input type=submit name=boton value="Nuevo Registro"> </form> </body> </html>

Vista p_articulos_tpl

<%@ page import="negocio.cArticulos" %><%@ page import="negocio.cCiartidb" %><%@ page import="java.util.*" %><% String db1="PGSQL", db2="DB2"; String xopc = request.getParameter("xopc"); Vector arrData; if ( xopc == null ) xopc = "LISTA_PG";

if ( xopc.compareTo( "LISTA_PG" ) == 0) { cArticulos obj = new cArticulos( db1 ); arrData = (Vector)obj.getRegistros(); request.setAttribute( "arrData", arrData ); request.getRequestDispatcher( "p_articulos_pg_tpl.jsp" ).forward( request,response ); } else if ( xopc.compareTo( "MUESTRA_SEL" ) == 0 ) { cArticulos obj = new cArticulos( db1 ); arrData = (Vector)obj.getRegistros( request.getParameterValues("xcod") ); request.setAttribute( "arrData", arrData );

58

request.getRequestDispatcher( "p_articulos_sel_tpl.jsp" ).forward( request,response ); } else if ( xopc.compareTo( "LISTA_DB2" ) == 0 ) { cArticulos obj = new cArticulos( db1 ); arrData = (Vector)obj.getRegistros( request.getParameterValues("xcod") ); cCiartidb obj2 = new cCiartidb( db2 ); obj2.grabarRegistros( arrData ); arrData = (Vector)obj2.getRegistros(); request.setAttribute( "arrData", arrData ); request.getRequestDispatcher( "p_articulos_db2_tpl.jsp" ).forward( request,response ); } %>

59

CAPÍTULO IV

ANÁLISIS E INTERPRETACIÓN DE LOS RESULTADOS

4.1. Población y muestra

4.1.1. Población.

Todas las empresas que cuenten con sistemas heterogéneos (AS

400, Linux, Windows, Solaris, Netware, Mac, etc)

4.1.2. Muestra.

Empresa textil con sistema heterogéneo ubicado en la ciudad de

Arequipa.

4.2. Nivel de confianza y grado de significancia.

El nivel de confianza será de un 90% y con un grado de significancia de

±10 %

4.3. Tamaño de la muestra representativa.

El tamaño de la muestra representativa esta basado en el número de

procesos de conexiones e interacción de información de tal manera

que compruebe la funcionalidad del prototipo.

60

4.4. Análisis de resultados

Variables Dependientes Ponderación Valor mínimo

exigidoVD 1.Estructura de información 4 7VD 2.Producción 2 9VD 3.Modelo de integración de

información

3 9

VD 4.Componente Middleware 5 9

Cuadro N° 6 Analisis Variables Dependientes

Variables Independientes Ponderación Valor mínimo

exigidoVI 1.Mantenibilidad 3 8VI 2.Tiempo

VI 3.Eficacia

4

3

8

9

VI 4.Calidad de uso

VI 5.Confiabilidad

VI 6.Usabilidad

3

4

5

7

9

8VI 7.Comunicación de datos

VI 8.Actualización de datos

VI 9.Facilidad de Operación

VI 10.Seguridad de sistema

5

4

4

3

9

7

8

7

Cuadro N° 6 Analisis Variables Independientes

VD01 = (3 VI01)/3

VD01 = (3 x 9)/3

VD01 = 9

VD02 = (4 VI02 + 3VI03)/7

VD02 = (4 x 8 + 3 x 10)/7

VD02 = 8.85

VD03 = (3 VI04 + 4 VI05 + 5 VI06)/12

61

VD03 = (3 x 10 + 4 x 10 + 5 x 10 )/12

VD03 = 10

VD04 = (5 VI07 + 2 VI08 + 4 VI09 + 3 VI10)/14

VD04 = (5 x 10 + 4 x 10 + 4 x 9.1 + 3 x 8 )/14

VD04 = 9.4

VD 5.Estructura de información

VI 1.Mantenibilidad

Características Puntuación Capacidad de ser analizado 4Estabilidad 2Reparabilidad 3

VD 6.Producción

VI 2.Tiempo (Tiempo de respuesta- segundos)

Descripción Peso Frecuencia Total2 – 4 10 11 1105 – 7 6 7 42

8 – 10 4 2 811 – mas 0 0 0TOTAL 20 20 160

160/20

VI 02 = 8

VI 3.Eficiencia

Descripción Peso CumpleComportamiento Temporal 5 SiConformidad de eficiencia 5 Si

Total 10

VI01 = 9

62

VI 03 = 10

VD 7.Modelo de integración de información

VI 4.Calidad de uso

Descripción Puntuación ¿Cumple?Eficacia 2.5 SiProductividad 2.5 SiSeguridad 2.5 SiSatisfacción 2.5 Si

VI 04 = 10

VI 5.Confiabilidad

Descripción Puntuación ¿Cumple?Disponibilidad 2.5 SiFiabilidad 2.5 SiSeguridad 2.5 SiProtección 2.5 Si

VI 05 = 10

VI 6.Usabilidad

Descripción Puntuación ¿Cumple?Entendimiento 2.5 SiOperabilidad 2.5 SiAtracción 2.5 SiConformidad de

uso 2.5

Si

VI 06 = 10

63

VD 8.Componente Middleware

VI 7.Comunicación de datos

Descripción PuntuaciónEstablece comunicación 10No establece comunicación 0

VI 07 = 10

VI 8.Actualización de datos

Descripción Puntuación ¿Cumple?Actualización En línea de

ficheros de control. 5 SiActualización En línea de

ficheros importantes

internos. 5

Si

VI 08 = 10

VI 9.Facilidad de Operación

Descripción Puntuación Frecuencia TotalMuy Facil 10 12 120Facil 8 7 56Complejo 6 1 6Total 24 20 182

VI08 =182/20

VI 09 = 9.1

VI 10.Seguridad de sistema

Descripción PuntuaciónPrivacidad. 3Auditibilidad. 4

64

Prevención de perdidas. 1Encriptación de datos. 0

VI 10 = 8

4.5. Calculo de la eficacia

Eficacia = ( 4 * VD01+ 2 * VD02 + 3 * VD03+ 5 * VD04)/14

Eficacia = ( 4 * 9 + 2 * 8.85 + 3 * 10+ 5*9.4)/14

Eficacia = 9.33

4.6. Interpretación de los resultados

4.6.1 Variables Independientes

A. En cuanto a la mantenibilidad se ha logrado una efectividad de

90% debido a que no es estable en su totalidad

B. En cuanto a tiempo se ha logrado una efectividad del 80%

prácticamente rápido

C. En cuanto a la Eficiencia esta logro ser de un 100%.

D. Respecto a la calidad de uso esta fue de un 100%, cumpliendo

todas sus metas.

E. Lo que respecta a la confiabilidad esta obtuvo un 100% de

confiabilidad.

F. En cuanto a la usabilidad fue de un 100% demostrando su uso.

G. Lo que respecta la facilidad de operación esta logro ser de un 91%

que demuestra que es fácil operar el prototipo, presentando alguna

complejidad

H. Respecto a la seguridad, privacidad y auditibilidad esta obtuvo un

80%, debido a que no se realizo encriptaciones y el poco nivel en

prevención de perdidas.

65

4.6.2 Variables Dependientes

I. En el desarrollo de la estructura de la información se ha logrado un

90%.

J. En la variable de producción se obtuvo un 88.5%

K. En cuanto al modelado de Integración de información se ha logrado

un 100%.

L. En lo referente al componente Middlewarelos resultados presentan

un 94% de realizacion.

4.7. Prueba de Hipótesis

Con el cálculo de la eficacia se comprueba la hipótesis

66

CAPÍTULO V

CONCLUSIONES Y RECOMENDACIONES

Conclusiones.Primera conclusión

Se genero una estructura lineal, por así decirlo, que permitió generar dos

cosas. La primera, mejorar la comprensión del problema y su solución con

visión diferente. La segunda que esta estructura puede ser mantenible, esto

quiere decir que se puede modificar sin tener que empezar todo de cero.

Segunda Conclusión

El tiempo que se tarda en hacer accesos a los sistemas de información,

bases de datos en diferentes plataformas es mucho mas deficiente que

cuando se trabaja con sistemas de información, bases de datos bajo una

misma plataforma, al tener todo bajo una misma plataforma gracias a este

middelware es mucha rapida el acceso a la información.

Tercera Conclusión

El modelo de integración que se presenta en este proyecto, esta basado en

clases cuya principal clase se ha denominado cDatos que genera los

requisitos para realización las conexiones; y librerías que en esta caso se

hizo bajo JDBC, que nos permite realizar conexiones a bases de datos muy

eficazmente, esto dos elementos uno creado y otro reutilizado nos genera

una combinación poderosa para generar accesos a bases de datos de una

manera transparente, eficaz y flexible.

Cuarta Conclusión

67

El desarrollo del componente Middlware se cumplió con lo que se quería, se

pudo relacionar diferente bases de datos en una misma acción, además de

poder comunicarlas, extrayendo información, compartirla y guarda en

cualquiera de las diferentes bases de datos. Además que se realizo estos

procesos de manera rápida y sencilla para el usuario, una de las

potencialidades de este prototipo es que se puede ir actualizándolo sin

necesidad de que se tenga que cerrar los sistemas para realizar dicha

función, lo único que no se pudo fortalecer fue respecto a la seguridad, faltó

mayor investigación para poder generar una buena seguridad.

Recomendaciones.

Primera Recomendación

Se debe tener mucho cuidado al momento de querer hacer las estructuras

para interactuar las bases de datos, si es cierto todas las bases de datos son

de una misma empresa no todas ellas mantienen una correlación, si a si

fuese el caso entonces hay que analizar si la conexión a realizar servirá para

el usuario

68

PRODUCTO FINAL

El producto final esta orientado a la parte de gerencia y estrategia de la empresa.

Grafico. Donde se aplica es prototipo

El producto final será una capa superior a las plataformas de los demás sistemas (AS400, Linux y Windows) un middleware, que será la herramienta que homogenice las plataformas.

Grafico 2. Grafico de la herramienta

App 1 App 2 App 3

DB 1 DB 2 DB 3

Interfase

69

FUENTES DE INFORMACIÓN

Presuman, Roger S. Ingeniería del Software Un enfoque práctico. 5ta ed.,

España, McGraw Hill, 521 – 540 pp.

Manzano, Juan y otros SIX: Una propuesta de Sistema de Integración basado

en XML. En http://imhotep.unizar.es/jbidi/jbidi2001/17_2001.pdf Extremadura.

Lassila O. Wick R. “Resource Description Framwork (RDF) Model And Syntax Specification” W3C Febrero de 1999. en http://www.w3.org/TR/REC-rdf-syntax/

eXtendible Markup Language (XML)version 1.0 Primera Edicion Febrero de 1998. En http://www.w3.org/XML#9802xml10

Aplicaciones y Ventajas de XML.En http://www.bibliodgsca.unam.mx/tesis/tes7cllg/sec_26.htm

http://www.glosarium.com/term/806,14,xhtml

70

ANEXOS

71

72

Anexo 1

Cuadro de Actividades y Costos

73

74

75

GLOSARIO DE TÉRMINOS

Workflow: Sistema de automatización de procesos. Permite automatizar de forma

integrada todos los flujos de datos y procesos administrativos, controles de

autorización, verificaciones de datos y contacto de personas involucradas.

Framework. En el desarrollo de software, un Framework es una estructura de

soporte definida en la cual otro proyecto de software puede ser organizado y

desarrollado. Tipicamente, un framework puede incluir soporte de programas,

librerias y un lenguaje de scripting entre otros softwares para ayudar a desarrollar

y unir los diferentes componentes de un proyecto.

DOM (Document Object Model)

Funcionalidad. La capacidad del producto de software para proveer las funciones

que satisfacen las necesidades explícitas e implícitas cuando el software se utiliza

bajo condiciones específicas.

Adecuación. La capacidad del producto de software para proveer un adecuado

conjunto de funciones para las tareas y objetivos especificados por el usuario.

Exactitud. La capacidad del producto de software para proveer los resultados o

efectos acordados con un grado necesario de precisión.

Seguridad. La capacidad del producto de software para proteger la información y

los datos de modo que las personas o los sistemas no autorizados no puedan

leerlos o modificarlos, y a las personas o sistemas autorizados no se les niegue el

acceso a ellos.

76

Cumplimiento funcional. Capacidad del producto software para adherirse a

normas, convenciones o regulaciones en leyes y prescripciones similares

relacionadas con funcionalidad.

Fiabilidad. La capacidad del producto de software para mantener un nivel

específico de funcionamiento cuando se está utilizando bajo condiciones

especificadas.

Madurez. La capacidad del producto de software para evitar fallas como resultado

de errores en el software.

Tolerancia a errores. La capacidad del producto de software para mantener un

nivel especificado de funcionamiento en caso de errores del software o de

incumplimiento de su interfaz especificada.

Recuperabilidad. La capacidad del producto de software para restablecer un nivel

especificado de funcionamiento y recuperar los datos afectados directamente en el

caso de una falla.

Conformidad de la fiabilidad. La capacidad del producto de software para

adherirse a las normas, convenciones o regulaciones relativas a la fiabilidad.

Usabilidad. La capacidad del producto de software de ser entendido, aprendido,

usado y atractivo al usuario, cuando es utilizado bajo las condiciones

especificadas.

Entendimiento. La capacidad del producto de software para permitir al usuario

entender si el software es adecuado, y cómo puede ser utilizado para las tareas y

las condiciones particulares de la aplicación.

77

Operabilidad. La capacidad del producto de software para permitir al usuario

operarlo y controlarlo.

Atracción. La capacidad del producto de software de ser atractivo al usuario.

Conformidad de uso. La capacidad del producto de software para adherirse a los

estándares, convenciones, guías de estilo o regulaciones relacionadas a su

Comportamiento temporal. La capacidad del producto de software para proveer

tiempos adecuados de respuesta y procesamiento, y ratios de rendimiento cuando

realiza su función bajo las condiciones establecidas.

Utilización de recursos. La capacidad del producto de software para utilizar

cantidades y tipos adecuados de recursos cuando este funciona bajo las

condiciones establecidas.

Los recursos humanos están incluidos dentro del concepto de productividad.

Conformidad de eficiencia. La capacidad del producto de software para adherirse

a estándares o convenciones relacionados a la eficiencia.

Mantenibilidad. Capacidad del producto de software para ser modificado. Las

modificaciones pueden incluir correcciones, mejoras o adaptación del software a

cambios en el entorno, y especificaciones de requerimientos funcionales.

Capacidad de ser analizado. La capacidad del producto de software para atenerse

a diagnósticos de deficiencias o causas de fallas en el software o la identificación

de las partes a ser modificadas.

Cambiabilidad. La capacidad del software para permitir que una determinada

modificación sea implementada.

Implementación incluye codificación, diseño y documentación de cambios.

78

Estabilidad. La capacidad del producto de software para evitar efectos

inesperados debido a modificaciones del software.

Analizabilidad. Capacidad del producto software de diagnosticar sus deficiencias

o causas de fallos, o de identificar las partes que deben ser modificadas.

Conformidad de portabilidad. La capacidad del software para adherirse a

estándares o convenciones relacionados a la portabilidad.

Calidad en Uso. La capacidad del producto de software para permitirles a usuarios

específicos lograr las metas propuestas con eficacia, productividad, seguridad y

satisfacción, en contextos especificados de uso.

Eficacia. La capacidad del producto de software para permitir a los usuarios lograr

las metas especificadas con exactitud e integridad, en un contexto especificado de

uso.

Productividad. La capacidad del producto de software para permitir a los usuarios

emplear cantidades apropiadas de recursos, en relación a la eficacia lograda en

un contexto especificado de uso.

Satisfacción. La capacidad del producto de software para satisfacer a los usuarios

en un contexto especificado de uso.

Confiabilidad. Propiedad que implica el grado de confianza esperado por parte del

usuario en la operación adecuada del sistema al utilizarlo.

Disponibilidad. Define la probabilidad de que el sistema este funcionando en un

tiempo determinado.

79

Fiabilidad. Es la probabilidad de que el sistema funcione correctamente durante un

intervalo de tiempo.

Protección. Representa la capacidad del sistema para protegerse a si mismo de

intrusiones accidentales o programadas.

Densidad de defectos. Es una métrica de calidad que se define como el número

de errores que ocurren durante un lapso de tiempo determinado.

Media de ocurrencia de fallos. Se refiere al promedio del tiempo que tarda en

producirse un fallo durante la operación de un producto de software.

Corrección. El grado en que una aplicación satisface sus especificaciones y

consigue los objetivos encomendados por el cliente.

Facilidad de mantenimiento. El esfuerzo requerido para localizar y reparar errores.

Integridad. El grado con que puede controlarse el acceso al software o a los datos

a personal no autorizado (Amenaza / seguridad).

Facilidad de uso. El esfuerzo requerido para aprender el manejo de una

aplicación, trabajar con ella, introducir datos y conseguir resultados.

Facilidad de prueba.El esfuerzo requerido para probar una aplicación de forma

que cumpla con lo especificado en los requisitos.

Reusabilidad. Grado en que partes de una aplicación pueden utilizarse en otras

aplicaciones.

Comprensibilidad. Interpretación correcta del modelo, cercanía de los conceptos a

quienes leen el esquema, uso de conceptos (terminología) sencillos en él.

80

Completitud. Correspondencia biunívoca entre el esquema y los requerimientos

(no sólo que éstos estén cubiertos, sino que no existan “requerimientos”

adicionales).

Expresividad. Poder significativo de los elementos.

Consistencia. Existencia de al menos un conjunto (no-vacío) de instancias (no-

vacías) que satisface el esquema (con sus restricciones).

Extensibilidad. Capacidad de evolución del esquema, adaptabilidad a los cambios

que se requieran.

Robustez. Grado de degradación del sistema en presencia de fallos o

incertidumbre.

Conectividad. Los nodos deben interactuar de forma que las actividades cubiertas

puedan ser desarrolladas e integradas en una solución global.

Efectividad. Capacidad del producto software para permitir a los usuarios alcanzar

objetivos especificados con exactitud y completitud, en un contexto de uso

especificado.

81