Upload
rodnie-montano-aguilera
View
272
Download
14
Embed Size (px)
Citation preview
CARRERA DE INGENIERIA DE SISTEMAS
“IMPLEMENTACIÓN DE UNA APLICACIÓN WEB PARA EL CONTROL DE REGISTRO,
ADMINISTRACIÓN Y CIRCULACIÓN DE DOCUMENTOS DE
SANTA MONICA COTTON S.A.”
AUTOR: RODNIE MONTAÑO AGUILERA
PROFESOR GUÍA: Ing. Karem Infantas
Trabajo Dirigido para optar al grado de Licenciatura
en Ingeniería de Sistemas
Santa Cruz – Bolivia
Año: 2008
i
SINOPSIS IMPLEMENTACIÓN DE UNA APLICACIÓN WEB PARA EL CONTROL DE REGISTRO, ADMINISTRACIÓN Y CIRCULACIÓN DE DOCUMENTOS DE SANTA MONICA COTTON S.A. Autor: Rodnie Montaño Aguilera Actualmente, la empresa Santa Mónica Cotton está certificada en Normas ISO 9001:2000, por lo tanto es necesario mantener los estándares internacionales obtenidos y contar con un software de gestión de la documentación que permita apoyar los procesos de gestión de calidad. La aplicación WEB para el control de registro, administración y circulación de documentos tiene como propósito publicar las políticas, procedimientos y manuales de instrucción vigentes o versiones anteriores al personal de Santa Monica Cotton. De esta manera, esta aplicación WEB permitirá al usuario:
• Registrar un documento el cual va ser publicado en la red de Santa Monica Cotton.
• El Encargado de coordinación de documentos podrá revisar si el mismo cumple con los formatos establecidos por ISO 9001 y envíar por correo electrónico a los usuarios encargados de revisar y aprobar el documento.
• El documento podrá ser publicado en la intranet cuando se obtenga la revisión y aprobación respectiva. Dicho documento podrá ser accedido por el personal de Santa Monica Cotton.
CONTENIDO SINOPSIS ....................................................................................................... i RESUMEN ......................................................................................................ii INTRODUCCIÓN ........................................................................................... iii PARTE I DEFINICIÓN DEL PROBLEMA......................................................... 1 FUNDAMENTACIÓN Y DEFINICIÓN DEL PROBLEMA....................... 1 1.1 Planteamiento del problema.................................................................. 1 1.1.1 Situación problemática .......................................................................... 1 1.1.2 Situación deseada ................................................................................. 1 1.1.3 Formulación del problema ..................................................................... 2 1.2 Objetivos ............................................................................................... 2 1.2.1 Objetivo general .................................................................................... 2 1.2.2 Objetivos específicos............................................................................. 3 1.3 Delimitación........................................................................................... 3 1.3.1 Delimitación espacial ............................................................................. 3 1.3.2 Delimitación temporal ............................................................................ 3 1.3.3 Delimitación sustantiva.......................................................................... 3 1.4 Justificación........................................................................................... 4 1.5 Diseño metodológico ............................................................................. 5 1.5.1 Tipos de investigación ........................................................................... 5 1.5.2 Estrategia metodológica ........................................................................ 5 2 FUNDAMENTOS TEORICOS Y CONTEXTUALIZACIÓN .................... 8 2.1 Fundamento Teórico ............................................................................. 8 2.1.1 Sistema de Gestión de Calidad ISO 9001 ............................................. 8 2.1.2 Aplicación Web.................................................................................... 11 2.1.3 Programación Orientada a Objetos (POO).......................................... 30 2.1.4 UML…. ................................................................................................ 34 2.2 Santa Mónica Cotton ........................................................................... 34 2.2.1 Antecedentes de la empresa............................................................... 34 2.2.2 Estructura organizativa........................................................................ 35 2.2.3 Organigrama general........................................................................... 35 2.2.4 Productos Elaborados ......................................................................... 36 2.3 Entorno de desarrollo .......................................................................... 36 2.3.1 Motor de Base de Datos...................................................................... 37 2.3.2 Plataforma Microsoft .NET .................................................................. 38 2.3.3 Aspectos de seguridad implementados............................................... 44 PARTE II DESARROLLO DE LA PROPUESTA .............................................. 3 MODELADO DEL NEGOCIO Y REQUISITOS.................................... 49 3.1 Modelado del Negocio ........................................................................ 49 3.1.1 Descripción del documento ................................................................. 49 3.1.2 Identificación de documentos internos ................................................ 50 3.1.3 Matriz de responsabilidades................................................................ 51 3.1.4 Formato............................................................................................... 51 3.1.4.1 Procedimientos ............................................................................... 51 3.1.4.2 Instrucciones ................................................................................... 53 3.1.5 Elaboración, aprobación y distribución de documentos ...................... 53 3.1.6 Actualización, archivo y disposición de documentos.......................... 54 3.1.7 Documentos externos ......................................................................... 56
3
3.1.8 Responsables ..................................................................................... 58 3.2 Captura de requisitos ......................................................................... 58 3.3 Definición Textual de los requisitos .................................................... 58 3.3.1 Requerimientos Funcionales.............................................................. 58 3.3.2 Requerimientos no Funcionales......................................................... 60 3.4 Contexto del sistema.......................................................................... 61 3.4.1 Modelo de dominio............................................................................. 61 3.4.2 Identificación de los actores ............................................................... 62 3.4.3 Identificación de los casos de uso...................................................... 62 3.4.4 Esbozo del Modelo de Casos de uso................................................. 68 3.4.5 Detalle de los casos de uso ............................................................... 69 4 ANALISIS .......................................................................................... 121 4.1 Esbozo del Modelo de análisis (paquetes de análisis) ...................... 121 4.2 Análisis de casos de uso ................................................................... 122 4.3 Identificación de clases de análisis ................................................... 159 5 DISEÑO............................................................................................. 160 5.1 Identificación de nodos y configuración............................................. 160 5.2 Realización de casos de uso - diseño ............................................... 161 5.3 Diseño de clases ............................................................................... 201 5.4 Modelo Físico de la Base de Datos ................................................... 202 6 IMPLEMENTACIÓN .......................................................................... 203 6.1 Identificación de componentes .......................................................... 203 6.1.1 Componentes propios ....................................................................... 203 6.1.2 Componentes Reglas del Negocio .................................................... 203 6.1.3 Componentes terceros ...................................................................... 203 6.1.4 Componentes Open Source .............................................................. 203 6.1.5 Diagrama de componentes ............................................................... 204 6.2 Codificación....................................................................................... 204 6.3 Puesta en marcha ............................................................................. 205 6.3.1 Instalación y capacitación.................................................................. 205 7 PRUEBAS ......................................................................................... 206 7.1 Pruebas de Unidad............................................................................ 206 7.2 Pruebas de Casos de Uso................................................................. 210 7.3 Pruebas de sistema........................................................................... 217 8 CONCLUSIONES Y RECOMENDACIONES..................................... 218 8.1 Conclusiones ..................................................................................... 218 8.2 Recomendaciones............................................................................. 218 9 BIBLIOGRAFIA.................................................................................. 219 ANEXOS .................................................................................................... 220 Anexo A: Lista de requerimientos .............................................................. 220 Anexo B: Métodos principales.................................................................... 222
ii
RESUMEN Este Trabajo Final de Grado propone la automatización al proceso de control
de registro, administración y circulación de documentos de SANTA MONICA
COTTON S.A. el cual se lleva a cabo de forma manual por medio de hojas
electrónicas y la publicación de los mismos en carpetas compartidas.
La implementación de una aplicación web permitirá el control de registro,
administración y circulación de documentos en la intranet de SANTA
MONICA COTTON S.A., se podrá conocer los documentos vigentes o
versiones anteriores, se implementará un sistema que de seguridad para
las páginas de uso restringido, así como los roles que tiene cada usuario.
Por otro lado, la aplicación web fue desarrollada utilizando la herramienta de
desarrollo Visual Studio 2005 con el lenguaje de programación C#. SQL
Server 2005 como motor de Base de Datos. Sistema Operativo Windows
2003 SERVER como plataforma que sostiene dicha aplicación web.
iii
INTRODUCCIÓN
Santa Mónica Cotton S.A., en adelante SMC proyecta una exitosa gestión de
negocios basado en la producción de hilados de calidad, para ello cuenta
con cuatro líneas independientes de producción. SMC empresa legalmente
establecida es proveedor latinoamericano de hilazas de algodón.
SMC se encuentra asentada sobre un área de 14 hectáreas, con más de
36.000 m2 construidos, cuenta con las instalaciones adecuadas para la
hilatura de fibras cardadas y peinadas de algodón. Adicionalmente posee
ambientes acondicionados para el seguro almacenamiento de la materia
prima y producto final.
El proceso de fabricación se inicia con la selección de la materia prima,
pensando en las necesidades del usuario final. Las características físicas y
químicas del algodón utilizado aseguran la calidad de la fibra hilada, un
rendimiento tintóreo óptimo y densidades superficiales precisas.
Todos los procesos de fabricación se realizan bajo sistemas de gestión de
calidad, Medio Ambiente y Seguridad Industrial. Con una amplia red de
representantes en todos los mercados atendidos, satisface todos los
requerimientos tanto técnicos como comerciales de sus clientes con un
servicio totalmente personalizado. http://www.smcotton.com/ubicacion.html
Penetrar en los mercados internacionales y mantener una posición
competitiva, hace que SMC tenga que satisfacer las exigencias de la calidad
para la exportación. Demostrar preocupación por su desempeño medio
ambiental correcto, controlando el impacto de sus actividades, productos en
el medio ambiente e incluyendo el desarrollo sostenible. Eliminar o
iv
minimizar riesgos para los empleados y para otras partes interesadas que
puedan estar expuestas.
SMC actualmente cuenta con certificaciones en NB ISO 9001:2000
(Sistemas de gestión de la calidad), NB ISO 14001:2004 (Sistemas de
gestión ambiental) y NB ISO 18001:2001 (Sistemas de gestión de la
seguridad y la salud ocupacional) otorgadas por el Instituto Boliviano de
Normalización y Calidad (IBNORCA).
Este trabajo contiene el producto del análisis de los requerimientos
establecidos por la empresa, el diseño para la implementación de la
aplicación web que permitirá el control de registros, administración y
circulación de documentos en Santa Mónica Cotton S.A.
Se detallan además las herramientas de desarrollo a utilizarse, así como las
notas de implementación y los resultados de las fases de prueba.
PARTE I DEFINICIÓN DEL PROBLEMA
1
1 FUNDAMENTACIÓN Y DEFINICIÓN DEL PROBLEMA 1.1 Planteamiento del problema
1.1.1 Situación problemática
Actualmente, la empresa Santa Mónica Cotton (SMC) está certificada en
Normas ISO. Este proceso de certificación ha costado a SMC $us. 35.000.-
(Treinta y Cinco Mil Dólares Americanos) en un año y medio de trabajo.
El proceso en SMC de controlar el registro, administrar y circular los
documentos es muy importante para mantener los estándares
internacionales obtenidos en funcionamiento.
El Comité Integrado de SMC1 ha elaborado el procedimiento para el control
de documentos que indican las directrices generales que tendrá el proyecto,
indicando las consideraciones de la forma en que se debe implementar la
totalidad del proyecto.
En este momento el registro, administración y circulación de documentos se
lo realiza en forma manual, ocasionando pérdidas de tiempo, inseguridad en
los archivos publicados (ataques de virus, borrar involuntariamente los
documentos), error al manejo de versiones.
1.1.2 Situación deseada En la aplicación web se podrá conocer los documentos vigentes o versiones
anteriores. La aplicación web debe considerar la implementación de un
sistema que de seguridad para las páginas de uso restringido, así como los
roles que tiene cada usuario.
1Comité Integrado SMC. Personal de Santa Mónica Cotton, el cual está compuesto por Gerentes,
Sub-gerentes de cada área y Jefes de Sección.
2
La aplicación web debe ser lo suficientemente amplia como para, a posterior,
poder incorporar nuevos documentos a los ya publicados adquiriendo la
seguridad ya desarrollada para el sitio y los otros documentos.
Al finalizar el proyecto completo (Mayo del 2007), se desea tener una
aplicación Web, donde el usuario final pueda crear sus propios documentos
y estos puedan ser manejados según normas establecidas por ISO.
Normas establecidas por ISO para el manejo de documentación son:
• Documentos autorizados.- Todo documento antes de ser publicado
debe ser autorizado por el jefe o gerente de área.
• Control de Versiones.- Se especifica el número de veces que ha sido
modificado el documento.
• Frecuencias de acceso.- Se emite indicadores sobre los documentos
que han sido consultados en un determinado período.
• Seguridad.- Asegurar la confidencialidad necesaria y el acceso "de
niveles diferentes" de usuarios distintos a la documentación del
Sistema.
• Acceso.- Fácil acceso a los documentos publicados o versiones
anteriores.
• Tareas.- Automatización de tareas repetitivas.
1.1.3 Formulación del problema
¿Cómo se puede controlar y realizar el seguimiento de los documentos de
acuerdo a los requerimientos del sistema de gestión de calidad ISO
9001:2000?
1.2 Objetivos
1.2.1 Objetivo general
Implementar una aplicación Web para el control y seguimiento de los
documentos de acuerdo a los requerimientos del Sistema de Gestión de
Calidad ISO 9001:2000.
3
1.2.2 Objetivos específicos
• Identificar los requerimientos necesarios para la creación de la aplicación
Web.
• Diseñar la arquitectura y bases de datos necesarias para satisfacer los
requerimientos.
• Diseñar y hacer pruebas en la plataforma, para asegurar su correcto y
seguro funcionamiento.
• Implantar la aplicación en una fase de transición
1.3 Delimitación
1.3.1 Delimitación espacial
En la empresa Santa Mónica Cotton S.A.
1.3.2 Delimitación temporal
El desarrollo corresponde al año 2006 hasta el año 2007.
1.3.3 Delimitación sustantiva
Considerando que la delimitación sustantiva establece los elementos que se
consideran en el presente proyecto, es necesario indicar que se utilizan los
conceptos de la ingeniería de software, en especial los aspectos
relacionados al desarrollo considerando: análisis, diseño, implementación y
pruebas, de los siguientes elementos:
• Implementación de una Aplicación Web para el control de registro,
administración y circulación de documentos en Santa Mónica Cotton.
• En la aplicación web él usuario podrá registrar un nuevo documento,
modificar un documento ya publicado o podrá ver las versiones
anteriores, se espera ser utilizado desde cualquier equipo conectado
a la intranet de Santa Mónica Cotton.Cada usuario de SMC2 tendrá
definido un nivel de acceso a los documentos de acuerdo al
organigrama de Santa Mónica Cotton (Ver. Figura 2.6).
2 Usuario de SMC. Personal activo de Santa Mónica Cotton.
4
En la aplicación web está contemplado implementar en el primer semestre
del 2008 procesos y auditorías3.
(Fuente: Norma Boliviana NB-ISO 9001:2000)
1.4 Justificación
Con esta herramienta de control de registros, administración y circulación de
documentos el coordinador de documentos podrá tener todos los
documentos digitalizados, controlar la versión de cada uno de ellos, generar
reportes de frecuencia de consulta de documentos publicados y de esta
manera automatizar un proceso que involucra varios pasos.
Para ello se desarrollará un sistema con un entorno amigable, con un editor
web y opciones de configuración de acuerdo a sus requerimientos.
Este proyecto está justificado en forma práctica porque será implementado
en la empresa Santa Mónica Cotton y servirá como modelo de referencia
para que otras empresas que certifiquen con las normas ISO adquieran una
forma similar de trabajo y puedan lograr tener el control de registro,
administración y circulación de documentos.
3 Sin embargo, se da la opción de que los documentos relacionados a estos procesos sean publicados utilizando el software.
Procesos
Auditorias
No
Conformidades
Quejas
Instrucciones
Documentos
Alcance del Proyecto Actual
Figura 1.1 Alcance del Proyecto.
5
1.5 Diseño metodológico
1.5.1 Tipos de investigación
El tipo de investigación es proyectiva según la definición de Jacqueline
Hurtado de Barrero, considerando la presentación del software como
aplicación.
1.5.2 Estrategia metodológica
La metodología que se aplicará para el proceso de desarrollo del software
será el Proceso unificado (PU) de Booch, Jacobson y Rumbaugh. Pasando
por las cuatro 4 fases:
Inicio: Consiste en tener una visión aproximada del problema, analizar el
negocio, el alcance que se desea obtener o el alcance que incorpora el
problema y algunas otras estimaciones que tienden a ser imprecisas.
Elaboración: Se refina la visión del problema y se comienza el desarrollo del
núcleo central del software, en este momento el desarrollo comienza a
realizarse de forma iterativa. En esta etapa la atención del equipo de
desarrollo se centra en los aspectos más relevantes y riesgosos del
proyecto. De forma que se minimicen los problemas lo antes posible.
Construcción: Se continúa con la implementación del resto de los requisitos
del sistema que no son tan críticos como los que se elaboraron en la etapa
de elaboración.
Transición: En esta etapa se realizan las pruebas correspondientes y el
despliegue del software.
En cada fase se abarcará:
6
FASE DE INICIO
Disciplina Pasos Artefactos
Modelado del Negocio
Entrevistas con personeros de la empresa
Requisitos Identificación de los requisitos
Priorización de los requisitos
Esbozo del diagrama de casos de uso
Elaboración del modelo de dominio
Modelo de dominio
Elaboración en alto nivel de los casos de uso generales
Diagrama de casos de uso
Priorizar casos de uso
FASE DE ELABORACION
Disciplina Pasos Artefacto
Requisitos Detallar casos de uso Detalle de casos de uso, con prototipos de interfaces
Diseñar prototipos de interfaces
Análisis
Planificación de los componentes a reutilizar (propios y de terceros) Diagramas de colaboración
Recopilación de nuevos requisitos para el sistema
Refinar diagrama de clases
Diagrama de clases con atributos
Diseño Diseñar la arquitectura del sistema
Arquitectura del software.
7
FASE DE CONSTRUCCION
Disciplina Pasos Artefacto
Diseño Analizar la interaccion entre objetos.
Diagramas de secuencia
Refinar Diagrama de Clases
Diagrama de Clases con métodos.
Modelado de la base de datos
Modelo Entidad Relación.
Implementación
Construcción del sistema en base a componentes.
Diagrama de Componentes
Integración del sistema. Código del software
Pruebas Pruebas de Unidad, Integración y Sistemas
Casos de uso de Prueba.
FASE DE TRANSICION
Disciplina Pasos Artefacto
Pruebas Ejecución del sistema en un proyecto piloto.
Observaciones y recopilación de la experiencia del usuario
Aceptación del usuario Final.
Carta de aceptación de la empresa.
Cada fase será documentada mediante el uso de elementos notacionales del
lenguaje UML (Unified Modeling Language).
8
2 FUNDAMENTOS TEORICOS Y CONTEXTUALIZACIÓN En este capitulo se presentan los principales fundamentos para la realización
del trabajo dirigido, considerando a los mismos como referencias a la
solución técnica.
2.1 Fundamento Teórico
En esta sección se presentan los principales conceptos y elementos
necesarios para fundamentar el presente trabajo.
2.1.1 Sistema de Gestión de Calidad ISO 9001 En esta sección se presentarán los principales elementos relacionados a la
ISO 9001, considerando en primera instancia lo relativo a la gestión
documental, basada en los estudios de la consultora Integra.
ISO
Las Normas Internacionales proporcionan un armazón de referencia, o un
idioma tecnológico común, entre los proveedores y sus clientes - qué facilita
el comercio y el intercambio de tecnología.
La denominación ISO proviene de las abreviaciones de "International
Organization for Standardization” en ingles y de la palabra derivada del
griego ISOS, que significa IGUAL.
Es una red de institutos de normalización de 148 países (un miembro por
país), la secretaría que coordina el sistema se encuentra en Ginebra, Suiza.
ISO 9000:2000
Es un conjunto de normas orientadas a garantizar la gestión en el diseño,
producción y servicios post-venta en la organización.
• La norma no contempla el aseguramiento del producto, asegura el
sistema de Calidad que genera el producto.
9
• Es una herramienta segura creada para ayudar a las empresas a
trabajar de modo organizado.
• Esta norma persigue dar confianza al comprador, mediante la
existencia de un sistema de calidad, que el producto o servicio cumple
con las especificaciones y que satisface sus necesidades.
Norma NB-ISO 9001:2000 (“Sistemas de gestión de la Calidad”):
Generalidades:
La Norma NB ISO 9001:2000 especifica los requisitos para un sistema de
gestión de calidad que pueden utilizarse para su aplicación interna por las
organizaciones, para certificación o con fines contractuales. Se centra en la
eficacia del sistema de gestión de la calidad para dar cumplimiento a los
requisitos del cliente. Esta Norma Internacional especifica los requisitos para
un sistema de gestión de la calidad, cuando una organización:
a) Necesita demostrar su capacidad para proporcionar en forma coherente
productos que satisfagan los requisitos del cliente y los reglamentarios
aplicables.
b) Aspira a aumentar la satisfacción del cliente a través de la aplicación
eficaz del sistema, incluidos los procesos para la mejora continua del
sistema y el aseguramiento de la conformidad con los requisitos del
cliente y los reglamentarios aplicables.
Aplicación: Todos los requisitos de esta Norma Internacional son genéricos
y se pretenden que sean aplicables a todas las organizaciones sin importar
su tipo, tamaño y producto suministrado. Cuando uno o varios requisitos de
esta Norma Internacional no se pueden aplicar debido a la naturaleza de la
organización y de su producto, pueden considerarse para su exclusión.
Cuando se realicen exclusiones, no se podrá alegar conformidad con esta
norma internacional a menos que dichas exclusiones queden restringidas a
los requisitos.
10
Norma NB-ISO 14001 (“Sistemas de gestión ambiental” ):
Objeto y Campo de Aplicación:
Esta Norma Internacional especifica los requisitos para un sistema de
gestión ambiental, destinados a permitir que una organización desarrolle e
implemente una política y unos objetivos que tengan en cuenta los requisitos
legales y otros requisitos para la organización suscriba, y la información
relativa a los aspectos ambientales significativos. Se aplica a aquellos
aspectos ambientales que la organización identifica que puede controlar y
aquel sobre los que la organización puede tener influencia. No establece por
sí misma criterios de desempeño ambiental específicos. Esta Norma
Internacional se aplica a cualquier organización que desee:
a) Establecer, implementar, mantener y mejorar un sistema de gestión
ambiental.
b) Asegurarse de su conformidad con su política ambiental establecida.
c) Demostrar la conformidad con esta Norma Internacional por:
1. La realización de una auto evaluación y auto declaración.
2. La búsqueda de confirmación de dicha conformidad por las partes
interesadas en la organización, tales como clientes.
3. La búsqueda de confirmación de su auto declaración por una parte
externa a la organización.
4. La búsqueda de la certificación/registro de su sistema de gestión
ambiental por una parte externa a la organización.
Todos los requisitos de esta Norma Internacional tienen como fin su
incorporación a cualquier sistema de gestión ambiental. Su grado de
aplicación depende de factores tales como la política ambiental de la
organización, la naturaleza de sus actividades, productos y servicios y la
localización donde y las condiciones en las cuales opera.
11
Norma NB-OHSAS 18001 (“Sistemas de Gestión de la se guridad y la
salud ocupacional”):
Esta Norma indica los requisitos para un sistema de gestión de la seguridad
y la salud ocupacional, con el objeto de que una organización pueda
controlar sus propios riesgos de seguridad y salud ocupacional (SYSO) y
mejore su comportamiento. No especifica criterios específicos de
comportamiento en SYSO ni tampoco indica especificaciones detalladas
para el diseño de un sistema de gestión. Esta norma es aplicable a cualquier
organización que desee:
a) Establecer un sistema de gestión de SYSO para eliminar o minimizar
riesgos para los empleados y para otras partes interesadas que puedan
estar expuestas a riesgos de SYSO relacionados con sus actividades.
b) Implementar, mantener y mejorar de manera continua un sistema de
gestión de SYSO.
c) Asegurarse de su conformidad con su política establecida de SYSO.
d) Demostrar esta conformidad a otros.
e) Buscar la certificación y el registro de su sistema de gestión de SYSO por
una organización externa.
f) Hacer una autodeterminación y declaración de conformidad con esta
norma.
Todos los requisitos de esta Norma están pensados para ser incorporados a
cualquier sistema de Gestión SYSO. El grado de aplicación dependerá de
factores tales como la política de SYSO de la organización, la naturaleza de
sus actividades y los riesgos y complejidad de sus operaciones.
Esta norma apunta más a la seguridad y salud ocupacional que a la
seguridad de productos y servicios.
2.1.2 Aplicación Web
Una aplicación Web es un sistema informático que los usuarios utilizan
accediendo a un servidor web4 a través de internet o de una intranet. Las
4Servidor web. Computadora que almacena documentos en formato de hipertexto (HTML) y puede
ser accedida desde un navegador (Internet Explorer, Mozilla, FireFox).
12
aplicaciones web son populares debido a la practicidad del navegador web
como cliente ligero. La facilidad para actualizar y mantener aplicaciones web
sin distribuir e instalar software en miles de potenciales clientes es otra razón
de su popularidad.
La aplicación web se divide en seis partes [Roger S. Pressman “Ingeniería de Software”
Quinta Edición]:
• Intensivas de red.
Las aplicaciones web residen en una red y deben dar servicio a las
necesidades de una comunidad diversa de clientes, pudiéndose
comunicar de las siguientes maneras:
a) Internet. Conocida también como La “Red de Redes”. Es un
sistema de redes de computadoras por medio del cual una
persona desde cualquier computadora puede accesar a
información de otra computadora e inclusive tener una
comunicación directa con otros usuarios. Para que todas estas
computadoras puedan estar conectadas y funcionar
adecuadamente, tienen que comunicarse por medio de un
mismo idioma, a este "idioma" se denomina protocolo5 de
comunicación, TCP/IP (Transmission Control Protocol/Internet
Protocol) (Protocolo de Control de Transmisión/Protocolo de
Internet). Cualquier sistema conectado directamente a la red
tiene un dominio6 y un IP7.
b) Intranet. Es una red privada dentro de una organización que
utiliza tecnología muy similar a la de Internet la cual permite a
sus usuarios buscar, utilizar y compartir documentos. Las
empresas utilizan la Intranet para comunicarse son sus
empleados, considerado hoy en día un recurso indispensable.
5Protocolo. Es un lenguaje común que utiliza el cliente y el servidor para enviar y recibir mensajes 6Dominio. Es el nombre que utiliza un sitio web para ser identificado de los demás.
7IP. Es una serie de números asociados generalmente a una computadora, con la cual es posible
identificarlo dentro de una red configurada.
13
Al igual que el Internet, Intranet utiliza el protocolo de Internet
TCP/IP. La intranet puede resolver los siguientes problemas es
una empresa:
• Distribución de información para todos los empleados
como ser: publicación de manuales, planes de acción,
procedimientos a seguir, material de formación,
información comercial, etc.
• Rápido acceso a cualquier documento de la empresa,
mejorando la productividad de la empresa.
• En forma rápida y eficiente comunica a todos los
empleados.
• Organiza la distribución de la empresa, ya sea por
departamentos o divisiones.
c) Extranet. Es una red que tiene acceso limitado y que está
disponible únicamente a usuarios específicos, tales como
clientes o proveedores los cuales deben contar con una clave
de acceso para obtener información de los sistemas internos
de la empresa. A continuación se presenta los beneficios
adicionales de utilizar la extranet:
• Transacciones seguras de actividades entre los sistemas
internos de los negocios.
• Permite reducción en costos y ahorro de tiempo para la
empresa.
• Facilita rápido acceso a información de socios (clientes y
proveedores).
14
A continuación se detallan las principales diferencias:
Internet Intranet Extranet Disponible para el uso de todos.
Presenta la misma interface que el internet, solo pueden acceder usuarios de una red privada, la cual se encuentra protegidas por herramientas físicas tal es el caso de los firewalls8.
Se encuentra en un punto intermedio. Existen firewalls, pero permiten el acceso únicamente a socios y clientes con claves de acceso.
(Fuente: Elaboración propia en base a la siguiente dirección: http://www.monografias.com/trabajos14/mundo-negocios/mundo-negocios.shtml#int)
Figura 2.1 Principales diferencias.
• Controlada por el contenido.
En muchos casos la función primaria de una aplicación web es utilizar
hipermedia para presentar al usuario:
⇒ Contenido de textos.
⇒ Gráficos.
⇒ Sonidos.
⇒ Video.
• Evolución continúa.
Las aplicaciones web están en constante evolución. El desarrollo de
los sitios web suele estar destinado a crear infraestructura por tal
motivo la información crece. Una buena arquitectura inicial deberá
permitir que éste crecimiento ocurra de forma controlada y
consecuente.
• Inmediatez.
El tiempo en que se tarda en comercializar un sitio web es cuestión de
días o semanas.
8 FireWalls. Traducido al español significa “pared de fuego”.
15
• Seguridad.
El hecho de que una aplicación web esté expuesta al público en
general, ésta debe tener fuertes medidas de seguridad en toda la
infraestructura.
• Estética.
Una parte muy importante de una aplicación web es su apariencia e
interacción con los usuarios.
Categorías de una aplicación web.
La aplicación web del presente trabajo se encuentra en las siguientes
categorías: “Orientada a transacciones” y “Acceso a base de datos”.
Informativa Descarga Proporciona un contenido de lectura con navegación y enlaces simples.
Un usuario descarga información desde un determinado servidor.
Personalizable Interacción El usuario personaliza el contenido de acuerdo a sus necesidades específicas.
Los usuarios se comunican por medio de mensajería instantánea.
Entrada del usuario Orientada a transacciones Es la comunicación por medio de formulario de entrada de datos.
El usuario registra solicitudes por medio de un formulario y se almacena en una base de datos.
Orientada a servicios Portal Proporciona un servicio al usuario. (Información)
La aplicación canaliza al usuario llevándolo a otros contenidos o servicios.
Acceso a base de datos Almacenes de datos El usuario consulta a una base de datos y extrae información.
El usuario consulta a una base de datos grande y extrae información.
Figura 2.2 Categorías de una Aplicación Web. (Fuente: Elaboración propia en base a [Roger S. Pressman “Ingeniería de Software” Quinta Edición])
16
Atributos de calidad de una aplicación web. A continuación se presenta el árbol de requisitos de calidad.
Calidad de unaAplicación Web
- Capacidad de comprensión del sitio global. - Servicios de ayuda y realimentación en línea. - Capacidades estéticas y de interfaz. - Servicios especiales.
- Capacidad de recuperación y de búsqueda. - Servicios de búsqueda y navegación. - Servicios relacionados con el dominio de aplicación.
- Proceso correcto de enlace. - Recuperación de errores. - Validación y recuperación de la entrada del usuario.
- Rendimiento del tiempo de respuesta. - Velocidad de generación de páginas. - Velocidad de generación de gráficos.
- Facilidad de corrección. - Adaptabilidad. - Extensibilidad.
Eficiencia
Capacidad deMantenimiento
Fiabilidad
Funcionalidad
Usabilidad
Figura 2.3 Atributos de calidad de una aplicación web. (Fuente: [Roger S. Pressman “Ingeniería de Software” Quinta Edición] [Olsina,L. et al., “Specifying Quality Characteristics and Attributes for Web Sites”])
Tecnologías en una aplicación web.
Los sistemas basados en web incorporan tres tecnologías importantes: el
desarrollo basado en componentes, seguridad y los estándares de Internet.
Dichas tecnologías son la base para construir una aplicación web de calidad.
Desarrollo Basado en Componentes.
El desarrollo de software basado en componentes permite reutilizar piezas
de código pre elaborado que permiten realizar diversas tareas, conllevando a
diversos beneficios como las mejoras a la calidad, la reducción del ciclo de
desarrollo y el mayor retorno sobre la inversión. El desarrollo basado en
componentes es escribir código para hacer que estos componentes
funcionen.
17
En el presente trabajo se utilizan dos componentes.
• SIICOL permite establecer la conexión a la base de datos, obtener
datos de una tabla específica (seleccionar un conjunto de datos) y
realizar acciones sobre una tabla específica (insertar, actualizar y
eliminar datos). El componente SIICOL genera la siguiente estructura
en memoria:
BRC_PROPERTIES
TABLE Nombre de la tabla
NAMEAlias de la tabla, tambien puede tener el mismo nombre que el parametro TABLE
DBKEY Cadena de conexión establecida en el WebConfigDESC Descripcion de la tabla
COLXROWEstablece cuantas columnas presenta por fila en el formulario.
En BRC_PROPERTIES se establecen las propiedas de conexión a la tabla.
Figura 2.4 Propiedades de la Tabla. (Fuente: Sistema Control, registro, administración y circulación de documentos en SMC.)
Estructura de la tablaEn la Estructura de la tabla, presenta un DataTable con la estructura y datos de la tabla que se esta mostrando.
Figura 2.5 Estructura y datos de la tabla que se consulta. (Fuente: Sistema Control, registro, administración y circulación de documentos en SMC.)
18
NAME Nombre del campo de la tablaDEFAULT Valor por defecto a mostrar en el formulario.HEAD Nombre de la etiqueta a presentar en el formularioTYPE El tipo de dato al cual corresponde.SIZE El tamaño del tipo de dato
PKSe establece en verdadero si el campo de la tabla es llave primaria.
AUTONUMBERSi se establece la propiedad en verdadero, genera automáticamente un valor autonumérico.
REQUIREDSi se establece la propiedad en verdadero, obliga al usuario a ingresar datos al formulario
REFERENCESSe realiza referencias a otra tabla generando automaticamente un lista desplegable en el formulario.
MASK Se establece una mascara de entrada de datos
VISIBLESi se establece en verdadero esta propiedad, muestra el campo en el formulario.
COLSPANIndica el numero de columnas que ocupará dicho campo dentro del formulario.
READONLYSi se establece en verdadero esta propiedad, muestra el campo en el formulario bloqueado.
POSTBACKSi se establece en verdadero esta propiedad, realiza la consulta al servidor cada vez que se realiza un cambio en el campo del formulario.
FORMONLY
Si se establece en verdadero esta propiedad, se indica que el campo no pertence a la tabla que se esta conectado y sirve para presentar datos de información, como ser descripcion de un producto.
En BRC_FIELDS se establecen las reglas del negocio y el comportamiento que tendran cada uno de los campos de la tabla en el formulario como asi tambien los campos adicionales que no pertenezcan a dicha tabla.
BRC_FIELDS
Figura 2.6 Reglas del negocio. (Fuente: Sistema Control, registro, administración y circulación de documentos en SMC.)
• SIIWCL permite implementar la interfaz para el ingreso, actualización
y selección de datos. El componente SIIWCL tiene la propiedad BRC
la cual es de tipo SIICOL.BRL.BRC y pasa las estructuras mostradas
en las figuras 2.4, 2.5 y 2.6, también obtiene la sesión del usuario la
cual fue ingresada al momento de autenticarse el usuario.
Posteriormente el control SIIWCL comienza a generar la interfaz de
usuario.
19
El desarrollo basado en componentes establece los siguientes beneficios:
• Reutilización del Software.
Se alcanza un mayor nivel de reutilización del software.
• Simplifica las pruebas.
Permite que las pruebas sean ejecutadas probando cada uno de los
componentes antes de probar el conjunto completo de componentes
ensamblados.
• Simplifica el mantenimiento del sistema.
Cuando existe un débil acoplamiento entre componentes, el
desarrollador es libre de actualizar y/o agregar componentes según
sea necesario, sin afectar otras partes del sistema
• Mayor calidad.
Dado que un componente puede ser construido y luego mejorado
continuamente por un experto u organización, la calidad de una
aplicación basada en componentes mejorará con el paso del tiempo.
Ventajas al optar por comprar componentes de terceros en lugar de
desarrollados.
• Ciclos de desarrollo más cortos.
La adición de una pieza dada de funcionalidad tomará días en lugar
de meses ó años.
• Funcionalidad mejorada.
Para usar un componente que contenga una pieza de funcionalidad,
solo se necesita entender su naturaleza, más no sus detalles internos.
Así, una funcionalidad que sería impráctica de implementar en la
empresa, se vuelve ahora completamente asequible.
Estándares para el software de componentes.
• CORBA: Grupo de gestión de objetos ha publicado una
arquitectura común de distribución de objetos. Los distribuidores
de objetos (ORB) proporcionan toda una gama de servicios que
20
hacen posible que los componentes reutilizables (objetos) se
comuniquen con otros componentes independientemente de su
ubicación dentro del sistema.
• COM de Microsoft: Microsoft ha desarrollado un modelo de objetos
para componentes (COM) que proporcionan una especificación
para utilizar componentes elaborados por diferentes fabricantes
dentro de una aplicación única bajo el sistema operativo Windows.
• JavaBean de SUN: Es una infraestructura portátil e independiente
de la plataforma que utiliza el lenguaje de programación Java. El
sistema JavaBean amplia el componente simple (applet) de Java
para acoplar los componentes de software más sofisticados
necesarios para el desarrollo basado en componentes.
El proceso de industrialización ha dado ya sus inicios con
implementaciones como la plataforma .net, la cual impulsa la idea de
industrializar el software utilizando tecnologías de componentes. Los
avances y mejoras presentados en esta plataforma van mucho más
allá de las implementaciones iníciales como COM y CORBA,
convirtiendo a los componentes .net en verdaderas piezas de
ensamblaje, en un estilo muy similar a las líneas de ensamblaje
modernas.
.NET ofrece un modelo de desarrollo simplificado, basado en objetos
que utilizan un sistema unificado de tipos de datos y se empaquetan
en componentes reutilizables y auto descriptivos (los assemblies9).
Microsoft .NET: Es una plataforma de desarrollo y ejecución de
aplicaciones, nos brinda todas las herramientas y servicios que se
necesitan para desarrollar modernas aplicaciones empresariales y de
misión crítica, también nos provee de mecanismos robustos, seguros
y eficientes para asegurar que la ejecución de las mismas sea óptima.
Los componentes principales de la plataforma .NET son:
9 Assemblies: “Unidades de ensamblado” Mínima unidad de distribución, versionado y administración de seguridad de aplicaciones .NET, auto descriptivas a través de un manifiesto.
21
• Un entorno de ejecución de aplicaciones, también llamado
“Runtime”, que es un componente de software cuya función es la
de ejecutar las aplicaciones .NET e interactuar con el sistema
operativo ofreciendo sus servicios y recursos.
• Un conjunto de bibliotecas de funcionalidades y controles
reutilizables, con una enorme cantidad de componentes ya
programados listos para ser consumidos por otras aplicaciones.
• Un conjunto de lenguajes de programación de alto nivel, junto con
sus compiladores y linkers, que permitirán el desarrollo de
aplicaciones sobre la plataforma .NET.
• Un conjunto de utilitarios y herramientas de desarrollo para
simplificar las tareas más comunes del proceso de desarrollo de
aplicaciones
• Documentación y guías de arquitectura, que describen las mejores
prácticas de diseño, organización, desarrollo, prueba e instalación
de aplicaciones .NET
Representa la evolución COM (Component Object Model).
• Componente de software.
Un componente de software es una unidad de composición en
formato ejecutable con interfaces especificadas (conjunto de
métodos). Un componente de software se puede instalar
independientemente y está sujeto a composición por terceros es decir
deben estar orientados a un mercado, sino hay mercado no hay
componentes, deben producir retorno de la inversión ROI (Return Of
Investment).
• Ingeniería de componentes.
Es la habilidad que tiene el ingeniero de software de hacer encajar un
conjunto de componentes pre construido según el estilo arquitectónico
específico y así obtener una aplicación final.
22
Seguridad.
La seguridad es una de las partes más importantes dentro de una aplicación
web, porque a ella pueden acceder personal interno sin autorización y más
grave aun si dicha aplicación esta en Internet, está expuesta a ataque de
hackers (bandidos) con intenciones maliciosas.
Mediante la infraestructura de red se proporciona una variedad de medidas
de seguridad, tales como encriptación, cortafuegos, autenticación de
usuarios.
Encriptación
• Contraseñas
Existen dos tipos de encriptación de contraseñas:
• SHA1: Este método de encriptación genera valores HASH. El
valor hash se utiliza como valor único de tamaño fijo que
representa una gran cantidad de datos. Pequeñas modificaciones
en los datos ocasionan grandes cambios imprevisibles en el valor
hash. El tamaño del valor hash del algoritmo SHA1 es de 160 bits.
Este algoritmo produce un tamaño de hash mayor y por tanto se
considera más seguro. (Fuente: msdn de Visual Studio 2005)
• MD5: Este método de encriptación genera valores HASH. Las
funciones hash asignan cadenas binarias de una longitud arbitraria
a cadenas binarias pequeñas de una longitud fija. Pequeñas
modificaciones en los datos ocasionan grandes cambios
imprevisibles en el valor hash. El tamaño del valor hash del
algoritmo MD5 es de 128 bits. Con este algoritmo se obtiene un
mayor rendimiento que con el algoritmo SHA1.
(Fuente: msdn de Visual Studio 2005)
23
• Secciones de configuración RSA.
El proveedor predeterminado del contenedor de claves RSA es
RSAProtectedConfigurationProvider y utiliza el cifrado de clave
pública RSA para cifrar y descifrar datos. RSA utiliza la herramienta
de registro de IIS en ASP.NET (Aspnet_regiis.exe).
Para cifrar secciones de configuración mediante el proveedor de
configuración protegida se realizan los siguientes pasos:
1. Identificación de las secciones de configuración que se van ha
cifrar: En este caso se van a cifrar todas las secciones como
ser:
• <appSettings>
• <connectionStrings>
• <system.web>
• <sessionState>
2. Elección de contenedores en el nivel de equipo o en el nivel de
usuario: Tiene la siguiente ubicación:
\WebApp\SMC_DOC\MachineRSA
3. Cifrado de los datos del archivo de configuración. Los datos a
cifrar se detallan en el punto número 1.
(Fuente: msdn de Visual Studio 2005)
Seguridad al subir archivos al Servidor.
Se ha establecido que solo se pueden subir archivos con extensión pdf
puesto que los archivos de Word, Excel y Power Point pueden contener virus
desarrollado en código VBA. Cada usuario pertenece a un Departamento por
tal motivo al momento de subir un archivo al servidor de archivos solo
accede a la carpeta del Departamento al cual corresponde.
En el lado del cliente para que no pueda subir archivos que no corresponden
a la aplicación Web se ha utilizado controles de validación ASP.NET. Estos
controles permiten realizar comprobaciones de expresiones regulares en los
archivos cargados para ver si la extensión está permitida. El control
ASP.NET utilizado para este fin es <asp:RegularExpressionValidator>.
24
En el lado del servidor la validación que se realiza es utilizando el método
GetExtension del espacio de nombres System.IO.Path y verificar la
extensión del archivo antes de ser cargado en el servidor web.
Estándares de Internet.
Durante la última década el estándar dominante en la creación del contenido
y la estructura de la aplicación Web ha sido HTML, un lenguaje de marcas
que posibilita al desarrollador proporcionar una serie de etiquetas que
describen una gran variedad de objetos de datos (texto, gráficos,
audio/video, formularios, etc.).
El XHTML (eXtensible Hypertext Markup Language) o Lenguaje de
etiquetado Hipertextual Extensible. Es una reformulación del lenguaje HTML.
XHTML surgió ante los problemas de compatibilidad que surgían cuando se
usaba un documento HTML en distintas plataformas. La especificación
XHTML viene a ser una reformulación del HTML como aplicación XML. En
realidad, es una reformulación de las tres definiciones de tipo de documento
HTML 4.0 como aplicaciones XML. Su finalidad es que pueda ser usado
como lenguaje de contenidos que sea a su vez conforme a XML y, si se
siguen algunas sencillas directrices, funciona en agentes de usuario (esto
es, las aplicaciones que leen y procesan documentos) conformes con HTML
4.0.
Ventajas
Las principales ventajas del XHTML sobre otros formatos son:
• Compatibilidad parcial con navegadores antiguos: la información se
visualiza, aunque sin formato. Cabe apuntar que el XHTML 1.0 fue
diseñado expresamente para ser mostrado en navegadores que
soportan HTML de base.
• Un mismo documento puede adoptar diseños radicalmente distintos
en diferentes dispositivos, pudiendo incluso escogerse entre varios
diseños para un mismo medio.
• Facilidad de edición directa del código y de mantenimiento.
25
• Formato abierto, compatible con los nuevos estándares que
actualmente está desarrollando el W3C como recomendación para
futuros agentes de usuario o navegadores.
• Los documentos escritos conforme a XHTML 1.0 pueden
potencialmente presentar mejor rendimiento en las actuales
herramientas web que aquellos escritos conforme a HTML.
Inconvenientes
• Algunos navegadores antiguos no son totalmente compatibles con los
estándares, lo que hace que las páginas no siempre se muestren
correctamente. Esto cada vez es menos problemático, al ir cayendo
en desuso.
• Muchas herramientas de diseño web aún no producen código XHTML
correcto.
ASP.NET 2.0 utiliza XHTML debido a las siguientes razones:
• Los documentos XHTML son conformes a XML. Como tales, son
fácilmente visualizados, editados y validados con herramientas XML
estándar.
• Los documentos XHTML pueden escribirse para que funcionen igual o
mejor que lo hacían antes tanto en las aplicaciones de usuario
conformes a HTML 4.0 como en los nuevas aplicaciones conformes a
XHTML 1.0.
• Los documentos XHTML pueden usar aplicaciones (por ejemplo
scripts y applets) que se basen ya sea en el Modelo del Objeto
Documento de HTML o XML.
• A medida que la familia XHTML evolucione, los documentos
conformes a XHTML 1.0 estarán más preparados para interactuar
dentro de y entre distintos entornos XHTML.
• Garantiza que los elementos en las páginas estén bien formados.
• Dado que cada vez mas exploradores incorporan la compatibilidad
XHTML la creación de paginas compatibles con dichos estándares
26
ayuda a garantizar que las paginas se representen de forma uniforme
en todos los exploradores.
• XHTML ayuda a que las páginas se ajusten con mayor rapidez a los
estándares de accesibilidad.
• XHTML es ampliable ya que permite que se les agregue nuevos
elementos. (Fuente: msdn de Visual Studio 2005)
A continuación se detallan las principales características de ASP.NET para
la compatibilidad con XHTML:
• Todos los elementos incluyen una etiqueta de cierre explicita o son de
auto cierre (con />).
• Los nombres de las etiquetas y los atributos se representan en
minúsculas, y los valores de los atributos se encierran entre comillas.
• La información de formato se representa utilizando solo estilos de
hojas de estilos en cascada. Para garantizar la compatibilidad con
este estándar, si la pagina incluye un elemento DOCTYPE de
XHTML, los controles ASP.NET no representan los elementos o
atributos font como bgcolor , que no serian compatibles con los
estándares de XHTML.
• En ASP.NET, si los controles generan identificadores, tal y como
ocurre en los controles Repeater y GridView , entre otros, el formato
de dichos identificadores coincide con las instrucciones de XHTML.
• En ASP.NET agrega dinámicamente un atributo action al elemento
form . De forma predeterminada, los elementos de form incluyen un
atributo name , que se permite en la especificación de XHTML
Transitional. Esto ayuda a mantener la compatibilidad entre versiones
anteriores y las aplicaciones existentes que confían en la secuencia
de comandos de cliente que direcciona elementos de form mediante
el nombre del formulario. (Fuente: msdn de Visual Studio 2005)
27
DTD: es el Document Type Definition (Definición de Tipo de Documento), es
una colección de declaraciones XML que definen la estructura, elementos y
atributos que deben cumplir los documentos conformes al DTD.
En XHTML 1.0 hay 3 DTDs definidos como estándar:
• xhtml1-strict.dtd: Usado cuando queremos utilizar un sistema de
marcas realmente limpio y estructurado libre de cualquier marca que
especifique forma de representación (<font>, <b>, <u>). Está
preparado para ser usado junto con las CSS en las que se especifica
el tipo de letra, colores.
• xhtml1-transitional.dtd: La idea es tomar la ventaja de las capacidades
de XHTML incluyendo las hojas de estilo pero sólo para hacer
pequeños ajustes a las marcas para beneficiar a aquellos que tienen
navegadores antiguos que no entienden las CSS.
• xhtml1-frameset.dtd: Hay que usarlo cuando queramos tener Marcos
HTML para particionar la ventana del navegador en uno o más
marcos.
Es posible vincular un mismo archivo externo de hoja de estilos en cascada
a muchas páginas Web, con el fin de proporcionar una apariencia uniforme a
todo un sitio Web.
Las reglas de estilo CSS se aplican "en cascada", es decir, las reglas de
estilo globales se seguirán aplicando a todos los elementos HTML a menos
que sean sustituidas por las reglas de estilo locales. En general, las reglas
de estilo locales tienen prioridad sobre las reglas de estilo globales.
28
La siguiente tabla muestra cómo trabajan los estilos:
Nivel Definido en Aplica en
Global El archivo de hoja de estilo Toda la página donde se hace referencia
Page El elemento Head de la página
Todos los elementos en la página actual
InLine Un elemento HTML Sólo el elemento correspondiente
Figura 2.8 Tabla de Estilos (Fuente: http://www.elguille.info/ Colabora_NET Usando Estilos en Cascada en Aplicaciones Web ASP _Net.htm) XML
XML, lenguaje extensible de etiquetas (eXtensible Markup Language), no es
un lenguaje de marcado como HTML, XML es un meta-lenguaje que nos
permite definir lenguajes de marcado adecuado a usos determinados.
Al ser XML un metalenguaje es un lenguaje para definir lenguajes. Los
elementos que los componen pueden dar información sobre lo que
contienen, no necesariamente sobre su estructura física o presentación,
como ocurre en HTML. XML no ha nacido solo para su aplicación en
Internet, sino que se propone como lenguaje de bajo nivel (a nivel de
aplicación, no de programación) para intercambio de información
estructurada entre diferentes plataformas. Se puede usar en bases de datos,
editores de texto, hojas de cálculo y casi cualquier cosa que podamos
pensar.
El proceso de IWEB.
Las características de sistemas y de aplicaciones basados en Web influyen
enormemente en el proceso de IWEB (Interface WEB). Dado que las
aplicaciones Web suelen ser controladas por el contenido haciendo hincapié
en la estética, es probable que las actividades de desarrollo paralelas se
planifiquen dentro del proceso de IWEB y necesiten un equipo de personas
tanto técnicas como no (redactores, publicitarios, diseñadores gráficos).
La IWEB demanda un proceso de software incremental y evolutivo.
29
Un marco de trabajo para la IWEB.
Figura 2.9 Marco de trabajo para la IWeb. (Fuente: [Roger S. Pressman “Ingeniería de Software” Quinta Edición])
• El proceso de IWEB comienza con la formulación – actividad que
identifica las metas y los objetivos de la aplicación Web y establece el
ámbito del primer incremento.
• La planificación estima el coste global del proyecto, evalúa los riesgos
asociados con el esfuerzo del desarrollo, y define una planificación del
desarrollo bien granulada para el incremento final de la aplicación
Web.
• El análisis establece los requisitos técnicos para la aplicación Web e
identifica los elementos del contenido que se van a incorporar.
• La actividad de ingeniería incorpora dos tareas paralelas, el diseño
del contenido y la producción son tareas llevadas a cabo por
personas no técnicas del equipo IWEB, siendo el objetivo de estas
tareas de diseñar, producir, y/o adquirir todo el contenido de texto,
gráficos y video que se vayan a integrar a la aplicación Web. Al
mismo tiempo se llevan a cabo un conjunto de tareas de diseño
arquitectónico, navegación e interfaz.
30
• La generación de páginas de pruebas es una actividad de
construcción que hace mucho uso de las herramientas automatizadas
para la creación de la aplicación Web.
• Por último las pruebas finales con el cliente ejercitan la navegación,
se intenta descubrir los errores de los formularios, componentes y
ayuda a asegurar que la aplicación Web funcionará correctamente.
Middleware
En el presente trabajo se utiliza el software intermedio (middleware) se
encuentra entre el servidor web y el cliente que ejecuta el navegador web
que intercepta las peticiones que proceden de dicho navegador. Si se hace
una petición para una página web entonces determina la localización del
documento web y envía una petición para esa página. El servidor responde a
la petición y devuelve la pagina al software intermedio, quien la dirige al
navegador que la visualizara en la pantalla del monitor que utiliza el cliente.
Existen dos tipos de software intermedio: software intermedio general y
software intermedio de servicios. El primero es el que está asociado a los
servicios generales que requieren todos los clientes y servidores tal es el
caso de las comunicaciones TCP/IP, software de autenticación, orientado a
mensajes. El segundo está asociado a los servicios en particular, tal es el
caso de conexiones a diferentes bases de datos (ODBC), tecnología de
datos distribuidas. El presente trabajo está en el software intermedio de
servicios ya que es una tecnología de objetos distribuida que permite a otros
objetos escrito en otros lenguajes puedan coexistir.
(Fuente: [Roger S. Pressman “Ingeniería de Software” Quinta Edición])
2.1.3 Programación Orientada a Objetos (POO)
Desde el punto de vista computacional "es un método de implementación en
el cuál los programas son organizados como grupos cooperativos de
objetos, cada uno de los cuales representa una instancia de alguna clase, y
estas clases, todas son miembros de una jerarquía de clases unidas vía
relaciones de herencia".
31
A continuación se detallan las características principales de la programación
orientada a objetos (POO).
Abstracción . La abstracción permite seleccionar las características
relevantes dentro de un conjunto e identificar comportamientos
comunes para definir nuevos tipos de entidades en el mundo real esto
se conoce con el nombre de “Ignorancia Selectiva”. La abstracción es
clave en el proceso de análisis y diseño orientado a objetos, ya que
mediante ella podemos llegar armar un conjunto de clases que
permitan modelar la realidad o el problema que se quiere atacar. Una
clase debe capturar una y solo una abstracción clave.
Encapsulación . La encapsulación se basa en el principio que
establece que los atributos propios de un objeto no deben ser visibles
desde otros objetos.
• Debe ser declarados como privados.
Permite abstraer al resto del mundo de la complejidad de la
implementación interna. Solo permite exponer el estado del objeto
solo a través del comportamiento que le hayamos definido mediante
miembros públicos. Una pregunta que debemos respondernos:
¿Por qué es útil la encapsulación?
La encapsulación es útil porque establece un punto de control y
validación y porque se tiene una mejor respuesta antes los cambios
que se puedan realizar.
Relaciones. Todo sistema abarca muchas clases y objetos. Los
objetos contribuyen en el comportamiento de un sistema colaborando
entre sí, cabe mencionar que las colaboraciones se logran a través de
las relaciones. Existen dos tipos de relaciones:
32
• Relaciones de asociación. Una asociación es una conexión
entre dos clases que representa una comunicación.
• Una asociación puede tener nombre.
• La comunicación puede ser tanto uni como bidireccional
(por defecto).
• La multiplicidad es el número de instancias que
participan en una asociación.
• Relaciones de agregación. La agregación es una forma
especial de asociación donde un todo se relaciona con sus
partes, también se conoce como “una parte de” o una relación
de contención.
Herencia . El propósito principal de la herencia es el de organizar
mejor las clases que componen una determinada realidad y poder
agruparlas en función de atributos y comportamientos comunes a la
vez que cada una se especializa según su particularidades.
Otra definición de herencia es: Es una relación entre clases en la cual
una clase comparte la estructura y comportamiento definido en otra
clase (Fuente: [Grady Booch])
Herencia “Es-Un”: herencia real, donde la subclase es un tipo
especifico de la superclase. Cada clase que hereda de otra posee:
• Los atributos de la clase base además de los propios.
• Soporta todos o algunos de los métodos de la clase base.
Características secundarias de la programación orientada a objetos (POO).
Modularidad . Es la propiedad que tiene un sistema que ha sido
descompuesto en un conjunto de módulos cohesivos y vagamente
conexos. Cada modulo se puede compilar separadamente, aunque
tengan conexiones con otros módulos. La modularización debe
ceñirse a la estructura lógica elegida en el proceso de diseño.
33
Dividir un programa en componentes individualizados reduce de
alguna manera su complejidad.
Tipificado . Tipificar es la imposición de una clase a un objeto, de tal
modo que objetos de diferentes tipos no se puedan intercambiar o se
puedan intercambiar solo de forma restringida.
Concurrencia . Es la propiedad que distingue un objeto que está
activo de uno que no lo está. Concurrencia permite que diferentes
objetos actúen al mismo tiempo, usando distintos hilos de control.
Persistencia . Es la propiedad de un objeto a través de la cual su
existencia trasciende el tiempo (es decir, el objeto continua existiendo
después de que su creador ha dejado de existir) y/o el espacio (es
decir, la localización del objeto se mueve del espacio de dirección en
que fue creado).
Patrones. Los Patrones son soluciones a problemas que se presentan
repetidamente en el desarrollo de aplicaciones de software ya sea orientado
a objeto o no. Describe el problema en forma sencilla y los pasos a seguir
¿Por qué usarlos?
• Mejora la calidad y estructura
• Mejora la documentación y comunicación de la ingeniería de software
• Previene rediseñar nuevas cosas que ya están diseñadas
Los patrones se clasifican en 3, de Creación, Comportamiento y de
Estructura.
• Los patrones de creación están dirigidos al proceso de creación de un
objeto.
• Los patrones de comportamientos están relacionados con los
algoritmos y con la asignación de responsabilidades a los objetos, es
34
decir, que designan la forma de colaboración y comunicación entre
objetos.
• Los patrones de Estructura tienen que ver con la forma en que las
clases son agrupadas para formar grandes estructuras.
Abstract Factory (Fábrica Abstracta)
Es un patrón de diseño para el desarrollo de software. El problema que
intenta solucionar este patrón es el de crear diferentes familias de objetos.
Uno de los usos más comunes es el de creación de interfaces gráficas de
distinto tipo (gtk, qt, etc.), para lo cual se suele combinar con los patrones
Singleton y Adapter. El patrón Abstract Factory está aconsejado cuando se
prevé la inclusión de nuevas familias de productos, pero puede resultar
contraproducente cuando se añaden nuevos productos o cambian los
existentes.
2.1.4 UML
Es un lenguaje estándar de la industria para elaborar planos de software. Es
el lenguaje para especificar, visualizar, construir y documentar los artefactos
de un sistema de software orientado a objetos. Expresa modelos orientados
a objetos y por lo tanto es parte de un método de desarrollo de software.
2.2 Santa Mónica Cotton
2.2.1 Antecedentes de la empresa
La empresa Santa Mónica Cotton S.A. dedicada a la fabricación de hilos de
algodón, fue constituida en sus inicios como hilandería Santa Cruz.
Posteriormente en el año 1996 mediante la privatización, y la inversión de
capitales bolivianos y extranjeros nace Santa Mónica Cotton S.A.
La empresa cuenta con tres líneas independientes de producción teniendo
como resultado tres tipos de hilos: peinados, cardados, y open end.
35
Esta planta se encuentra ubicada en la ciudad de Santa Cruz dentro del
parque industrial y cuenta con una infraestructura que abarca los 36.000 m2
de las 14
Hectáreas disponibles.
2.2.2 Estructura organizativa
La estructura organizativa de SMC es la siguiente:
• Gerente general
• Gerente comercial
• Gerente de producción
• Gerente administrativo y de finanzas
• Sub. gerente de recursos humanos
• Sub. gerente de sistemas
2.2.3 Organigrama general
A continuación se detalla la estructura organizacional de la empresa Santa
Mónica Cotton S.A.
Figura 2.10 Organigrama de la empresa (Fuente: Gerencia de Santa Mónica Cotton S.A.)
Directorio
Gerencia General
Gerencia de administración y finanzas
Gerencia de producción Gerencia comercial
Sub. Gerencia de recursos humanos
Sub. Gerencia de sistemas
Secretaria
36
2.2.4 Productos Elaborados
En SMC se elaboran hilos crudos que son clasificados en:
Peinado
Es el hilo de mayor calidad ya que en su proceso de fabricación se peina el
algodón para hacer más fino el hilo.
Cardado
Estos son de calidad menor al hilo peinado. Para su fabricación no se peina
el
Algodón, pero si se estira y adelgaza las fibras.
Open End
La característica más notable de estos productos es que están fabricados
con 100% algodón virgen. Esto permite alcanzar niveles de regulares de
calidad. Constituye el hilo de más baja calidad de la empresa, sin embargo
su característica más importante son su alto costo de beneficio.
2.3 Entorno de desarrollo
Debido a las exigencias en los requerimientos, el crecimiento que tendrá el
producto de software a largo plazo, y considerando la magnitud de datos que
la misma desea administrar; se ha establecido usar como motor de Base de
Datos a SQL Server 2005 y para el entorno de desarrollo se usará el
Framework 2.0 de .NET, el Visual Studio 2005, componentes del Ing. Mario
Edwin Amador Zamora, para el desarrollo de las clases y algunas interfaces
del Administrador y de registro de parámetros. El editor Web Open Source
http://www.fckeditor.net
Al editor web fckeditor se han realizado modificaciones a su código fuente
dado que es un componente de código abierto deshabilitando los siguientes
botones:
37
• Fuente HTML
• Insertar / Editar Flash
• Formulario
• Guardar
• Insertar / Editar Vínculo
2.3.1 Motor de Base de Datos SQL Server 2005 es una plataforma global de base de datos que ofrece
administración de datos empresariales con herramientas integradas de
inteligencia empresarial (BI). El motor de la base de datos SQL Server 2005
ofrece almacenamiento más seguro y confiable tanto para datos relacionales
como estructurados, lo que le permite crear y administrar aplicaciones de
datos altamente disponibles y con mayor rendimiento para utilizar en su
negocio.
El motor de datos SQL Server 2005 constituye el núcleo de esta solución de
administración de datos empresariales. Asimismo, SQL Server 2005
combina lo mejor en análisis, información, integración y notificación. Esto
permite que su negocio cree y despliegue soluciones de BI rentables que
ayuden a su equipo a incorporar datos en cada rincón del negocio a través
de tableros de comando, escritorios digitales, servicios Web y dispositivos
móviles.
SQL Server está integrado directamente con Microsoft Visual Studio, el
Microsoft Office System y un conjunto de nuevas herramientas de desarrollo,
incluido el Business Intelligence Development Studio.
Las operaciones que se realizarán en el presente trabajo serán Sentencias
SQL. Las medidas de seguridad para evitar la inyección de código están en
el componente que realiza las acciones sobre la base de datos y consiste en
la utilización de comandos con parámetros estos garantizan que los valores
recibidos desde un origen externo se pasen solo como valores y no como
38
parte de la instrucción Transact-SQL, como resultado los comandos
Transact-SQL insertados en un valor no se ejecutan en el origen de datos.
El uso de transacciones nos asegura que todos los cambios se han realizado
correctamente en una o varias tablas de la base de datos o nos muestra que
los cambios no se han llevado a cabo.
El uso de integridad referencial nos garantiza que para eliminar (uso de
llaves foráneas) el registro padre, primero se tienen que eliminar el o los
registros que dependen del registro padre en una o varias tablas de registros
hijos. De esta manera se garantiza que no exista inconsistencia en la base
de datos.
2.3.2 Plataforma Microsoft .NET Es una herramienta de segunda generación de Microsoft para crear e
implementar software seguro y eficaz para la plataforma Microsoft .NET.
(Fuente: http://www.msdn.microsoft.com,2006)
Creado para satisfacer las necesidades de desarrollo de software más
exigentes de hoy día, Visual Studio .NET 2005 mejora y optimiza a su
predecesor, con el que es altamente compatible. Visual Studio .NET 2005
incluye una completa gama de funciones, desde modeladores que ayudan a
componer visualmente las aplicaciones empresariales más complejas hasta
la implementación de una aplicación en el más pequeño de los dispositivos.
Visual Studio .NET y la plataforma .NET Framework 2.0 de Microsoft
Windows proporcionan una completa herramienta, eficaz y sofisticada,
diseñar, desarrollar, depurar e implementar aplicaciones seguras para
Microsoft Windows® y Web, a la vez sólidas y fáciles de utilizar.
Visual Studio .NET es el único entorno de desarrollo creado exclusivamente
para permitir la integración con servicios Web XML. Al hacer posible que las
39
aplicaciones compartan datos a través de Internet, los servicios Web XML
permiten a los programadores ensamblar aplicaciones a partir de código
nuevo y existente, independientemente de la plataforma, el lenguaje de
programación o el modelo de objetos.
(Fuente: http://www,microsoft.com/spain/sql/productinfo/features/compare-features.mspx)
C# (leído en inglés “C Sharp” y en español “C Almohadilla”) es el nuevo
lenguaje de propósito general diseñado por Microsoft para su plataforma
.NET. Sus principales creadores son Scott Wiltamuth y Anders Hejlsberg,
éste último también conocido por haber sido el diseñador del lenguaje Turbo
Pascal y la herramienta RAD Delphi.
Aunque es posible escribir código para la plataforma .NET en muchos otros
lenguajes, C# es el único que ha sido diseñado específicamente para ser
utilizado en ella, por lo que programarla usando C# es mucho más sencillo e
intuitivo que hacerlo con cualquiera de los otros lenguajes ya que C# carece
de elementos heredados innecesarios en .NET. Por esta razón, se suele
decir que C# es el lenguaje nativo de .NET
La sintaxis y estructuración de C# es muy parecida a la de C++ o Java,
puesto que la intención de Microsoft es facilitar la migración de códigos
escritos en estos lenguajes a C# y facilitar su aprendizaje a los
desarrolladores habituados a ellos. Sin embargo, su sencillez y el alto nivel
de productividad son comparables con los de Visual Basic.
Un lenguaje que hubiese sido ideal utilizar para estos menesteres es Java,
pero debido a problemas con la empresa creadora del mismo -Sun-,
Microsoft ha tenido que desarrollar un nuevo lenguaje que añadiese a las ya
probadas virtudes de Java las modificaciones que Microsoft tenía pensado
añadirle para mejorarlo aún más y hacerlo un lenguaje orientado al
desarrollo de componentes.
40
En resumen, C# es un lenguaje de programación que toma las mejores
características de lenguajes preexistentes como Visual Basic, Java o C++ y
las combina en uno solo. El hecho de ser relativamente reciente no implica
que sea inmaduro, pues Microsoft ha escrito la mayor parte de la BCL
usándolo, por lo que su compilador es el más depurado y optimizado de los
incluidos en el .NET Framework SDK.
(Fuente: http://msdn2.microsoft.com/es-es/library/t27ahy37(VS.80).aspx)
BCL(Base Class Library). Biblioteca de Clases Base que contiene la
funcionalidad más comúnmente utilizada para el desarrollo de todo tipo de
aplicaciones. Algunos ejemplos de la funcionalidad provista por la BCL son
el manejo de colecciones, cadenas de texto, entrada/salida, threading,
operaciones matemáticas y dibujos 2D.
En la figura se pueden apreciar los namespaces más importantes que
componen la BCL. (Fuente: http://www.dce2005.com (Desarrollador 5 Estrellas)
(Fuente: Desarrollador 5 Estrellas http:www.dce2005.com)
ASP.NET es un “Marco” (framework) para programar aplicaciones web, de
un modo similar al que se programan las aplicaciones windows. El
componente principal son los Web Forms (formularios web) que permiten,
entre otras cosas, separar la interfaz del usuario de la funcionalidad de la
aplicación.
41
Entre las principales características de ASP .NET tenemos las siguientes:
• ASP.NET es el framework de programación web dentro de .NET
• Permite desarrollar aplicaciones Web con un modelo “similar” al
utilizado para aplicaciones Windows
• El componente fundamental de ASP.NET es el WebForm
• Independencia del cliente (navegador, S.O., dispositivo físico, etc.)
• Permite utilizar cualquier lenguaje .NET
• Permite desarrollar Servicios Web XML
Las ventajas de ASP.NET:
• La “parte ejecutable” de una aplicación ASP.NET es COMPILADA
• Implementación y actualización de las aplicaciones sin reiniciar el
servidor.
• Acceso a toda la .NET Class Library
• Independiente del lenguaje de programación
• Encapsulamiento de funcionalidad a través de controles de servidor y
controles de usuario
• Permite usar ADO.NET para acceso a datos
• Soporta XML, Hojas de estilo CSS, etc.
• Detección automática del navegador cliente, generando el lenguaje de
marcas soportado por el mismo
• Mecanismo de Caching incorporado para páginas completa o partes
de la misma frecuentemente solicitadas
ADO.NET, que contiene un conjunto de clases que permiten interactuar con
bases de datos relacionales y documentos XML como repositorios de
información persistente
ADO.NET es un subconjunto de la .NET Framework Class Library, que
contiene todas las funcionalidades necesarias para conectarse e interactuar
con dos tipos de repositorios permanentes de información:
• Bases de Datos, como Microsoft SQL Server (clases del namespace
System.Data, que se encuentran compiladas en System.data.dll)
42
• Archivos XML (clases del namespace System.XML, que se
encuentran compiladas en System.Xml.dll)
(Fuente: Desarrollador 5 Estrellas http:www.dce2005.com)
ADO.NET provee dos escenarios de conexión a una base de datos:
Escenario Conectado en forma permanente y Escenario Desconectado.
Acceso a Bases de Datos Relacionales Escenario Cone ctado
En la actualidad se plantean dos tipos de escenarios de acceso a bases de
datos relacionales. El primero de ellos es el que se conoce como “Escenario
Conectado”, ya que en él se requiere una conexión física establecida con el
servidor de datos durante todo momento para poder efectuar cualquier
consulta o actualización sobre los datos.
Esto tiene algunas ventajas y también sus desventajas.
Algunas Ventajas:
• Al haber una única conexión a la base de datos por usuario, o incluso
a veces por aplicación, establecida permanentemente, puede llegar a
resultar más sencillo administrar la seguridad y el acceso al servidor
de datos. Lo mismo ocurre con el control de concurrencia: en un
escenario donde múltiples usuarios se estuvieran conectando y
desconectando permanentemente para realizar distintas acciones,
este control sería más difícil de llevar.
• Siempre la aplicación tiene acceso a los datos actualizados
43
Algunas Desventajas:
• Se requiere una conexión abierta todo el tiempo con el servidor de
base de datos, lo cual consume recursos innecesariamente si no se la
está utilizando.
• La escalabilidad del acceso a los datos se ve limitada por la cantidad
de conexiones establecidas simultáneamente contra el servidor de
base de datos.
Acceso a Bases de Datos Relacionales Escenario Desc onectado
El segundo escenario de acceso a bases de datos relacionales se conoce
como “Escenario Desconectado”, ya que en él una parte de los datos del
servidor central se copia localmente y puede luego ser consultada y
actualizada sin contar con una conexión abierta. Luego si se desea puede
establecerse una conexión con el servidor de base de datos para sincronizar
los cambios efectuados sobre la copia local y actualizar los datos. Este tipo
de funcionalidad es particularmente útil para escenarios de usuarios móviles,
que salen de su oficina con una laptop, un SmartPhone o una PocketPC y
desean poder continuar trabajando por más que no tengan conectividad
física con el servidor de base de datos ubicado en la red interna de la
empresa.
Algunas ventajas que provee un escenario de acceso a datos desconectado
son:
• La posibilidad de trabajar sobre los datos independientemente del
resto de los usuarios de la aplicación
• Mayor escalabilidad en el acceso a datos y utilización más óptima de
recursos del servidor, ya que se mantiene en un mínimo
indispensable la cantidad y duración de conexiones abiertas.
• Mayor performance, al trabajar con una copia local de los datos.
44
Algunas Desventajas:
• Puede ocurrir que en un momento dado un usuario no esté
accediendo a los datos más actualizados del repositorio central
• Al momento de sincronizar los cambios efectuados localmente contra
el repositorio central pueden surgir conflictos, los cuales deben ser
resueltos manualmente.
Fuente: http://www.dce2005.com (Desarrollador 5 Estrellas)
Explicadas anteriormente los dos tipos de conexión que ofrece ADO.NET, se
opto por utilizar el mecanismo de ambiente desconectado por las razones
anteriormente expuestas.
2.3.3 Aspectos de seguridad implementados Siguiendo las políticas y normas de Santa Mónica Cotton en lo que respecta
a seguridad se implementaron los siguientes elementos:
� El cliente ingresa a la intranet de Santa Mónica Cotton
http://www.smcotton.net (Internet Information Services) llama a
ASP.NET igualmente llama al componente empresarial que a su vez
llama a la base de datos.
� El tipo de autenticación utilizada está integrada con el componente
que se utiliza, manejando identificadores de sesión.
El cual tiene la siguiente arquitectura:
45
Figura 2.7 Arquitectura de seguridad en Intranet. (Fuente:http://www.microsoft.com/spanish/msdn/arquitectura/BuildSecNetApps/html/SecurityGuide_Chapter05.mspx)
Este escenario maneja las siguientes características:
• Los usuarios tienen Internet Explorer.
• Los componentes se distribuyen en el servidor Web.
• La aplicación maneja datos confidenciales que se deben proteger
durante la transmisión.
• Los componentes empresariales se conectan a SQL Server mediante
la autenticación de Windows en forma anónima y utilizan la
encriptación de contraseñas (Tabla HashPassword SHA1).
• La funcionalidad empresarial de estos componentes está restringida
en función de la identidad del llamador (cliente).
• Los componentes se conectan a la base de datos con la identidad del
proceso de la aplicación de servidor.
• La suplantación está habilitada en ASP.NET (para facilitar la
seguridad basada en funciones de Servicios Empresariales).
46
• En cada página visitada se maneja un identificador de sesión.
Proceso de autenticación
El proceso de autenticación en la aplicación web consiste en los puntos que
se detallan a continuación:
• Crea un vale de autenticación para el nombre de usuario
proporcionado, el cual no debe estar asignado a una cuenta de
Windows.
• No crea una cookie duradera porque esta puede ser interceptada para
fines mal intencionado.
• Para cada autenticación crea un identificador de sesión el cual por
seguridad no utiliza una cookie. Cabe mencionar que los
identificadores de sesión sin cookies se reciclan en forma
predeterminada.
• La sesión dura 10 minutos y almacena el login del usuario y su
password encriptado.
• Se establece un mínimo de 8 caracteres para el password de ingreso.
• La cadena de conexión a la base de datos se establece en el
WebConfig el cual esta encriptado con RSA.
Proceso de autorización
El proceso de autorización consiste en:
• Los roles de cada usuario se encuentran almacenados en la tabla
tblACCESOS_PRG, en dicha tabla se asocia el nombre del programa
con el usuario, se define el tiempo de validez del acceso y los
permisos para insertar, modificar, eliminar, imprimir y visualizar
registros.
• Una vez el usuario es autenticado, se procede a realizar la consulta a
la tabla de accesos, posteriormente por medio del control TreeView
de Visual Studio se construye el menú bajo el siguiente esquema:
• Se crean las Soluciones (Solution), estas no hacen referencias
a otros programas.
• Luego se crea el Folder, el cual está contenido dentro de una
solución, hace referencia al programa padre (Solution)
47
• Y por último está el formulario, este puede hacer referencia a
un programa tipo Folder o a una Solution.
• Los roles están guardados en la base de datos y luego de la
autenticación pasan a estar almacenados en el TreeView.
PARTE II DESARROLLO DE LA PROPUESTA
49
3 MODELADO DEL NEGOCIO Y REQUISITOS
El sistema de gestión integrado (SGI) es la integración de las tres
certificaciones obtenidas por Santa Mónica Cotton y son las siguientes: ISO
9001:2000 “Sistema de gestión de la Calidad”, ISO 14001 “Sistemas de
gestión ambiental” y OHSAS 18001 “Sistemas de Gestión de la seguridad y
la salud ocupacional”.
3.1. Modelado del Negocio
Para comprender el funcionamiento de la gestión documental en Santa
Mónica SMC es necesario determinar los principales conceptos que se
utilizan en la empresa, los cuales son descritos a continuación:
3.1.1. Descripción del documento
En esta sección se describe la definición, objetivos y abreviaturas utilizadas
en los documentos dentro del Sistema de Gestión Integrado (SGI).
Definición de documento
Escrito que ilustra acerca de algún tema que tiene que ver con el Sistema de
Gestión Integrado (SGI) y los propósitos que tiene para cumplir con los
objetivos y la política establecidos por la alta dirección.
Presentación de los documentos:
Figura 3.1 Presentación de documentos. (Fuente Comité Integrado Santa Mónica Cotton S.A.)
50
Objetivo del documento
Definir el procedimiento para la generación, aprobación, control, distribución,
actualización, archivo y disposición de documentos del Sistema de Gestión
Integrado.
Describir el formato y contenido para la elaboración de los documentos
internos.
Definición y abreviaturas.
• SGI => Sistema de Gestión Integrado
• MCD => Maestro de control de documentos
• RIG => Responsable de Ingeniería
• JMESIMA => Jefe de mantenimiento eléctrico, seguridad
industrial y medio ambiente.
3.1.2. Identificación de documentos internos
Los documentos internos del Sistema Integrado de Gestión serán
identificados con un código alfanumérico compuesto por tres partes
separadas con guión y descritas a continuación:
Tipo de documento Area a la que pertenece NúmeroXX YYY ZZZZ
MI: Manual del sistema GGL: Gerencia General Número correlativointegrado. GCO: Gerencia Comercial de cinco dígitos,PR: Procedimiento GPL: Gerencia de Planta desde 00001 hastaMR: Manual responsabilidades GAF: Gerencia de 99999, generadoy funciones Administración y Finanzas automáticamenteIT: Instrucción de trabajo SSI: Subgerencia de por el MCD alMN: Manual Sistemas momento delPL: Plan SRH: Subgerencia de registro en el SII.ES: Especificación Recursos HumanosDS: Otros documentos del SGI: Documentos propios delsistema sistema
Código
Des
crip
ción
Figura 3.2 Identificación de documentos. (Fuente Comité Integrado Santa Mónica Cotton S.A.)
51
3.1.3. Matriz de responsabilidades
Tipo de documento Elaboración Revisión Aprobación
Manual de Gestión RIG GGL GGLProcedimientos de gestión RIG / JMESIMA GGL GGL
Manual de Responsabilidadesy Funciones
Gerente de área /Inmediato superior
Instrucciones, manuales,planes, especificaciones y
otros documentos
Procedimientos operativos
Encargado RRHH
Persona designada
SRH GGL
Gerente de área
Gerente de áreaGerente de área
/ Inmediato superior
Persona designada
Figura 3.3 Matriz de responsabilidades.
(Fuente: Documento 0001.pdf de Santa Monica Cotton S.A.)
3.1.4. Formato
El manual del SGI, los procedimientos y las instrucciones llevarán el
siguiente formato:
Tamaño de hoja: Carta.
Tipo de letra para procedimientos e instructivos de l sistema: Tahoma,
10.
Márgenes: Superior e inferior: 2.5 cm / Izquierdo y derecho: 3 cm.
Interlineado: 1.5
Los demás documentos del sistema procurarán mantener este formato
considerando sus características propias; por ejemplo planes,
especificaciones, manuales, etc.
3.1.4.1. Procedimientos
Encabezado: Todas las hojas del documento tendrán un encabezado donde
se detalla:
- Logo de Santa Mónica Cotton S.A.
- Tipo / Título del documento: Tipo y título del documento.
- Número de documento: Identificación de documento según 6.1.
- Fecha de emisión: Fecha en que se emitió el documento en formato:
dd / mm / aa.
- Número de página: Numeración en formato: Página X de Y.
- Estado de revisión: Número de revisión en dos dígitos: XX.
52
Figura 3.4 Encabezado procedimiento. (Fuente: Documento 0001.pdf de Santa Monica Cotton S.A.)
Pie de página: Sólo la primera página lleva un pie de página donde firman
los responsables de la elaboración, revisión y aprobación del documento, en
concordancia con la matriz de responsabilidades en 3.1.5.
Figura 3.5 Pie de página. (Fuente: Documento 0001.pdf de Santa Monica Cotton S.A.)
Contenido: Todo procedimiento debe incluir los siguientes puntos:
1. Objetivo: Indicando la razón del documento.
2. Alcance: Indicar inclusiones y exclusiones.
3. Responsables: Indicar los encargados de cumplir el procedimiento y
sus responsabilidades.
4. Definiciones y abreviaturas: Indicar las definiciones y abreviaturas que
sean imprescindibles.
5. Referencias: Indicar la documentación de apoyo que sea
imprescindible; por ejemplo Normas, Catálogos.
6. Procedimiento: Descripción de las acciones, los involucrados y los
registros generados que dan trazabilidad al procedimiento. Puede ser
literal, en diagrama de flujo o mixto.
7. Modificaciones: Histórico de modificaciones realizadas al documento.
8. Cuadro de registros: Se listan los registros generados según cuadro.
53
9. Lugar de disponibilidad física: Puntos donde pueden encontrarse
copias controladas.
10. Anexos: Incluir formatos para registros.
3.1.4.2. Instrucciones
Encabezado: Igual al de procedimientos.
Pie de página: Igual al de procedimientos.
Contenido: Todo instructivo debe incluir los siguientes puntos:
1. Objetivo: Indicar la razón de la instrucción.
2. Alcance: Indicar inclusiones y exclusiones.
3. Definiciones y abreviaturas: Indicar las definiciones y abreviaturas que
sean imprescindibles.
4. Instrucción: En una tabla indicar: Qué, quién, cómo, cuándo.
5. Modificaciones: Histórico de modificaciones realizadas al instructivo.
6. Cuadro de registros: Indicar los registros generados según cuadro.
7. Lugar de disponibilidad física: Puntos donde pueden encontrarse
copias controladas.
8. Anexos: Incluir formatos para registros.
3.1.5. Elaboración, aprobación y distribución de do cumentos
La elaboración de la documentación del Sistema de Gestión Integrado es
desarrollada por las personas involucradas con los procesos y actividades.
En la revisión participa el inmediato superior y la aprobación esta dada por
un gerente o subgerente. En algunos casos el responsable de la revisión y
aprobación será una misma persona. Al pie de la primera página quedarán
registradas las firmas de por lo menos dos personas.
La distribución de los documentos se realiza a través de la intranet de Santa
Mónica Cotton S.A. y se distribuyen copias controladas solamente en puntos
donde no exista acceso a la intranet.
Toda copia que no lleve el sello de “Copia Controlada” se considera NO
CONTROLADA.
54
Figura 3.6 Elaboración, aprobación y distribución de documentos. (Fuente: Documento 0001.pdf de Santa Monica Cotton S.A.)
3.1.6. Actualización, archivo y disposición de doc umentos
La revisión de un documento del sistema puede originarse en cualquier
momento a partir de una acción correctiva, preventiva o por variaciones en la
práctica que necesiten ser procedimentadas. En esta revisión participará la
persona que haya detectado la necesidad. Para verificar la actualización del
sistema, el RIG y el JMESIMA llevarán a revisión todo documento que en un
lapso de dos años no haya sido revisado.
La revisión y aprobación del documento se realiza de la misma manera que
la elaboración y aprobación de un documento nuevo, es decir con la
participación de por lo menos dos personas.
55
La distribución del documento en su nuevo estado de revisión será a través
de la intranet de Santa Mónica Cotton S.A., entregándose copias controladas
en los puntos donde no exista acceso a la intranet, previa entrega de la
copia anterior. El RIG guardará una copia de la versión anterior identificada
como “OBSOLETA” en el archivo histórico y destruirá las demás copias.
Al momento de entregar las copias controladas, la persona que está
recepcionando el documento debe firmar la Lista de Control de Documentos
que mantiene el Responsable de Ingeniería.
Figura 3.7 Actualización, archivo y disposición de documentos.
(Fuente: Documento 0001.pdf de Santa Monica Cotton S.A.)
56
3.1.7. Documentos externos
El Responsable de Ingeniería y el JMESIMA son responsables de cumplir y
hacer cumplir todo lo descrito en este documento.
Así mismo son responsables de identificar, codificar, distribuir y controlar la
Documentación de Origen Externo (Libros, Normas, Catálogos, etc).
Clasificación de documentos externos
• MOP => Manuales de Operación.
• MSR => Manuales de servicio.
• PLA => Planos.
• LIB => Literatura de apoyo, como ser libros de todo tipo.
• CAT => Catálogos
• NOR => Normas
• LEY => Leyes
• RGL => Reglamentos
Recepción y Codificación.
Todo funcionario que recepcione documentos de origen externo enmarcados
en la clasificación descrita en 6.1, debe entregarlos al Responsable de
Ingeniería para su inclusión en el SGI.
El Responsable de Ingeniería les coloca el sello: “Documento Externo”, en el
cual se identifica al documento con un código de identificación:
Tipo de documento Área a la que pertenece NúmeroXXX YYY ZZ
MOP: Manual de Operación GGL: Gerencia GeneralMSR: Manual de servicio GCO: Gerencia ComercialPLA: Plano GPL: Gerencia de PlantaLIB: Literatura de apoyo GAF: Gerencia de CAT: Catálogo Administración y FinanzasNOR: Norma SSI: Subgerencia de SistemasLEY: Ley SRH: Subgerencia deRGL: Reglamento Recursos Humanos
SGI: Documentos propios del sistema
Código
Des
crip
ción
Número correlativo de dos dígitos, desde 01 hasta 99
Figura 3.8 Recepción y codificación.
(Fuente: Documento 0001.pdf de Santa Monica Cotton S.A.)
57
Figura 3.9 Sello de documento externo.
Figura 3.10 Sello de sectores de exposición.
(Fuente: Documento 0001.pdf de Santa Monica Cotton S.A.)
En caso necesario el documento también llevará un sello donde se
detallarán los lugares de exposición del documento.
Distribución de Documentos Externos
El Responsable de Ingeniería entrega los Documentos Externos ya
codificados al área donde serán utilizados, previa recolección de las
versiones anteriores del documento, si existieran. El RIG archiva una copia
del documento anterior con el sello OBSOLETO.
El Responsable de Ingeniería hace firmar la Lista de Distribución de
Documentos Externos al momento de entregarlos al área correspondiente, la
cual contiene:
a) Código del documento.
b) Título
c) Asignado a (nombre)
d) Área
e) Fecha de asignación
Actualización de Documentos
En caso de que los Documentos Externos sean actualizados por la entidad
que los originó, estos son ingresados al SGI, previa recolección del
Documento Externo anterior.
58
Leyes, Normas, Reglamentos que apliquen a la seguridad, salud y/o medio
ambiente son regidos por el Procedimiento PR-SGI-00005: Identificación y
acceso a requisitos legales.
3.1.8. Responsables
El Responsable de Ingeniería es el responsable de cumplir y hacer cumplir
todo lo descrito en este documento.
Todo el personal que hace parte del Sistema Integrado de Gestión es
responsable de aplicar esta metodología para la elaboración, revisión y
actualización de los documentos.
3.2. Captura de requisitos Para realizar la captura de requerimientos, se utilizaron entrevistas
semiestructuradas con informantes claves, las cuales son presentadas en el
Anexo A.
3.3. Definición Textual de los requisitos
3.3.1. Requerimientos Funcionales 1. El Administrador deberá crear el usuario RIG (Responsable de
Ingenieria) y otorgar los privilegios de Gestion del Documento.
2. El Administrador podrá crear, modificar y eliminar programas (Opciones
de Meú).
3. El Administrador podrá crear, modificar los accesos a programas de los
usuarios.
4. RIG deberá ser capaz de aprobar, publicar un documento.
5. RIG deberá poder rechazar un documento.
6. El usuario SMC debería ser capaz de insertar un nuevo documento o
modificar un documento ya existente.
7. RIG debería ser capaz de insertar, eliminar, y modificar los parámetros
como ser Clase del Documento,
8. El Administrador y RIG podrán registrar datos generales de las personas.
59
9. El Administrador podrá crear, eliminar y modificar Departamentos de
SMC.
10. El Administrador podrá crear, eliminar y modificar cuentas de usuarios.
11. RIG podrá registrar, eliminar y modificar los lugares de exposición de los
documentos.
12. RIG podrá registrar, eliminar y modificar las areas del SGI (Sistema de
Gestion Integrado).
13. RIG podrá registrar, modificar la matriz de responsabilidades de acuerdo
a un Tipo de Documento.
14. RIG podrá registrar las Normas ISO vigentes.
15. RIG podrá asociar una Norma ISO a uno o varios acápites.
16. RIG podrá registrar, eliminar y modificar los Tipos de Documentos.
17. El Administrador podrá insertar, modificar y eliminar los Tipos de
Usuarios.
18. RIG podrá realizar Gestión de documentos.
19. RIG podrá registrar las revisiones que se realiza a un documento.
20. RIG podrá registrar los documentos a los cuales se refiere el documento
introducido.
21. RIG podrá asignar responsabilidades y acciones a usuarios respecto a
los documentos.
22. RIG podrá registrar la sección de la Norma cuyos requerimientos se
dirigen con el documento introducido.
23. RIG podrá registrar el lugar de exposición del documento.
24. El Usuario que tiene la acción de revisar podrá registrar su aprobación o
rechazo respecto a un documento a publicar.
25. El Usuario que aprueba podrá registrar su aprobación o rechazo
respecto a un documento a publicar.
26. El Usuario podrá buscar los documentos publicados.
60
3.3.2. Requerimientos no Funcionales 1. El sistema deberá permitir la facilidad de ampliarse a futuro, pudiendo
adicionar nuevos módulos.
2. El sistema deberá brindar una seguridad alta tanto para las páginas
Web, como para los documentos publicados.
61
3.4. Contexto del sistema
3.4.1. Modelo de dominio
Exposicion de documentos
Revisiones
Otras referencias de documentos
Normas ISO
Historial del Documentos
Acciones que realizan los usuarios
Documentos
1..*1 1..*1
exponer
0..*
1
0..*
1
realiza
0..*
1
0..*
1
hace
0..*
1
0..*
1
tiene
1..*
1
1..*
1
se registran
1..*
1
1..*
1
se realizan
Matriz Responsabilidades
Tipos de Documentos
1
1..*
1
1..*
1
1
1
1
Clases
1..*
1
1..*
1
Accesos
Departamento
1..*
1
1..*
1
es de tipo
Persona
0..1
1
0..1
Supervisado
1
Programas
Responsabilidades
1
1..*
1
1..*
Usuario
1
1
1
1
trabaja en
1
1
1
1pertenece
1..*
1..*
1..*
1..*
accesa
1..*
1
1..*
1
Areas del SGI
1..*1 1..*1
pertenece a
tiene
tiene
pertenece
es de tipo
es de
(Fuente: Elaboración propia en base a requerimientos de Santa Mónica Cotton)
62
3.4.2. Identificación de los actores
Básicamente se identifican a los siguientes actores, pero el sistema deberá ser
capaz de poder adicionar usuarios, en caso de requerirse los mismos.
1. Administrador. Persona encargada de gestionar los usuarios y las
áreas.
2. Usuario. Persona que realiza consultas al sistema.
3. Usuario Responsable de Ingeniería (RIG). Persona encargada realizar
el seguimiento a los documentos, desde el registro hasta su publicación
o rechazo del mismo.
4. Usuario que Registra. Persona que tiene la opción de registrar y
modificar un documento.
5. Usuario que Aprueba. Persona encargada de aprobar o rechazar un
documento para ser publicado en la intranet.
6. Usuario que Revisa. Persona encargada de revisar un documento para
ser publicado en la intranet.
3.4.3. Identificación de los casos de uso
Caso de Uso Nro.1: Administrar Personas.
Participante : Administrador.
Descripción : El administrador podrá insertar, deshabilitar y/o
modificar los datos de las personas.
Caso de Uso Nro.2: Administrar Tipos de Usuario.
Participante : Administrador.
Descripción :
El administrador inserta, deshabilita y/o modifica los
distintos niveles de seguridad que tendrá el sistema. A
cada usuario se le asigna un tipo de usuario.
Caso de Uso Nro.3: Administrar Clases.
Participante : Administrador.
Descripción : El administrador inserta, deshabilita y/o modifica las
clases de documentos y/o usuarios.
63
Caso de Uso Nro.4: Administrar Usuarios.
Participante : Administrador.
Descripción :
El administrador inserta, deshabilita y/o modifica los
datos del usuario. A su vez cada persona tendrá la
posibilidad de crear n usuarios, cada uno con distinto tipo
de usuario.
Caso de Uso Nro.5: Administrar Tipos de Departamentos.
Participante : Administrador.
Descripción :
El administrador inserta, deshabilita y/o modifica los
distintos tipos de departamentos en el cual trabaja. A
cada usuario se le asigna un tipo de departamento. Cada
tipo de departamento está identificado si es interno o
externo.
Caso de Uso Nro.6: Administrar Áreas del SGI.
Participante : Administrador o RIG (Responsable de Ingeniería).
Descripción : El administrador o RIG inserta, deshabilita y/o modifica
las diferentes áreas definidas en el SGI.
Caso de Uso Nro.7: Administrar Tipos de Documentos.
Participante : RIG.
Descripción :
RIG inserta, deshabilita y/o modifica los distintos tipos de
documentos que existen definidos en el SGI. A cada
documento se le asigna un tipo de documento. Cada tipo
de documento está identificado si es interno o externo.
Caso de Uso Nro.8: Administrar Estatus del Documento.
Participante : RIG.
Descripción : RIG inserta, deshabilita y/o modifica las estatus de los
documentos. A cada documento se le asigna un estatus.
64
Caso de Uso Nro.9: Administrar Estándares (ISO).
Participante : RIG.
Descripción :
RIG inserta, deshabilita y/o modifica los diferentes
estándares definido por (ISO). A cada sección o acápite
se le asigna un tipo de estándar definido por (ISO).
Caso de Uso Nro.10: Administrar Repartos de Estándar (ISO).
Participante : RIG.
Descripción :
RIG inserta, deshabilita y/o modifica los diferentes
repartos de estándar definidos por (ISO). A cada
documento se le asigna uno o varios repartos, según las
exigencias que cumpla el documento. Cada reparto está
identificado por un Estándar definido por (ISO).
Caso de Uso Nro.11: Administrar Matriz de responsabilidades.
Participante : RIG.
Descripción :
RIG inserta, deshabilita y/o modifica los usuarios que
intervienen en la elaboración, revisión y autorización de
un documento. A cada documento se le asigna un código
de responsabilidades.
Caso de Uso Nro. 12: Administrar Lugares de exposición.
Participante : RIG.
Descripción :
RIG inserta, deshabilita y/o modifica los lugares de
exposición de los documentos físicamente y en forma
electrónica dentro de la empresa.
65
Caso de Uso Nro.13: Administrar Opciones del menú.
Participante : Administrador.
Descripción :
El administrador inserta, deshabilita y/o modifica las
opciones que se cargaran, a su vez cada opción del
menú se guarda recursivamente la opción padre que lo
acogerá. Si es que tuviese.
Caso de Uso Nro.14: Administrar Accesos a opciones del menú.
Participante : Administrador.
Descripción :
El administrador inserta, deshabilita y/o modifica los
accesos que tendrá el usuario en él menú de opciones,
al mismo tiempo se define las acciones que tendrá dicho
usuario (Insertar, modificar, imprimir, eliminar, buscar)
sobre una determinada opción.
Caso de Uso Nro.15: Administrar Tablas.
Participante : Administrador.
Descripción : El administrador inserta, deshabilita y/o modifica las
tablas existentes en el sistema.
Caso de Uso Nro.16: Nuevo Documento.
Participante : RIG o Usuario que registra.
Descripción :
RIG o usuario que registra podrán crear un nuevo
documento, registrándose el documento, el área a la que
pertenece y comentarios si los tuviese.
Caso de Uso Nro.17: Modificar Documento Publicado.
Participante : RIG o Usuario que registra.
Descripción : RIG o usuario que registra podrán modificar un
documento que este publicado en la intranet.
66
Caso de Uso Nro.18: Gestión de Documento para ser Publicado.
Participante : RIG.
Descripción : RIG podrá registrar el nombre del documento, tipo de
documento, estatus.
Caso de Uso Nro.19: Administrar Exposición de Documento a Publicar.
Participante : RIG.
Descripción : RIG inserta, deshabilita y/o modifica los lugares de
exposición de un documento a publicar.
Caso de Uso Nro.20: Administrar Revisión de Documento a Publicar.
Participante : RIG.
Descripción : RIG inserta, deshabilita y/o modifica las revisiones que
pueda tener un documento.
Caso de Uso Nro.21: Administrar Referencia de Documento a Publicar.
Participante : RIG.
Descripción : RIG inserta, deshabilita y/o modifica las referencias que
pueda tener un documento.
Caso de Uso Nro.22: Administrar Acápites o Normas de Estándares de
(ISO) de un documento a publicar.
Participante : RIG.
Descripción :
RIG inserta, deshabilita y/o modifica los acápites o
normas que un documento puede hacer referencia según
los estándares de (ISO).
Caso de Uso Nro.23: Administrar Acciones de un Documento a Publicar.
Participante : RIG.
Descripción : RIG inserta, deshabilita y/o modifica a los usuarios que
tienen que revisar y aprobar un documento.
67
Caso de Uso Nro.24: Registrar Revisión de Documento a Publicar.
Participante : Usuario que revisa.
Descripción : Usuario que revisa un documento para ser publicado en
la intranet.
Caso de Uso Nro.25: Registrar Aprobación de Documento a Publicar.
Participante : Usuario que aprueba.
Descripción : Usuario que aprueba un documento para ser publicado
en la intranet.
Caso de Uso Nro.26: Visualizar Documento.
Participante : Usuario.
Descripción : Usuario busca los documentos de su interés.
68
3.4.4. Esbozo del Modelo de Casos de uso
Administrador
Administrar Accesos a Opciones del Menu
Adminis trar Opciones del Menu
Adminis trar Personas
Administrar Tipo de Usuario
Administrar Tipo de Departamentos
Administrar Tablas
Administrar Clases
Administrar Repartos de Estandard (ISO)
Adminis trar Estandares (ISO)
Administrar Matriz de Responsabilidades
Usuario SMC
Administrar Usuarios
Administrar Estatus del Documento
Adminis trar Areas del SGI
Adminis trar Tipo de Documento
Modificar Documento Publicado
Administrar Lugares de Exposicion
Adminis trar Exposicion de Documentos a Publicar
Adminis trar Revision de Documentos a Publicar
Administrar Acapites o Normas de Documento a Publicar
RIGGestion de Documento para ser
publicado
<<extend>>
<<include>> <<extend>>
<<include>>
Nuevo Documento
Usuario que Registra
Usuario que Revisa
Usuario que Aprueba
Administrar Acciones de un Documento a Publicar
<<include>>
(Fuente: Elaboración propia en base a requerimientos de Santa Mónica Cotton)
69
3.4.5. Detalle de los casos de uso
Caso de Uso Nro. 1. Administrar Personas. Actores Administrador. Propósito Registrar, Modificar o eliminar datos de
personas. Pre Condiciones
Usuario Administrador debe estar autentificado en el sistema.
Flujo Básico Acción del Actor Respuesta del Sistema 1. El usuario Administrador presiona la opción del menú para iniciar este caso de uso 3. El usuario Administrador puede seleccionar un registro de la lista. 5. El usuario Administrador puede elegir:
Eliminar Modificar
7. El usuario Administrador puede elegir:
Insertar Buscar
9. El usuario Administrador revisa o modifica o llena los datos o ingresa un criterio de búsqueda, en el formulario
2. El sistema le muestra la interfaz donde puede ingresar los datos de las personas, con la lista de los registros ya ingresados. 4. El sistema muestra el registro seleccionado de la lista con una franja de color naranja. 6a. Si elige eliminar el registro el sistema muestra el formulario con sus respectivos datos. 6b. Si elige modificar el registro el sistema muestra el formulario con los datos a modificar. 8a. Si elige Insertar el sistema muestra un nuevo formulario en blanco con los datos a ingresar. 8b. Si elige buscar el registro el sistema muestra el formulario con los diferentes criterios de búsqueda a aplicar.
70
según sea el caso, al finalizar presiona el botón Aceptar.
10. El sistema elimina o actualiza o guarda o recupera datos del formulario según sea el caso. El sistema regresa a la lista original con los datos actualizados.
Flujo Alternativo 5.1. En caso de no haber seleccionado un registro de la interfaz de documentos, el sistema muestra un mensaje de error, indicando el problema, volver al paso 3. 9.1. En caso de presionar el botón cancelar, los cambios realizados no se harán efecto. 10. Si ocurriese algún error en el camino de estos procesos, el Sistema envía un mensaje de error, indicando el problema.
71
Caso de Uso Nro. 2. Administrar Tipos de Usuarios. Actores Administrador. Propósito Registrar, Modificar o eliminar datos de tipos
de usuarios. Pre Condiciones
Usuario Administrador debe estar autentificado en el sistema.
Flujo Básico Acción del Actor Respuesta del Sistema 1. El usuario Administrador presiona la opción del menú para iniciar este caso de uso 3. El usuario Administrador puede seleccionar un registro de la lista. 5. El usuario Administrador puede elegir:
Eliminar Modificar
7. El usuario Administrador puede elegir:
Insertar Buscar
9. El usuario Administrador revisa o modifica o llena los datos o ingresa un criterio de búsqueda, en el formulario según sea el caso, al finalizar presiona el botón Aceptar.
2. El sistema le muestra la interfaz donde puede ingresar los datos de tipos de usuario, con la lista de los registros ya ingresados. 4. El sistema muestra el registro seleccionado de la lista con una franja de color naranja. 6a. Si elige eliminar el registro el sistema muestra el formulario con sus respectivos datos. 6b. Si elige modificar el registro el sistema muestra el formulario con los datos a modificar. 8a. Si elige Insertar el sistema muestra un nuevo formulario en blanco con los datos a ingresar. 8b. Si elige buscar el registro el sistema muestra el formulario con los diferentes criterios de búsqueda a aplicar.
72
10. El sistema elimina o actualiza o guarda o recupera datos del formulario según sea el caso. El sistema regresa a la lista original con los datos actualizados.
Flujo Alternativo 5.1. En caso de no haber seleccionado un registro de la interfaz de documentos, el sistema muestra un mensaje de error, indicando el problema, volver al paso 3. 9.1. En caso de presionar el botón cancelar, los cambios realizados no se harán efecto. 10. Si ocurriese algún error en el camino de estos procesos, el Sistema envía un mensaje de error, indicando el problema.
73
Caso de Uso Nro. 3. Administrar Clases. Actores Administrador. Propósito Registrar, Modificar o eliminar datos de
Clases. Pre Condiciones
Usuario Administrador debe estar autentificado en el sistema.
Flujo Básico Acción del Actor Respuesta del Sistema 1. El usuario Administrador presiona la opción del menú para iniciar este caso de uso 3. El usuario Administrador puede seleccionar un registro de la lista. 5. El usuario Administrador puede elegir:
Eliminar Modificar
7. El usuario Administrador puede elegir:
Insertar Buscar
9. El usuario Administrador revisa o modifica o llena los datos o ingresa un criterio de búsqueda, en el formulario según sea el caso, al finalizar presiona el botón Aceptar.
2. El sistema le muestra la interfaz donde puede ingresar los datos de clases, con la lista de los registros ya ingresados. 4. El sistema muestra el registro seleccionado de la lista con una franja de color naranja. 6a. Si elige eliminar el registro el sistema muestra el formulario con sus respectivos datos. 6b. Si elige modificar el registro el sistema muestra el formulario con los datos a modificar. 8a. Si elige Insertar el sistema muestra un nuevo formulario en blanco con los datos a ingresar. 8b. Si elige buscar el registro el sistema muestra el formulario con los diferentes criterios de búsqueda a aplicar.
74
10. El sistema elimina o actualiza o guarda o recupera datos del formulario según sea el caso. El sistema regresa a la lista original con los datos actualizados.
Flujo Alternativo 5.1. En caso de no haber seleccionado un registro de la interfaz de documentos, el sistema muestra un mensaje de error, indicando el problema, volver al paso 3. 9.1. En caso de presionar el botón cancelar, los cambios realizados no se harán efecto. 10. Si ocurriese algún error en el camino de estos procesos, el Sistema envía un mensaje de error, indicando el problema.
75
Caso de Uso Nro. 4. Administrar Usuarios. Actores Administrador. Propósito Registrar, Modificar o eliminar datos de
Usuarios. Pre Condiciones
Usuario Administrador debe estar autentificado en el sistema.
Flujo Básico Acción del Actor Respuesta del Sistema 1. El usuario Administrador presiona la opción del menú para iniciar este caso de uso 3. El usuario Administrador puede seleccionar un registro de la lista. 5. El usuario Administrador puede elegir:
Eliminar Modificar
7. El usuario Administrador puede elegir:
Insertar Buscar
9. El usuario Administrador revisa o modifica o llena los datos o ingresa un criterio de búsqueda, en el formulario según sea el caso, al finalizar presiona el botón Aceptar.
2. El sistema le muestra la interfaz donde puede ingresar los datos de los usuarios, con la lista de los registros ya ingresados. 4. El sistema muestra el registro seleccionado de la lista con una franja de color naranja. 6a. Si elige eliminar el registro el sistema muestra el formulario con sus respectivos datos. 6b. Si elige modificar el registro el sistema muestra el formulario con los datos a modificar. 8a. Si elige Insertar el sistema muestra un nuevo formulario en blanco con los datos a ingresar. 8b. Si elige buscar el registro el sistema muestra el formulario con los diferentes criterios de búsqueda a aplicar.
76
10. El sistema elimina o actualiza o guarda o recupera datos del formulario según sea el caso. El sistema regresa a la lista original con los datos actualizados.
Flujo Alternativo 5.1. En caso de no haber seleccionado un registro de la interfaz de documentos, el sistema muestra un mensaje de error, indicando el problema, volver al paso 3. 9.1. En caso de presionar el botón cancelar, los cambios realizados no se harán efecto. 10. Si ocurriese algún error en el camino de estos procesos, el Sistema envía un mensaje de error, indicando el problema.
77
Caso de Uso Nro. 5. Administrar Tipos de Departamentos. Actores Administrador. Propósito Registrar, Modificar o eliminar datos de Tipos
de Departamento. Pre Condiciones
Usuario Administrador debe estar autentificado en el sistema.
Flujo Básico Acción del Actor Respuesta del Sistema 1. El usuario Administrador presiona la opción del menú para iniciar este caso de uso 3. El usuario Administrador puede seleccionar un registro de la lista. 5. El usuario Administrador puede elegir:
Eliminar Modificar
7. El usuario Administrador puede elegir:
Insertar Buscar
9. El usuario Administrador revisa o modifica o llena los datos o ingresa un criterio de búsqueda, en el formulario según sea el caso, al finalizar presiona el botón Aceptar.
2. El sistema le muestra la interfaz donde puede ingresar los datos de tipos de departamentos, con la lista de los registros ya ingresados. 4. El sistema muestra el registro seleccionado de la lista con una franja de color naranja. 6a. Si elige eliminar el registro el sistema muestra el formulario con sus respectivos datos. 6b. Si elige modificar el registro el sistema muestra el formulario con los datos a modificar. 8a. Si elige Insertar el sistema muestra un nuevo formulario en blanco con los datos a ingresar. 8b. Si elige buscar el registro el sistema muestra el formulario con los diferentes criterios de búsqueda a aplicar.
78
10. El sistema elimina o actualiza o guarda o recupera datos del formulario según sea el caso. El sistema regresa a la lista original con los datos actualizados.
Flujo Alternativo 5.1. En caso de no haber seleccionado un registro de la interfaz de documentos, el sistema muestra un mensaje de error, indicando el problema, volver al paso 3. 9.1. En caso de presionar el botón cancelar, los cambios realizados no se harán efecto. 10. Si ocurriese algún error en el camino de estos procesos, el Sistema envía un mensaje de error, indicando el problema.
79
Caso de Uso Nro. 6. Administrar Áreas del SGI (Sistema de Gestión Integrado). Actores RIG. Propósito Registrar, Modificar o eliminar datos de las
Áreas del SGI (Sistema de Gestión Integrado).
Pre Condiciones
RIG debe estar autentificado en el sistema.
Flujo Básico Acción del Actor Respuesta del Sistema 1. RIG presiona la opción del menú para iniciar este caso de uso 3. RIG puede seleccionar un registro de la lista. 5. RIG puede elegir:
Eliminar Modificar
7. RIG puede elegir:
Insertar Buscar
9. RIG revisa o modifica o llena los datos o ingresa un criterio de búsqueda, en el formulario según sea el caso, al finalizar presiona el botón Aceptar.
2. El sistema le muestra la interfaz donde puede ingresar los datos del SGI, con la lista de los registros ya ingresados. 4. El sistema muestra el registro seleccionado de la lista con una franja de color naranja. 6a. Si elige eliminar el registro el sistema muestra el formulario con sus respectivos datos. 6b. Si elige modificar el registro el sistema muestra el formulario con los datos a modificar. 8a. Si elige Insertar el sistema muestra un nuevo formulario en blanco con los datos a ingresar. 8b. Si elige buscar el registro el sistema muestra el formulario con los diferentes criterios de búsqueda a aplicar.
80
10. El sistema elimina o actualiza o guarda o recupera datos del formulario según sea el caso. El sistema regresa a la lista original con los datos actualizados.
Flujo Alternativo 5.1. En caso de no haber seleccionado un registro de la interfaz de documentos, el sistema muestra un mensaje de error, indicando el problema, volver al paso 3. 9.1. En caso de presionar el botón cancelar, los cambios realizados no se harán efecto. 10. Si ocurriese algún error en el camino de estos procesos, el Sistema envía un mensaje de error, indicando el problema.
81
Caso de Uso Nro. 7. Administrar Tipos de Documentos. Actores RIG. Propósito Registrar, Modificar o eliminar datos de los
Tipos de Documentos. Pre Condiciones
RIG debe estar autentificado en el sistema. Que exista datos en Clases.
Flujo Básico Acción del Actor Respuesta del Sistema 1. RIG presiona la opción del menú para iniciar este caso de uso 3. RIG puede seleccionar un registro de la lista. 5. RIG puede elegir:
Eliminar Modificar
7. RIG puede elegir:
Insertar Buscar
9. RIG revisa o modifica o llena los datos o ingresa un criterio de búsqueda, en el formulario según sea el caso, al finalizar presiona el botón Aceptar.
2. El sistema le muestra la interfaz donde puede ingresar los datos de tipos de documentos, con la lista de los registros ya ingresados. 4. El sistema muestra el registro seleccionado de la lista con una franja de color naranja. 6a. Si elige eliminar el registro el sistema muestra el formulario con sus respectivos datos. 6b. Si elige modificar el registro el sistema muestra el formulario con los datos a modificar. 8a. Si elige Insertar el sistema muestra un nuevo formulario en blanco con los datos a ingresar. 8b. Si elige buscar el registro el sistema muestra el formulario con los diferentes criterios de búsqueda a aplicar.
82
10. El sistema elimina o actualiza o guarda o recupera datos del formulario según sea el caso. El sistema regresa a la lista original con los datos actualizados.
Flujo Alternativo 5.1. En caso de no haber seleccionado un registro de la interfaz de documentos, el sistema muestra un mensaje de error, indicando el problema, volver al paso 3. 9.1. En caso de presionar el botón cancelar, los cambios realizados no se harán efecto. 10. Si ocurriese algún error en el camino de estos procesos, el Sistema envía un mensaje de error, indicando el problema.
83
Caso de Uso Nro. 8. Administrar Estatus del Documento. Actores RIG. Propósito Registrar, Modificar o eliminar datos de
Estatus del Documento. Pre Condiciones
RIG debe estar autentificado en el sistema.
Flujo Básico Acción del Actor Respuesta del Sistema 1. RIG presiona la opción del menú para iniciar este caso de uso 3. RIG puede seleccionar un registro de la lista. 5. RIG puede elegir:
Eliminar Modificar
7. RIG puede elegir:
Insertar Buscar
9. RIG revisa o modifica o llena los datos o ingresa un criterio de búsqueda, en el formulario según sea el caso, al finalizar presiona el botón Aceptar.
2. El sistema le muestra la interfaz donde puede ingresar los datos de estatus del documento, con la lista de los registros ya ingresados. 4. El sistema muestra el registro seleccionado de la lista con una franja de color naranja. 6a. Si elige eliminar el registro el sistema muestra el formulario con sus respectivos datos. 6b. Si elige modificar el registro el sistema muestra el formulario con los datos a modificar. 8a. Si elige Insertar el sistema muestra un nuevo formulario en blanco con los datos a ingresar. 8b. Si elige buscar el registro el sistema muestra el formulario con los diferentes criterios de búsqueda a aplicar.
84
10. El sistema elimina o actualiza o guarda o recupera datos del formulario según sea el caso. El sistema regresa a la lista original con los datos actualizados.
Flujo Alternativo 5.1. En caso de no haber seleccionado un registro de la interfaz de documentos, el sistema muestra un mensaje de error, indicando el problema, volver al paso 3. 9.1. En caso de presionar el botón cancelar, los cambios realizados no se harán efecto. 10. Si ocurriese algún error en el camino de estos procesos, el Sistema envía un mensaje de error, indicando el problema.
85
Caso de Uso Nro. 9. Administrar Estándares (ISO). Actores RIG. Propósito Registrar, Modificar o eliminar datos de
Estándares (ISO). Pre Condiciones
RIG debe estar autentificado en el sistema.
Flujo Básico Acción del Actor Respuesta del Sistema 1. RIG presiona la opción del menú para iniciar este caso de uso 3. RIG puede seleccionar un registro de la lista. 5. RIG puede elegir:
Eliminar Modificar
7. RIG puede elegir:
Insertar Buscar
9. RIG revisa o modifica o llena los datos o ingresa un criterio de búsqueda, en el formulario según sea el caso, al finalizar presiona el botón Aceptar.
2. El sistema le muestra la interfaz donde puede ingresar los datos de estándares de (ISO), con la lista de los registros ya ingresados. 4. El sistema muestra el registro seleccionado de la lista con una franja de color naranja. 6a. Si elige eliminar el registro el sistema muestra el formulario con sus respectivos datos. 6b. Si elige modificar el registro el sistema muestra el formulario con los datos a modificar. 8a. Si elige Insertar el sistema muestra un nuevo formulario en blanco con los datos a ingresar. 8b. Si elige buscar el registro el sistema muestra el formulario con los diferentes criterios de búsqueda a aplicar.
86
10. El sistema elimina o actualiza o guarda o recupera datos del formulario según sea el caso. El sistema regresa a la lista original con los datos actualizados.
Flujo Alternativo 5.1. En caso de no haber seleccionado un registro de la interfaz de documentos, el sistema muestra un mensaje de error, indicando el problema, volver al paso 3. 9.1. En caso de presionar el botón cancelar, los cambios realizados no se harán efecto. 10. Si ocurriese algún error en el camino de estos procesos, el Sistema envía un mensaje de error, indicando el problema.
87
Caso de Uso Nro. 10. Administrar Repartos de Estándar (ISO). Actores RIG. Propósito Registrar, Modificar o eliminar datos de
Repartos de Estándar (ISO). Pre Condiciones
RIG debe estar autentificado en el sistema. Debe existe un Estándar de (ISO) registrado.
Flujo Básico Acción del Actor Respuesta del Sistema 1. RIG presiona la opción del menú para iniciar este caso de uso 3. RIG puede seleccionar un registro de la lista. 5. RIG puede elegir:
Eliminar Modificar
7. RIG puede elegir:
Insertar Buscar
9. RIG revisa o modifica o llena los datos o ingresa un criterio de búsqueda, en el formulario según sea el caso, al finalizar presiona el botón Aceptar.
2. El sistema le muestra la interfaz donde puede ingresar los datos de reparto estándar (ISO), con la lista de los registros ya ingresados. 4. El sistema muestra el registro seleccionado de la lista con una franja de color naranja. 6a. Si elige eliminar el registro el sistema muestra el formulario con sus respectivos datos. 6b. Si elige modificar el registro el sistema muestra el formulario con los datos a modificar. 8a. Si elige Insertar el sistema muestra un nuevo formulario en blanco con los datos a ingresar. 8b. Si elige buscar el registro el sistema muestra el formulario con los diferentes criterios de búsqueda a aplicar.
88
10. El sistema elimina o actualiza o guarda o recupera datos del formulario según sea el caso. El sistema regresa a la lista original con los datos actualizados.
Flujo Alternativo 5.1. En caso de no haber seleccionado un registro de la interfaz de documentos, el sistema muestra un mensaje de error, indicando el problema, volver al paso 3. 9.1. En caso de presionar el botón cancelar, los cambios realizados no se harán efecto. 10. Si ocurriese algún error en el camino de estos procesos, el Sistema envía un mensaje de error, indicando el problema.
89
Caso de Uso Nro. 11. Administrar Matriz de Responsabilidades. Actores RIG. Propósito Registrar, Modificar o eliminar datos de la
Matriz de Responsabilidades. Pre Condiciones
RIG debe estar autentificado en el sistema. Debe haber por lo menos 3 usuarios registrados.
Flujo Básico Acción del Actor Respuesta del Sistema 1. RIG presiona la opción del menú para iniciar este caso de uso 3. RIG puede seleccionar un registro de la lista. 5. RIG puede elegir:
Eliminar Modificar
7. RIG puede elegir:
Insertar Buscar
9. RIG revisa o modifica o llena los datos o ingresa un criterio de búsqueda, en el formulario según sea el caso, al finalizar presiona el botón Aceptar.
2. El sistema le muestra la interfaz donde puede ingresar los datos de la matriz de responsabilidades, con la lista de los registros ya ingresados. 4. El sistema muestra el registro seleccionado de la lista con una franja de color naranja. 6a. Si elige eliminar el registro el sistema muestra el formulario con sus respectivos datos. 6b. Si elige modificar el registro el sistema muestra el formulario con los datos a modificar. 8a. Si elige Insertar el sistema muestra un nuevo formulario en blanco con los datos a ingresar. 8b. Si elige buscar el registro el sistema muestra el formulario con los diferentes criterios de búsqueda a aplicar.
90
10. El sistema elimina o actualiza o guarda o recupera datos del formulario según sea el caso. El sistema regresa a la lista original con los datos actualizados.
Flujo Alternativo 5.1. En caso de no haber seleccionado un registro de la interfaz de documentos, el sistema muestra un mensaje de error, indicando el problema, volver al paso 3. 9.1. En caso de presionar el botón cancelar, los cambios realizados no se harán efecto. 10. Si ocurriese algún error en el camino de estos procesos, el Sistema envía un mensaje de error, indicando el problema.
91
Caso de Uso Nro. 12. Administrar Lugares de Exposición. Actores RIG. Propósito Registrar, Modificar o eliminar datos de
lugares de exposición. Pre Condiciones
RIG debe estar autentificado en el sistema.
Flujo Básico Acción del Actor Respuesta del Sistema 1. RIG presiona la opción del menú para iniciar este caso de uso 3. RIG puede seleccionar un registro de la lista. 5. RIG puede elegir:
Eliminar Modificar
7. RIG puede elegir:
Insertar Buscar
9. RIG revisa o modifica o llena los datos o ingresa un criterio de búsqueda, en el formulario según sea el caso, al finalizar presiona el botón Aceptar.
2. El sistema le muestra la interfaz donde puede ingresar los datos de lugares de exposición, con la lista de los registros ya ingresados. 4. El sistema muestra el registro seleccionado de la lista con una franja de color naranja. 6a. Si elige eliminar el registro el sistema muestra el formulario con sus respectivos datos. 6b. Si elige modificar el registro el sistema muestra el formulario con los datos a modificar. 8a. Si elige Insertar el sistema muestra un nuevo formulario en blanco con los datos a ingresar. 8b. Si elige buscar el registro el sistema muestra el formulario con los diferentes criterios de búsqueda a aplicar.
92
10. El sistema elimina o actualiza o guarda o recupera datos del formulario según sea el caso. El sistema regresa a la lista original con los datos actualizados.
Flujo Alternativo 5.1. En caso de no haber seleccionado un registro de la interfaz de documentos, el sistema muestra un mensaje de error, indicando el problema, volver al paso 3. 9.1. En caso de presionar el botón cancelar, los cambios realizados no se harán efecto. 10. Si ocurriese algún error en el camino de estos procesos, el Sistema envía un mensaje de error, indicando el problema.
93
Caso de Uso Nro. 13. Administrar Opciones de Menú. Actores Administrador. Propósito Registrar, Modificar o eliminar datos de
Opciones de menú. Pre Condiciones
Usuario Administrador debe estar autentificado en el sistema.
Flujo Básico Acción del Actor Respuesta del Sistema 1. El usuario Administrador presiona la opción del menú para iniciar este caso de uso 3. El usuario Administrador puede seleccionar un registro de la lista. 5. El usuario Administrador puede elegir:
Eliminar Modificar
7. El usuario Administrador puede elegir:
Insertar Buscar
9. El usuario Administrador revisa o modifica o llena los datos o ingresa un criterio de búsqueda, en el formulario según sea el caso, al finalizar presiona el botón Aceptar.
2. El sistema le muestra la interfaz donde puede ingresar los datos de opciones de menú, con la lista de los registros ya ingresados. 4. El sistema muestra el registro seleccionado de la lista con una franja de color naranja. 6a. Si elige eliminar el registro el sistema muestra el formulario con sus respectivos datos. 6b. Si elige modificar el registro el sistema muestra el formulario con los datos a modificar. 8a. Si elige Insertar el sistema muestra un nuevo formulario en blanco con los datos a ingresar. 8b. Si elige buscar el registro el sistema muestra el formulario con los diferentes criterios de búsqueda a aplicar.
94
10. El sistema elimina o actualiza o guarda o recupera datos del formulario según sea el caso. El sistema regresa a la lista original con los datos actualizados.
Flujo Alternativo 5.1. En caso de no haber seleccionado un registro de la interfaz de documentos, el sistema muestra un mensaje de error, indicando el problema, volver al paso 3. 9.1. En caso de presionar el botón cancelar, los cambios realizados no se harán efecto. 10. Si ocurriese algún error en el camino de estos procesos, el Sistema envía un mensaje de error, indicando el problema.
95
Caso de Uso Nro. 14. Administrar Accesos Opciones de Menú. Actores Administrador. Propósito Registrar, Modificar o eliminar datos de
Accesos a Opciones de menú. Pre Condiciones
Usuario Administrador debe estar autentificado en el sistema.
Flujo Básico Acción del Actor Respuesta del Sistema 1. El usuario Administrador presiona la opción del menú para iniciar este caso de uso 3. El usuario Administrador puede seleccionar un registro de la lista. 5. El usuario Administrador puede elegir:
Eliminar Modificar
7. El usuario Administrador puede elegir:
Insertar Buscar
9. El usuario Administrador revisa o modifica o llena los datos o ingresa un criterio de búsqueda, en el formulario según sea el caso, al finalizar presiona el botón Aceptar.
2. El sistema le muestra la interfaz donde puede ingresar los datos de accesos a opciones de menú, con la lista de los registros ya ingresados. 4. El sistema muestra el registro seleccionado de la lista con una franja de color naranja. 6a. Si elige eliminar el registro el sistema muestra el formulario con sus respectivos datos. 6b. Si elige modificar el registro el sistema muestra el formulario con los datos a modificar. 8a. Si elige Insertar el sistema muestra un nuevo formulario en blanco con los datos a ingresar. 8b. Si elige buscar el registro el sistema muestra el formulario con los diferentes criterios de búsqueda a aplicar.
96
10. El sistema elimina o actualiza o guarda o recupera datos del formulario según sea el caso. El sistema regresa a la lista original con los datos actualizados.
Flujo Alternativo 5.1. En caso de no haber seleccionado un registro de la interfaz de documentos, el sistema muestra un mensaje de error, indicando el problema, volver al paso 3. 9.1. En caso de presionar el botón cancelar, los cambios realizados no se harán efecto. 10. Si ocurriese algún error en el camino de estos procesos, el Sistema envía un mensaje de error, indicando el problema.
97
Caso de Uso Nro. 15. Administrar Tablas del Sistema. Actores Administrador. Propósito Registrar, Modificar o eliminar datos de
Tablas del Sistema. Pre Condiciones
Usuario Administrador debe estar autentificado en el sistema.
Flujo Básico Acción del Actor Respuesta del Sistema 1. El usuario Administrador presiona la opción del menú para iniciar este caso de uso 3. El usuario Administrador puede seleccionar un registro de la lista. 5. El usuario Administrador puede elegir:
Eliminar Modificar
7. El usuario Administrador puede elegir:
Insertar Buscar
2. El sistema le muestra la interfaz donde puede ingresar los datos de las tablas del sistema, con la lista de los registros ya ingresados. 4. El sistema muestra el registro seleccionado de la lista con una franja de color naranja. 6a. Si elige eliminar el registro el sistema muestra el formulario con sus respectivos datos. 6b. Si elige modificar el registro el sistema muestra el formulario con los datos a modificar. 8a. Si elige Insertar el sistema muestra un nuevo formulario en blanco con los datos a ingresar. 8b. Si elige buscar el registro el sistema muestra el formulario con los diferentes criterios de búsqueda a aplicar.
98
9. El usuario Administrador revisa o modifica o llena los datos o ingresa un criterio de búsqueda, en el formulario según sea el caso, al finalizar presiona el botón Aceptar.
10. El sistema elimina o actualiza o guarda o recupera datos del formulario según sea el caso. El sistema regresa a la lista original con los datos actualizados.
Flujo Alternativo 5.1. En caso de no haber seleccionado un registro de la interfaz de documentos, el sistema muestra un mensaje de error, indicando el problema, volver al paso 3. 9.1. En caso de presionar el botón cancelar, los cambios realizados no se harán efecto. 10. Si ocurriese algún error en el camino de estos procesos, el Sistema envía un mensaje de error, indicando el problema.
99
Caso de Uso Nro.16. Nuevo Documento. Actores RIG o Usuario que registra. Propósito Nuevo Documento. Pre Condiciones
Que RIG o Usuario que registra este autentificado en el sistema.
Flujo Básico Acción del Actor Respuesta del Sistema 1. RIG o Usuario que registra presiona el botón del menú que hace que se inicie este caso de uso. 3. RIG o Usuario que registra selecciona de la lista desplegable un Formato de Documento según su necesidad. 5. RIG o Usuario que
registra procede a ingresar el cuerpo del documento en el formulario, al finalizar presiona el botón aceptar.
2. El sistema le muestra la interfaz donde puede ingresar los datos del nuevo documento, como asi también adjuntar un archivo tipo Word. 4. El Sistema muestra un formato de documento dentro del editor. 6. El sistema guarda los datos ingresados. 7. Envía un Mail a RIG indicando que se ha registrado un nuevo documento. 8.Se indica que el proceso se llevó a cabo correctamente
Flujo Alternativo 6,7,8. Si ocurriese algún error en el camino de estos procesos, el Sistema envía un mensaje de error, indicando el problema.
100
101
Caso de Uso Nro.17. Modificar Documento Publicado. Actores RIG o Usuario que registra. Propósito Modificar Documento publicado en la intranet. Pre Condiciones
Que RIG o Usuario que registra este autentificado en el sistema. Que el documento este publicado en la intranet.
Flujo Básico Acción del Actor Respuesta del Sistema 1. RIG o Usuario que registra presiona el botón del menú que hace que se inicie este caso de uso. 3. RIG o Usuario que
registra presiona el botón buscar. 5. El usuario procede a buscar el documento y luego presiona el botón de
selección de un registro . 7. El usuario procede a adjuntar el nuevo documento tipo Word con los datos modificados y al finalizar presiona el botón aceptar.
2. El sistema muestra la interfaz de usuario con los datos del documento. 4. El sistema le muestra una
tabla con todos los documentos publicados. 6. El sistema muestra la interfaz de usuario con los datos del documento a modificar. 8. Envía un Mail a RIG indicando que se ha modificado un documento para su revisión y para realizar la gestión respectiva para ser publicado. 9.Se indica que el proceso se llevó a cabo correctamente
Flujo Alternativo 7.1. En caso de presionar el botón cancelar, los cambios realizados no se harán efecto. 7.,8.,9. Si ocurriese algún error en el camino de estos procesos, el Sistema envía un mensaje de error, indicando el problema.
102
103
Caso de Uso Nro.18. Gestión de Documento para ser publicado. Actores RIG. Propósito Gestionar Documento para que sea
publicado en la Intranet. Pre Condiciones
RIG este autentificado en el sistema. Que el documento no esté publicado en la intranet.
Flujo Básico Acción del Actor Respuesta del Sistema 1. RIG presiona el botón del menú que hace que se inicie este caso de uso. 3. RIG procede a seleccionar un documento de la lista. 5. RIG presiona un Click sobre el registro de la lista. 6. RIG puede elegir:
Modificar el registro. Crear o Nuevo Documento.
Lugar de exposición. Revisiones. Referencias. Normas. Acciones. Mail
2. El sistema le muestra la interfaz de documentos que no han sido redactados (pendientes), con la lista de registros ya ingresados. 4. El sistema muestra el registro seleccionado de la lista con una franja de color naranja. 7a. Si elige modificar el registro el sistema muestra el formulario con los datos a modificar. 7b. Si elige crear o nuevo documento pasa al Caso de Uso 16. 7c. Si elige Lugar de Exposición pasa al Caso de Uso 19. 7d. Si elige Revisiones pasa al Caso de Uso 20.
104
8a. Si elige Modificar RIG presiona el botón Aceptar.
7e. Si elige Referencias pasa al Caso de Uso 21. 7g. Si elige Normas pasa al Caso de Uso 22. 7h. Si elige Acciones pasa al Caso de Uso 23. 7i. Si elige Mail, el sistema valida los detalle del documento (Exposición de documentos, Normas de Estándares de ISO y las Acciones de Usuarios) y envía Mail a los usuarios intervinientes. El sistema muestra el mensaje que fue enviado correctamente. 9a. Si elige Modificar, el sistema actualiza los datos del formulario. Se indica que el proceso se llevó a cabo correctamente. 10. El sistema regresa al usuario a la lista de documentos no redactados (pendientes).
Flujo Alternativo 6.1. En caso de no haber seleccionado un registro de la interfaz de documentos, el sistema muestra un mensaje de error, indicando el problema, volver al paso 3. 8.1. En caso de presionar el botón cancelar, los cambios realizados no se harán efecto. 9. y 10. Si ocurriese algún error en el camino de estos procesos, el Sistema envía un mensaje de error, indicando el problema.
105
106
107
Caso de Uso Nro.19. Administrar Exposición de Documento a publicar. Actores RIG. Propósito Registrar, Modificar o eliminar detalle de
lugares de exposición de un documento a publicar en la intranet.
Pre Condiciones
RIG este autentificado en el sistema. Que exista el documento al cual se desea insertar, modificar, eliminar o buscar lugares de exposición.
Flujo Básico Acción del Actor Respuesta del Sistema 1. RIG puede elegir la opción del menú, para modificar los lugares de exposición de un documento o venir de Caso de USO Nro. 18. 3. RIG puede seleccionar un documento de la lista. 5 RIG puede elegir:
Eliminar Modificar
7. RIG puede elegir:
Insertar Buscar
2. El sistema le muestra la interfaz donde puede ingresar el detalle de lugares de exposición física y electrónica del documento o la lista de lugares ya ingresados. 4. El sistema muestra el registro seleccionado de la lista con una franja de color naranja. 6a. Si elige eliminar el registro el sistema muestra el formulario con sus respectivos datos. 6b. Si elige modificar el registro el sistema muestra el formulario con los datos a modificar. 8a. Si elige Insertar el sistema muestra un nuevo formulario en blanco con los datos a ingresar. 8b. Si elige buscar el registro el sistema muestra el formulario con los diferentes criterios de búsqueda a aplicar de acuerdo a un determinado documento.
108
9. RIG revisa o modifica o llena los datos o ingresa un criterio de búsqueda, en el formulario según sea el caso, al finalizar presiona el botón Aceptar.
10. El sistema elimina o actualiza o guarda o recupera datos del formulario según sea el caso. El sistema regresa a la lista de Lugares de Exposición de un documento.
Flujo Alternativo 5.1. En caso de no haber seleccionado un registro de la interfaz de documentos, el sistema muestra un mensaje de error, indicando el problema, volver al paso 3. 9.1. En caso de presionar el botón cancelar, los cambios realizados no se harán efecto. 10. Si ocurriese algún error en el camino de estos procesos, el Sistema envía un mensaje de error, indicando el problema.
109
Caso de Uso Nro. 20. Administrar Revisión de Documento a publicar. Actores RIG. Propósito Registrar, Modificar o eliminar detalle de
revisiones de un documento a publicar en la intranet.
Pre Condiciones
RIG este autentificado en el sistema. Que exista el documento al cual se desea insertar, modificar, eliminar o buscar revisiones.
Flujo Básico Acción del Actor Respuesta del Sistema 1. RIG puede elegir la opción del menú, para modificar los lugares de exposición de un documento o venir de Caso de USO Nro. 18. 3. RIG puede seleccionar un documento de la lista. 5 RIG puede elegir:
Eliminar Modificar
7. RIG puede elegir:
Insertar Buscar
2. El sistema le muestra la interfaz donde puede ingresar el detalle de revisiones del documento o la lista de las mismas ya ingresados. 4. El sistema muestra el registro seleccionado de la lista con una franja de color naranja. 6a. Si elige eliminar el registro el sistema muestra el formulario con sus respectivos datos. 6b. Si elige modificar el registro el sistema muestra el formulario con los datos a modificar. 8a. Si elige Insertar el sistema muestra un nuevo formulario en blanco con los datos a ingresar. 8b. Si elige buscar el registro el sistema muestra el formulario con los diferentes criterios de búsqueda a aplicar de acuerdo a un determinado documento.
110
9. RIG revisa o modifica o llena los datos o ingresa un criterio de búsqueda, en el formulario según sea el caso, al finalizar presiona el botón Aceptar.
10. El sistema elimina o actualiza o guarda o recupera datos del formulario según sea el caso. El sistema regresa a la lista de revisiones de un documento.
Flujo Alternativo 5.1. En caso de no haber seleccionado un registro de la interfaz de documentos, el sistema muestra un mensaje de error, indicando el problema, volver al paso 3. 9.1. En caso de presionar el botón cancelar, los cambios realizados no se harán efecto. 10. Si ocurriese algún error en el camino de estos procesos, el Sistema envía un mensaje de error, indicando el problema.
111
Caso de Uso Nro. 22. Administrar Acápites o Normas de Estándares de (ISO) de un documento a publicar. Actores RIG. Propósito Registrar, Modificar o eliminar detalle de
acápites que hace referencia un determinado documento a publicar en la intranet.
Pre Condiciones
RIG este autentificado en el sistema. Que exista el documento al cual se desea insertar, modificar, eliminar o buscar Normas de estándares de (ISO).
Flujo Básico Acción del Actor Respuesta del Sistema 1. RIG puede elegir la opción del menú, para modificar los lugares de exposición de un documento o venir de Caso de USO Nro. 18. 3. RIG puede seleccionar un documento de la lista. 5 RIG puede elegir:
Eliminar Modificar
7. RIG puede elegir:
Insertar Buscar
2. El sistema le muestra la interfaz donde puede ingresar el detalle de Normas de estándares de (ISO) del documento o la lista de las mismas ya ingresados. 4. El sistema muestra el registro seleccionado de la lista con una franja de color naranja. 6a. Si elige eliminar el registro el sistema muestra el formulario con sus respectivos datos. 6b. Si elige modificar el registro el sistema muestra el formulario con los datos a modificar. 8a. Si elige Insertar el sistema muestra un nuevo formulario en blanco con los datos a ingresar. 8b. Si elige buscar el registro el sistema muestra el formulario con los diferentes criterios de búsqueda a aplicar de acuerdo a un determinado documento.
112
9. RIG revisa o modifica o llena los datos o ingresa un criterio de búsqueda, en el formulario según sea el caso, al finalizar presiona el botón Aceptar.
10. El sistema elimina o actualiza o guarda o recupera datos del formulario según sea el caso. El sistema regresa a la lista de Normas de estándares de (ISO) de un documento.
Flujo Alternativo 5.1. En caso de no haber seleccionado un registro de la interfaz de documentos, el sistema muestra un mensaje de error, indicando el problema, volver al paso 3. 9.1. En caso de presionar el botón cancelar, los cambios realizados no se harán efecto. 10. Si ocurriese algún error en el camino de estos procesos, el Sistema envía un mensaje de error, indicando el problema.
113
Caso de Uso Nro. 23. Administrar Acciones de Usuarios sobre un documento a publicar. Actores RIG. Propósito Registrar, Modificar o eliminar detalle de
acciones de usuarios que deben realizar sobre un determinado documento a publicar en la intranet.
Pre Condiciones
RIG este autentificado en el sistema. Que exista el documento al cual se desea insertar, modificar, eliminar o buscar Acciones de usuarios sobre un documento.
Flujo Básico Acción del Actor Respuesta del Sistema 1. RIG puede elegir la opción del menú, para modificar los lugares de exposición de un documento o venir de Caso de USO Nro. 18. 3. RIG puede seleccionar un documento de la lista. 5 RIG puede elegir:
Eliminar Modificar
7. RIG puede elegir:
Insertar Buscar
2. El sistema le muestra la interfaz donde puede cambiar el estado de una acción . 4. El sistema muestra el registro seleccionado de la lista con una franja de color naranja. 6a. Si elige eliminar el registro el sistema muestra el formulario con sus respectivos datos. 6b. Si elige modificar el registro el sistema muestra el formulario con los datos a modificar. 8a. Si elige Insertar el sistema muestra un nuevo formulario en blanco con los datos a ingresar. 8b. Si elige buscar el registro el sistema muestra el formulario con los diferentes criterios de búsqueda a aplicar de acuerdo a un determinado documento.
114
9. RIG revisa o modifica o llena los datos o ingresa un criterio de búsqueda, en el formulario según sea el caso, al finalizar presiona el botón Aceptar.
10. El sistema elimina o actualiza o guarda o recupera datos del formulario según sea el caso. El sistema regresa a la lista de Acciones de usuarios sobre un determinado documento.
Flujo Alternativo 5.1. En caso de no haber seleccionado un registro de la interfaz de documentos, el sistema muestra un mensaje de error, indicando el problema, volver al paso 3. 9.1. En caso de presionar el botón cancelar, los cambios realizados no se harán efecto. 10. Si ocurriese algún error en el camino de estos procesos, el Sistema envía un mensaje de error, indicando el problema.
115
Caso de Uso Nro. 24. Registrar Revisión de Documento a Publicar. Actores Usuario que revisa. Propósito Registrar la revisión de un determinado
documento a publicar en la intranet. Pre Condiciones
Usuario que revisa este autentificado en el sistema. Que exista el documento al cual se desea revisar.
Flujo Básico Acción del Actor Respuesta del Sistema 1. El usuario que revisa presiona la opción del menú para iniciar este caso de uso. 3. El usuario que revisa puede seleccionar un documento de la lista. 5. El usuario que revisa puede elegir:
Modificar 7. El usuario que revisa modifica el estado realizado a la opción SI, al finalizar presiona el botón Aceptar.
2. El sistema le muestra la interfaz de usuario, con la lista de documentos sin revisar. 4. El sistema muestra el registro seleccionado de la lista con una franja de color naranja. 6. Si elige modificar el registro el sistema muestra el formulario con los datos a modificar. 8. El sistema guarda o actualiza los datos del formulario, envía un Mail a los usuarios que intervienen indicando que fue revisado y regresa al usuario que revisa a la lista original, con los datos actualizados.
Flujo Alternativo 5.1. En caso de no haber seleccionado un registro de la interfaz de documentos, el sistema muestra un mensaje de error, indicando el problema, volver al paso 3. 7.1. En caso de presionar el botón cancelar, los cambios realizados no se harán efecto. 8. Si ocurriese algún error en el camino de estos procesos, el Sistema envía un mensaje de error, indicando el problema.
116
117
Caso de Uso Nro. 25. Registrar Aprobación a Documento que se va a Publicar. Actores Usuario que aprueba. Propósito Registrar la aprobación de un determinado
documento a publicar en la intranet. Pre Condiciones
Usuario que aprueba este autentificado en el sistema. Que exista el documento al cual se desea aprobar.
Flujo Básico Acción del Actor Respuesta del Sistema 1. El usuario que aprueba presiona la opción del menú para iniciar este caso de uso. 3. El usuario que aprueba puede seleccionar un documento de la lista. 5. El usuario que aprueba puede elegir:
Modificar 7. El usuario que aprueba modifica el estado realizado a la opción SI, al finalizar presiona el botón Aceptar.
2. El sistema le muestra la interfaz de usuario, con la lista de documentos sin aprobar. 4. El sistema muestra el registro seleccionado de la lista con una franja de color naranja. 6. Si elige modificar el registro el sistema muestra el formulario con los datos a modificar. 8. El sistema guarda o actualiza los datos del formulario, envía un Mail a los usuarios que intervienen indicando que fue aprobado y publica el documento en la intranet. Regresa al usuario que aprueba a la lista original, con los datos actualizados.
Flujo Alternativo 5.1. En caso de no haber seleccionado un registro de la interfaz de documentos, el sistema muestra un mensaje de error, indicando el problema, volver al paso 3. 7.1. En caso de presionar el botón cancelar, los cambios realizados no se harán efecto. 8. Si ocurriese algún error en el camino de estos procesos, el Sistema envía un mensaje de error, indicando el problema.
118
119
Caso de Uso Nro. 26. Visualizar Documento. Actores Usuario. Propósito Visualizar un documento publicado en la
Intranet de SMC. Pre Condiciones
Usuario este autentificado en el sistema. Que el documento a visualizar este revisado y aprobado por el jefe y gerente de área.
Flujo Básico Acción del Actor Respuesta del Sistema 1. El usuario presiona la opción del menú para iniciar este caso de uso. 3. El usuario puede seleccionar un documento de la lista. 5. El usuario puede elegir un documento que se encuentre en la lista: Para visualizar otro documento volver al paso 1.
2. El sistema le muestra la interfaz de usuario, con la lista de documentos. 4. El sistema muestra el registro seleccionado de la lista con una franja de color ploma. 6. Si selecciona con un click el sistema muestra el documento en formato PDF.
Flujo Alternativo 2.1. En caso de no existir documentos salir del sistema
120
121
4 ANALISIS 4.1 Esbozo del Modelo de análisis (paquetes de anál isis)
Seguridad Parametros Generales
Perfil de Documentación Gestión de Documentos
Administrar Revision de Documentos a Publ icar
(f rom Use-Case Model)
Administrar Aprobacion de Documento a Publ icar(f rom Use-Case Model)
Administrar Accesos a Opciones del Menu
(f rom Use-Case Model)
Administrar Opciones del Menu
(f rom Use-Case Model)
<<extend>>
Administrar Personas
(f rom Use-Case Model)
Administrar Matriz de Responsabi lidades
(f rom Use-Case Model)
Administrar Tipo de Documento
(f rom Use-Case Model)
<<include>><<include>><<include>>
Administrar Areas del SGI
(f rom Use-Case Model)
Administrar Usuarios
(f rom Use-Case Model)
<<extend>>
<<include>>
<<include>>
Administrar Repartos de Estandard (ISO)
(f rom Use-Case Model)
Administrar Estandares (ISO)
(f rom Use-Case Model)<<include>>
Administrar Referencia de Documentos a Publ icar
(f rom Use-Case Model)
Gestion de Documento para ser publicado
(f rom Use-Case Model)
<<include>>
<<include>>
<<include>>
<<extend>>
122
4.2 Análisis de casos de uso
En el análisis se consideraron por caso de uso el diagrama de colaboración
correspondiente.
Caso de Uso Nro.1: Administrar Personas.
(Insertar)
:tblPERSONAS : Base de Datos
: RIG
: WebUI(tblPERSONAS.ASPX)
: CTR(tblPERSONAS.ASPX.CS)
: CTR(SIIWCL) (Componente)
: CTR(SIICOL) (Componente)
: CTR(tblPERSONAS.CS)
1: Pres. Botón Insertar (Modo Grid)8: Ingresa Datos
9: Pres. Botón Guardar
2: btnInsertar_Click(object sender, EventArgs e)10: btnGuardar_Click(object sender, EventArgs e)
7: Mostrar en Modo Formulario18: BindGrid
3: Pasar Datos11: Pasar Datos
6: Actualizar Datos17: Actualizar Datos
4: Pasar Datos12: Validar Datos Ingresados
5: Actualizar Datos
13: Pasar Datos
14: Insert (row)
15: Actualizar Datos
16: Actualizar Datos
123
(Eliminar)
: CTR(SIIWCL) (Componente)
: RIG : WebUI(tblPERSONAS.ASPX)
: CTR(tblPERSONAS.ASPX.CS) : CTR(tblPERSONAS.CS)
: CTR(SIICOL) (Componente)
:tblPERSONAS : Base de Datos
5: Pasar Datos12: Pasar Datos
1: Seleccionar una Fila2: Pres. Botón Eliminar (Modo Grid)
9: Pres. Botón Aceptar
3: btnEliminar_Click(object sender, EventArgs e)10: btnAceptar_Click(object sender, EventArgs e)
8: Mostrar en Modo Formulario18: BindGrid
4: Pasar Datos11: Pasar Datos
7: Actualizar Datos17: Actualizar Datos
6: Actualizar Datos
13: Pasar Datos
14: DeleteByPrimaryKey(id_row)
15: Actualizar Datos
16: Actualizar Datos
(Modificar)
:tblPERSONAS : Base de Datos
: CTR(SIIWCL) (Componente)
: RIG : WebUI(tblPERSONAS.ASPX)
: CTR(tblPERSONAS.ASPX.CS)
: CTR(tblPERSONAS.CS)
: CTR(SIICOL) (Componente)
11: Validar Datos Ingresados
1: Seleccionar una Fi la2: Pres. Botón Modificar (Modo Grid)
7: Ingresa Datos a Modificar8: Pres. Botón Guardar
3: btnModificar_Click(object sender, EventArgs e)9: btnGuardar_Click(object sender, EventArgs e)
6: Mostrar en Modo Formulario17: BindGrid
4: Pasar Datos10: Pasar Datos
5: Actualizar Datos16: Actualizar Datos
12: Pasar Datos
13: UpdateByPrimaryKey(id_row)
14: Actualizar Datos
15: Actualizar Datos
124
(Buscar)
:tblPERSONAS : Base de Datos
: RIG : WebUI(tblPERSONAS.ASPX)
: CTR(tblPERSONAS.ASPX.CS)
: CTR(SIIWCL) (Componente)
: CTR(tblPERSONAS.CS)
: CTR(SIICOL) (Componente)
1: Pres. Botón Buscar (Modo Grid)8: Ingresa Datos a Buscar
9: Pres. Botón Aceptar
2: btnBuscar_Cl ick(object sender, EventArgs e)10: btnAceptar_Click(object sender, EventArgs e)
7: Mostrar en Modo Formulario18: BindGrid
3: Pasar Datos11: Pasar Datos
6: Actualizar Datos17: Actual izar Datos
4: Pasar Datos12: Pasar Datos
5: Actual izar Datos
13: Pasar Datos
14: Select(row)
15: Actual iza Datos
16: Actualizar Datos
Caso de Uso Nro.2: Administrar Tipos de Usuario.
(Insertar)
:tblTIPOS_USRS : Base de Datos
: RIG : WebUI(tblTIPOS_USRS.ASPX)
: CTR(tblTIPOS_USRS.ASPX.CS)
: CTR(SIIWCL) (Componente)
: CTR(tblTIPOS_USRS.CS)
: CTR(SIICOL) (Componente)
1: Pres. Botón Insertar (Modo Grid)8: Ingresa Datos
9: Pres. Botón Guardar
2: btnInsertar_Click(object sender, Ev entArgs e)10: btnGuardar_Click(object sender, Ev entArgs e)
7: Mostrar en Modo Formulario18: BindGrid
3: Pasar Datos11: Pasar Datos
6: Actualizar Datos17: Actualizar Datos
4: Pasar Datos12: Validar Datos Ingresados
5: Actualizar Datos
13: Pasar Datos
14: Insert (row)
15: Actualizar Datos
16: Actualizar Datos
125
(Eliminar)
: CTR(SIIWCL) (Componente)
: RIG : WebUI(tblTIPOS_USRS.ASPX)
: CTR(tblTIPOS_USRS.ASPX.CS)
: CTR(tblTIPOS_USRS.CS)
: CTR(SIICOL) (Componente):tblTIPOS_USRS : Base de Datos
5: Pasar Datos12: Pasar Datos
1: Seleccionar una Fila2: Pres. Botón Eliminar (Modo Grid)
9: Pres. Botón Aceptar
3: btnEliminar_Click(object sender, EventArgs e)10: btnAceptar_Click(object sender, EventArgs e)
8: Mostrar en Modo Formulario18: BindGrid
4: Pasar Datos11: Pasar Datos
7: Actual izar Datos17: Actualizar Datos
6: Actual izar Datos
13: Pasar Datos
14: DeleteByPrimaryKey(id_row)
15: Actualizar Datos
16: Actualizar Datos
(Modificar)
:tblTIPOS_USRS : Base de Datos
: CTR(SIIWCL) (Componente)
: RIG
: WebUI(tblTIPOS_USRS.ASPX)
: CTR(tblTIPOS_USRS.ASPX.CS)
: CTR(tblTIPOS_USRS.CS)
: CTR(SIICOL) (Componente)
1: Seleccionar una Fila2: Pres. Botón Modificar (Modo Grid)
3: btnModificar_Click(object sender, EventArgs e)
4: Pasar Datos
5: Actualizar Datos
6: Mostrar en Modo Formulario
7: Ingresa Datos a Modificar8: Pres. Botón Guardar
9: btnGuardar_Click(object sender, EventArgs e)
10: Pasar Datos
11: Validar Datos Ingresados
12: Pasar Datos
13: UpdateByPrimaryKey(id_row)
14: Actual izar Datos
15: Actual izar Datos
16: Actual izar Datos
17: BindGrid
126
(Buscar)
: CTR(tblTIPOS_USRS.CS)
: RIG
: WebUI(tblTIPOS_USRS.ASPX)
: CTR(tblTIPOS_USRS.ASPX.CS)
: CTR(SIIWCL) (Componente)
: CTR(SIICOL) (Componente)
:tblTIPOS_USRS : Base de Datos
1: Pres. Botón Buscar (Modo Grid)
2: btnBuscar_Click(object sender, Ev entArgs e)
3: Pasar Datos
4: Pasar Datos
5: Actualizar Datos
6: Actualizar Datos
7: Mostrar en Modo Formulario
8: Ingresa Datos a Buscar9: Pres. Botón Aceptar
10: btnAceptar_Click(object sender, Ev entArgs e)
11: Pasar Datos
12: Pasar Datos
13: Pasar Datos
14: Select(row)
15: Actualiza Datos
16: Actualizar Datos
17: Actualizar Datos
18: BindGrid
Caso de Uso Nro.3: Administrar Clases.
(Insertar)
: RIG : WebUI(tblCLASES.ASPX)
: CTR(tblCLASES.ASPX.CS)
: CTR(SIIWCL) (Componente)
: CTR(tblCLASES.CS)
: CTR(SIICOL) (Componente)
:tblCLASES : Base de Datos
1: Pres. Botón Insertar (Modo Grid)8: Ingresa Datos
9: Pres. Botón Guardar
2: btnInsertar_Click(object sender, EventArgs e)10: btnGuardar_Click(object sender, EventArgs e)
7: Mostrar en Modo Formulario18: BindGrid
3: Pasar Datos11: Pasar Datos
6: Actualizar Datos17: Actualizar Datos
4: Pasar Datos12: Validar Datos Ingresados
5: Actualizar Datos
13: Pasar Datos
14: Insert (row)
15: Actualizar Datos
16: Actualizar Datos
127
(Eliminar)
:tblCLASES : Base de Datos
: CTR(SIIWCL) (Componente)
: RIG
: WebUI(tblCLASES.ASPX)
: CTR(tblCLASES.ASPX.CS)
: CTR(tblCLASES.CS)
: CTR(SIICOL) (Componente)
1: Seleccionar una Fila2: Pres. Botón Eliminar (Modo Grid)
3: btnEliminar_Click(object sender, EventArgs e)
4: Pasar Datos
5: Pasar Datos
6: Actualizar Datos
7: Actual izar Datos
8: Mostrar en Modo Formulario
9: Pres. Botón Aceptar
10: btnAceptar_Click(object sender, EventArgs e)
11: Pasar Datos
12: Pasar Datos
13: Pasar Datos
14: DeleteByPrimaryKey(id_row)
15: Actualizar Datos
16: Actualizar Datos
17: Actualizar Datos
18: BindGrid
(Modificar)
: CTR(SIIWCL) (Componente)
: RIG
: WebUI(tblCLASES.ASPX)
: CTR(tblCLASES.ASPX.CS)
: CTR(tblCLASES.CS)
: CTR(SIICOL) (Componente)
:tblCLASES : Base de Datos
1: Seleccionar una Fila2: Pres. Botón Modif icar (Modo Grid)
3: btnModif icar_Click(object sender, Ev entArgs e)
4: Pasar Datos
5: Actualizar Datos
6: Mostrar en Modo Formulario
7: Ingresa Datos a Modif icar8: Pres. Botón Guardar
9: btnGuardar_Click(object sender, Ev entArgs e)
10: Pasar Datos
11: Validar Datos Ingresados
12: Pasar Datos
13: UpdateBy Primary Key (id_row)
14: Actualizar Datos
15: Actualizar Datos
16: Actualizar Datos
17: BindGrid
128
(Buscar)
: RIG : WebUI(tblCLASES.ASPX)
: CTR(tblCLASES.ASPX.CS)
: CTR(SIIWCL) (Componente)
: CTR(tblCLASES.CS)
: CTR(SIICOL) (Componente)
:tblCLASES : Base de Datos
1: Pres. Botón Buscar (Modo Grid)
2: btnBuscar_Click(object sender, EventArgs e)
3: Pasar Datos
4: Pasar Datos
5: Actualizar Datos
6: Actualizar Datos
7: Mostrar en Modo Formulario
8: Ingresa Datos a Buscar9: Pres. Botón Aceptar
10: btnAceptar_Click(object sender, EventArgs e)
11: Pasar Datos
12: Pasar Datos
13: Pasar Datos
14: Select(row)
15: Actualiza Datos
16: Actualizar Datos
17: Actualizar Datos
18: BindGrid
Caso de Uso Nro.4: Administrar Usuarios.
(Insertar)
: Administrador : WebUI(tblUSUARIOS.ASPX)
: CTR(tblUSUARIOS.ASPX.CS)
: CTR(SIIWCL) (Componente)
: CTR(tblUSUARIOS.CS)
: CTR(SIICOL) (Componente)
:tblUSUARIOS : Base de Datos
1: Pres. Botón Insertar (Modo Grid)8: Ingresa Datos
9: Pres. Botón Guardar
2: btnInsertar_Cl ick(object sender, EventArgs e)10: btnGuardar_Click(object sender, EventArgs e)
7: Mostrar en Modo Formulario18: BindGrid
3: Pasar Datos11: Pasar Datos
6: Actualizar Datos17: Actualizar Datos
4: Pasar Datos12: Validar Datos Ingresados
5: Actualizar Datos
13: Pasar Datos
14: Insert (row)
15: Actualizar Datos
16: Actualizar Datos
129
(Eliminar)
: CTR(SIIWCL) (Componente)
: Administrador : WebUI(tblUSUARIOS.ASPX)
: CTR(tblUSUARIOS.ASPX.CS)
: CTR(tblUSUARIOS.CS)
: CTR(SIICOL) (Componente)
:tblUSUARIOS : Base de Datos
1: Seleccionar una Fila2: Pres. Botón Eliminar (Modo Grid)
3: btnEliminar_Click(object sender, EventArgs e)
4: Pasar Datos
5: Pasar Datos
6: Actualizar Datos
7: Actualizar Datos
8: Mostrar en Modo Formulario
9: Pres. Botón Aceptar
10: btnAceptar_Click(object sender, EventArgs e)
11: Pasar Datos
12: Pasar Datos
13: Pasar Datos
14: DeleteBy Primary Key (id_row)
15: Actualizar Datos
16: Actualizar Datos
17: Actualizar Datos
18: BindGrid
(Modificar)
:tblUSUARIOS : Base de Datos
: CTR(SIIWCL) (Componente)
: Administrador
: WebUI(tblUSUARIOS.ASPX)
: CTR(tblUSUARIOS.ASPX.CS)
: CTR(tblUSUARIOS.CS)
: CTR(SIICOL) (Componente)
1: Seleccionar una Fila2: Pres. Botón Modif icar (Modo Grid)
3: btnModif icar_Click(object sender, Ev entArgs e)
4: Pasar Datos
5: Actualizar Datos
6: Mostrar en Modo Formulario
7: Ingresa Datos a Modif icar8: Pres. Botón Guardar
9: btnGuardar_Click(object sender, Ev entArgs e)
10: Pasar Datos
11: Validar Datos Ingresados
12: Pasar Datos
13: UpdateBy Primary Key (id_row)
14: Actualizar Datos
15: Actualizar Datos
16: Actualizar Datos
17: BindGrid
130
(Buscar)
: Administrador
: WebUI(tblUSUARIOS.ASPX)
: CTR(tblUSUARIOS.ASPX.CS)
: CTR(SIIWCL) (Componente)
: CTR(SIICOL) (Componente)
:tblUSUARIOS : Base de Datos
: CTR(tblUSUARIOS.CS)
1: Pres. Botón Buscar (Modo Grid)8: Ingresa Datos a Buscar
9: Pres. Botón Aceptar
2: btnBuscar_Click(object sender, Ev entArgs e)10: btnAceptar_Click(object sender, Ev entArgs e)
7: Mostrar en Modo Formulario18: BindGrid
3: Pasar Datos11: Pasar Datos
6: Actualizar Datos17: Actualizar Datos
4: Pasar Datos12: Pasar Datos
5: Actualizar Datos
13: Pasar Datos
14: Select(row)
15: Actualiza Datos
16: Actualizar Datos
Caso de Uso Nro.5: Administrar Tipos de Departamentos.
(Insertar)
: CTR(SIIWCL) (Componente)
: Administrador
: WebUI(tblSECCIONES_DPTO.ASPX)
: CTR(tblSECCIONES_DPTO.ASPX.CS)
: CTR(tblSECCIONES_DPTO.CS)
: CTR(SIICOL) (Componente):tblSECCIONES_DPTO : Base
de Datos
1: Pres. Botón Insertar (Modo Grid)
2: btnInsertar_Click(object sender, EventArgs e)
3: Pasar Datos
4: Pasar Datos
5: Actualizar Datos
6: Actualizar Datos
7: Mostrar en Modo Formulario
8: Ingresa Datos9: Pres. Botón Guardar
10: btnGuardar_Click(object sender, EventArgs e)
11: Pasar Datos
12: Validar Datos Ingresados
13: Pasar Datos
14: Insert (row)
15: Actualizar Datos
16: Actualizar Datos
17: Actualizar Datos
18: BindGrid
131
(Eliminar)
: CTR(SIIWCL) (Componente)
: Administrador : WebUI(tblSECCIONES_DPTO.ASPX)
: CTR(tblSECCIONES_DPTO.ASPX.CS)
: CTR(tblSECCIONES_DPTO.CS)
: CTR(SIICOL) (Componente)
:tblSECCIONES_DPTO : Base de Datos
1: Seleccionar una Fila2: Pres. Botón Eliminar (Modo Grid)
3: btnEliminar_Click(object sender, Ev entArgs e)
4: Pasar Datos
5: Pasar Datos
6: Actualizar Datos
7: Actualizar Datos
8: Mostrar en Modo Formulario
9: Pres. Botón Aceptar
10: btnAceptar_Click(object sender, Ev entArgs e)
11: Pasar Datos
12: Pasar Datos
13: Pasar Datos
14: DeleteBy Primary Key (id_row)
15: Actualizar Datos
16: Actualizar Datos
17: Actualizar Datos
18: BindGrid
(Modificar)
: CTR(SIIWCL) (Componente)
: Administrador : WebUI(tblSECCIONES_DPTO.ASPX)
: CTR(tblSECCIONES_DPTO.ASPX.CS)
: CTR(tblSECCIONES_DPTO.CS)
: CTR(SIICOL) (Componente)
:tblSECCIONES_DPTO : Base de Datos
11: Validar Datos Ingresados
1: Seleccionar una Fi la2: Pres. Botón Modificar (Modo Grid)
7: Ingresa Datos a Modificar8: Pres. Botón Guardar
3: btnModificar_Cl ick(object sender, EventArgs e)9: btnGuardar_Click(object sender, EventArgs e)
6: Mostrar en Modo Formulario17: BindGrid
4: Pasar Datos10: Pasar Datos
5: Actual izar Datos16: Actualizar Datos
12: Pasar Datos
13: UpdateByPrimaryKey(id_row)
14: Actual izar Datos
15: Actualizar Datos
132
(Buscar)
: CTR(tblSECCIONES_DPTO.CS)
: Administrador
: WebUI(tblSECCIONES_DPTO.ASPX)
: CTR(tblSECCIONES_DPTO.ASPX.CS)
: CTR(SIIWCL) (Componente)
: CTR(SIICOL) (Componente)
:tblSECCIONES_DPTO : Base de Datos
1: Pres. Botón Buscar (Modo Grid)
2: btnBuscar_Click(object sender, Ev entArgs e)
3: Pasar Datos
4: Pasar Datos
5: Actualizar Datos
6: Actualizar Datos
7: Mostrar en Modo Formulario
8: Ingresa Datos a Buscar9: Pres. Botón Aceptar
10: btnAceptar_Click(object sender, Ev entArgs e)
11: Pasar Datos
12: Pasar Datos
13: Pasar Datos
14: Select(row)
15: Actualiza Datos
16: Actualizar Datos
17: Actualizar Datos
18: BindGrid
Caso de Uso Nro.6: Administrar Áreas del SGI.
(Insertar)
: RIG : WebUI(tblAREAS_UND.ASPX)
: CTR(SIIWCL) (Componente)
: CTR(tblAREAS_UND.ASPX.CS)
: CTR(tblAREAS_UND.CS)
: CTR(SIICOL) (Componente)
:tblAREAS_UND : Base de Datos
1: Pres. Botón Insertar (Modo Grid)8: Ingresa Datos
9: Pres. Botón Guardar
2: btnInsertar_Click(object sender, EventArgs e)10: btnGuardar_Click(object sender, EventArgs e)
7: Mostrar en Modo Formulario18: BindGrid
4: Pasar Datos12: Validar Datos Ingresados
5: Actual izar Datos
3: Pasar Datos11: Pasar Datos
6: Actual izar Datos17: Actual izar Datos
13: Pasar Datos
14: Insert (row)
15: Actualizar Datos
16: Actualizar Datos
133
(Eliminar)
: CTR(SIIWCL) (Componente)
: RIG : WebUI(tblAREAS_UND.ASPX)
: CTR(tblAREAS_UND.ASPX.CS)
: CTR(tblAREAS_UND.CS)
: CTR(SIICOL) (Componente)
:tblAREAS_UND : Base de Datos
5: Pasar Datos12: Pasar Datos
1: Seleccionar una Fila2: Pres. Botón Eliminar (Modo Grid)
9: Pres. Botón Aceptar
3: btnEliminar_Click(object sender, Ev entArgs e)10: btnAceptar_Click(object sender, Ev entArgs e)
8: Mostrar en Modo Formulario18: BindGrid
4: Pasar Datos11: Pasar Datos
7: Actualizar Datos17: Actualizar Datos
6: Actualizar Datos
13: Pasar Datos
14: DeleteBy Primary Key (id_row)
15: Actualizar Datos
16: Actualizar Datos
(Modificar)
: CTR(SIIWCL) (Componente)
: RIG
: WebUI(tblAREAS_UND.ASPX)
: CTR(tblAREAS_UND.ASPX.CS)
: CTR(tblAREAS_UND.CS)
: CTR(SIICOL) (Componente)
:tblAREAS_UND : Base de Datos
11: Validar Datos Ingresados
1: Seleccionar una Fila2: Pres. Botón Modif icar (Modo Grid)
7: Ingresa Datos a Modif icar8: Pres. Botón Guardar
3: btnModif icar_Click(object sender, Ev entArgs e)9: btnGuardar_Click(object sender, Ev entArgs e)
6: Mostrar en Modo Formulario17: BindGrid
4: Pasar Datos10: Pasar Datos
5: Actualizar Datos16: Actualizar Datos
12: Pasar Datos
13: UpdateBy Primary Key (id_row)
14: Actualizar Datos
15: Actualizar Datos
134
(Buscar)
: RIG : WebUI(tblAREAS_UND.ASPX)
: CTR(tblAREAS_UND.ASPX.CS)
: CTR(SIIWCL) (Componente)
: CTR(tblAREAS_UND.CS)
: CTR(SIICOL) (Componente)
:tblAREAS_UND : Base de Datos
1: Pres. Botón Buscar (Modo Grid)8: Ingresa Datos a Buscar
9: Pres. Botón Aceptar
2: btnBuscar_Click(object sender, Ev entArgs e)10: btnAceptar_Click(object sender, Ev entArgs e)
7: Mostrar en Modo Formulario18: BindGrid
3: Pasar Datos11: Pasar Datos
6: Actualizar Datos17: Actualizar Datos
4: Pasar Datos12: Pasar Datos
5: Actualizar Datos
13: Pasar Datos
14: Select(row)
15: Actualiza Datos
16: Actualizar Datos
Caso de Uso Nro.7: Administrar Tipos de Documentos.
(Insertar)
: RIG
: WebUI(tblTIPODCTOS.ASPX)
: CTR(tblTIPODCTOS.ASPX.CS)
: CTR(SIIWCL) (Componente)
: CTR(tblTIPODCTOS.CS)
: CTR(SIICOL) (Componente)
:tblTIPODCTOS : Base de Datos
1: Pres. Botón Insertar (Modo Grid)8: Ingresa Datos
9: Pres. Botón Guardar
2: btnInsertar_Click(object sender, Ev entArgs e)10: btnGuardar_Click(object sender, Ev entArgs e)
7: Mostrar en Modo Formulario18: BindGrid
3: Pasar Datos11: Pasar Datos
6: Actualizar Datos17: Actualizar Datos
4: Pasar Datos12: Validar Datos Ingresados
5: Actualizar Datos
13: Pasar Datos
14: Insert (row)
15: Actualizar Datos
16: Actualizar Datos
135
(Eliminar)
: CTR(SIIWCL) (Componente)
: RIG : WebUI(tblTIPODCTOS.ASPX)
: CTR(tblTIPODCTOS.ASPX.CS)
: CTR(tblTIPODCTOS.CS)
: CTR(SIICOL) (Componente)
:tblTIPODCTOS : Base de Datos
5: Pasar Datos12: Pasar Datos
1: Seleccionar una Fila2: Pres. Botón Eliminar (Modo Grid)
9: Pres. Botón Aceptar
3: btnEliminar_Click(object sender, EventArgs e)10: btnAceptar_Click(object sender, EventArgs e)
8: Mostrar en Modo Formulario18: BindGrid
4: Pasar Datos11: Pasar Datos
7: Actualizar Datos17: Actualizar Datos
6: Actualizar Datos
13: Pasar Datos
14: DeleteByPrimaryKey(id_row)
15: Actualizar Datos
16: Actualizar Datos
(Modificar)
: CTR(SIIWCL) (Componente)
: RIG
: WebUI(tblTIPODCTOS.ASPX)
: CTR(tblTIPODCTOS.ASPX.CS)
: CTR(tblTIPODCTOS.CS)
: CTR(SIICOL) (Componente) :tblTIPODCTOS : Base de Datos
11: Validar Datos Ingresados
1: Seleccionar una Fila2: Pres. Botón Modif icar (Modo Grid)
7: Ingresa Datos a Modif icar8: Pres. Botón Guardar
3: btnModif icar_Click(object sender, Ev entArgs e)9: btnGuardar_Click(object sender, Ev entArgs e)
6: Mostrar en Modo Formulario17: BindGrid
4: Pasar Datos10: Pasar Datos
5: Actualizar Datos16: Actualizar Datos
12: Pasar Datos
13: UpdateBy Primary Key (id_row)
14: Actualizar Datos
15: Actualizar Datos
136
(Buscar)
: RIG : WebUI(tblTIPODCTOS.ASPX)
: CTR(tblTIPODCTOS.ASPX.CS)
: CTR(SIIWCL) (Componente)
: CTR(tblTIPODCTOS.CS)
: CTR(SIICOL) (Componente)
:tblTIPODCTOS : Base de Datos
1: Pres. Botón Buscar (Modo Grid)8: Ingresa Datos a Buscar
9: Pres. Botón Aceptar
2: btnBuscar_Click(object sender, EventArgs e)10: btnAceptar_Click(object sender, EventArgs e)
7: Mostrar en Modo Formulario18: BindGrid
3: Pasar Datos11: Pasar Datos
6: Actualizar Datos17: Actual izar Datos
4: Pasar Datos12: Pasar Datos
5: Actualizar Datos
13: Pasar Datos
14: Select(row)
15: Actual iza Datos
16: Actual izar Datos
Caso de Uso Nro.8: Administrar Estatus del Documento.
(Insertar)
: RIG
: WebUI(tblESTATUS.ASPX)
: CTR(tblESTATUS.ASPX.CS)
: CTR(SIIWCL) (Componente)
: CTR(tblESTATUS.CS)
: CTR(SIICOL) (Componente)
:tblESTATUS : Base de Datos
1: Pres. Botón Insertar (Modo Grid)8: Ingresa Datos
9: Pres. Botón Guardar
2: btnInsertar_Click(object sender, Ev entArgs e)10: btnGuardar_Click(object sender, Ev entArgs e)
7: Mostrar en Modo Formulario18: BindGrid
3: Pasar Datos11: Pasar Datos
6: Actualizar Datos17: Actualizar Datos
4: Pasar Datos12: Validar Datos Ingresados
5: Actualizar Datos
13: Pasar Datos
14: Insert (row)
15: Actualizar Datos
16: Actualizar Datos
137
(Eliminar)
: CTR(SIIWCL) (Componente)
: RIG : WebUI(tblESTATUS.ASPX)
: CTR(tblESTATUS.ASPX.CS)
: CTR(tblESTATUS.CS)
: CTR(SIICOL) (Componente)
:tblESTATUS : Base de Datos
5: Pasar Datos12: Pasar Datos
1: Seleccionar una Fila2: Pres. Botón Eliminar (Modo Grid)
9: Pres. Botón Aceptar
3: btnEliminar_Click(object sender, EventArgs e)10: btnAceptar_Click(object sender, EventArgs e)
8: Mostrar en Modo Formulario18: BindGrid
4: Pasar Datos11: Pasar Datos
7: Actualizar Datos17: Actualizar Datos
6: Actualizar Datos
13: Pasar Datos
14: DeleteByPrimaryKey(id_row)
15: Actualizar Datos
16: Actualizar Datos
(Modificar)
: RIG : WebUI(tblESTATUS.ASPX)
: CTR(tblESTATUS.ASPX.CS)
: CTR(tblESTATUS.CS)
: CTR(SIICOL) (Componente)
:tblESTATUS : Base de Datos
: CTR(SIIWCL) (Componente)
11: Validar Datos Ingresados
1: Seleccionar una Fila2: Pres. Botón Modif icar (Modo Grid)
7: Ingresa Datos a Modif icar8: Pres. Botón Guardar
3: btnModif icar_Click(object sender, Ev entArgs e)9: btnGuardar_Click(object sender, Ev entArgs e)
6: Mostrar en Modo Formulario17: BindGrid
4: Pasar Datos10: Pasar Datos
5: Actualizar Datos16: Actualizar Datos
12: Pasar Datos
13: UpdateBy Primary Key (id_row)
14: Actualizar Datos
15: Actualizar Datos
138
(Buscar)
: RIG : WebUI(tblESTATUS.ASPX)
: CTR(tblESTATUS.ASPX.CS)
: CTR(SIIWCL) (Componente)
: CTR(tblESTATUS.CS)
: CTR(SIICOL) (Componente)
:tblESTATUS : Base de Datos
1: Pres. Botón Buscar (Modo Grid)8: Ingresa Datos a Buscar
9: Pres. Botón Aceptar
2: btnBuscar_Click(object sender, Ev entArgs e)10: btnAceptar_Click(object sender, Ev entArgs e)
7: Mostrar en Modo Formulario18: BindGrid
3: Pasar Datos11: Pasar Datos
6: Actualizar Datos17: Actualizar Datos
4: Pasar Datos12: Pasar Datos
5: Actualizar Datos
13: Pasar Datos
14: Select(row)
15: Actualiza Datos
16: Actualizar Datos
Caso de Uso Nro.9: Administrar Estándares (ISO).
(Insertar)
: RIG : WebUI(tblNORMAS.ASPX)
: CTR(tblNORMAS.ASPX.CS)
: CTR(SIIWCL) (Componente)
: CTR(tblNORMAS.CS)
: CTR(SIICOL) (Componente)
:tblNORMAS : Base de Datos
1: Pres. Botón Buscar (Modo Grid)8: Ingresa Datos a Buscar
9: Pres. Botón Aceptar
2: btnBuscar_Click(object sender, Ev entArgs e)10: btnAceptar_Click(object sender, EventArgs e)
7: Mostrar en Modo Formulario18: BindGrid
3: Pasar Datos11: Pasar Datos
6: Actualizar Datos17: Actualizar Datos
4: Pasar Datos12: Pasar Datos
5: Actualizar Datos
13: Pasar Datos
14: Select(row)
15: Actualiza Datos
16: Actualizar Datos
139
(Eliminar)
: CTR(SIIWCL) (Componente)
: RIG
: WebUI(tblNORMAS.ASPX)
: CTR(tblNORMAS.ASPX.CS)
: CTR(tblNORMAS.CS)
: CTR(SIICOL) (Componente)
: tblNORMAS : Base de Datos
5: Pasar Datos12: Pasar Datos
1: Seleccionar una Fila2: Pres. Botón Eliminar (Modo Grid)
9: Pres. Botón Aceptar
3: btnEliminar_Click(object sender, Ev entArgs e)10: btnAceptar_Click(object sender, Ev entArgs e)
8: Mostrar en Modo Formulario18: BindGrid
4: Pasar Datos11: Pasar Datos
7: Actualizar Datos17: Actualizar Datos
6: Actualizar Datos
13: Pasar Datos
14: DeleteBy Primary Key (id_row)15: Actualizar Datos
16: Actualizar Datos
(Modificar)
: CTR(SIIWCL) (Componente)
: RIG : WebUI(tblNORMAS.ASPX)
: CTR(tblNORMAS.ASPX.CS)
: CTR(tblNORMAS.CS)
: CTR(SIICOL) (Componente)
:tblNORMAS : Base de Datos
11: Validar Datos Ingresados
1: Seleccionar una Fila2: Pres. Botón Modif icar (Modo Grid)
7: Ingresa Datos a Modif icar8: Pres. Botón Guardar
3: btnModif icar_Click(object sender, Ev entArgs e)9: btnGuardar_Click(object sender, Ev entArgs e)
6: Mostrar en Modo Formulario17: BindGrid
4: Pasar Datos10: Pasar Datos
5: Actualizar Datos16: Actualizar Datos
12: Pasar Datos
13: UpdateBy Primary Key (id_row)
14: Actualizar Datos
15: Actualizar Datos
140
(Buscar)
: RIG : WebUI(tblNORMAS.ASPX)
: CTR(tblNORMAS.ASPX.CS)
: CTR(SIIWCL) (Componente)
: CTR(tblNORMAS.CS)
: CTR(SIICOL) (Componente)
:tblNORMAS : Base de Datos
1: Pres. Botón Buscar (Modo Grid)8: Ingresa Datos a Buscar
9: Pres. Botón Aceptar
2: btnBuscar_Click(object sender, Ev entArgs e)10: btnAceptar_Click(object sender, Ev entArgs e)
7: Mostrar en Modo Formulario18: BindGrid
3: Pasar Datos11: Pasar Datos
6: Actualizar Datos17: Actualizar Datos
4: Pasar Datos12: Pasar Datos
5: Actualizar Datos
13: Pasar Datos
14: Select(row)
15: Actualiza Datos
16: Actualizar Datos
Caso de Uso Nro.10: Administrar Repartos de Estándar (ISO).
(Insertar)
tblSECCIONES : Base de Datos
: RIG : WebUI(tblSECCIONES.ASPX) : CTR(tblSECCIONES.ASPX.CS)
: CTR(SIIWCL) (Componente)
: CTR(tblSECCIONES.CS)
: CTR(SIICOL) (Componente)
1: Pres. Botón Insertar (Modo Grid)8: Ingresa Datos
9: Pres. Botón Guardar2: btnInsertar_Click(object sender, EventArgs e)
10: btnGuardar_Click(object sender, EventArgs e)
7: Mostrar en Modo Formulario18: BindGrid
3: Pasar Datos11: Pasar Datos
6: Actual izar Datos17: Actualizar Datos
4: Pasar Datos12: Validar Datos Ingresados
5: Actual izar Datos
13: Pasar Datos
14: Insert (row)
15: Actual izar Datos
16: Actualizar Datos
141
(Eliminar)
: CTR(tblSECCIONES.ASPX.CS)
: CTR(SIIWCL) (Componente)
: RIG
: WebUI(tblSECCIONES.ASPX)
: CTR(tblSECCIONES.CS)
: CTR(SIICOL) (Componente)
:tblSECCIONES : Base de Datos
5: Pasar Datos12: Pasar Datos
1: Seleccionar una Fila2: Pres. Botón Eliminar (Modo Grid)
9: Pres. Botón Aceptar
3: btnEliminar_Click(object sender, Ev entArgs e)10: btnAceptar_Click(object sender, Ev entArgs e)
8: Mostrar en Modo Formulario18: BindGrid
4: Pasar Datos11: Pasar Datos
7: Actualizar Datos17: Actualizar Datos
6: Actualizar Datos
13: Pasar Datos14: DeleteBy Primary Key (id_row)
15: Actualizar Datos
16: Actualizar Datos
(Modificar)
:tblSECCIONES : Base de Datos
: CTR(SIIWCL) (Componente)
: RIG
: WebUI(tblSECCIONES.ASPX)
: CTR(tblSECCIONES.ASPX.CS)
: CTR(tblSECCIONES.CS)
: CTR(SIICOL) (Componente)
11: Validar Datos Ingresados
1: Seleccionar una Fi la2: Pres. Botón Modificar (Modo Grid)
7: Ingresa Datos a Modificar8: Pres. Botón Guardar
3: btnModificar_Click(object sender, EventArgs e)9: btnGuardar_Click(object sender, EventArgs e)
6: Mostrar en Modo Formulario17: BindGrid
4: Pasar Datos10: Pasar Datos
5: Actual izar Datos16: Actual izar Datos
12: Pasar Datos
13: UpdateByPrimaryKey(id_row)
14: Actual izar Datos
15: Actual izar Datos
142
(Buscar)
:tblSECCIONES : Base de Datos
: RIG : WebUI(tblSECCIONES.ASPX) : CTR(tblSECCIONES.ASPX.CS)
: CTR(SIIWCL) (Componente)
: CTR(tblSECCIONES.CS)
: CTR(SIICOL) (Componente)
1: Pres. Botón Buscar (Modo Grid)8: Ingresa Datos a Buscar
9: Pres. Botón Aceptar2: btnBuscar_Click(object sender, EventArgs e)
10: btnAceptar_Click(object sender, EventArgs e)
7: Mostrar en Modo Formulario18: BindGrid
3: Pasar Datos11: Pasar Datos
6: Actualizar Datos17: Actual izar Datos
4: Pasar Datos12: Pasar Datos
5: Actualizar Datos
13: Pasar Datos
14: Select(row)15: Actual iza Datos
16: Actualizar Datos
Caso de Uso Nro.11: Administrar Matriz de responsabilidades.
(Insertar)
: RIG : WebUI(tblMAT_RESPON.ASPX) : CTR(tblMAT_RESPON.ASPX.CS) : CTR(SIIWCL) (Componente)
: CTR(tblMAT_RESPON.CS) : CTR(SIICOL) (Componente)
:tblMAT_RESPON : Base de Datos
1: Pres. Botón Insertar (Modo Grid)8: Ingresa Datos
9: Pres. Botón Guardar2: btnInsertar_Click(object sender, Ev entArgs e)
10: btnGuardar_Click(object sender, Ev entArgs e)
7: Mostrar en Modo Formulario18: BindGrid
3: Pasar Datos11: Pasar Datos
6: Actualizar Datos17: Actualizar Datos
4: Pasar Datos12: Validar Datos Ingresados
5: Actualizar Datos
13: Pasar Datos
14: Insert (row)
15: Actualizar Datos
16: Actualizar Datos
143
(Eliminar)
: CTR(SIIWCL) (Componente) : RIG : WebUI(tblMAT_RESPON.ASPX) : CTR(tblMAT_RESPON.ASPX.CS)
: CTR(tblMAT_RESPON.CS)
: CTR(SIICOL) (Componente)
:tblMAT_RESPON : Base de Datos
5: Pasar Datos12: Pasar Datos
1: Seleccionar una Fila2: Pres. Botón Eliminar (Modo Grid)
9: Pres. Botón Aceptar3: btnEliminar_Click(object sender, Ev entArgs e)10: btnAceptar_Click(object sender, Ev entArgs e)
8: Mostrar en Modo Formulario18: BindGrid
4: Pasar Datos11: Pasar Datos
7: Actualizar Datos17: Actualizar Datos
6: Actualizar Datos
13: Pasar Datos
14: DeleteBy Primary Key (id_row)
15: Actualizar Datos
16: Actualizar Datos
(Modificar)
: CTR(SIIWCL) (Componente) : RIG : WebUI(tblMAT_RESPON.ASPX) : CTR(tblMAT_RESPON.ASPX.CS)
: CTR(tblMAT_RESPON.CS) : CTR(SIICOL) (Componente)
:tblMAT_RESPON : Base de Datos
11: Validar Datos Ingresados
1: Seleccionar una Fila2: Pres. Botón Modif icar (Modo Grid)
7: Ingresa Datos a Modif icar8: Pres. Botón Guardar
3: btnModif icar_Click(object sender, EventArgs e)9: btnGuardar_Click(object sender, Ev entArgs e)
6: Mostrar en Modo Formulario17: BindGrid
4: Pasar Datos10: Pasar Datos
5: Actualizar Datos16: Actualizar Datos
12: Pasar Datos
13: UpdateBy PrimaryKey (id_row)
14: Actualizar Datos
15: Actualizar Datos
144
(Buscar)
: RIG : WebUI(tblMAT_RESPON.ASPX) : CTR(tblMAT_RESPON.ASPX.CS) : CTR(SIIWCL) (Componente)
: CTR(tblMAT_RESPON.CS)
: CTR(SIICOL) (Componente)
:tblMAT_RESPON : Base de Datos
1: Pres. Botón Buscar (Modo Grid)8: Ingresa Datos a Buscar
9: Pres. Botón Aceptar
2: btnBuscar_Click(object sender, Ev entArgs e)10: btnAceptar_Click(object sender, Ev entArgs e)
7: Mostrar en Modo Formulario18: BindGrid
3: Pasar Datos11: Pasar Datos
6: Actualizar Datos17: Actualizar Datos
4: Pasar Datos12: Pasar Datos
5: Actualizar Datos
13: Pasar Datos
14: Select(row)
15: Actualiza Datos
16: Actualizar Datos
Caso de Uso Nro. 12: Administrar Lugares de exposición.
(Insertar)
: RIG : WebUI(tblLUGARES_EXP.ASPX) : CTR(tblLUGARES_EXP.ASPX.CS) : CTR(SIIWCL) (Componente)
: CTR(SIICOL) (Componente)
:tblLUGARES_EXP : Base de Datos
: CTR(tblLUGARES_EXP.CS)
1: Pres. Botón Insertar (Modo Grid)8: Ingresa Datos
9: Pres. Botón Guardar2: btnInsertar_Click(object sender, Ev entArgs e)
10: btnGuardar_Click(object sender, Ev entArgs e)
7: Mostrar en Modo Formulario18: BindGrid
3: Pasar Datos11: Pasar Datos
6: Actualizar Datos17: Actualizar Datos
4: Pasar Datos12: Validar Datos Ingresados
5: Actualizar Datos
13: Pasar Datos
14: Insert (row)
15: Actualizar Datos
16: Actualizar Datos
145
(Eliminar)
: CTR(SIIWCL) (Componente) : RIG : WebUI(tblLUGARES_EXP.ASPX) : CTR(tblLUGARES_EXP.ASPX.CS)
: CTR(tblLUGARES_EXP.CS)
: CTR(SIICOL) (Componente)
:tblLUGARES_EXP : Base de Datos
5: Pasar Datos12: Pasar Datos
1: Seleccionar una Fila2: Pres. Botón Eliminar (Modo Grid)
9: Pres. Botón Aceptar3: btnEliminar_Click(object sender, EventArgs e)10: btnAceptar_Click(object sender, EventArgs e)
8: Mostrar en Modo Formulario18: BindGrid
4: Pasar Datos11: Pasar Datos
7: Actualizar Datos17: Actualizar Datos
6: Actualizar Datos
13: Pasar Datos
14: DeleteByPrimaryKey(id_row)
15: Actualizar Datos
16: Actualizar Datos
(Modificar)
: CTR(SIIWCL) (Componente) : RIG : WebUI(tblLUGARES_EXP.ASPX) : CTR(tblLUGARES_EXP.ASPX.CS)
: CTR(tblLUGARES_EXP.CS)
: CTR(SIICOL) (Componente)
:tblLUGARES_EXP : Base de Datos
11: Validar Datos Ingresados
1: Seleccionar una Fila2: Pres. Botón Modif icar (Modo Grid)
7: Ingresa Datos a Modif icar8: Pres. Botón Guardar
3: btnModif icar_Click(object sender, Ev entArgs e)9: btnGuardar_Click(object sender, Ev entArgs e)
6: Mostrar en Modo Formulario17: BindGrid
4: Pasar Datos10: Pasar Datos
5: Actualizar Datos16: Actualizar Datos
12: Pasar Datos
13: UpdateBy Primary Key (id_row)
14: Actualizar Datos
15: Actualizar Datos
146
(Buscar)
: RIG : WebUI(tblLUGARES_EXP.ASPX) : CTR(tblLUGARES_EXP.ASPX.CS) : CTR(SIIWCL) (Componente)
: CTR(tblLUGARES_EXP.CS) : CTR(SIICOL) (Componente)
:tblLUGARES_EXP : Base de Datos
1: Pres. Botón Buscar (Modo Grid)8: Ingresa Datos a Buscar
9: Pres. Botón Aceptar2: btnBuscar_Click(object sender, EventArgs e)
10: btnAceptar_Click(object sender, EventArgs e)
7: Mostrar en Modo Formulario18: BindGrid
3: Pasar Datos11: Pasar Datos
6: Actualizar Datos17: Actualizar Datos
4: Pasar Datos12: Pasar Datos
5: Actualizar Datos
13: Pasar Datos
14: Select(row)
15: Actualiza Datos
16: Actualizar Datos
Caso de Uso Nro.13: Administrar Opciones del menú.
(Insertar)
: Administrador : WebUI(tblPROGRAMAS.ASPX) : CTR(tblPROGRAMAS.ASPX.CS) : CTR(SIIWCL) (Componente)
: CTR(SIICOL) (Componente)
:tblPROGRAMAS : Base de Datos
: CTR(tblPROGRAMAS.CS)
1: Pres. Botón Insertar (Modo Grid)8: Ingresa Datos
9: Pres. Botón Guardar2: btnInsertar_Click(object sender, EventArgs e)
10: btnGuardar_Click(object sender, EventArgs e)
7: Mostrar en Modo Formulario18: BindGrid
3: Pasar Datos11: Pasar Datos
6: Actualizar Datos17: Actualizar Datos
4: Pasar Datos12: Validar Datos Ingresados
5: Actualizar Datos
13: Pasar Datos
14: Insert (row)
15: Actualizar Datos
16: Actualizar Datos
147
(Eliminar)
: CTR(SIIWCL) (Componente) : Administ rador : WebUI(tblPROGRAMAS.ASPX) : CTR(tblPROGRAMAS.ASPX.CS)
: CTR(tblPROGRAMAS.CS)
: CTR(SIICOL) (Componente)
:tblPROGRAMAS : Base de Datos
5: Pasar Datos12: Pasar Datos
1: Seleccionar una Fila2: Pres. Botón Eliminar (Modo Grid)
9: Pres. Botón Aceptar
3: btnEliminar_Click(object sender, EventArgs e)10: btnAceptar_Click(object sender, EventArgs e)
8: Mostrar en Modo Formulario18: BindGrid
4: Pasar Datos11: Pasar Datos
7: Actualizar Datos17: Actualizar Datos
6: Actualizar Datos
13: Pasar Datos
14: DeleteByPrimaryKey(id_row)
15: Actualizar Datos
16: Actualizar Datos
(Modificar)
: CTR(SIIWCL) (Componente) : Administrador : WebUI(tblPROGRAMAS.ASPX) : CTR(tblPROGRAMAS.ASPX.CS)
: CTR(tblPROGRAMAS.CS)
: CTR(SIICOL) (Componente)
:tblPROGRAMAS : Base de Datos
11: Validar Datos Ingresados
1: Seleccionar una Fila2: Pres. Botón Modificar (Modo Grid)
7: Ingresa Datos a Modificar8: Pres. Botón Guardar
3: btnModificar_Click(object sender, EventArgs e)9: btnGuardar_Click(object sender, EventArgs e)
6: Mostrar en Modo Formulario17: BindGrid
4: Pasar Datos10: Pasar Datos
5: Actualizar Datos16: Actualizar Datos
12: Pasar Datos
13: UpdateByPrimaryKey(id_row)
14: Actualizar Datos
15: Actualizar Datos
148
(Buscar)
: Administrador : WebUI(tblPROGRAMAS.ASPX) : CTR(tblPROGRAMAS.ASPX.CS) : CTR(SIIWCL) (Componente)
: CTR(tblPROGRAMAS.CS)
: CTR(SIICOL) (Componente)
:tblPROGRAMAS : Base de Datos
1: Pres. Botón Buscar (Modo Grid)8: Ingresa Datos a Buscar
9: Pres. Botón Aceptar2: btnBuscar_Click(object sender, EventArgs e)
10: btnAceptar_Click(object sender, EventArgs e)
7: Mostrar en Modo Formulario18: BindGrid
3: Pasar Datos11: Pasar Datos
6: Actualizar Datos17: Actualizar Datos
4: Pasar Datos12: Pasar Datos
5: Actualizar Datos
13: Pasar Datos
14: Select(row)
15: Actualiza Datos
16: Actualizar Datos
Caso de Uso Nro.14: Administrar Accesos a opciones del menú.
(Insertar)
: Administrador : WebUI(tblACCESOS_PRG.ASPX) : CTR(tblACCESOS_PRG.ASPX.CS) : CTR(SIIWCL) (Componente)
: CTR(tblACCESOS_PRG.CS)
: CTR(SIICOL) (Componente):tblACCESOS_PRG : Base de Datos
1: Pres. Botón Insertar (Modo Grid)8: Ingresa Datos
9: Pres. Botón Guardar2: btnInsertar_Click(object sender, Ev entArgs e)
10: btnGuardar_Click(object sender, Ev entArgs e)
7: Mostrar en Modo Formulario18: BindGrid
3: Pasar Datos11: Pasar Datos
6: Actualizar Datos17: Actualizar Datos
4: Pasar Datos12: Validar Datos Ingresados
5: Actualizar Datos
13: Pasar Datos
14: Insert (row)
15: Actualizar Datos
16: Actualizar Datos
149
(Eliminar)
: CTR(SIIWCL) (Componente) : Administrador : WebUI(tblACCESOS_PRG.ASPX) : CTR(tblACCESOS_PRG.ASPX.CS)
: CTR(tblACCESOS_PRG.CS)
: CTR(SIICOL) (Componente)
:tblACCESOS_PRG : Base de Datos
5: Pasar Datos12: Pasar Datos
1: Seleccionar una Fila2: Pres. Botón Eliminar (Modo Grid)
9: Pres. Botón Aceptar3: btnEliminar_Click(object sender, EventArgs e)10: btnAceptar_Click(object sender, Ev entArgs e)
8: Mostrar en Modo Formulario18: BindGrid
4: Pasar Datos11: Pasar Datos
7: Actualizar Datos17: Actualizar Datos
6: Actualizar Datos
13: Pasar Datos
14: DeleteBy Primary Key (id_row)
15: Actualizar Datos
16: Actualizar Datos
(Modificar)
: CTR(SIIWCL) (Componente) : Administrador : WebUI(tblACCESOS_PRG.ASPX) : CTR(tblACCESOS_PRG.ASPX.CS) : CTR(tblACCESOS_PRG.CS)
: CTR(SIICOL) (Componente):tblACCESOS_PRG : Base de Datos
11: Validar Datos Ingresados
1: Seleccionar una Fila2: Pres. Botón Modificar (Modo Grid)
7: Ingresa Datos a Modificar8: Pres. Botón Guardar
3: btnModificar_Click(object sender, EventArgs e)9: btnGuardar_Click(object sender, EventArgs e)
6: Mostrar en Modo Formulario17: BindGrid
4: Pasar Datos10: Pasar Datos
5: Actualizar Datos16: Actualizar Datos
12: Pasar Datos
13: UpdateByPrimaryKey(id_row)
14: Actualizar Datos
15: Actualizar Datos
(Buscar)
: CTR(tblACCESOS_PRG.CS) : Administrador : WebUI(tblACCESOS_PRG.ASPX) : CTR(tblACCESOS_PRG.ASPX.CS) : CTR(SIIWCL) (Componente)
: CTR(SIICOL) (Componente):tblACCESOS_PRG : Base de Datos
1: Pres. Botón Buscar (Modo Grid)8: Ingresa Datos a Buscar
9: Pres. Botón Aceptar2: btnBuscar_Cl ick(object sender, EventArgs e)
10: btnAceptar_Click(object sender, EventArgs e)
7: Mostrar en Modo Formulario18: BindGrid
3: Pasar Datos11: Pasar Datos
6: Actualizar Datos17: Actual izar Datos
4: Pasar Datos12: Pasar Datos
5: Actualizar Datos
13: Pasar Datos
14: Select(row)
15: Actual iza Datos
16: Actual izar Datos
150
Caso de Uso Nro.15: Administrar Tablas.
(Insertar)
: Administrador : WebUI(tblTABLAS.ASPX) : CTR(tblTABLAS.ASPX.CS) : CTR(SIIWCL) (Componente)
: CTR(tblTABLAS.CS) : CTR(SIICOL) (Componente)
:tblTABLAS : Base de Datos
1: Pres. Botón Insertar (Modo Grid)8: Ingresa Datos
9: Pres. Botón Guardar
2: btnInsertar_Click(object sender, Ev entArgs e)10: btnGuardar_Click(object sender, Ev entArgs e)
7: Mostrar en Modo Formulario18: BindGrid
3: Pasar Datos11: Pasar Datos
6: Actualizar Datos17: Actualizar Datos
4: Pasar Datos12: Validar Datos Ingresados
5: Actualizar Datos
13: Pasar Datos
14: Insert (row)
15: Actualizar Datos
16: Actualizar Datos
(Eliminar)
: CTR(SIIWCL) (Componente) : Administrador : WebUI(tblTABLAS.ASPX) : CTR(tblTABLAS.ASPX.CS)
: CTR(tblTABLAS.CS)
: CTR(SIICOL) (Componente)
:tblTABLAS : Base de Datos
5: Pasar Datos12: Pasar Datos
1: Seleccionar una Fila2: Pres. Botón Eliminar (Modo Grid)
9: Pres. Botón Aceptar3: btnEliminar_Click(object sender, Ev entArgs e)10: btnAceptar_Click(object sender, Ev entArgs e)
8: Mostrar en Modo Formulario18: BindGrid
4: Pasar Datos11: Pasar Datos
7: Actualizar Datos17: Actualizar Datos
6: Actualizar Datos
13: Pasar Datos
14: DeleteBy Primary Key (id_row)
15: Actualizar Datos
16: Actualizar Datos
151
(Modificar)
: CTR(SIIWCL) (Componente) : Administrador : WebUI(tblTABLAS.ASPX) : CTR(tblTABLAS.ASPX.CS)
: CTR(tblTABLAS.CS)
: CTR(SIICOL) (Componente)
:tblTABLAS : Base de Datos
11: Validar Datos Ingresados
1: Seleccionar una Fila2: Pres. Botón Modificar (Modo Grid)
7: Ingresa Datos a Modificar8: Pres. Botón Guardar
3: btnModificar_Click(object sender, EventArgs e)9: btnGuardar_Click(object sender, EventArgs e)
6: Mostrar en Modo Formulario17: BindGrid
4: Pasar Datos10: Pasar Datos
5: Actualizar Datos16: Actualizar Datos
12: Pasar Datos
13: UpdateByPrimaryKey(id_row)
14: Actualizar Datos
15: Actualizar Datos
(Buscar)
: Administrador : WebUI(tblTABLAS.ASPX) : CTR(tblTABLAS.ASPX.CS) : CTR(SIIWCL) (Componente)
: CTR(tblTABLAS.CS)
: CTR(SIICOL) (Componente)
:tblTABLAS : Base de Datos
1: Pres. Botón Buscar (Modo Grid)8: Ingresa Datos a Buscar
9: Pres. Botón Aceptar2: btnBuscar_Click(object sender, Ev entArgs e)
10: btnAceptar_Click(object sender, Ev entArgs e)
7: Mostrar en Modo Formulario18: BindGrid
3: Pasar Datos11: Pasar Datos
6: Actualizar Datos17: Actualizar Datos
4: Pasar Datos12: Pasar Datos
5: Actualizar Datos
13: Pasar Datos
14: Select(row)
15: Actualiza Datos
16: Actualizar Datos
152
Caso de Uso Nro.16: Nuevo Documento.
(Subir Archivo)
: Usuario que Registra
: WebUI(frmT ipDoc.ASPX) : WebUI(tblA_DOCUMENTOS.ASPX)
: CTR(tblDOCUMENTOS .CS) : CTR(SIICOL) (Componente)
:tblDOCUMENTOS : Base de Datos
: CTR(Mail)
2: Page_Load(ASP.smcsgi_frmtipdoc_aspx,EventArgs.Empty)
5: Page_Load(ASP.smcsgi_tbla_documentos_aspx,EventArgs.Empty)6: LlenarComboTipoDcto()
7: DesplegarPantall aIngreso()9: NombreArch = SeleccionarArchivo()
10: datos=CapturaDatosNuevoDocumentoArchivo()11: GuardarDatos(datos)
13: SubirArchivo(NombreArch)
1: ElegirTipoDocumento3: SelecOpcionNuevoTipoDcto
8: DigitarDatosNuevoDocumentoArchivo
4: Response.Redirect(tblA_DOCUMENTOS.ASPX)
14: objDOCUMENTOS = CreaDOCUMENTOS(id,datos,NombreArch)15: ValidarDatos(objDOCUMENTOS)
12: id=GetRowMaximo()
16: PasarDatos(objDOCUMENTOS)
18: EnviarMail(objDOCUMENTOS)
17: ExecuteDMLCommand(objDOCUMENTOS)
153
Caso de Uso Nro.17: Modificar Documento Publicado.
(Actualizar)
16: Actualizar Datos
: CTR(SIIWCL) (Componente)
: RIG : WebUI(tblDOCUMENTOS.ASPX)
: CTR(tblDOCUMENTOS.ASPX.CS)
: CTR(tblDOCUMENTOS .CS) : CTR(SIICOL) (Componente)
:tblDOCUMENTOS : Base de Datos
: CTR(Mail)
11: Validar Datos Ingresados
1: Seleccionar una Fi la2: Pres. Botón Modificar (Modo Grid)
7: Ingresa Datos a Modificar8: Pres. Botón Guardar
3: btnModificar_Click(object sender, EventArgs e)9: btnGuardar_Click(object sender, EventArgs e)
6: Mostrar en Modo Formulario18: BindGrid
4: Pasar Datos10: Pasar Datos
5: Actualizar Datos17: Actualizar Datos
14: Enviar EMail
12: Pasar Datos
13: UpdateByPrimaryKey(id_row)15: Actualizar Datos
154
Caso de Uso Nro.18: Gestión de Documento para ser Publicado.
(Correo Electrónico)
: RIG
: CorreoElectronico
: WebUI(tblDOCUMENTOS.ASPX)
uifDocumentos : CTR(SIIWCL) (Componente)
: CTR(SIICOL) (Componente)
objDocumentos : CTR(tblDOCUMENTOS .CS)
:tblDOCUMENTOS : Base de Datos
:tblMAT_RESPON : Base de Datos
: CTR(Mail)
1: RevisaCorreoElectronico
2: autenticar(idSesion,Pass,IdDoc)
3: Page_Load(ASP.smcsgi_tbldocumentos_aspx,EventArgs.Empty)
4: objDocumentos = ObtenerEstructura()
5: ui fDocumentos.BRC = objDocumentos
6: DesplegarPantallaIngreso(uifDocumentos)7: DigitarDatosAdicionalesDcto 8: ui fDocumentos=CapturaGestionDocumentos()
9: version=ObtenerVersionDcto()
10: GuardarDatos(ui fDocumentos)
11: objDocumentos = ValidarDatos(uifDocumentos)
12: PasarDatos(objDocumentos)
13: ExecuteDMLCommand(objDocumentos)
14: Usuarios = ObtenerResponsUsuarios()
15: EnviarMail (Usuarios)
155
(Menú de Opciones)
: RIG
: WebUI(tblDOCUMENTOS.ASPX)
uifDocumentos : CTR(SIIWCL) (Componente)
objDocumentos : CTR(tblDOCUMENTOS .CS)
: CTR(SIICOL) (Componente)
:tblDOCUMENTOS : Base de Datos
:tblMAT_RESPON : Base de Datos
: CTR(Mail )
1: ElegirGestionDocumento
2: Page_Load(ASP.smcsgi_tbldocumentos_aspx,EventArgs.Empty)
3: objDocumentos = ObtenerEstructura() 4: ui fDocumentos.BRC = objDocumentos
5: DesplegarPantallaIngreso(uifDocumentos)
6: DigitarDatosAdicionalesDcto
7: ui fDocumentos=CapturaGestionDocumentos()
8: version=ObtenerVersionDcto()
9: GuardarDatos(uifDocumentos)
10: objDocumentos = ValidarDatos(uifDocumentos)
11: PasarDatos(objDocumentos)
12: ExecuteDMLCommand(objDocumentos)
13: Usuarios = ObtenerResponsUsuarios()
14: EnviarMail (Usuarios)
156
Caso de Uso Nro.19: Administrar Exposición de Documento a Publicar.
: RIG
: WebUI(tblEXPO_DCTOS.ASPX)
uifEXPO_DCTOS : CTR(SIIWCL) (Componente)
objEXPO_DCTOS : CTR(tblEXPO_DCTOS.CS)
: CTR(SIICOL) (Componente)
:tblEXPO_DCTOS : Base de Datos
1: ElegirExposicionDctos
2: Page_Load(ASP.smcsgi_tblexpo_dctos_aspx,EventArgs.Empty)
3: objEXPO_DCTOS = ObtenerEstructura()
4: uifEXPO_DCTOS.BRC = objEXPO_DCTOS
5: DesplegarPantallaIngreso(uifEXPO_DCTOS)
6: DigitarDatosExpoDctos
7: uifEXPO_DCTOS=CapturaExposicionDocumentos()
8: id_corr = ObtenerCorrelativo()
9: GuardarDatos(uifEXPO_DCTOS)
10: objEXPO_DCTOS = Val idarDatos(ui fEXPO_DCTOS)
11: PasarDatos(objEXPO_DCTOS)
12: ExecuteDMLCommand(objEXPO_DCTOS)
Caso de Uso Nro.20: Administrar Revisión de Documento a Publicar.
: RIG
: WebUI(tblREVISIONES.ASPX)
uifREVISIONES : CTR(SIIWCL) (Componente)
objREVISIONES : CTR(tblREVISIONES.CS)
: CTR(SIICOL) (Componente)
:tblREVISIONES : Base de Datos
1: ElegirRevisionDctosPublicar
2: Page_Load(ASP.smcsgi_tblrevisiones_aspx,EventArgs.Empty)
3: objREVISIONES = ObtenerEstructura()
4: ui fREVISIONES.BRC = objREVISIONES
5: DesplegarPantallaIngreso(uifREVISIONES)
6: DigitarDatosRevisiones
7: ui fREVISIONES=CapturaRevisionDocumentos()
8: id_corr = ObtenerCorrelativo()
9: GuardarDatos(uifREVISIONES)
10: objREVISIONES = Val idarDatos(ui fREVISIONES)
11: PasarDatos(objREVISIONES)
12: ExecuteDMLCommand(objREVISIONES)
157
Caso de Uso Nro.22: Administrar Acápites o Normas de Estándares de (ISO) de un documento a publicar.
: RIG : WebUI(tblNORMAS_DCTOS.ASPX) uifNORMAS_DCTOS : CTR(SIIWCL) (Componente)
objNORMAS_DCTOS : CTR(tblNORMAS_DCTOS.CS)
: CTR(SIICOL) (Componente)
:tblNORMAS_DCTOS : Base de Datos
1: Elegi rNormasDctos
2: Page_Load(ASP.smcsgi_tblnormas_dctos_aspx,EventArgs.Empty)
3: objNORMAS_DCTOS = ObtenerEstructura()
4: uifNORMAS_DCTOS.BRC = objNORMAS_DCTOS
5: DesplegarPantallaIngreso(uifNORMAS_DCTOS)
6: DigitarDatosNormasDctos
7: uifNORMAS_DCTOS=CapturaNormasDocumentos()
8: id_corr = ObtenerCorrelativo()
9: GuardarDatos(uifNORMAS_DCTOS)
10: objNORMAS_DCTOS = Val idarDatos(uifNORMAS_DCTOS)
11: PasarDatos(objNORMAS_DCTOS)
12: ExecuteDMLCommand(objNORMAS_DCTOS)
Caso de Uso Nro.23: Administrar Acciones de un Documento a Publicar.
: RIG
: WebUI(tblACCIONES_USRS.ASPX) uifACCIONES_USRS : CTR(SIIWCL) (Componente)
objACCIONES_USRS : CTR(tblACCIONES_USRS.CS)
: CTR(SIICOL) (Componente):tblACCIONES_USRS : Base de
Datos
:tblDOCUMENTOS : Base de Datos
: Base de Datos
2: Page_Load(ASP.smcsgi_tblacciones_usrs_aspx,EventArgs.Empty)5: DesplegarPantallaIngreso(ui fACCIONES_USRS)
8: ui fACCIONES_USRS = ListaUsuarios10: uifACCIONES_USRS=CapturaAccionesUsrDocumentos()
12: GuardarDatos(uifACCIONES_USRS)
1: ElegirAccionesUsuariosDctos9: DigitarDatosAccUsrsDctos
3: objACCIONES_USRS = ObtenerEstructura()13: objACCIONES_USRS = ValidarDatos(uifACCIONES_USRS)
4: uifACCIONES_USRS.BRC = objACCIONES_USRS
11: id_corr = ObtenerCorrelativo()
6: TipoDoc_id = ObtenerTipoDocumento(Doc_Id)
7: ListaUsuarios = ObtenerListaUsuarios(T ipoDoc_id, Activo)
14: PasarDatos(objACCIONES_USRS)15: ExecuteDMLCommand(objACCIONES_USRS)
158
Caso de Uso Nro.24: Registrar Revisión de Documento a Publicar.
(Modificar)
: CTR(tblACCIONES_USRS.ASPX.CS)
: Usuario que Revisa
Pantalla de Registro
: WebUI(tblACCIONES_USRS.ASPX)
: CTR(SIIWCL) (Componente) : CTR(tblACCIONES_USRS.CS)
: CTR(SIICOL) (Componente) : Base de Datos
4: Pasar Datos
11: Actualizar Datos
1: Pres.Boton Aceptar
14: Mostrar Datos
2: btnAceptar_Click(object sender, EventArg...
13: Mostrar Datos
3: Pasar Datos
12: Actualizar Datos
5: Pasar Datos
10: Actualizar Datos
6: Pasar Datos
9: Actualizar Datos
7: Modificar
8: Actualizar Datos
Caso de Uso Nro.25: Registrar Aprobación de Documento a Publicar.
: RIG
: WebUI(tblACCIONES_USRS.ASPX) uifACCIONES_USRS : CTR(SIIWCL) (Componente)
objACCIONES_USRS : CTR(tblACCIONES_USRS.CS)
: CTR(SIICOL) (Componente):tblACCIONES_USRS : Base de
Datos
:tblDOCUMENTOS : Base de Datos
: Base de Datos
2: Page_Load(ASP.smcsgi_tblacciones_usrs_aspx,EventArgs.Empty)5: DesplegarPantallaIngreso(ui fACCIONES_USRS)
8: ui fACCIONES_USRS = ListaUsuarios10: uifACCIONES_USRS=CapturaAccionesUsrDocumentos()
12: GuardarDatos(uifACCIONES_USRS)
1: ElegirAccionesUsuariosDctos9: DigitarDatosAccUsrsDctos
3: objACCIONES_USRS = ObtenerEstructura()13: objACCIONES_USRS = ValidarDatos(uifACCIONES_USRS)
4: uifACCIONES_USRS.BRC = objACCIONES_USRS
11: id_corr = ObtenerCorrelativo()
6: TipoDoc_id = ObtenerTipoDocumento(Doc_Id)
7: ListaUsuarios = ObtenerListaUsuarios(T ipoDoc_id, Activo)
14: PasarDatos(objACCIONES_USRS)15: ExecuteDMLCommand(objACCIONES_USRS)
159
4.3 Identificación de clases de análisis 10
10 A efectos de practicidad se vio conveniente utilizar el diagrama de clases que tiene incorporado Visual Studio 2005.
160
5 DISEÑO 5.1 Identificación de nodos y configuración
Para el correcto funcionamiento de la aplicación web es necesario que se
preparen los siguientes nodos presentados en el diagrama de despliegue:
Servidor Windows 2003 SERVER
preemptive
iis.msc
Clientes<<100-T Ethernet>> *
- FrameWork 2.0- Internet Information Server- Extensiones de FrontPage 2000- SQL Server
161
5.2 Realización de casos de uso - diseño
Caso de Uso Nro.1: Administrar Personas.
(Insertar)
: RIG : WebUI(tblPERSONAS.ASPX) : CTR(tblPERSONAS.A...
: CTR(SIIWCL) (Componente)
: CTR(tblPERSONAS.CS) : CTR(SIICOL) (Componente)
:tblPERSONAS
1: Pres. Botón Insertar (Modo G...
8: Ingresa Datos
9: Pres. Botón Guardar
2: btnInsertar_Click(object sender, EventArg...
7: Mostrar en Modo Formulario
10: btnGuardar_Click(object sender, EventArg...
3: Pasar Datos
6: Actualizar Datos
11: Pasar Datos12: Validar Datos Ingresados
4: Pasar Datos
5: Actualizar Datos
13: Pasar Datos 14: Insert (row)
15: Actualizar Datos16: Actualizar Datos17: Actualizar Datos18: BindGrid
(Eliminar)
: CTR(SIIWCL) (Componente)
: RIG : WebUI(tblPERSONAS.ASPX) : CTR(tblPERSONAS.A...
: CTR(tblPERSONAS.CS) : CTR(SIICOL) (Componente)
:tblPERSONAS
2: Pres. Botón Eliminar (Modo G...
9: Pres. Botón Aceptar
1: Seleccionar una Fila
3: btnEliminar_Click(object sender, EventArg...4: Pasar Datos
7: Actualizar Datos
8: Mostrar en Modo Formulario
10: btnAceptar_Click(object sender, EventArg...11: Pasar Datos
12: Pasar Datos
5: Pasar Datos
6: Actualizar Datos
13: Pasar Datos14: DeleteByPrimaryKey(id_row)
15: Actualizar Datos16: Actualizar Datos
17: Actualizar Datos18: BindGrid
162
(Modificar)
: CTR(SIIWCL) (Componente)
: RIG : WebUI(tblPERSONAS.ASPX) : CTR(tblPERSONAS.A...
: CTR(tblPERSONAS.CS) : CTR(SIICOL) (Componente)
:tblPERSONAS
2: Pres. Botón Modif icar (Modo Grid)
7: Ingresa Datos a Modif icar
8: Pres. Botón Guardar
1: Seleccionar una Fila
3: btnModif icar_Click(object sender, Ev entArgs e)4: Pasar Datos
5: Actualizar Datos
6: Mostrar en Modo Formulario
9: btnGuardar_Click(object sender, Ev entArgs e)10: Pasar Datos
11: Validar Datos Ingresados12: Pasar Datos
13: UpdateBy Primary Key (id_row)
14: Actualizar Datos
15: Actualizar Datos16: Actualizar Datos
17: BindGrid
(Buscar)
: RIG : WebUI(tblPERSONAS.ASPX) : CTR(tblPERSONAS.A...
: CTR(SIIWCL) (Componente)
: CTR(tblPERSONAS.CS) : CTR(SIICOL) (Componente)
:tblPERSONAS
1: Pres. Botón Buscar (Modo Grid)
8: Ingresa Datos a Buscar
9: Pres. Botón Aceptar
2: btnBuscar_Click(object sender, Ev entArgs e)
7: Mostrar en Modo Formulario
10: btnAceptar_Click(object sender, Ev entArgs e)
3: Pasar Datos
6: Actualizar Datos
11: Pasar Datos12: Pasar Datos
4: Pasar Datos
5: Actualizar Datos
13: Pasar Datos14: Select(row)
15: Actualiza Datos16: Actualizar Datos17: Actualizar Datos18: BindGrid
163
Caso de Uso Nro.2: Administrar Tipos de Usuario.
(Insertar)
: RIG : WebUI(tblTIPOS_USRS.ASPX) : CTR(tblTIPOS_USR...
: CTR(SIIWCL) (Componente)
: CTR(tblTIPOS_USRS.CS)
: CTR(SIICOL) (Componente)
:tblTIPOS_USRS
1: Pres. Botón Insertar (Modo Grid)
8: Ingresa Datos
9: Pres. Botón Guardar
2: btnInsertar_Click(object sender, Ev entArgs e)
7: Mostrar en Modo Formulario
10: btnGuardar_Click(object sender, Ev entArgs e)
3: Pasar Datos
6: Actualizar Datos
11: Pasar Datos12: Validar Datos Ingresados
4: Pasar Datos
5: Actualizar Datos
13: Pasar Datos 14: Insert (row)
15: Actualizar Datos16: Actualizar Datos17: Actualizar Datos18: BindGrid
(Eliminar)
: CTR(SIIWCL) (Componente)
: RIG : WebUI(tblTIPOS_USRS.ASPX) : CTR(tblTIPOS_USRS....
: CTR(tblTIPOS_USRS.CS) : CTR(SIICOL) (Componente)
:tblTIPOS_USRS
2: Pres. Botón Eliminar (Modo G...
9: Pres. Botón Aceptar
1: Seleccionar una Fila
3: btnEliminar_Click(object sender, EventArg...4: Pasar Datos
7: Actualizar Datos
8: Mostrar en Modo Formulario
10: btnAceptar_Click(object sender, EventArg...11: Pasar Datos
12: Pasar Datos
5: Pasar Datos
6: Actualizar Datos
13: Pasar Datos14: DeleteByPrimaryKey(id_row)
15: Actualizar Datos16: Actualizar Datos
17: Actualizar Datos18: BindGrid
164
(Modificar)
: CTR(SIIWCL) (Componente)
: RIG : WebUI(tblTIPOS_USRS.ASPX) : CTR(tblTIPOS_USRS....
: CTR(tblTIPOS_USRS.CS) : CTR(SIICOL) (Componente)
:tblTIPOS_USRS
2: Pres. Botón Modificar (Modo G...
7: Ingresa Datos a Modificar
8: Pres. Botón Guardar
1: Seleccionar una Fila
3: btnModificar_Click(object sender, EventArg...4: Pasar Datos
5: Actualizar Datos
6: Mostrar en Modo Formulario
9: btnGuardar_Click(object sender, EventArg...10: Pasar Datos
11: Validar Datos Ingresados12: Pasar Datos
13: UpdateByPrimaryKey(id_row)
14: Actualizar Datos
15: Actualizar Datos16: Actualizar Datos
17: BindGrid
(Buscar)
: RIG : WebUI(tblTIPOS_USRS.ASPX) : CTR(tblTIPOS_USRS....
: CTR(SIIWCL) (Componente)
: CTR(tblTIPOS_USRS.CS) : CTR(SIICOL) (Componente)
:tblTIPOS_USRS
1: Pres. Botón Buscar (Modo Grid)
8: Ingresa Datos a Buscar
9: Pres. Botón Aceptar
2: btnBuscar_Click(object sender, EventArgs e)
7: Mostrar en Modo Formulario
10: btnAceptar_Click(object sender, Ev entArgs e)
3: Pasar Datos
6: Actualizar Datos
11: Pasar Datos12: Pasar Datos
4: Pasar Datos
5: Actualizar Datos
13: Pasar Datos14: Select(row)
15: Actualiza Datos16: Actualizar Datos17: Actualizar Datos18: BindGrid
165
Caso de Uso Nro.3: Administrar Clases.
(Insertar)
: RIG : WebUI(tblCLASES.ASPX) : CTR(tblCLASES.ASPX.CS)
: CTR(SIIWCL) (Componente)
: CTR(tblCLASES.CS) : CTR(SIICOL) (Componente)
:tblCLASES
1: Pres. Botón Insertar (Modo Grid)
8: Ingresa Datos
9: Pres. Botón Guardar
2: btnInsertar_Click(object sender, Ev entArgs e)
7: Mostrar en Modo Formulario
10: btnGuardar_Click(object sender, Ev entArgs e)
3: Pasar Datos
6: Actualizar Datos
11: Pasar Datos12: Validar Datos Ingresados
4: Pasar Datos
5: Actualizar Datos
13: Pasar Datos 14: Insert (row)
15: Actualizar Datos16: Actualizar Datos17: Actualizar Datos18: BindGrid
(Eliminar)
: CTR(SIIWCL) (Componente)
: RIG : WebUI(tblCLASES.ASPX) : CTR(tblCLASES.ASPX.CS)
: CTR(tblCLASES.CS) : CTR(SIICOL) (Componente)
:tblCLASES
2: Pres. Botón Eliminar (Modo G...
9: Pres. Botón Aceptar
1: Seleccionar una Fila
3: btnEliminar_Click(object sender, EventArg...4: Pasar Datos
7: Actualizar Datos
8: Mostrar en Modo Formulario
10: btnAceptar_Click(object sender, EventArg...11: Pasar Datos
12: Pasar Datos
5: Pasar Datos
6: Actualizar Datos
13: Pasar Datos14: DeleteByPrimaryKey(id_row)
15: Actualizar Datos16: Actualizar Datos
17: Actualizar Datos18: BindGrid
166
(Modificar)
: CTR(SIIWCL) (Componente)
: RIG : WebUI(tblCLASES.ASPX) : CTR(tblCLASES.ASPX.CS)
: CTR(tblCLASES.CS) : CTR(SIICOL) (Componente)
:tblCLASES
2: Pres. Botón Modif icar (Modo Grid)
7: Ingresa Datos a Modif icar
8: Pres. Botón Guardar
1: Seleccionar una Fila
3: btnModif icar_Click(object sender, Ev entArgs e)4: Pasar Datos
5: Actualizar Datos
6: Mostrar en Modo Formulario
9: btnGuardar_Click(object sender, Ev entArgs e)10: Pasar Datos
11: Validar Datos Ingresados12: Pasar Datos
13: UpdateBy Primary Key (id_row)
14: Actualizar Datos
15: Actualizar Datos16: Actualizar Datos
17: BindGrid
(Buscar)
: RIG : WebUI(tblCLASES.ASPX) : CTR(tblCLASES.ASPX.CS)
: CTR(SIIWCL) (Componente)
: CTR(tblCLASES.CS) : CTR(SIICOL) (Componente)
:tblCLASES
1: Pres. Botón Buscar (Modo G...
8: Ingresa Datos a Bu...
9: Pres. Botón Aceptar
2: btnBuscar_Click(object sender, EventArg...
7: Mostrar en Modo Formulario
10: btnAceptar_Click(object sender, EventArg...
3: Pasar Datos
6: Actualizar Datos
11: Pasar Datos12: Pasar Datos
4: Pasar Datos
5: Actualizar Datos
13: Pasar Datos14: Select(row)
15: Actualiza Datos16: Actualizar Datos17: Actualizar Datos18: BindGrid
167
Caso de Uso Nro.4: Administrar Usuarios.
(Insertar)
: Administrador : WebUI(tblUSUARIOS.ASPX) : CTR(tblUSUARIOS.AS...
: CTR(SIIWCL) (Componente)
: CTR(tblUSUARIOS.CS) : CTR(SIICOL) (Componente)
:tblUSUARIOS
1: Pres. Botón Insertar (Modo G...
8: Ingresa Datos
9: Pres. Botón Guardar
2: btnInsertar_Click(object sender, EventArg...
7: Mostrar en Modo Formulario
10: btnGuardar_Click(object sender, EventArg...
3: Pasar Datos
6: Actualizar Datos
11: Pasar Datos12: Validar Datos Ingresados
4: Pasar Datos
5: Actualizar Datos
13: Pasar Datos 14: Insert (row)
15: Actualizar Datos16: Actualizar Datos17: Actualizar Datos18: BindGrid
(Eliminar)
: CTR(SIIWCL) (Componente)
: Administrador : WebUI(tblUSUARIOS.ASPX) : CTR(tblUSUARIOS.AS...
: CTR(tblUSUARIOS.CS) : CTR(SIICOL) (Componente)
:tblUSUARIOS
2: Pres. Botón Eliminar (Modo G...
9: Pres. Botón Aceptar
1: Seleccionar una Fila
3: btnEliminar_Click(object sender, EventArg...4: Pasar Datos
7: Actualizar Datos
8: Mostrar en Modo Formulario
10: btnAceptar_Click(object sender, EventArg...11: Pasar Datos
12: Pasar Datos
5: Pasar Datos
6: Actualizar Datos
13: Pasar Datos14: DeleteByPrimaryKey(id_row)
15: Actualizar Datos16: Actualizar Datos
17: Actualizar Datos18: BindGrid
168
(Modificar)
: CTR(SIIWCL) (Componente)
: Administrador : WebUI(tblUSUARIOS.ASPX) : CTR(tblUSUARIOS.AS...
: CTR(tblUSUARIOS.CS) : CTR(SIICOL) (Componente)
:tblUSUARIOS
2: Pres. Botón Modificar (Modo G...
7: Ingresa Datos a Modificar
8: Pres. Botón Guardar
1: Seleccionar una Fila
3: btnModificar_Click(object sender, EventArg...4: Pasar Datos
5: Actualizar Datos
6: Mostrar en Modo Formulario
9: btnGuardar_Click(object sender, EventArg...10: Pasar Datos
11: Validar Datos Ingresados12: Pasar Datos
13: UpdateByPrimaryKey(id_row)
14: Actualizar Datos
15: Actualizar Datos16: Actualizar Datos
17: BindGrid
(Buscar)
: Administrador : WebUI(tblUSUARIOS.ASPX) : CTR(tblUSUARIOS.AS...
: CTR(SIIWCL) (Componente)
: CTR(tblUSUARIOS.CS) : CTR(SIICOL) (Componente)
:tblUSUARIOS
1: Pres. Botón Buscar (Modo G...
8: Ingresa Datos a Bu...
9: Pres. Botón Aceptar
2: btnBuscar_Click(object sender, EventArg...
7: Mostrar en Modo Formulario
10: btnAceptar_Click(object sender, EventArg...
3: Pasar Datos
6: Actualizar Datos
11: Pasar Datos12: Pasar Datos
4: Pasar Datos
5: Actualizar Datos
13: Pasar Datos14: Select(row)
15: Actualiza Datos16: Actualizar Datos17: Actualizar Datos18: BindGrid
169
Caso de Uso Nro.5: Administrar Tipos de Departamentos.
(Insertar)
: Administrador : WebUI(tblSECCIONES_DPTO.ASPX) : CTR(tblSECCIONES...
: CTR(SIIWCL) (Componente)
: CTR(tblSECCIONES...
: CTR(SIICOL) (Componente)
:tblSECCIONES_DPTO
1: Pres. Botón Insertar (Modo Grid)
8: Ingresa Datos
9: Pres. Botón Guardar
2: btnInsertar_Click(object sender, EventArgs e)
7: Mostrar en Modo Formulario
10: btnGuardar_Click(object sender, EventArgs e)
3: Pasar Datos
6: Actualizar Datos
11: Pasar Datos12: Validar Datos Ingresados
4: Pasar Datos
5: Actualizar Datos
13: Pasar Datos 14: Insert (row)
15: Actualizar Datos16: Actualizar Datos17: Actualizar Datos18: BindGrid
(Eliminar)
: CTR(SIIWCL) (Componente)
: Administrador : WebUI(tblSECCIONES_DPTO.ASPX) : CTR(tblSECCIONES...
: CTR(tblSECCIONES...
: CTR(SIICOL) (Componente)
:tblSECCIONES_DPTO
2: Pres. Botón Eliminar (Modo Grid)
9: Pres. Botón Aceptar
1: Seleccionar una Fila
3: btnEliminar_Click(object sender, EventArgs e)4: Pasar Datos
7: Actualizar Datos
8: Mostrar en Modo Formulario
10: btnAceptar_Click(object sender, EventArgs e)11: Pasar Datos
12: Pasar Datos
5: Pasar Datos
6: Actualizar Datos
13: Pasar Datos14: DeleteByPrimaryKey(id_row)
15: Actualizar Datos16: Actualizar Datos
17: Actualizar Datos18: BindGrid
170
(Modificar)
: CTR(SIIWCL) (Componente)
: Administrador : WebUI(tblSECCIONES_DPTO.ASPX) : CTR(tblSECCIONES...
: CTR(tblSECCIONES...
: CTR(SIICOL) (Componente)
:tblSECCIONES_DPTO
2: Pres. Botón Modif icar (Modo Grid)
7: Ingresa Datos a Modif icar
8: Pres. Botón Guardar
1: Seleccionar una Fila
3: btnModif icar_Click(object sender, Ev entArgs e)4: Pasar Datos
5: Actualizar Datos
6: Mostrar en Modo Formulario
9: btnGuardar_Click(object sender, Ev entArgs e)10: Pasar Datos
11: Validar Datos Ingresados12: Pasar Datos
13: UpdateBy Primary Key (id_row)
14: Actualizar Datos
15: Actualizar Datos16: Actualizar Datos
17: BindGrid
(Buscar)
: Administrador : WebUI(tblSECCIONES_DPTO.ASPX) : CTR(tblSECCIONES...
: CTR(SIIWCL) (Componente)
: CTR(tblSECCIONES...
: CTR(SIICOL) (Componente)
:tblSECCIONES_DPTO
1: Pres. Botón Buscar (Modo Grid)
8: Ingresa Datos a Buscar
9: Pres. Botón Aceptar
2: btnBuscar_Click(object sender, EventArgs e)
7: Mostrar en Modo Formulario
10: btnAceptar_Click(object sender, EventArgs e)
3: Pasar Datos
6: Actualizar Datos
11: Pasar Datos12: Pasar Datos
4: Pasar Datos
5: Actualizar Datos
13: Pasar Datos14: Select(row)
15: Actualiza Datos16: Actualizar Datos17: Actualizar Datos18: BindGrid
171
Caso de Uso Nro.6: Administrar Áreas del SGI.
(Insertar)
: RIG : WebUI(tblAREAS_UND.ASPX) : CTR(tblAREAS_UND.A...
: CTR(SIIWCL) (Componente)
: CTR(tblAREAS_UND.CS) : CTR(SIICOL) (Componente)
:tblAREAS_UND
1: Pres. Botón Insertar (Modo Grid)
8: Ingresa Datos
9: Pres. Botón Guardar
2: btnInsertar_Click(object sender, EventArgs e)3: Pasar Datos
6: Actualizar Datos
7: Mostrar en Modo Formulario
10: btnGuardar_Click(object sender, EventArgs e)11: Pasar Datos
12: Validar Datos Ingresados13: Pasar Datos 14: Insert (row)
4: Pasar Datos
5: Actualizar Datos
15: Actualizar Datos16: Actualizar Datos17: Actualizar Datos18: BindGrid
(Eliminar)
: CTR(SIIWCL) (Componente)
: RIG : WebUI(tblAREAS_UND.ASPX) : CTR(tblAREAS_UND.A...
: CTR(tblAREAS_UND.CS) : CTR(SIICOL) (Componente)
:tblAREAS_UND
2: Pres. Botón Eliminar (Modo Grid)
9: Pres. Botón Aceptar
3: btnEliminar_Click(object sender, EventArgs e)4: Pasar Datos
7: Actualizar Datos
8: Mostrar en Modo Formulario
10: btnAceptar_Click(object sender, EventArgs e)11: Pasar Datos
12: Pasar Datos13: Pasar Datos
14: DeleteByPrimaryKey(id_row)
1: Seleccionar una Fila
5: Pasar Datos
6: Actualizar Datos
15: Actualizar Datos16: Actualizar Datos
17: Actualizar Datos18: BindGrid
172
(Modificar)
: CTR(SIIWCL) (Componente)
: RIG : WebUI(tblAREAS_UND.ASPX) : CTR(tblAREAS_UND.A...
: CTR(tblAREAS_UND.CS) : CTR(SIICOL) (Componente)
:tblAREAS_UND
2: Pres. Botón Modificar (Modo Grid)
7: Ingresa Datos a Modificar
8: Pres. Botón Guardar
3: btnModificar_Click(object sender, EventArgs e)4: Pasar Datos
5: Actualizar Datos
6: Mostrar en Modo Formulario
9: btnGuardar_Click(object sender, EventArgs e)10: Pasar Datos
11: Validar Datos Ingresados12: Pasar Datos
13: UpdateByPrimaryKey(id_row)
1: Seleccionar una Fila
14: Actualizar Datos
15: Actualizar Datos16: Actualizar Datos
17: BindGrid
(Buscar)
: RIG : WebUI(tblAREAS_UND.ASPX) : CTR(tblAREAS_UND.A...
: CTR(SIIWCL) (Componente)
: CTR(tblAREAS_UND.CS) : CTR(SIICOL) (Componente)
:tblAREAS_UND
1: Pres. Botón Buscar (Modo Grid)
8: Ingresa Datos a Buscar
9: Pres. Botón Aceptar
2: btnBuscar_Click(object sender, EventArgs e)
7: Mostrar en Modo Formulario
10: btnAceptar_Click(object sender, EventArgs e)
3: Pasar Datos
6: Actualizar Datos
11: Pasar Datos12: Pasar Datos
13: Pasar Datos14: Select(row)
15: Actualiza Datos
4: Pasar Datos
5: Actualizar Datos
16: Actualizar Datos17: Actualizar Datos18: BindGrid
173
Caso de Uso Nro.7: Administrar Tipos de Documentos.
(Insertar)
: RIG : WebUI(tblTIPODCTOS.ASPX) : CTR(tblTIPODCTOS.A...
: CTR(SIIWCL) (Componente)
: CTR(tblTIPODCTOS.CS) : CTR(SIICOL) (Componente)
:tblTIPODCTOS
1: Pres. Botón Insertar (Modo G...
8: Ingresa Datos
9: Pres. Botón Guardar
2: btnInsertar_Click(object sender, EventArg...
7: Mostrar en Modo Formulario
10: btnGuardar_Click(object sender, EventArg...
3: Pasar Datos
6: Actualizar Datos
11: Pasar Datos12: Validar Datos Ingresados
4: Pasar Datos
5: Actualizar Datos
13: Pasar Datos 14: Insert (row)
15: Actualizar Datos16: Actualizar Datos17: Actualizar Datos18: BindGrid
(Eliminar)
: CTR(SIIWCL) (Componente)
: RIG : WebUI(tblTIPODCTOS.ASPX) : CTR(tblTIPODCTOS.A...
: CTR(tblTIPODCTOS.CS) : CTR(SIICOL) (Componente)
:tblTIPODCTOS
2: Pres. Botón Eliminar (Modo Grid)
9: Pres. Botón Aceptar
1: Seleccionar una Fila
3: btnEliminar_Click(object sender, Ev entArgs e)4: Pasar Datos
7: Actualizar Datos
8: Mostrar en Modo Formulario
10: btnAceptar_Click(object sender, Ev entArgs e)11: Pasar Datos
12: Pasar Datos
5: Pasar Datos
6: Actualizar Datos
13: Pasar Datos14: DeleteBy Primary Key (id_row)
15: Actualizar Datos16: Actualizar Datos
17: Actualizar Datos18: BindGrid
174
(Modificar)
: CTR(SIIWCL) (Componente)
: RIG : WebUI(tblTIPODCTOS.ASPX) : CTR(tblTIPODCTOS.A...
: CTR(tblTIPODCTOS.CS) : CTR(SIICOL) (Componente)
:tblTIPODCTOS
2: Pres. Botón Modificar (Modo Grid)
7: Ingresa Datos a Modificar
8: Pres. Botón Guardar
1: Seleccionar una Fila
3: btnModificar_Click(object sender, EventArgs e)4: Pasar Datos
5: Actualizar Datos
6: Mostrar en Modo Formulario
9: btnGuardar_Click(object sender, EventArgs e)10: Pasar Datos
11: Validar Datos Ingresados12: Pasar Datos
13: UpdateByPrimaryKey(id_row)
14: Actualizar Datos
15: Actualizar Datos16: Actualizar Datos
17: BindGrid
(Buscar)
: RIG : WebUI(tblTIPODCTOS.ASPX) : CTR(tblTIPODCTOS.A...
: CTR(SIIWCL) (Componente)
: CTR(tblTIPODCTOS.CS) : CTR(SIICOL) (Componente)
:tblTIPODCTOS
1: Pres. Botón Buscar (Modo Grid)
8: Ingresa Datos a Buscar
9: Pres. Botón Aceptar
2: btnBuscar_Click(object sender, Ev entArgs e)
7: Mostrar en Modo Formulario
10: btnAceptar_Click(object sender, Ev entArgs e)
3: Pasar Datos
6: Actualizar Datos
11: Pasar Datos12: Pasar Datos
4: Pasar Datos
5: Actualizar Datos
13: Pasar Datos14: Select(row)
15: Actualiza Datos16: Actualizar Datos17: Actualizar Datos18: BindGrid
175
Caso de Uso Nro.8: Administrar Estatus del Documento.
(Insertar)
: RIG : WebUI(tblESTATUS.ASPX) : CTR(tblESTATUS.ASP...
: CTR(SIIWCL) (Componente)
: CTR(tblESTATUS.CS) : CTR(SIICOL) (Componente)
:tblESTATUS
1: Pres. Botón Insertar (Modo Grid)
8: Ingresa Datos
9: Pres. Botón Guardar
2: btnInsertar_Click(object sender, Ev entArgs e)
7: Mostrar en Modo Formulario
10: btnGuardar_Click(object sender, Ev entArgs e)
3: Pasar Datos
6: Actualizar Datos
11: Pasar Datos12: Validar Datos Ingresados
4: Pasar Datos
5: Actualizar Datos
13: Pasar Datos 14: Insert (row)
15: Actualizar Datos16: Actualizar Datos17: Actualizar Datos18: BindGrid
(Eliminar)
: CTR(SIIWCL) (Componente)
: RIG : WebUI(tblESTATUS.ASPX) : CTR(tblESTATUS.ASP...
: CTR(tblESTATUS.CS) : CTR(SIICOL) (Componente)
:tblESTATUS
2: Pres. Botón Eliminar (Modo Grid)
9: Pres. Botón Aceptar
1: Seleccionar una Fila
3: btnEliminar_Click(object sender, Ev entArgs e)4: Pasar Datos
7: Actualizar Datos
8: Mostrar en Modo Formulario
10: btnAceptar_Click(object sender, Ev entArgs e)11: Pasar Datos
12: Pasar Datos
5: Pasar Datos
6: Actualizar Datos
13: Pasar Datos14: DeleteBy Primary Key (id_row)
15: Actualizar Datos16: Actualizar Datos
17: Actualizar Datos18: BindGrid
176
(Modificar)
: CTR(SIIWCL) (Componente)
: RIG : WebUI(tblESTATUS.ASPX) : CTR(tblESTATUS.ASP...
: CTR(tblESTATUS.CS) : CTR(SIICOL) (Componente)
:tblESTATUS
2: Pres. Botón Modif icar (Modo Grid)
7: Ingresa Datos a Modif icar
8: Pres. Botón Guardar
1: Seleccionar una Fila
3: btnModif icar_Click(object sender, Ev entArgs e)4: Pasar Datos
5: Actualizar Datos
6: Mostrar en Modo Formulario
9: btnGuardar_Click(object sender, Ev entArgs e)10: Pasar Datos
11: Validar Datos Ingresados12: Pasar Datos
13: UpdateBy Primary Key (id_row)
14: Actualizar Datos
15: Actualizar Datos16: Actualizar Datos
17: BindGrid
(Buscar)
: RIG : WebUI(tblESTATUS.ASPX) : CTR(tblESTATUS.ASP...
: CTR(SIIWCL) (Componente)
: CTR(tblESTATUS.CS) : CTR(SIICOL) (Componente)
:tblESTATUS
1: Pres. Botón Buscar (Modo Grid)
8: Ingresa Datos a Buscar
9: Pres. Botón Aceptar
2: btnBuscar_Click(object sender, Ev entArgs e)
7: Mostrar en Modo Formulario
10: btnAceptar_Click(object sender, Ev entArgs e)
3: Pasar Datos
6: Actualizar Datos
11: Pasar Datos12: Pasar Datos
4: Pasar Datos
5: Actualizar Datos
13: Pasar Datos14: Select(row)
15: Actualiza Datos16: Actualizar Datos17: Actualizar Datos18: BindGrid
177
Caso de Uso Nro.9: Administrar Estándares (ISO).
(Insertar)
: RIG : WebUI(tblNORMAS.ASPX) : CTR(tblNORMAS.ASPX.CS)
: CTR(SIIWCL) (Componente)
: CTR(tblNORMAS.CS) : CTR(SIICOL) (Componente)
:tblNORMAS
1: Pres. Botón Insertar (Modo Grid)
8: Ingresa Datos
9: Pres. Botón Guardar
2: btnInsertar_Click(object sender, Ev entArgs e)
7: Mostrar en Modo Formulario
10: btnGuardar_Click(object sender, Ev entArgs e)
3: Pasar Datos
6: Actualizar Datos
11: Pasar Datos12: Validar Datos Ingresados
4: Pasar Datos
5: Actualizar Datos
13: Pasar Datos 14: Insert (row)
15: Actualizar Datos16: Actualizar Datos17: Actualizar Datos18: BindGrid
(Eliminar)
: CTR(SIIWCL) (Componente)
: RIG : WebUI(tblNORMAS.ASPX) : CTR(tblNORMAS.ASPX.CS)
: CTR(tblNORMAS.CS) : CTR(SIICOL) (Componente)
:tblNORMAS
2: Pres. Botón Eliminar (Modo G...
9: Pres. Botón Aceptar
1: Seleccionar una Fila
3: btnEliminar_Click(object sender, EventArg...4: Pasar Datos
7: Actualizar Datos
8: Mostrar en Modo Formulario
10: btnAceptar_Click(object sender, EventArg...11: Pasar Datos
12: Pasar Datos
5: Pasar Datos
6: Actualizar Datos
13: Pasar Datos14: DeleteByPrimaryKey(id_row)
15: Actualizar Datos16: Actualizar Datos
17: Actualizar Datos18: BindGrid
178
(Modificar)
: CTR(SIIWCL) (Componente)
: RIG : WebUI(tblNORMAS.ASPX) : CTR(tblNORMAS.ASPX.CS)
: CTR(tblNORMAS.CS) : CTR(SIICOL) (Componente)
:tblNORMAS
2: Pres. Botón Modificar (Modo G...
7: Ingresa Datos a Modificar
8: Pres. Botón Guardar
1: Seleccionar una Fila
3: btnModificar_Click(object sender, EventArg...4: Pasar Datos
5: Actualizar Datos
6: Mostrar en Modo Formulario
9: btnGuardar_Click(object sender, EventArg...10: Pasar Datos
11: Validar Datos Ingresados12: Pasar Datos
13: UpdateByPrimaryKey(id_row)
14: Actualizar Datos
15: Actualizar Datos16: Actualizar Datos
17: BindGrid
(Buscar)
: RIG : WebUI(tblNORMAS.ASPX) : CTR(tblNORMAS.ASPX.CS)
: CTR(SIIWCL) (Componente)
: CTR(tblNORMAS.CS) : CTR(SIICOL) (Componente)
:tblNORMAS
1: Pres. Botón Buscar (Modo Grid)
8: Ingresa Datos a Buscar
9: Pres. Botón Aceptar
2: btnBuscar_Click(object sender, EventArgs e)
7: Mostrar en Modo Formulario
10: btnAceptar_Click(object sender, EventArgs e)
3: Pasar Datos
6: Actualizar Datos
11: Pasar Datos12: Pasar Datos
4: Pasar Datos
5: Actualizar Datos
13: Pasar Datos14: Select(row)
15: Actualiza Datos16: Actualizar Datos17: Actualizar Datos18: BindGrid
179
Caso de Uso Nro.10: Administrar Repartos de Estándar (ISO).
(Insertar)
: RIG : WebUI(tblSECCIONES.ASPX) : CTR(tblSECCIONES.A...
: CTR(SIIWCL) (Componente)
: CTR(tblSECCIONES.CS) : CTR(SIICOL) (Componente)
tblSECCIONES
1: Pres. Botón Insertar (Modo G...
8: Ingresa Datos
9: Pres. Botón Guardar
2: btnInsertar_Click(object sender, EventArg...
7: Mostrar en Modo Formulario
10: btnGuardar_Click(object sender, EventArg...
3: Pasar Datos
6: Actualizar Datos
11: Pasar Datos12: Validar Datos Ingresados
4: Pasar Datos
5: Actualizar Datos
13: Pasar Datos 14: Insert (row)
15: Actualizar Datos16: Actualizar Datos17: Actualizar Datos18: BindGrid
(Eliminar)
: CTR(SIIWCL) (Componente)
: RIG : WebUI(tblSECCIONES.ASPX) : CTR(tblSECCIONES.A...
: CTR(tblSECCIONES.CS) : CTR(SIICOL) (Componente)
:tblSECCIONES
2: Pres. Botón Eliminar (Modo G...
9: Pres. Botón Aceptar
1: Seleccionar una Fila
3: btnEliminar_Click(object sender, EventArg...4: Pasar Datos
7: Actualizar Datos
8: Mostrar en Modo Formulario
10: btnAceptar_Click(object sender, EventArg...11: Pasar Datos
12: Pasar Datos
5: Pasar Datos
6: Actualizar Datos
13: Pasar Datos14: DeleteByPrimaryKey(id_row)
15: Actualizar Datos16: Actualizar Datos
17: Actualizar Datos18: BindGrid
180
(Modificar)
: CTR(SIIWCL) (Componente)
: RIG : WebUI(tblSECCIONES.ASPX) : CTR(tblSECCIONES.A...
: CTR(tblSECCIONES.CS) : CTR(SIICOL) (Componente)
:tblSECCIONES
2: Pres. Botón Modif icar (Modo Grid)
7: Ingresa Datos a Modif icar
8: Pres. Botón Guardar
1: Seleccionar una Fila
3: btnModif icar_Click(object sender, Ev entArgs e)4: Pasar Datos
5: Actualizar Datos
6: Mostrar en Modo Formulario
9: btnGuardar_Click(object sender, Ev entArgs e)10: Pasar Datos
11: Validar Datos Ingresados12: Pasar Datos
13: UpdateBy Primary Key (id_row)
14: Actualizar Datos
15: Actualizar Datos16: Actualizar Datos
17: BindGrid
(Buscar)
: RIG : WebUI(tblSECCIONES.ASPX) : CTR(tblSECCIONES.A...
: CTR(SIIWCL) (Componente)
: CTR(tblSECCIONES.CS) : CTR(SIICOL) (Componente)
:tblSECCIONES
1: Pres. Botón Buscar (Modo G...
8: Ingresa Datos a Bu...
9: Pres. Botón Aceptar
2: btnBuscar_Click(object sender, EventArg...
7: Mostrar en Modo Formulario
10: btnAceptar_Click(object sender, EventArg...
3: Pasar Datos
6: Actualizar Datos
11: Pasar Datos12: Pasar Datos
4: Pasar Datos
5: Actualizar Datos
13: Pasar Datos14: Select(row)
15: Actualiza Datos16: Actualizar Datos17: Actualizar Datos18: BindGrid
181
Caso de Uso Nro.11: Administrar Matriz de responsabilidades.
(Insertar)
: RIG : WebUI(tblMAT_RESPON.ASPX) : CTR(tblMAT_RESPON...
: CTR(SIIWCL) (Componente)
: CTR(tblMAT_RESPON.CS)
: CTR(SIICOL) (Componente)
:tblMAT_RESPON
1: Pres. Botón Insertar (Modo Grid)
8: Ingresa Datos
9: Pres. Botón Guardar
2: btnInsertar_Click(object sender, Ev entArgs e)
7: Mostrar en Modo Formulario
10: btnGuardar_Click(object sender, Ev entArgs e)
3: Pasar Datos
6: Actualizar Datos
11: Pasar Datos12: Validar Datos Ingresados
4: Pasar Datos
5: Actualizar Datos
13: Pasar Datos 14: Insert (row)
15: Actualizar Datos16: Actualizar Datos17: Actualizar Datos18: BindGrid
(Eliminar)
: CTR(SIIWCL) (Componente)
: RIG : WebUI(tblMAT_RESPON.ASPX) : CTR(tblMAT_RESPON...
: CTR(tblMAT_RESPON.CS)
: CTR(SIICOL) (Componente)
:tblMAT_RESPON
2: Pres. Botón Eliminar (Modo Grid)
9: Pres. Botón Aceptar
1: Seleccionar una Fila
3: btnEliminar_Click(object sender, EventArgs e)4: Pasar Datos
7: Actualizar Datos
8: Mostrar en Modo Formulario
10: btnAceptar_Click(object sender, EventArgs e)11: Pasar Datos
12: Pasar Datos
5: Pasar Datos
6: Actualizar Datos
13: Pasar Datos14: DeleteByPrimaryKey(id_row)
15: Actualizar Datos16: Actualizar Datos
17: Actualizar Datos18: BindGrid
182
(Modificar)
: CTR(SIIWCL) (Componente)
: RIG : WebUI(tblMAT_RESPON.ASPX) : CTR(tblMAT_RESPON...
: CTR(tblMAT_RESPON.CS)
: CTR(SIICOL) (Componente)
:tblMAT_RESPON
2: Pres. Botón Modif icar (Modo Grid)
7: Ingresa Datos a Modif icar
8: Pres. Botón Guardar
1: Seleccionar una Fila
3: btnModif icar_Click(object sender, Ev entArgs e)4: Pasar Datos
5: Actualizar Datos
6: Mostrar en Modo Formulario
9: btnGuardar_Click(object sender, Ev entArgs e)10: Pasar Datos
11: Validar Datos Ingresados12: Pasar Datos
13: UpdateBy Primary Key (id_row)
14: Actualizar Datos
15: Actualizar Datos16: Actualizar Datos
17: BindGrid
(Buscar)
: RIG : WebUI(tblMAT_RESPON.ASPX) : CTR(tblMAT_RESPON...
: CTR(SIIWCL) (Componente)
: CTR(tblMAT_RESPON.CS)
: CTR(SIICOL) (Componente)
:tblMAT_RESPON
1: Pres. Botón Buscar (Modo Grid)
8: Ingresa Datos a Buscar
9: Pres. Botón Aceptar
2: btnBuscar_Click(object sender, Ev entArgs e)
7: Mostrar en Modo Formulario
10: btnAceptar_Click(object sender, Ev entArgs e)
3: Pasar Datos
6: Actualizar Datos
11: Pasar Datos12: Pasar Datos
4: Pasar Datos
5: Actualizar Datos
13: Pasar Datos14: Select(row)
15: Actualiza Datos16: Actualizar Datos17: Actualizar Datos18: BindGrid
183
Caso de Uso Nro. 12: Administrar Lugares de exposición.
(Insertar)
: RIG : WebUI(tblLUGARES_EXP.ASPX) : CTR(tblLUGARES_EX...
: CTR(SIIWCL) (Componente)
: CTR(tblLUGARES_EX...
: CTR(SIICOL) (Componente)
:tblLUGARES_EXP
1: Pres. Botón Insertar (Modo Grid)
8: Ingresa Datos
9: Pres. Botón Guardar
2: btnInsertar_Click(object sender, EventArgs e)
7: Mostrar en Modo Formulario
10: btnGuardar_Click(object sender, EventArgs e)
3: Pasar Datos
6: Actualizar Datos
11: Pasar Datos12: Validar Datos Ingresados
4: Pasar Datos
5: Actualizar Datos
13: Pasar Datos 14: Insert (row)
15: Actualizar Datos16: Actualizar Datos17: Actualizar Datos18: BindGrid
(Eliminar)
: CTR(SIIWCL) (Componente)
: RIG : WebUI(tblLUGARES_EXP.ASPX) : CTR(tblLUGARES_EX...
: CTR(tblLUGARES_EX...
: CTR(SIICOL) (Componente)
:tblLUGARES_EXP
2: Pres. Botón Eliminar (Modo Grid)
9: Pres. Botón Aceptar
1: Seleccionar una Fila
3: btnEliminar_Click(object sender, Ev entArgs e)4: Pasar Datos
7: Actualizar Datos
8: Mostrar en Modo Formulario
10: btnAceptar_Click(object sender, Ev entArgs e)11: Pasar Datos
12: Pasar Datos
5: Pasar Datos
6: Actualizar Datos
13: Pasar Datos14: DeleteBy Primary Key (id_row)
15: Actualizar Datos16: Actualizar Datos
17: Actualizar Datos18: BindGrid
184
(Modificar)
: CTR(SIIWCL) (Componente)
: RIG : WebUI(tblLUGARES_EXP.ASPX) : CTR(tblLUGARES_EX...
: CTR(tblLUGARES_EX...
: CTR(SIICOL) (Componente)
:tblLUGARES_EXP
2: Pres. Botón Modif icar (Modo Grid)
7: Ingresa Datos a Modif icar
8: Pres. Botón Guardar
1: Seleccionar una Fila
3: btnModif icar_Click(object sender, Ev entArgs e)4: Pasar Datos
5: Actualizar Datos
6: Mostrar en Modo Formulario
9: btnGuardar_Click(object sender, Ev entArgs e)10: Pasar Datos
11: Validar Datos Ingresados12: Pasar Datos
13: UpdateBy Primary Key (id_row)
14: Actualizar Datos
15: Actualizar Datos16: Actualizar Datos
17: BindGrid
(Buscar)
: RIG : WebUI(tblLUGARES_EXP.ASPX) : CTR(tblLUGARES_EX...
: CTR(SIIWCL) (Componente)
: CTR(tblLUGARES_EX...
: CTR(SIICOL) (Componente)
:tblLUGARES_EXP
1: Pres. Botón Buscar (Modo Grid)
8: Ingresa Datos a Buscar
9: Pres. Botón Aceptar
2: btnBuscar_Click(object sender, EventArgs e)
7: Mostrar en Modo Formulario
10: btnAceptar_Click(object sender, Ev entArgs e)
3: Pasar Datos
6: Actualizar Datos
11: Pasar Datos12: Pasar Datos
4: Pasar Datos
5: Actualizar Datos
13: Pasar Datos14: Select(row)
15: Actualiza Datos16: Actualizar Datos17: Actualizar Datos18: BindGrid
185
Caso de Uso Nro.13: Administrar Opciones del menú.
(Insertar)
: Administrador : WebUI(tblPROGRAMAS.ASPX) : CTR(tblPROGRAMAS....
: CTR(SIIWCL) (Componente)
: CTR(tblPROGRAMAS.CS) : CTR(SIICOL) (Componente)
:tblPROGRAMAS
1: Pres. Botón Insertar (Modo G...
8: Ingresa Datos
9: Pres. Botón Guardar
2: btnInsertar_Click(object sender, EventArg...
7: Mostrar en Modo Formulario
10: btnGuardar_Click(object sender, EventArg...
3: Pasar Datos
6: Actualizar Datos
11: Pasar Datos12: Validar Datos Ingresados
4: Pasar Datos
5: Actualizar Datos
13: Pasar Datos 14: Insert (row)
15: Actualizar Datos16: Actualizar Datos17: Actualizar Datos18: BindGrid
(Eliminar)
: CTR(SIIWCL) (Componente)
: Administrador : WebUI(tblPROGRAMAS.ASPX) : CTR(tblPROGRAMAS....
: CTR(tblPROGRAMAS.CS) : CTR(SIICOL) (Componente)
:tblPROGRAMAS
2: Pres. Botón Eliminar (Modo Grid)
9: Pres. Botón Aceptar
1: Seleccionar una Fila
3: btnEliminar_Click(object sender, Ev entArgs e)4: Pasar Datos
7: Actualizar Datos
8: Mostrar en Modo Formulario
10: btnAceptar_Click(object sender, Ev entArgs e)11: Pasar Datos
12: Pasar Datos
5: Pasar Datos
6: Actualizar Datos
13: Pasar Datos14: DeleteBy Primary Key (id_row)
15: Actualizar Datos16: Actualizar Datos
17: Actualizar Datos18: BindGrid
186
(Modificar)
: CTR(SIIWCL) (Componente)
: Administrador : WebUI(tblPROGRAMAS.ASPX) : CTR(tblPROGRAMAS....
: CTR(tblPROGRAMAS.CS) : CTR(SIICOL) (Componente)
:tblPROGRAMAS
2: Pres. Botón Modif icar (Modo Grid)
7: Ingresa Datos a Modif icar
8: Pres. Botón Guardar
1: Seleccionar una Fila
3: btnModif icar_Click(object sender, Ev entArgs e)4: Pasar Datos
5: Actualizar Datos
6: Mostrar en Modo Formulario
9: btnGuardar_Click(object sender, EventArgs e)10: Pasar Datos
11: Validar Datos Ingresados12: Pasar Datos
13: UpdateByPrimaryKey (id_row)
14: Actualizar Datos
15: Actualizar Datos16: Actualizar Datos
17: BindGrid
(Buscar)
: Administrador : WebUI(tblPROGRAMAS.ASPX) : CTR(tblPROGRAMAS....
: CTR(SIIWCL) (Componente)
: CTR(tblPROGRAMAS.CS) : CTR(SIICOL) (Componente)
:tblPROGRAMAS
1: Pres. Botón Buscar (Modo Grid)
8: Ingresa Datos a Buscar
9: Pres. Botón Aceptar
2: btnBuscar_Click(object sender, EventArgs e)
7: Mostrar en Modo Formulario
10: btnAceptar_Click(object sender, EventArgs e)
3: Pasar Datos
6: Actual izar Datos
11: Pasar Datos12: Pasar Datos
4: Pasar Datos
5: Actual izar Datos
13: Pasar Datos14: Select(row)
15: Actualiza Datos16: Actualizar Datos17: Actualizar Datos18: BindGrid
187
Caso de Uso Nro.14: Administrar Accesos a opciones del menú.
(Insertar)
: Administrador : WebUI(tblACCESOS_PRG.ASPX) : CTR(tblACCESOS_PR...
: CTR(SIIWCL) (Componente)
: CTR(tblACCESOS_P...
: CTR(SIICOL) (Componente)
:tblACCESOS_PRG
1: Pres. Botón Insertar (Modo Grid)
8: Ingresa Datos
9: Pres. Botón Guardar
2: btnInsertar_Click(object sender, EventArgs e)
7: Mostrar en Modo Formulario
10: btnGuardar_Click(object sender, EventArgs e)
3: Pasar Datos
6: Actualizar Datos
11: Pasar Datos12: Validar Datos Ingresados
4: Pasar Datos
5: Actualizar Datos
13: Pasar Datos 14: Insert (row)
15: Actualizar Datos16: Actualizar Datos17: Actualizar Datos18: BindGrid
(Eliminar)
: CTR(SIIWCL) (Componente)
: Administrador : WebUI(tblACCESOS_PRG.ASPX) : CTR(tblACCESOS_PR...
: CTR(tblACCESOS_P...
: CTR(SIICOL) (Componente)
:tblACCESOS_PRG
2: Pres. Botón Eliminar (Modo Grid)
9: Pres. Botón Aceptar
1: Seleccionar una Fila
3: btnEliminar_Click(object sender, EventArgs e)4: Pasar Datos
7: Actualizar Datos
8: Mostrar en Modo Formulario
10: btnAceptar_Click(object sender, EventArgs e)11: Pasar Datos
12: Pasar Datos
5: Pasar Datos
6: Actualizar Datos
13: Pasar Datos14: DeleteByPrimaryKey(id_row)
15: Actualizar Datos16: Actualizar Datos
17: Actualizar Datos18: BindGrid
188
(Modificar)
: CTR(SIIWCL) (Componente)
: Administrador : WebUI(tblACCESOS_PRG.ASPX) : CTR(tblACCESOS_PR...
: CTR(tblACCESOS_P...
: CTR(SIICOL) (Componente)
:tblACCESOS_PRG
2: Pres. Botón Modificar (Modo Grid)
7: Ingresa Datos a Modificar
8: Pres. Botón Guardar
1: Seleccionar una Fila
3: btnModificar_Click(object sender, EventArgs e)4: Pasar Datos
5: Actualizar Datos
6: Mostrar en Modo Formulario
9: btnGuardar_Click(object sender, EventArgs e)10: Pasar Datos
11: Validar Datos Ingresados12: Pasar Datos
13: UpdateByPrimaryKey(id_row)
14: Actualizar Datos
15: Actualizar Datos16: Actualizar Datos
17: BindGrid
(Buscar)
: Administrador : WebUI(tblACCESOS_PRG.ASPX) : CTR(tblACCESOS_PR...
: CTR(SIIWCL) (Componente)
: CTR(tblACCESOS_P...
: CTR(SIICOL) (Componente)
:tblACCESOS_PRG
1: Pres. Botón Buscar (Modo Grid)
8: Ingresa Datos a Buscar
9: Pres. Botón Aceptar
2: btnBuscar_Click(object sender, EventArgs e)
7: Mostrar en Modo Formulario
10: btnAceptar_Click(object sender, EventArgs e)
3: Pasar Datos
6: Actualizar Datos
11: Pasar Datos12: Pasar Datos
4: Pasar Datos
5: Actualizar Datos
13: Pasar Datos14: Select(row)
15: Actualiza Datos16: Actualizar Datos17: Actualizar Datos18: BindGrid
189
Caso de Uso Nro.15: Administrar Tablas.
(Insertar)
: Administrador : WebUI(tblTABLAS.ASPX) : CTR(tblTABLAS.ASPX.CS)
: CTR(SIIWCL) (Componente)
: CTR(tblTABLAS.CS) : CTR(SIICOL) (Componente)
:tblTABLAS
1: Pres. Botón Insertar (Modo G...
8: Ingresa Datos
9: Pres. Botón Guardar
2: btnInsertar_Click(object sender, EventArg...
7: Mostrar en Modo Formulario
10: btnGuardar_Click(object sender, EventArg...
3: Pasar Datos
6: Actualizar Datos
11: Pasar Datos12: Validar Datos Ingresados
4: Pasar Datos
5: Actualizar Datos
13: Pasar Datos 14: Insert (row)
15: Actualizar Datos16: Actualizar Datos17: Actualizar Datos18: BindGrid
(Eliminar)
: CTR(SIIWCL) (Componente)
: Administrador : WebUI(tblTABLAS.ASPX) : CTR(tblTABLAS.ASPX.CS)
: CTR(tblTABLAS.CS) : CTR(SIICOL) (Componente)
:tblTABLAS
2: Pres. Botón Eliminar (Modo G...
9: Pres. Botón Aceptar
1: Seleccionar una Fila
3: btnEliminar_Click(object sender, EventArg...4: Pasar Datos
7: Actualizar Datos
8: Mostrar en Modo Formulario
10: btnAceptar_Click(object sender, EventArg...11: Pasar Datos
12: Pasar Datos
5: Pasar Datos
6: Actualizar Datos
13: Pasar Datos14: DeleteByPrimaryKey(id_row)
15: Actualizar Datos16: Actualizar Datos
17: Actualizar Datos18: BindGrid
190
(Modificar)
: CTR(SIIWCL) (Componente)
: Administrador : WebUI(tblTABLAS.ASPX) : CTR(tblTABLAS.ASPX.CS)
: CTR(tblTABLAS.CS) : CTR(SIICOL) (Componente)
:tblTABLAS
2: Pres. Botón Modificar (Modo G...
7: Ingresa Datos a Modificar
8: Pres. Botón Guardar
1: Seleccionar una Fila
3: btnModificar_Click(object sender, EventArg...4: Pasar Datos
5: Actualizar Datos
6: Mostrar en Modo Formulario
9: btnGuardar_Click(object sender, EventArg...10: Pasar Datos
11: Validar Datos Ingresados12: Pasar Datos
13: UpdateByPrimaryKey(id_row)
14: Actualizar Datos
15: Actualizar Datos16: Actualizar Datos
17: BindGrid
(Buscar)
: Administrador : WebUI(tblTABLAS.ASPX) : CTR(tblTABLAS.ASPX.CS)
: CTR(SIIWCL) (Componente)
: CTR(tblTABLAS.CS) : CTR(SIICOL) (Componente)
:tblTABLAS
1: Pres. Botón Buscar (Modo Grid)
8: Ingresa Datos a Buscar
9: Pres. Botón Aceptar
2: btnBuscar_Click(object sender, Ev entArgs e)
7: Mostrar en Modo Formulario
10: btnAceptar_Click(object sender, Ev entArgs e)
3: Pasar Datos
6: Actualizar Datos
11: Pasar Datos12: Pasar Datos
4: Pasar Datos
5: Actualizar Datos
13: Pasar Datos14: Select(row)
15: Actualiza Datos16: Actualizar Datos17: Actualizar Datos18: BindGrid
191
Caso de Uso Nro.16: Nuevo Documento.
(Subir Archivo)
: Usuario que Registra
: WebUI(frmTipDoc.ASPX) : WebUI(tblA_DOCUMENTOS.ASPX)
: CTR(tblDOCUMENTOS .CS)
: CTR(SIICOL) (Componente)
:tblDOCUMENTOS
: CTR(Mail)
1: ElegirTipoDocumento
2: Page_Load(ASP.smcsgi_frmtipdoc_aspx,EventArgs.Empty)
3: SelecOpcionNuevoTipoDcto4: Response.Redirect(tblA_DOCUMENTOS.ASPX)
5: Page_Load(ASP.smcsgi_tbla_documentos_aspx,EventArgs.Empty)
6: LlenarComboTipoDcto()
8: DigitarDatosNuevoDocumentoArchivo
10: datos=CapturaDatosNuevoDocumentoArchivo()
9: NombreArch = SeleccionarArchivo()
11: GuardarDatos(datos)
15: ValidarDatos(objDOCUMENTOS)
16: PasarDatos(objDOCUMENTOS)
17: ExecuteDMLCommand(objDOCUMENTOS)
18: EnviarMail(objDOCUMENTOS)
12: id=GetRowMaximo()
13: SubirArchivo(NombreArch)
7: DesplegarPantallaIngreso()
datos = CapturaDatosNuevoDocumentoArchivo()- T ipo de Documento- Nombre del Archivo a subir
ExecuteDMLCommand(id,datos)- Insert
14: objDOCUMENTOS = CreaDOCUMENTOS(id,datos,NombreArch)
192
Caso de Uso Nro.17: Modificar Documento Publicado.
(Modificar)
: RIG : WebUI(tblDOCUMENTOS.ASPX) : CTR(tblDOCUMENTO...
: CTR(SIIWCL) (Componente)
: CTR(tblDOCUMENTOS .CS)
: CTR(SIICOL) (Componente)
:tblDOCUMENTOS
: CTR(Mail)
2: Pres. Botón Modificar (Modo Grid)
7: Ingresa Datos a Modificar
8: Pres. Botón Guardar
1: Seleccionar una Fila
3: btnModificar_Click(object sender, EventArgs e)4: Pasar Datos
5: Actualizar Datos
6: Mostrar en Modo Formulario
9: btnGuardar_Click(object sender, EventArgs e)10: Pasar Datos
11: Validar Datos Ingresados12: Pasar Datos
13: UpdateByPrimaryKey(id_row)
15: Actualizar Datos
16: Actualizar Datos17: Actualizar Datos
18: BindGrid
14: Enviar EMail
193
Caso de Uso Nro.18: Gestión de Documento para ser Publicado.
(Se accede desde el Menú de Opciones)
: RIG : WebUI(tblDOCUMENTOS.ASPX) uifDocumentos : CTR(SIIW...
objDocumentos : CTR(tblDOCUMEN...
: CTR(SIICOL) (Componente)
:tblDOCUMENTOS :tblMAT_RESPON
: CTR(Mail)
uifDocumentos=CapturaGestionDocumentos()- Codigo Interno- Documento- Descripcion Documento- Nombre Alternativo- Observaciones- Area a la que pertenece el documento- Tipo de documento- Activar Documento = S- Version del documento
6: DigitarDatosAdicionalesDcto
7: uifDocumentos=CapturaGestionDocumentos()
9: GuardarDatos(uifDocumentos)
10: objDocumentos = ValidarDatos(uifDocumentos)
11: PasarDatos(objDocumentos)
8: version=ObtenerVersionDcto()
12: ExecuteDMLCommand(objDocumentos)
4: uifDocumentos.BRC = objDocumentos
2: Page_Load(ASP.smcsgi_tbldocumentos_aspx,EventArgs.Empty)
5: DesplegarPantallaIngreso(uifDocumentos)
3: objDocumentos = ObtenerEstructura()
1: ElegirGestionDocumento
Usuarios- Usuario1- Usuario2- Usuario3Envia correo electronico de notificacion a los usuarios involucrados
13: Usuarios = ObtenerResponsUsuarios()
14: EnviarMail(Usuarios)
ExecuteDMLCommand(objDocumentos)- Update- Delete
194
(Se accede desde correo electrónico)
: RIG : CorreoElectronico : WebUI(tblDOCUMENTOS.ASPX)uifDocumentos :
CTR(SIIW...objDocumentos :
CTR(tblDOCUMEN... : CTR(SIICOL) (Componente)
:tblDOCUMENTOS :tblMAT_RESPON
: CTR(Mail)
1: RevisaCorreoElectronico
2: autenticar(idSesion,Pass,IdDoc)
5: uifDocumentos.BRC = objDocumentos
3: Page_Load(ASP.smcsgi_tbldocumentos_aspx,EventArgs.Empty)
6: DesplegarPantallaIngreso(uifDocumentos)
7: DigitarDatosAdicionalesDcto
8: uifDocumentos=CapturaGestionDocumentos()
uifDocumentos=CapturaGestionDocumentos()- Codigo Interno- Documento- Descripcion Documento- Nombre Alternativo- Observaciones- Area a la que pertenece el documento- Tipo de documento- Activar Documento = S- Version del documento
4: objDocumentos = ObtenerEstructura()
9: version=ObtenerVersionDcto()
10: GuardarDatos(uifDocumentos)
11: objDocumentos = ValidarDatos(uifDocumentos)12: PasarDatos(objDocumentos)
13: ExecuteDMLCommand(objDocumentos)
Usuarios- Usuario1- Usuario2- Usuario3Envia correo electronico de notificacion a los usuarios involucrados
14: Usuarios = ObtenerResponsUsuarios()
15: EnviarMail(Usuarios)
ExecuteDMLCommand(objDocumentos)- Update- Delete
195
Caso de Uso Nro.19: Administrar Exposición de Documento a Publicar.
: RIG : WebUI(tblEXPO_DCTOS.ASPX) uifEXPO_DCTOS : CTR(SIIW...
objEXPO_DCTOS : CTR(tblEXPO_DCTOS.CS)
: CTR(SIICOL) (Componente)
:tblEXPO_DCTOS
1: ElegirExposicionDctos
2: Page_Load(ASP.smcsgi_tblexpo_dctos_aspx,EventArgs.Empty)
3: objEXPO_DCTOS = ObtenerEstructura()
4: uifEXPO_DCTOS.BRC = objEXPO_DCTOS
5: DesplegarPantallaIngreso(uifEXPO_DCTOS)
6: DigitarDatosExpoDctos
7: uifEXPO_DCTOS=CapturaExposicionDocumentos()
8: id_corr = ObtenerCorrelativo()
9: GuardarDatos(uifEXPO_DCTOS)
10: objEXPO_DCTOS = ValidarDatos(uifEXPO_DCTOS)11: PasarDatos(objEXPO_DCTOS)
12: ExecuteDMLCommand(objEXPO_DCTOS)
uifEXPO_DCTOS=CapturaExposicionDocumentos()- Lugar de Exposicion de Documentos.
ExecuteDMLCommand(objEXPO_DCTOS)DML(Lenguaje de Manipulacion de Datos) - INSERT - UPDATE - DELETE
196
Caso de Uso Nro.20: Administrar Revisión de Documento a Publicar.
: RIG : WebUI(tblREVISIONES.ASPX) uifREVISIONES : CTR(SIIWCL) (Componente)
objREVISIONES : CTR(tblREVISIONES.CS)
: CTR(SIICOL) (Componente)
:tblREVISIONES
uifREVIONES=CapturaRevisionDocumentos()- Fecha de la revision- Pagina- Comentarios
ExecuteDMLCommand(objREVISIONES)DML(Lenguaje de Manipulacion de Datos) - INSERT - UPDATE - DELETE
1: ElegirRevisionDctosPublicar
2: Page_Load(ASP.smcsgi_tblrevisiones_aspx,EventArgs.Empty)
5: DesplegarPantallaIngreso(uifREVISIONES)
6: DigitarDatosRevisiones
7: uifREVISIONES=CapturaRevisionDocumentos()
9: GuardarDatos(uifREVISIONES)
4: uifREVISIONES.BRC = objREVISIONES
3: objREVISIONES = ObtenerEstructura()
10: objREVISIONES = ValidarDatos(uifREVISIONES)11: PasarDatos(objREVISIONES)
8: id_corr = ObtenerCorrelativo()
12: ExecuteDMLCommand(objREVISIONES)
197
Caso de Uso Nro.22: Administrar Acápites o Normas de Estándares de
(ISO) de un documento a publicar.
: RIG : WebUI(tblNORMAS_DCTOS.ASPX) uifNORMAS_DCTOS : CTR(SIIWCL) (Componente)
objNORMAS_DCTOS : CTR(tblNORMAS_DCTOS.CS)
: CTR(SIICOL) (Componente)
:tblNORMAS_DCTOS
uifNORMAS_DCTOS=CapturaNormasDocumentos()- Nombre de la Norma- Acapite que corresponde a la Norma ISO
ExecuteDMLCommand(objNORMAS_DCTOS)DML(Lenguaje de Manipulacion de Datos) - INSERT - UPDATE - DELETE
1: ElegirNormasDctos
2: Page_Load(ASP.smcsgi_tblnormas_dctos_aspx,EventArgs.Empty)
5: DesplegarPantallaIngreso(uifNORMAS_DCTOS)
6: DigitarDatosNormasDctos
7: uifNORMAS_DCTOS=CapturaNormasDocumentos()
9: GuardarDatos(uifNORMAS_DCTOS)
4: uifNORMAS_DCTOS.BRC = objNORMAS_DCTOS
3: objNORMAS_DCTOS = ObtenerEstructura()
10: objNORMAS_DCTOS = ValidarDatos(uifNORMAS_DCTOS)11: PasarDatos(objNORMAS_DCTOS)
8: id_corr = ObtenerCorrelativo()
12: ExecuteDMLCommand(objNORMAS_DCTOS)
198
Caso de Uso Nro.23: Administrar Acciones de un Documento a Publicar.
: RIG : WebUI(tblACCIONES_USRS.ASPX) uifACCIONES_USRS : CTR(SIIWCL) (Componente)
objACCIONES_USRS : CTR(tblACCIONES_USRS.CS)
: CTR(SIICOL) (Componente)
:tblACCIONES_USRS :tblDOCUMENTOS : Base de Datos
uifACCIONES_USRS=CapturaAccionesDocumentos()- Usuario que elabora.- Usuario que revisa.- Usuario que aprueba- Fecha
ExecuteDMLCommand(objACCIONES_USRS)DML(Lenguaje de Manipulacion de Datos) - INSERT - UPDATE - DELETE
1: ElegirAccionesUsuariosDctos
2: Page_Load(ASP.smcsgi_tblacciones_usrs_aspx,EventArgs.Empty)
5: DesplegarPantallaIngreso(uifACCIONES_USRS)
9: DigitarDatosAccUsrsDctos
10: uifACCIONES_USRS=CapturaAccionesUsrDocumentos()
12: GuardarDatos(uifACCIONES_USRS)
4: uifACCIONES_USRS.BRC = objACCIONES_USRS
3: objACCIONES_USRS = ObtenerEstructura()
13: objACCIONES_USRS = ValidarDatos(uifACCIONES_USRS)
14: PasarDatos(objACCIONES_USRS)
11: id_corr = ObtenerCorrelativo()
15: ExecuteDMLCommand(objACCIONES_USRS)
6: TipoDoc_id = ObtenerTipoDocumento(Doc_Id)
7: ListaUsuarios = ObtenerListaUsuarios(TipoDoc_id, Activo)
8: uifACCIONES_USRS = ListaUsuarios
199
Caso de Uso Nro.24: Registrar Revisión de Documento a Publicar.
: RIG : WebUI(tblREVISIONES.ASPX) uifREVISIONES : CTR(SIIWCL) (Componente)
objREVISIONES : CTR(tblREVISIONES.CS)
: CTR(SIICOL) (Componente)
:tblREVISIONES
uifREVIONES=CapturaRevisionDocumentos()- Fecha de la revision- Pagina- Comentarios
ExecuteDMLCommand(objREVISIONES)DML(Lenguaje de Manipulacion de Datos) - INSERT - UPDATE - DELETE
1: ElegirRevisionDctosPublicar
2: Page_Load(ASP.smcsgi_tblrevisiones_aspx,EventArgs.Empty)
5: DesplegarPantallaIngreso(uifREVISIONES)
6: DigitarDatosRevisiones
7: uifREVISIONES=CapturaRevisionDocumentos()
9: GuardarDatos(uifREVISIONES)
4: uifREVISIONES.BRC = objREVISIONES
3: objREVISIONES = ObtenerEstructura()
10: objREVISIONES = ValidarDatos(uifREVISIONES)11: PasarDatos(objREVISIONES)
8: id_corr = ObtenerCorrelativo()
12: ExecuteDMLCommand(objREVISIONES)
200
Caso de Uso Nro.25: Registrar Aprobación de Documento a Publicar.
: RIG : WebUI(tblACCIONES_USRS.ASPX) uifACCIONES_USRS : CTR(SIIWCL) (Componente)
objACCIONES_USRS : CTR(tblACCIONES_USRS.CS)
: CTR(SIICOL) (Componente)
:tblACCIONES_USRS :tblDOCUMENTOS : Base de Datos
uifACCIONES_USRS=CapturaAccionesDocumentos()- Usuario que elabora.- Usuario que revisa.- Usuario que aprueba- Fecha
ExecuteDMLCommand(objACCIONES_USRS)DML(Lenguaje de Manipulacion de Datos) - INSERT - UPDATE - DELETE
1: ElegirAccionesUsuariosDctos
2: Page_Load(ASP.smcsgi_tblacciones_usrs_aspx,EventArgs.Empty)
5: DesplegarPantallaIngreso(uifACCIONES_USRS)
9: DigitarDatosAccUsrsDctos
10: uifACCIONES_USRS=CapturaAccionesUsrDocumentos()
12: GuardarDatos(uifACCIONES_USRS)
4: uifACCIONES_USRS.BRC = objACCIONES_USRS
3: objACCIONES_USRS = ObtenerEstructura()
13: objACCIONES_USRS = ValidarDatos(uifACCIONES_USRS)
14: PasarDatos(objACCIONES_USRS)
11: id_corr = ObtenerCorrelativo()
15: ExecuteDMLCommand(objACCIONES_USRS)
6: TipoDoc_id = ObtenerTipoDocumento(Doc_Id)
7: ListaUsuarios = ObtenerListaUsuarios(TipoDoc_id, Activo)
8: uifACCIONES_USRS = ListaUsuarios
201
5.3 Diseño de clases 11
11 A efectos de practicidad se vio conveniente utilizar el diagrama de clases que tiene incorporado Visual Studio 2005.
202
5.4 Modelo Físico de la Base de Datos
tblLOGTABLASlLOGTABLA_ID: int NOT NULL
lLOGTABLA_ID_ANT: int NOT NULLsTABLA_ID: varchar(25) NOT NULL (FK)sTIPO_TRANS: varchar(1) NOT NULLsLOGTABLA_XML: text NOT NULLiESTADO: varchar(1) NOT NULLsUSU_REG: varchar(10) NOT NULLdtFEC_REG: datetime NOT NULLsUSU_MOD: varchar(10) NOT NULLdtFEC_MOD: datetime NOT NULL
tblTABLASsTABLA_ID: varchar(25) NOT NULL
sTABLA_DESC: varchar(45) NOT NULL
tblPERSONASlPERSONA_ID: int NOT NULL
sPERSONA_APAT: varchar(15) NOT NULLsPERSONA_AMAT: varchar(15) NOT NULLsPERSONA_NMB: varchar(15) NOT NULLsPERSONA_DIR: varchar(45) NULLsPERSONA_TEL: varchar(25) NULLlSUPERVISOR_ID: int NOT NULLlLOGTABLA_ID: int NOT NULL
tblUSUARIOSsUSUARIO_ID: varchar(10) NOT NULL
lPERSONA_ID: int NOT NULL (FK)lTIPO_USR_ID: int NOT NULL (FK)sAREA_UND_ID: varchar(4) NOT NULL (FK)lSECC_DPTO_ID: int NOT NULL (FK)sUSUARIO_PASS: varchar(10) NOT NULLsUSUARIO_EMAIL: varchar(45) NOT NULLsUSUARIO_IP: varchar(15) NOT NULLsUSUARIO_FIRMA: text NOT NULLsUSUARIO_AUT: varchar(1) NOT NULLlLOGTABLA_ID: int NOT NULL
tblCLASESlCLASE_ID: int NOT NULL
sCLASE_DESC: varchar(45) NOT NULLlLOGTABLA_ID: int NOT NULL
tblSECCIONES_DPTOlSECC_DPTO_ID: int NOT NULL
sSECC_DPTO_DESC: varchar(45) NOT NULLlCLASE_ID: int NOT NULL (FK)lLOGTABLA_ID: int NOT NULL
tblTIPOS_USRSlTIPO_USR_ID: int NOT NULL
lTIPO_USR_DESC: varchar(45) NOT NULLsTIPO_SUPER_USR: varchar(1) NOT NULLlLOGTABLA_ID: int NOT NULL
tblACCESOS_PRGsPROGRAMA_ID: varchar(10) NOT NULL (FK)sUSUARIO_ID: varchar(10) NOT NULL (FK)
dtFECHA_INI: datetime NULLdtFECHA_FIN: datetime NULLiSELACC: int NULLiINSACC: int NULLiUPDACC: int NULLiDELACC: int NULLiPRNACC: int NULLlLOGTABLA_ID: int NOT NULL
tblPROGRAMASsPROGRAMA_ID: varchar(10) NOT NULL
sPROGRAMA_NMB: varchar(50) NULLsPROGRAMA_DESC: varchar(100) NULLsPROGRAMA_TIPO: varchar(10) NULLsPROGRAMA_URS: varchar(250) NULLsCLSPRG: varchar(250) NULLsCODEST: varchar(10) NULLsPROGRAMA_PAD: varchar(10) NULLsPROGRAMA_ORD: int NULLiSELPRG: int NULLiINSPRG: int NULLiUPDPRG: int NULLiDELPRG: int NULLiPRNPRG: int NULLlLOGTABLA_ID: int NOT NULL
tblESTATUSlESTATU_ID: int NOT NULL
sESTATU_DESC: varchar(45) NOT NULLlLOGTABLA_ID: int NOT NULL
tblNORMASlNORMA_ID: int NOT NULL
sNORMA_DESC: varchar(45) NOT NULLlLOGTABLA_ID: int NOT NULL
tblSECCIONESlNORMA_ID: int NOT NULL (FK)sSECCION_ID: varchar(15) NOT NULL
sSECCION_DESC: varchar(100) NOT NULLsCONTENIDO: text NULLlLOGTABLA_ID: int NOT NULL
tblTIPODCTOSsTIPODCTO_ID: varchar(3) NOT NULL
lCLASE_ID: int NOT NULL (FK)sTIPODCTO_DESC: varchar(70) NOT NULLiPLAZO: smallint NOT NULLsARCHIVO_NMB: varchar(45) NOT NULLsFORMATO_DCTO_DESC: text NULLlLOGTABLA_ID: int NOT NULL
tblAREAS_UNDsAREA_UND_ID: varchar(4) NOT NULL
sAREA_UND_DESC: varchar(45) NOT NULLlLOGTABLA_ID: int NOT NULL
tblMAT_RESPONlMAT_RESPON_ID: int NOT NULL
sUSR_ELAB_ID: varchar(10) NOT NULL (FK)sUSR_REVI_ID: varchar(10) NOT NULL (FK)sUSR_APRU_ID: varchar(10) NOT NULL (FK)sTIPODCTO_ID: varchar(3) NOT NULL (FK)sACTIVO: varchar(1) NOT NULLlLOGTABLA_ID: int NOT NULL
tblDOCUMENTOSsDOCUMENTO_ID_DOC: varchar(5) NOT NULLlDOCUMENTO_ID_CORR: int NOT NULL
sDOCUMENTO_COD: varchar(12) NULLsDOCUMENTO_DESC: varchar(70) NULLsARCHIVO_NMB: varchar(50) NULLsARCHIVO_DIR: varchar(200) NULLsDOCUMENTO: text NULLsCOMENTARIO: text NULLlDOCUMENTO_CODINT: int NULLlDOCUMENTO_ID_CORR_ANT: int NULLiDOCUMENTO_VER: int NOT NULLsDOCUMENTO_ACTIVO: varchar(1) NOT NULLsAREA_UND_ID: varchar(4) NULL (FK)sTIPODCTO_ID: varchar(3) NULL (FK)lESTATU_ID: int NULL (FK)lLOGTABLA_ID: int NOT NULL
tblREFDCTOSsDOCUMENTO_ID_DOC: varchar(5) NOT NULL (FK)iCORRELATIVO: int NOT NULLlDOCUMENTO_ID_CORR: int NOT NULL (FK)
sREFDCTO_ID: varchar(5) NOT NULLlLOGTABLA_ID: int NOT NULL
tblREVISIONESsDOCUMENTO_ID_DOC: varchar(5) NOT NULL (FK)iCORRELATIVO: int NOT NULLlDOCUMENTO_ID_CORR: int NOT NULL (FK)
dtFECHA: datetime NOT NULLsPAGINA: varchar(10) NOT NULLsCOMENTARIO: text NULLlLOGTABLA_ID: int NOT NULL
tblEXPO_DCTOSsDOCUMENTO_ID_DOC: varchar(5) NOT NULL (FK)iCORRELATIVO: int NOT NULLlDOCUMENTO_ID_CORR: int NOT NULL (FK)
lLUGAR_EXP_ID: int NOT NULL (FK)lLOGTABLA_ID: int NOT NULL
tblLUGARES_EXPlLUGAR_EXP_ID: int NOT NULL
sLUGAR_EXP_DESC: varchar(45) NOT NULLlLOGTABLA_ID: int NOT NULL
tblNORMAS_DCTOSsDOCUMENTO_ID_DOC: varchar(5) NOT NULL (FK)iCORRELATIVO: int NOT NULLlDOCUMENTO_ID_CORR: int NOT NULL (FK)
lNORMA_ID: int NOT NULL (FK)sSECCION_ID: varchar(15) NOT NULL (FK)lLOGTABLA_ID: int NOT NULL
tblACCIONES_USRSsDOCUMENTO_ID_DOC: varchar(5) NOT NULL (FK)iCORRELATIVO: int NOT NULLlDOCUMENTO_ID_CORR: int NOT NULL (FK)
sACCION_ID: varchar(2) NOT NULLsUSUARIO_ID: varchar(10) NOT NULL (FK)dtFECHA: datetime NULLsREALIZADO: varchar(2) NOT NULLlLOGTABLA_ID: int NOT NULL
tblHISTORIA_DCTOlHISTORIA_DCTO_ID: int NOT NULL
sDOCUMENTO_ID_DOC: varchar(5) NOT NULL (FK)lDOCUMENTO_ID_CORR: int NOT NULL (FK)sUSUARIO_ID_DE: varchar(10) NOT NULL (FK)sUSUARIO_ID: varchar(10) NOT NULL (FK)sCONCEPTO: varchar(3) NULLsCOMENTARIO: text NULLlLOGTABLA_ID: int NOT NULL
(Fuente: Elaboración propia)
203
6 IMPLEMENTACIÓN
6.1 Identificación de componentes
Entre los componentes utilizados tenemos:
6.1.1 Componentes propios
Barra de opciones a la cual se le permite asignar diferentes métodos.
Espacio de nombres utilizado rma_web. El nombre de la librería dinámica
rma_web.dll, el código es abierto. Nombre del componente Opciones_Web.
Lista desplegable que permite ser implementada de manera rápida y fácil.
Espacio de nombres utilizado rma_web. El nombre de la librería dinámica
rma_web.dll, el código es abierto. Nombre del componente
Lista_Desplegable.
6.1.2 Componentes Reglas del Negocio
Se genera a partir de las reglas del negocios del producto informático que se
está desarrollando. Espacio de nombres utilizado SMCSGI. . El nombre de la
librería dinámica.
6.1.3 Componentes terceros
Componente que permite realizar DML (Lenguaje de Manipulación de Datos)
sobre una Base de Datos. Espacio de nombres utilizado SIICOL. El nombre
de la librería SIICOL.dll. Nombre del componente SIICOL.
Componente que genera una interfaz de usuario. Espacio de nombres
utilizado SIIWCL. El nombre de la librería SIIWCL.dll. Nombre del
componente SIIWCL.
El código es cerrado en ambos casos.
Los componentes SIIWCL y SIICOL están basados en el patrón Abstract
Factory.
6.1.4 Componentes Open Source
Componente que permite la utilización de un editor web. Espacio de
nombres utilizado FredCK.FCKeditorV2. El nombre de la librería
FredCK.FCKeditorV2.dll
204
6.1.5 Diagrama de componentes A efectos practicos se incorpora el siguiente diagrama de componentes:
Capa de Presentacion
SIIWCL
rma_web
FredCK.FCKeditorV2
Capa de Reglas del Negocio
SMCSGI
Capa de Acceso a Datos
SIICOL
Los componentes de color rojo son desarrollo propio y obtenidos en el
codigo libre (Open Source). Los componentes de color amarillo son
obtenidos de terceras personas.
6.2 Codificación
Se detallan en el Anexo B las especificaciones del código de los
componentes propios.
205
6.3 Puesta en marcha
La aplicación web para el control de registro, administración y
circulación de documentos de SANTA MONICA COTTON S.A. se
instaló y funcionando, proporcionando seguridad en la información,
facilidad y rapidez al momento de realizar las consultas de
documentos y control de versiones sobre documentos publicados.
6.3.1 Instalación y capacitación La aplicación se instala y configura en una PC con Windows 2003 server en
febrero del 2007.
Se realizaron dos capacitaciones:
• Administración y configuración: Se capacito a RIG (Responsable de
Ingeniería) y a su Asistente en la Gestión de Documentación,
configuración de accesos y niveles de autorización de documentos.
• Uso de la aplicación: Se capacito al personal de Santa Mónica
respecto al uso de aplicación Web, formas de consultar un
documento, registrar y modificar un documento.
Hasta la finalización del proyecto la aplicación Web está funcionando
correctamente y no presenta problemas.
206
7 PRUEBAS Para el flujo de trabajo de prueba se utilizaron pruebas de caja negra y de
caja blanca en los componentes de mayor riesgo.
Prueba de caja negra: Se refiere a las pruebas que se llevan a cabo sobre la
interfaz del software, es decir que la entrada de datos es aceptada de forma
correcta.
Prueba de caja blanca: Se basa en el minucioso examen de los detalles
procedimentales, comprobándose los caminos lógicos del software de los
componentes propios.
En forma adicional se realizaron pruebas de unidad, integración y de
sistemas; sin embargo a efecto del seguimiento de la metodología utilizada
se consigna en la siguiente sección las pruebas de unidad de las principales
clases, las de integración esta asociada a los de casos de uso y su
interacción y finalmente las de sistemas.
7.1 Pruebas de Unidad
Clase Métodos Descripcion Salida OK
Este método graba el registro en la base de datos del usuario. Los datos que guarda son los siguientes:
Login rmontano Codigo de
la Persona 1 Tipo de
Usuario 1 Area del SGI a la
que
Pertenece GGL
Dpto 1
Clave de
Acceso
DA39A3EE5E6B4B0D3255BFEF95601890AFD80709
Correo
Electronico [email protected]
tblU
SU
AR
IOS
Inse
rtar
()
IP de la PC 192.0.0.120
Gua
rdar
el r
egis
tro
en la
Bas
e de
Dat
os.
207
Imagen de la Firma ninguna Autoriza
Documento S Correo
Electronico rmontano@
Excepción_Insertar() IP de la PC 7777777
Error al ingresar Mail, y dirección IP
Este método actualiza el registro en la base de datos del usuario. Los datos que se modifican son los siguientes: Codigo de
la Persona 1 Tipo de Usuario 1 Area del
SGI a la que
Pertenece GGL
Dpto 1
Clave de Acceso
DA39A3EE5E6B4B0D3255BFEF95601890AFD80709
Correo Electronico [email protected]
IP de la PC 192.0.0.120 Imagen de
la Firma ninguna
Upd
ate(
)
Autoriza
Documento S
Act
ualiz
a el
reg
istr
o en
la B
ase
de D
atos
.
Correo
Electronico rmontano@
Excepción_Update() IP de la PC 7777777
Error al ingresar Mail, y dirección IP
Delete()
Este método elimina el registro en la base de datos.
Registro Eliminado Correctamente.
Excepcion_Delete()
Error al eliminar el registro en la base de datos.
208
Clase Métodos Descripcion Salida OK Este método graba el registro en la base de datos del Documento. Los datos que guarda son los siguientes:
Nombre Documento 00001
Correlativo Doc. 1
Codigo SGI MI-SGI-00001
Descripcion Dcto. AAAAAAAAA
Nombre del Archivo 00001.pdf
Directorio Dcto. MI Directorio
Contenido del Documento
DESCRIPCION DE TODO EL DOCUMENTO
Comentario NINGUNO
Codigo Interno 1
Correlativo Doc. Ant. 1
Versión Dcto. 1
Activo ? S
Area del SGI SGI
Tipo Documento MI
Inse
rtar
()
Estatus del Dcto. 1
Gua
rdar
el r
egis
tro
en la
Bas
e de
Dat
os.
Nombre del Archivo 00001.pdf
Excepción_Insertar() Directorio Dcto. MI Directorio
Error al ingresar Nom. Dcto y Directorio
Este método graba el registro en la base de datos del Documento. Los datos que guarda son los siguientes:
Descripcion Dcto. AAAAAAAAA
Nombre del Archivo 00001.pdf
Directorio Dcto. MI Directorio
Contenido del Documento
DESCRIPCION DE TODO EL DOCUMENTO
Comentario NINGUNO
Codigo Interno 1
Correlativo Doc. Ant. 1
Versión Dcto. 1
Activo ? S
Area del SGI SGI
Tipo Documento MI
tblD
OC
UM
EN
TO
S
Upd
ate(
)
Estatus del Dcto. 1
Act
ualiz
a el
reg
istr
o en
la B
ase
de D
atos
.
209
Nombre del Archivo 00001.pdf
Excepción_Update() Directorio Dcto.
MI Directorio
Error al ingresar Nom. Dcto y Directorio
Delete() Este método elimina el registro en la base de datos.
Excepcion_Delete()
Error al eliminar el registro en la base de datos.
Clase Métodos Descripcion Salida OK Numero de Dcto. 00001
Correlativo Acc. Dcto. 2
Correlativo ID. Dcto. 1
Accion a Realizar RE
Usuario rgarcia
Fecha 08-Ago-07
Inse
rtar
()
Realizado NO Gua
rdar
el r
egis
tro
en la
B
ase
de D
atos
.
Excepción_Insertar()
Error al guardar los registros.
Accion a Realizar RE
Usuario rgarcia
Fecha 08-Ago-07 U
pdat
e()
Realizado NO A
ctua
liza
el
regi
stro
en
la
base
de
dato
s.
Excepción_Udate()
Error al actualizar los registros.
Delete() Este método elimina el registro en la base de datos.
tblA
CC
ION
ES
_US
R
Excepcion_Delete()
Error al eliminar el registro en la base de datos.
Clase Métodos Descripcion Salida OK
Numero de Dcto. 00001 Correlativo Acc. Dcto. 1 Correlativo ID. Dcto. 1
Fecha 08-Ago-07 Nro de Pagina 2 In
sert
ar()
Comentario NINGUNO
Gua
rdar
el
regi
stro
en
la
Bas
e de
Dat
os.
Nro de Pagina Asddz2 tblR
EV
ISIO
NE
S
Excepción_Insertar()
Error al guardar los registros.
210
Fecha 08-Ago-07
Nro de Pagina 2
Upd
ate(
)
Comentario NINGUNO Act
ualiz
a el
reg
istr
o en
la
base
de
dato
s
Nro de Pagina Xcxcx2 Excepción_Update()
Error al actualizar los registros.
Delete() Este método elimina el registro en la base de datos.
Excepcion_Delete()
Error al eliminar el registro en la base de datos.
7.2 Pruebas de Casos de Uso.
Caso de Uso Nro.1
Entrada Salida OK
Administrar Personas.
lPERSONA_ID 1
sPERSONA_APAT MONTAÑO
sPERSONA_AMAT AGUILERA
sPERSONA_NMB RODNIE
sPERSONA_DIR
AV. SIEMPRE VIVA
sPERSONA_TEL 70028772
lSUPERVISOR_ID 3
lLOGTABLA_ID 300
Sus datos fueron guardados correctamente.
Caso de Uso
Nro.2 Entrada Salida OK
Administrar Tipos de Usuario.
lTIPO_USR_ID 1
lTIPO_USR_DESC ADMINISTRADOR
sTIPO_SUPER_USR S
lLOGTABLA_ID 400
Sus datos fueron guardados correctamente.
Caso de Uso Nro.3 Entrada Salida OK Administrar Clases. lCLASE_ID 1
sCLASE_DESC INTERNO
lLOGTABLA_ID 4
Sus datos fueron guardados correctamente.
Caso de
Uso Nro.4
Entrada Salida OK
Administrar Usuarios.
sUSUARIO_ID rmontano
lPERSONA_ID 1
lTIPO_USR_ID 1
Errores encontrados en el
211
sAREA_UND_ID GGL
lSECC_DPTO_ID 1
sUSUARIO_PASS
DA39A3EE5E6B4B0D3255BFEF95601890AFD80709
sUSUARIO_EMAIL rmontano@
sUSUARIO_IP 7777777 sUSUARIO_FIRM
A ninguna
sUSUARIO_AUT S
lLOGTABLA_ID 600
Email y en la IP del usuario.
Caso de Uso Nro.5 Entrada Salida OK Administrar Tipos de Departamentos.
lSECC_DPTO_ID 1
sSECC_DPTO_DESC SISTEMAS
lCLASE_ID 1
lLOGTABLA_ID 500
Sus datos fueron guardados correctamente.
Caso de Uso
Nro.6 Entrada Salida OK
Administrar Áreas del SGI.
sAREA_UND_ID GAF
sAREA_UND_DESC
GERENCIA DE ADMINISTRACION Y FINANZAS
lLOGTABLA_ID 17
Sus datos fueron guardados correctamente.
Caso de Uso
Nro.7 Entrada Salida OK
Administrar Tipos de Documentos.
sTIPODCTO_ID MI
lCLASE_ID 1
sTIPODCTO_DESC
MANUAL DEL SISTEMA INTEGRADO
iPLAZO 9999
sARCHIVO_NMB NO APLICA
lLOGTABLA_ID 6
Sus datos fueron guardados correctamente.
212
Caso de Uso Nro.8 Entrada Salida OK Administrar Estatus del Documento.
lESTATU_ID 1
sESTATU_DESC ACTIVO
lLOGTABLA_ID 1
Sus datos fueron guardados correctamente.
Caso de Uso Nro.9 Entrada Salida OK Administrar Estándares (ISO).
lNORMA_ID 1
sNORMA_DESC 9001:2000
lLOGTABLA_ID 50
Sus datos fueron guardados correctamente.
Caso de Uso Nro.10
Entrada Salida OK
Administrar Repartos de Estándar (ISO).
lNORMA_ID 1
sSECCION_ID 0
sSECCION_DESC INTRODUCCION ISO 9001
sCONTENIDO
ASPECTOS GENERALES SOBRE ISO 9001:2000
lLOGTABLA_ID 60
Sus datos fueron guardados correctamente.
Caso de Uso
Nro.11 Entrada Salida OK
Administrar Matriz de responsabilidades.
lMAT_RESPON_ID 1
sUSR_ELAB_ID rmontano
sUSR_REVI_ID rgarcia
sUSR_APRU_ID apetricevi
sTIPODCTO_ID MI
sACTIVO S
lLOGTABLA_ID 999
Sus datos fueron guardados correctamente.
Caso de Uso Nro.12
Entrada Salida OK
Administrar Lugares de exposición.
lLUGAR_EXP_ID 2
sLUGAR_EXP_DESC SALA DIRECTORIO
lLOGTABLA_ID 41
Sus datos fueron guardados correctamente.
213
Caso de Uso
Nro.13
Entrada Salida OK
Adm
inis
trar
Opc
ione
s de
l men
ú.
sPROGRAMA_ID SGI_ACC_PR sPROGRAMA_NM
B Accesos a Programas
sPROGRAMA_DESC
Acceso a programas de Acciones sobre un
documento sPROGRAMA_TIP
O FORM
sPROGRAMA_URS Cccccxxxxxxxx
sCLSPRG null
sCODEST ENABLE
sPROGRAMA_PAD Adfasdfasdfasd
sPROGRAMA_ORD 1
iSELPRG 0
iINSPRG 1
iUPDPRG 0
iDELPRG 0
iPRNPRG 1
lLOGTABLA_ID 1024
Err
ores
en
la U
RL
del P
rogr
ama.
UR
L no
adm
itida
. N
ombr
e de
pro
gram
a pa
dre
no v
alid
o.
Caso
de Uso Nro.14
Entrada Salida OK
Adm
inis
trar
Acc
esos
a
opci
ones
del
men
ú.
sPROGRAMA_ID SGI_ACC_PR
sUSUARIO_ID rmontano
dtFECHA_INI 01-Oct-06
dtFECHA_FIN 31-Dic-15
iSELACC 1
iINSACC 1
iUPDACC 1
iDELACC 1
iPRNACC 1
lLOGTABLA_ID 657
Sus
dat
os fu
eron
gu
arda
dos
corr
ecta
men
te.
214
Caso de Uso Nro.15
Entrada Salida OK
Administrar Tablas.
sTABLA_ID tblPERSONAS
sTABLA_DESC TABLA PARA EL REGISTRO DE PERSONAS
sLOGTABLA_ID 83
Sus datos fueron guardados correctamente.
Caso
de Uso
Nro.16
Entrada Salida OK
Nue
vo D
ocum
ento
.
sDOCUMENTO_ID_DOC 00001
lDOCUMENTO_ID_CORR 1
sDOCUMENTO_DESC AAAAAAAAA
sDOCUMENTO DESCRIPCION DE TODO EL DOCUMENTO
sCOMENTARIO NINGUNO
lDOCUMENTO_CODINT 1
lDOCUMENTO_ID_CORR_ANT 1
iDOCUMENTO_VER 1
sDOCUMENTO_ACTIVO N
lESTATU_ID 1
sFORMATO_DCTO_ID PR
lLOGTABLA_ID 30 S
us d
atos
fuer
on g
uard
ados
co
rrec
tam
ente
.
215
Caso
de Uso
Nro.17
Entrada Salida OK
Mod
ifica
r D
ocum
ento
Pub
licad
o.
sDOCUMENTO_ID_DOC 00001
lDOCUMENTO_ID_CORR 2
sDOCUMENTO_DESC AAAAAAAAA MODIFICADO
sDOCUMENTO DESCRIPCION DE TODO EL DOCUMENTO
sCOMENTARIO NINGUNO MODIFICADO
lDOCUMENTO_CODINT 1
lDOCUMENTO_ID_CORR_ANT 1
iDOCUMENTO_VER 2
sDOCUMENTO_ACTIVO N
lESTATU_ID 1
sFORMATO_DCTO_ID PR
lLOGTABLA_ID 31
Sus
dat
os fu
eron
gua
rdad
os
corr
ecta
men
te.
Caso
de Uso
Nro.18
Entrada Salida OK
Ges
tión
de D
ocum
ento
par
a se
r P
ublic
ado.
sDOCUMENTO_ID_DOC 00001
lDOCUMENTO_ID_CORR 1
sDOCUMENTO_COD MI-SGI-00001
sDOCUMENTO_DESC AAAAAAAAA
sARCHIVO_NMB Zzzzzzzzzzzzzzzzz.zzzzzzz
sARCHIVO_DIR MI
sDOCUMENTO DESCRIPCION DE TODO EL DOCUMENTO
sCOMENTARIO NINGUNO
lDOCUMENTO_CODINT 1 lDOCUMENTO_ID_CORR_AN
T 1
iDOCUMENTO_VER 1
sDOCUMENTO_ACTIVO S
sAREA_UND_ID SGI
sTIPODCTO_ID MI
lESTATU_ID 1
sFORMATO_DCTO_ID PR
lLOGTABLA_ID 30
Nom
bre
del a
rchi
vo y
ext
ensi
on n
o pe
rmiti
das.
216
Caso de Uso
Nro.19
Entrada Salida OK
Administrar Exposición de Documento a Publicar.
sDOCUMENTO_ID_DOC 00001
iCORRELATIVO 1
lDOCUMENTO_ID_CORR 1
lLUGAR_EXP_ID 2
lLOGTABLA_ID 70
Sus datos fueron guardados correctamente.
Caso de
Uso Nro.20
Entrada Salida OK
Administrar Revisión de Documento a Publicar.
sDOCUMENTO_ID_DOC 00001
iCORRELATIVO 1
lDOCUMENTO_ID_CORR 1
dtFECHA 08-Ago-07
sPAGINA 2
sCOMENTARIO NINGUNO
lLOGTABLA_ID 800
Sus datos fueron guardados correctamente.
Caso de Uso Nro.22
Entrada Salida OK
Administrar Acápites o Normas de Estándares de (ISO) de un documento a publicar.
sDOCUMENTO_ID_DOC 00001
iCORRELATIVO 1
lDOCUMENTO_ID_CORR 1
lNORMA_ID 1
sSECCION_ID xxxxx
lLOGTABLA_ID 200
Seccion de Norma ISO no existe. Error al ingresar el acápite de la Norma.
Caso de
Uso Nro.23
Entrada Salida OK
Administrar Acciones de un Documento a Publicar.
sDOCUMENTO_ID_DOC 00001
iCORRELATIVO 2
lDOCUMENTO_ID_CORR 1
sACCION_ID RE
sUSUARIO_ID rgarcia
dtFECHA 08-Ago-07
sREALIZADO NO
lLOGTABLA_ID 801
Sus datos fueron guardados correctamente.
217
Caso de Uso
Nro.24
Entrada Salida OK
Registrar Revisión de Documento a Publicar.
sDOCUMENTO_ID_DOC 00001
iCORRELATIVO 2
lDOCUMENTO_ID_CORR 1
sACCION_ID RE
sUSUARIO_ID rgarcia
dtFECHA 08-Ago-07
sREALIZADO SI
lLOGTABLA_ID 801
Sus datos fueron guardados correctamente.
Caso de Uso
Nro.25
Entrada Salida OK
Registrar Aprobación de Documento a Publicar.
sDOCUMENTO_ID_DOC 00001
iCORRELATIVO 3
lDOCUMENTO_ID_CORR 1
sACCION_ID AP
sUSUARIO_ID apetricevic
dtFECHA 08-Ago-07
sREALIZADO SI
lLOGTABLA_ID 801
Sus datos fueron guardados correctamente.
7.3 Pruebas de sistema
Se instalo la aplicación web en un equipo de las carácterísticas indicadas y
se hizo una prueba piloto con tres usuarios. Tambien se hicieron pruebas de
cargas de archivos simultáneas con tres usuarios. Estas pruebas fueron
satisfactorias.
218
8 CONCLUSIONES Y RECOMENDACIONES 8.1 Conclusiones
• Mediante entrevistas no estructuradas y análisis documental que
permitieron la identificación de los requerimientos necesarios para la
creación de la aplicación Web los cuales se puede concluir que cumplen
a cabalidad y han sido validados por la organización.
• Se diseño la arquitectura y base de datos necesaria para satisfacer los
requerimientos, lo que nos permite concluir que la aplicación web
funcionara en forma robusta y confiable, y que el desarrollo basado en
componentes es una alternativa rápida y factible para reducir los costos
de desarrollo.
• Se hicieron las pruebas en la plataforma, para asegurar su correcto y
seguro funcionamiento utilizando diferentes tipos de pruebas para
garantizar la fiabilidad de la información resultante del proceso.
• Se concluye que la implantación de la aplicación ha sido realizada con
éxito y se ha realizado las capacitaciones necesarias para el éxito del
proyecto.
El seguimiento de la metodología permite minimizar los cambios en el
desarrollo de la aplicación web y su aceptación por parte del cliente.
8.2 Recomendaciones
• Se recomienda un mayor estudio respecto a procesos y los registros
propios de ISO 9001:2000, con el fin de implementar los módulos
restantes procesos y auditorias.
• Es recomendable considerar futuros cambios en la norma ISO 9001:2000
y su impacto en la aplicación.
• En el proceso de instalación de las herramientas que forman parte del
software de base se debe tomar en cuenta los siguiente aspectos:
o Habilitar el servicio ASP .NET State Service en automático.
o Habilitar el servicio de Internet Information Services.
o Tener SP1 de Microsoft Visual Studio 2005 para un mejor
desempeño en el desarrollo.
219
9 BIBLIOGRAFIA NORMAS ISO [Instituto Boliviano de Normalización y Calidad “IBNORCA”] Directrices para la documentación del sistema de gestión de calidad Norma Boliviana NB-ISO/TR 10013 [Roger S. Pressman “Ingeniería de Software” Quinta Edición] [Olsina,L. et al., “Specifying Quality Characteristics and Attributes for Web Sites”] [Roger S. Pressman “Ingeniería de Software” Quinta Edición] [Brown, A.W., y K.C. Wallnau “Engineering of Component Based System”,Component-Based Software Engineering, IEEE Computer Society Press,1996,pp.7-15] [LAR2003] Larman, Craig. UML y patrones, Prentice Hall, 2003 Analisis y Diseño Orientado a Objetos con UML y Rational Rose(Editorial Macro Perú). [JAC2000] Jacobson, I., Booch, G., Rumbaugh, J. El proceso unificado de desarrollo de software, Addison Wesley, 2000 http://www.wilsoft-la.com/superdoc.htm Software de control documental. Su manejo es muy fácil pues emplea los estándares de Windows de 32 bits (98/NT), por lo que cualquier usuario que haya usado este tipo de aplicaciones no tendrá ninguna dificultad para aprovechar toda la potencia de QDoc. http://www.isocio.com/ software integrado para elaborar, introducir, mantener y certificar conforme a las exigencias de los estándares internacionales de ISO (ISO 9001:2000, 14001:2004, 10002:2004, 19011:2002, 18001:1998 (OHSAS) y/o HACCP/ISO 22000:2005 - los sistemas de gestión de calidad (protección del medio ambiente, la seguridad de trabajo) o seguridad de productos alimenticios. www.microsoft.com/msdn/default.aspx www.dce2005.com http://www.csharpcorner.com/UploadFile/rajeshvs/PrototypePatternsinCS11142005003823AM/PrototypePatternsinCS.aspx http://www.microsoft.com/Spanish/msdn/arquitectura/BuildSecNetApps/html/01_HowTo.mspx http://www.microsoft.com/spanish/msdn/arquitectura/default.asp
220
ANEXOS
Anexo A: Lista de requerimientos
1. El administrador del sitio Web podrá realizar (ABM) de personas.
2. El administrador del sitio Web podrá realizar (ABM) de tipos de
usuarios.
3. El administrador del sitio Web podrá realizar (ABM) de clases.
4. El administrador del sitio Web podrá realizar (ABM) de relacionar
usuario con persona.
5. El coordinador de documentos podrá realizar (ABM) de los
Departamentos de la empresa y asignación de usuarios a un
Departamento específico.
6. El coordinador de documentos podrá realizar (ABM) a los perfiles
de los diferentes tipos de documentos, Clase de Documentos,
estado de un documento, acciones que se realizan respecto a un
documento que se quiere publicar, y las unidades de reparto que
corresponde cada documento al momento de ser publicado
(Gerencias).
7. El usuario de SMC podrá realizar (AM) de un documento.
8. El coordinador de documentos podrá realizar publicaciones de un
documento como así también puede sacar dicho documento de la
línea de publicación.
9. Los usuarios de SMC autorizados podrán realizar Acciones sobre
un documento antes de ser publicado. Ejemplo: Elabora, Revisado,
Aprobado. Dichos registros se colocarán al final de cada
documento.
10. Los usuarios de SMC podrán realizar cambios a los documentos ya
publicados en la Intranet o Internet, previamente dicho documento
se tiene que ir nuevamente a un ambiente de liberación.
11. Los usuarios de SMC podrán acceder a versiones de documentos
anteriores.
221
12. Se podrá tener una lista de usuarios con acceso a registro de
documentos, al mismo tiempo a usuarios con permisos para
autorizar la publicación de documentos
13. Se podrá tener un listado actualizado de los lugares físicos de
exhibición de los diferentes documentos en Santa Mónica Cotton
S.A.
14. Todos los usuarios tienen acceso de lectura a los documentos
publicados dentro de la red (Internet o Intranet).
15. Se podrá tener un informe de frecuencias de consultas de los
documentos por usuario, como así también los aportes que realizan
dichos usuarios de Santa Mónica Cotton S.A.
16. Se podrá tener controlada la administración y actualizada toda la
información referente a documentación, manual de funciones y
procedimientos de Santa Mónica Cotton S.A.
222
Anexo B: Métodos principales namespace SGIBRL.SMCSGI { [Serializable] public class tblACCIONES_USRS : SIICOL.BRL.BRC { public tblACCIONES_USRS() { this.SetPropertyValue("TABLE", "tblACCIONES_USRS"); this.SetPropertyValue("NAME", "tblACCIONES_USRS"); this.SetPropertyValue("DBKEY", "SII"); this.SetPropertyValue("DESC", ""); this.SetPropertyValue("COLXROW", 1); this.CreateField("sDOCUMENTO_ID_DOC", string.Empty, "sDOCUMENTO_ID_DOC", string.Empty, Types.String, 5, true, true, string.Empty, string.Empty, false, 0, false, false, false); this.CreateField("iCORRELATIVO", string.Empty, "iCORRELATIVO", string.Empty, Types.Number, 4, true, true, string.Empty, string.Empty, false, 0, false, false, false); this.CreateField("lDOCUMENTO_ID_CORR", string.Empty, "lDOCUMENTO_ID_CORR", string.Empty, Types.Number, 4, true, true, string.Empty, string.Empty, false, 0, false, false, false); this.CreateField("sACCION_ID", string.Empty, "Tipo Accion", string.Empty, Types.String, 2, false, true, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("sUSUARIO_ID", string.Empty, "Usuario", string.Empty, Types.String, 10, false, true, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("dtFECHA", string.Empty, "Fecha", string.Empty, Types.Datetime, 8, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("sREALIZADO", string.Empty, "Realizado", string.Empty, Types.String, 2, false, true, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("lLOGTABLA_ID", string.Empty, "lLOGTABLA_ID", string.Empty, Types.Number, 10, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.BuildBRC(); } } } namespace SGIBRL.SMCSGI { [Serializable] public class tblAREAS_UND : SIICOL.BRL.BRC { SGIBRL.SMCSGI.tblLOGTABLAS brcLOGTABLA = new SGIBRL.SMCSGI.tblLOGTABLAS(); SGIBRL.SMCSGI.tblLOGTABLAS brcLOGTABLA_ANT = new SGIBRL.SMCSGI.tblLOGTABLAS(); string strTipTra = string.Empty; public tblAREAS_UND() { this.SetPropertyValue("TABLE", "tblAREAS_UND"); this.SetPropertyValue("NAME", "tblAREAS_UND"); this.SetPropertyValue("DBKEY", "SII"); this.SetPropertyValue("DESC", ""); this.SetPropertyValue("COLXROW", 1);
223
this.CreateField("sAREA_UND_ID", string.Empty, "Código", string.Empty, Types.String, 4, true, true, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("sAREA_UND_DESC", string.Empty, "Descripción", string.Empty, Types.String, 45, false, true, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("lLOGTABLA_ID", string.Empty, "lLOGTABLA_ID", string.Empty, Types.Number, 10, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.BuildBRC(); } } namespace SGIBRL.SMCSGI { [Serializable] public class tblCLASES : SIICOL.BRL.BRC { SGIBRL.SMCSGI.tblLOGTABLAS brcLOGTABLA = new SGIBRL.SMCSGI.tblLOGTABLAS(); SGIBRL.SMCSGI.tblLOGTABLAS brcLOGTABLA_ANT = new SGIBRL.SMCSGI.tblLOGTABLAS(); string strTipTra = string.Empty; public tblCLASES() { strTipTra = string.Empty; this.SetPropertyValue("TABLE", "tblCLASES"); this.SetPropertyValue("NAME", "tblCLASES"); this.SetPropertyValue("DBKEY", "SII"); this.SetPropertyValue("DESC", ""); this.SetPropertyValue("COLXROW", 1); this.CreateField("lCLASE_ID", string.Empty, "Código", string.Empty, Types.Number, 4, true, true, string.Empty, string.Empty, true, 0, true, false, false); this.CreateField("sCLASE_DESC", string.Empty, "Descripción", string.Empty, Types.String, 45, false, true, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("lLOGTABLA_ID", string.Empty, "lLOGTABLA_ID", string.Empty, Types.Number, 10, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.BuildBRC(); } public int GetRowMax() { int intCodigo = 0; string strSQL = "SELECT MAX(lCLASE_ID) AS Maximo FROM " + this.GetPropertyValue("TABLE"); System.Data.DataSet dtsProxy = this.ExecuteQueryString(strSQL); dtsProxy.Tables[0].TableName = "TABLA"; int.TryParse(dtsProxy.Tables["TABLA"].Rows[0]["Maximo"].ToString(), out intCodigo); intCodigo++; return intCodigo; } }
224
namespace SGIBRL.SMCSGI { [Serializable] public class tblDOCUMENTOS : SIICOL.BRL.BRC { public tblDOCUMENTOS() { this.SetPropertyValue("TABLE", "tblDOCUMENTOS"); this.SetPropertyValue("NAME", "tblDOCUMENTOS"); this.SetPropertyValue("DBKEY", "SII"); this.SetPropertyValue("DESC", ""); this.SetPropertyValue("COLXROW", 1); this.CreateField("sDOCUMENTO_ID_DOC", string.Empty, "Codigo del Documento", string.Empty, Types.String, 5, true, true, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("lDOCUMENTO_ID_CORR", string.Empty, "Correlativo", string.Empty, Types.Number, 4, true, true, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("sDOCUMENTO_COD", string.Empty, "Codigo Interno", string.Empty, Types.String, 12, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("sDOCUMENTO_DESC", string.Empty, "Nombre del Documento", string.Empty, Types.String, 70, false, false, string.Empty, string.Empty, true, 0, false, false, false); //this.CreateField("DCTO_CUERPO", "", "<input id='Button1' type='button' value='Documento' onclick='javascript:Documento_Det();' />", "", Types.String, 0, false, false, string.Empty, string.Empty, true, 2, true, false, false); this.CreateField("sARCHIVO_NMB", string.Empty, "Nombre del Archivo", string.Empty, Types.String, 50, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("sARCHIVO_DIR", string.Empty, "Directorio", string.Empty, Types.String, 200, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("sDOCUMENTO", string.Empty, "DOCUMENTO", string.Empty, Types.String, 20000M, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("sCOMENTARIO", string.Empty, "COMENTARIO", string.Empty, Types.String, 200.90M, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("lDOCUMENTO_CODINT", string.Empty, "lDOCUMENTO_CODINT", string.Empty, Types.Number, 4, false, false, string.Empty, string.Empty, false, 0, false, false, false); this.CreateField("lDOCUMENTO_ID_CORR_ANT", string.Empty, "lDOCUMENTO_ID_CORR_ANT", string.Empty, Types.Number, 4, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("iDOCUMENTO_VER", string.Empty, "Estado de Revisión", string.Empty, Types.Number, 4, false, true, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("sDOCUMENTO_ACTIVO", string.Empty, "Activo", string.Empty, Types.String, 1, false, true, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("sAREA_UND_ID", string.Empty, "Area Del SGI", string.Empty, Types.String, 4, false, false, "SQL: SELECT sAREA_UND_ID,sAREA_UND_DESC FROM tblAREAS_UND ", string.Empty, true, 0, false, false, false); this.CreateField("sTIPODCTO_ID", string.Empty, "Tipo de Documento", string.Empty, Types.String, 3, false, false, "SQL: SELECT sTIPODCTO_ID,sTIPODCTO_DESC FROM tblTIPODCTOS", string.Empty, true, 0, false, false, false);
225
this.CreateField("lESTATU_ID", string.Empty, "Estatus", string.Empty, Types.Number, 4, false, false, "SQL: SELECT lESTATU_ID, sESTATU_DESC FROM tblESTATUS", string.Empty, true, 0, false, false, false); this.CreateField("sFORMATO_DCTO_id", string.Empty, "Formato Documento", string.Empty, Types.String, 2, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("lLOGTABLA_ID", string.Empty, "lLOGTABLA_ID", string.Empty, Types.Number, 10, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.BuildBRC(); } } } namespace SGIBRL.SMCSGI { [Serializable] public class tblESTATUS : SIICOL.BRL.BRC { SGIBRL.SMCSGI.tblLOGTABLAS brcLOGTABLA = new SGIBRL.SMCSGI.tblLOGTABLAS(); SGIBRL.SMCSGI.tblLOGTABLAS brcLOGTABLA_ANT = new SGIBRL.SMCSGI.tblLOGTABLAS(); string strTipTra = string.Empty; public tblESTATUS() { this.SetPropertyValue("TABLE", "tblESTATUS"); this.SetPropertyValue("NAME", "tblESTATUS"); this.SetPropertyValue("DBKEY", "SII"); this.SetPropertyValue("DESC", ""); this.SetPropertyValue("COLXROW", 1); this.CreateField("lESTATU_ID", string.Empty, "Código", string.Empty, Types.Number, 4, true, true, string.Empty, string.Empty, true, 0, true, false, false); this.CreateField("sESTATU_DESC", string.Empty, "Descripción", string.Empty, Types.String, 45, false, true, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("lLOGTABLA_ID", string.Empty, "lLOGTABLA_ID", string.Empty, Types.Number, 10, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.BuildBRC(); } public int GetRowMax() { int intCodigo = 0; string strSQL = "SELECT MAX(lESTATU_ID) AS Maximo FROM " + this.GetPropertyValue("TABLE"); System.Data.DataSet dtsProxy = this.ExecuteQueryString(strSQL); dtsProxy.Tables[0].TableName = "TABLA"; int.TryParse(dtsProxy.Tables["TABLA"].Rows[0]["Maximo"].ToString(), out intCodigo); intCodigo++; return intCodigo; } } namespace SGIBRL.SMCSGI {
226
[Serializable] public class tblEXPO_DCTOS : SIICOL.BRL.BRC { public tblEXPO_DCTOS() { this.SetPropertyValue("TABLE", "tblEXPO_DCTOS"); this.SetPropertyValue("NAME", "tblEXPO_DCTOS"); this.SetPropertyValue("DBKEY", "SII"); this.SetPropertyValue("DESC", ""); this.SetPropertyValue("COLXROW", 1); this.CreateField("sDOCUMENTO_ID_DOC", string.Empty, "sDOCUMENTO_ID_DOC", string.Empty, Types.String, 5, true, true, string.Empty, string.Empty, false, 0, false, false, false); this.CreateField("iCORRELATIVO", string.Empty, "iCORRELATIVO", string.Empty, Types.Number, 4, true, true, string.Empty, string.Empty,false, 0, false, false, false); this.CreateField("lDOCUMENTO_ID_CORR", string.Empty, "lDOCUMENTO_ID_CORR", string.Empty, Types.Number, 4, true, true, string.Empty, string.Empty, false, 0, false, false, false); this.CreateField("lLUGAR_EXP_ID", string.Empty, "Lugar Exposicion", string.Empty, Types.String, 5, false, true, "SQL: SELECT lLUGAR_EXP_ID, sLUGAR_EXP_DESC FROM tblLUGARES_EXP", string.Empty, true, 0, false, false, true); this.CreateField("lLOGTABLA_ID", string.Empty, "lLOGTABLA_ID", string.Empty, Types.Number, 10, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.BuildBRC(); } } } namespace SGIBRL.SMCSGI { [Serializable] public class tblFORMATO_DCTOS:SIICOL.BRL.BRC { SGIBRL.SMCSGI.tblLOGTABLAS brcLOGTABLA = new SGIBRL.SMCSGI.tblLOGTABLAS(); SGIBRL.SMCSGI.tblLOGTABLAS brcLOGTABLA_ANT = new SGIBRL.SMCSGI.tblLOGTABLAS(); string strTipTra = string.Empty; public tblFORMATO_DCTOS() { this.SetPropertyValue("TABLE", "tblFORMATO_DCTOS"); this.SetPropertyValue("NAME", "tblFORMATO_DCTOS"); this.SetPropertyValue("DBKEY", "SII"); this.SetPropertyValue("DESC", ""); this.SetPropertyValue("COLXROW", 1); this.CreateField("sFORMATO_DCTO_ID", string.Empty, "Código", string.Empty, Types.String, 2, true, true, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("sFORMATO_DCTO_DESC", string.Empty, "Descripción", string.Empty, Types.String, 20000, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("lLOGTABLA_ID", string.Empty, "lLOGTABLA_ID", string.Empty, Types.Number, 10, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.BuildBRC(); } }
227
namespace SGIBRL.SMCSGI { [Serializable] public class tblHISTORIA_DCTO : SIICOL.BRL.BRC { public tblHISTORIA_DCTO() { this.SetPropertyValue("TABLE", "tblHISTORIA_DCTO"); this.SetPropertyValue("NAME", "tblHISTORIA_DCTO"); this.SetPropertyValue("DBKEY", "SII"); this.SetPropertyValue("DESC", ""); this.SetPropertyValue("COLXROW", 1); this.CreateField("lHISTORIA_DCTO_ID", string.Empty, "lHISTORIA_DCTO_ID", string.Empty, Types.Number, 4, true, true, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("sDOCUMENTO_ID_DOC", string.Empty, "sDOCUMENTO_ID_DOC", string.Empty, Types.String, 5, false, true, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("lDOCUMENTO_ID_CORR", string.Empty, "lDOCUMENTO_ID_CORR", string.Empty, Types.Number, 4, false, true, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("sUSUARIO_ID_DE", string.Empty, "sUSUARIO_ID_DE", string.Empty, Types.String, 10, false, true, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("sUSUARIO_ID", string.Empty, "sUSUARIO_ID", string.Empty, Types.String, 10, false, true, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("sCONCEPTO", string.Empty, "sCONCEPTO", string.Empty, Types.String, 3, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("sCOMENTARIO", string.Empty, "sCOMENTARIO", string.Empty, Types.String, 2147483647, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("lLOGTABLA_ID", string.Empty, "lLOGTABLA_ID", string.Empty, Types.Number, 10, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.BuildBRC(); } } } namespace SGIBRL.SMCSGI { [Serializable] public class tblLUGARES_EXP : SIICOL.BRL.BRC { SGIBRL.SMCSGI.tblLOGTABLAS brcLOGTABLA = new SGIBRL.SMCSGI.tblLOGTABLAS(); SGIBRL.SMCSGI.tblLOGTABLAS brcLOGTABLA_ANT = new SGIBRL.SMCSGI.tblLOGTABLAS(); string strTipTra = string.Empty; public tblLUGARES_EXP() { this.SetPropertyValue("TABLE", "tblLUGARES_EXP"); this.SetPropertyValue("NAME", "tblLUGARES_EXP"); this.SetPropertyValue("DBKEY", "SII"); this.SetPropertyValue("DESC", ""); this.SetPropertyValue("COLXROW", 1);
228
this.CreateField("lLUGAR_EXP_ID", string.Empty, "Código", string.Empty, Types.Number, 4, true, true, string.Empty, string.Empty, true, 0, true, false, false); this.CreateField("sLUGAR_EXP_DESC", string.Empty, "Descripción", string.Empty, Types.String, 45, false, true, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("lLOGTABLA_ID", string.Empty, "lLOGTABLA_ID", string.Empty, Types.Number, 10, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.BuildBRC(); } public int GetRowMax() { int intCodigo = 0; string strSQL = "SELECT MAX(lLUGAR_EXP_ID) AS Maximo FROM " + this.GetPropertyValue("TABLE"); System.Data.DataSet dtsProxy = this.ExecuteQueryString(strSQL); dtsProxy.Tables[0].TableName = "TABLA"; int.TryParse(dtsProxy.Tables["TABLA"].Rows[0]["Maximo"].ToString(), out intCodigo); intCodigo++; return intCodigo; } } namespace SGIBRL.SMCSGI { [Serializable] public class tblMAT_RESPON : SIICOL.BRL.BRC { public tblMAT_RESPON() { this.SetPropertyValue("TABLE", "tblMAT_RESPON"); this.SetPropertyValue("NAME", "tblMAT_RESPON"); this.SetPropertyValue("DBKEY", "SII"); this.SetPropertyValue("DESC", ""); this.SetPropertyValue("COLXROW", 1); this.CreateField("lMAT_RESPON_ID", string.Empty, "Codigo", string.Empty, Types.Number, 4, true, true, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("sUSR_ELAB_ID", string.Empty, "Usuario Elabora", string.Empty, Types.String, 10, false, true, "SQL: SELECT sUSUARIO_ID, sUSUARIO_ID FROM tblUSUARIOS", string.Empty, true, 0, false, false, false); this.CreateField("sUSR_REVI_ID", string.Empty, "Usuario Revisa", string.Empty, Types.String, 10, false, true, "SQL: SELECT sUSUARIO_ID, sUSUARIO_ID FROM tblUSUARIOS", string.Empty, true, 0, false, false, false); this.CreateField("sUSR_APRU_ID", string.Empty, "Usuario Aprueba", string.Empty, Types.String, 10, false, true, "SQL: SELECT sUSUARIO_ID, sUSUARIO_ID FROM tblUSUARIOS", string.Empty, true, 0, false, false, false); this.CreateField("sTIPODCTO_ID", string.Empty, "Tipo de Documento", string.Empty, Types.String, 3, false, true, "SQL: SELECT sTIPODCTO_ID, sTIPODCTO_DESC FROM tblTIPODCTOS", string.Empty, true, 0, false, false, false); this.CreateField("sACTIVO", string.Empty, "Activo", string.Empty, Types.String, 1, false, true, "VAL: | ;S|SI;N|NO", string.Empty, true, 0, false, false, false); this.CreateField("lLOGTABLA_ID", string.Empty, "lLOGTABLA_ID", string.Empty, Types.Number, 10, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.BuildBRC(); } } }
229
namespace SGIBRL.SMCSGI { [Serializable] public class tblNORMAS : SIICOL.BRL.BRC { SGIBRL.SMCSGI.tblLOGTABLAS brcLOGTABLA = new SGIBRL.SMCSGI.tblLOGTABLAS(); SGIBRL.SMCSGI.tblLOGTABLAS brcLOGTABLA_ANT = new SGIBRL.SMCSGI.tblLOGTABLAS(); string strTipTra = string.Empty; public tblNORMAS() { this.SetPropertyValue("TABLE", "tblNORMAS"); this.SetPropertyValue("NAME", "tblNORMAS"); this.SetPropertyValue("DBKEY", "SII"); this.SetPropertyValue("DESC", ""); this.SetPropertyValue("COLXROW", 1); this.CreateField("lNORMA_ID", string.Empty, "Código", string.Empty, Types.Number, 4, true, true, string.Empty, string.Empty, true, 0, true, false, false); this.CreateField("sNORMA_DESC", string.Empty, "Descripción", string.Empty, Types.String, 45, false, true, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("lLOGTABLA_ID", string.Empty, "lLOGTABLA_ID", string.Empty, Types.Number, 10, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.BuildBRC(); } public int GetRowMax() { int intCodigo = 0; string strSQL = "SELECT MAX(lNORMA_ID) AS Maximo FROM " + this.GetPropertyValue("TABLE"); System.Data.DataSet dtsProxy = this.ExecuteQueryString(strSQL); dtsProxy.Tables[0].TableName = "TABLA"; int.TryParse(dtsProxy.Tables["TABLA"].Rows[0]["Maximo"].ToString(), out intCodigo); intCodigo++; return intCodigo; } } namespace SGIBRL.SMCSGI { [Serializable] public class tblNORMAS_DCTOS:SIICOL.BRL.BRC { public tblNORMAS_DCTOS() { this.SetPropertyValue("TABLE", "tblNORMAS_DCTOS"); this.SetPropertyValue("NAME", "tblNORMAS_DCTOS"); this.SetPropertyValue("DBKEY", "SII"); this.SetPropertyValue("DESC", ""); this.SetPropertyValue("COLXROW", 1); this.CreateField("sDOCUMENTO_ID_DOC", string.Empty, "sDOCUMENTO_ID_DOC", string.Empty, Types.String, 5, true, true, string.Empty, string.Empty, false, 0, false, false, false); this.CreateField("iCORRELATIVO", string.Empty, "iCORRELATIVO", string.Empty, Types.Number, 4, true, true, string.Empty, string.Empty, false, 0, false, false, false);
230
this.CreateField("lDOCUMENTO_ID_CORR", string.Empty, "lDOCUMENTO_ID_CORR", string.Empty, Types.Number, 4, true, true, string.Empty, string.Empty, false, 0, false, false, false); this.CreateField("lNORMA_ID", string.Empty, "Norma", string.Empty, Types.Number, 4, false, true, "SQL: SELECT lNORMA_ID, sNORMA_DESC FROM tblNORMAS", string.Empty, true, 0, false, false, false); this.CreateField("sSECCION_ID", string.Empty, "Seccion", string.Empty, Types.String, 15, false, true, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("lLOGTABLA_ID", string.Empty, "lLOGTABLA_ID", string.Empty, Types.Number, 10, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.BuildBRC(); } } } namespace SGIBRL.SMCSGI { [Serializable] public class tblPERSONAS : SIICOL.BRL.BRC { SGIBRL.SMCSGI.tblLOGTABLAS brcLOGTABLA = new SGIBRL.SMCSGI.tblLOGTABLAS(); SGIBRL.SMCSGI.tblLOGTABLAS brcLOGTABLA_ANT = new SGIBRL.SMCSGI.tblLOGTABLAS(); string strTipTra = string.Empty; public tblPERSONAS() { this.SetPropertyValue("TABLE", "tblPERSONAS"); this.SetPropertyValue("NAME", "tblPERSONAS"); this.SetPropertyValue("DBKEY", "SII"); this.SetPropertyValue("DESC", "Registro de Datos Personales"); this.SetPropertyValue("COLXROW", 1); this.CreateField("lPERSONA_ID", string.Empty, "CODIGO", string.Empty, Types.Number, 4, true, true, string.Empty, string.Empty, true, 0, true, false, false); this.CreateField("sPERSONA_APAT", string.Empty, "APELLIDO PATERNO", string.Empty, Types.String, 15, false, true, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("sPERSONA_AMAT", string.Empty, "APELLIDO MATERNO", string.Empty, Types.String, 15, false, true, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("sPERSONA_NMB", string.Empty, "NOMBRE", string.Empty, Types.String, 15, false, true, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("sPERSONA_DIR", string.Empty, "DIRECCION", string.Empty, Types.String, 45, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("sPERSONA_TEL", string.Empty, "TELEFONO", string.Empty, Types.String, 25, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("lSUPERVISOR_ID", string.Empty, "SUPERVISOR", string.Empty, Types.Number, 4, false, true, "SQL: SELECT lPERSONA_ID+' ', sPERSONA_APAT+' '+sPERSONA_AMAT+' '+sPERSONA_NMB FROM tblPERSONAS", string.Empty, true, 0, false, false, false); this.CreateField("lLOGTABLA_ID", string.Empty, "lLOGTABLA_ID", string.Empty, Types.Number, 10, false, false, string.Empty, string.Empty, true, 0, false, false, false);
231
this.BuildBRC(); } public int GetRowMax() { int intCodigo = 0; string strSQL = "SELECT MAX(lPERSONA_ID) AS Maximo FROM " + this.GetPropertyValue("TABLE"); System.Data.DataSet dtsProxy = this.ExecuteQueryString(strSQL); dtsProxy.Tables[0].TableName = "TABLA"; int.TryParse(dtsProxy.Tables["TABLA"].Rows[0]["Maximo"].ToString(), out intCodigo); intCodigo++; return intCodigo; } } namespace SGIBRL.SMCSGI { [Serializable] public class tblREFDCTOS : SIICOL.BRL.BRC { public tblREFDCTOS() { this.SetPropertyValue("TABLE", "tblREFDCTOS"); this.SetPropertyValue("NAME", "tblREFDCTOS"); this.SetPropertyValue("DBKEY", "SII"); this.SetPropertyValue("DESC", ""); this.SetPropertyValue("COLXROW", 1); this.CreateField("sDOCUMENTO_ID_DOC", string.Empty, "sDOCUMENTO_ID_DOC", string.Empty, Types.String, 5, true, true, string.Empty, string.Empty, false, 0, false, false, false); this.CreateField("iCORRELATIVO", string.Empty, "iCORRELATIVO", string.Empty, Types.Number, 4, true, true, string.Empty, string.Empty, false, 0, false, false, false); this.CreateField("lDOCUMENTO_ID_CORR", string.Empty, "lDOCUMENTO_ID_CORR", string.Empty, Types.Number, 4, true, true, string.Empty, string.Empty, false, 0, false, false, false); this.CreateField("sREFDCTO_ID", string.Empty, "DOCUMENTOS DE REFERENCIA", string.Empty, Types.String, 5, false, true, "SQL: SELECT sDOCUMENTO_ID_DOC, sDOCUMENTO_COD +' '+sDOCUMENTO_DESC FROM tblDOCUMENTOS", string.Empty, true, 0, false, false, false); this.CreateField("lLOGTABLA_ID", string.Empty, "lLOGTABLA_ID", string.Empty, Types.Number, 10, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.BuildBRC(); } } } namespace SGIBRL.SMCSGI { [Serializable] public class tblREVISIONES : SIICOL.BRL.BRC { public tblREVISIONES() { this.SetPropertyValue("TABLE", "tblREVISIONES"); this.SetPropertyValue("NAME", "tblREVISIONES"); this.SetPropertyValue("DBKEY", "SII");
232
this.SetPropertyValue("DESC", ""); this.SetPropertyValue("COLXROW", 1); this.CreateField("sDOCUMENTO_ID_DOC", string.Empty, "sDOCUMENTO_ID_DOC", string.Empty, Types.String, 5, true, true, string.Empty, string.Empty, false, 0, false, false, false); this.CreateField("iCORRELATIVO", string.Empty, "iCORRELATIVO", string.Empty, Types.Number, 4, true, true, string.Empty, string.Empty, false, 0, false, false, false); this.CreateField("lDOCUMENTO_ID_CORR", string.Empty, "lDOCUMENTO_ID_CORR", string.Empty, Types.Number, 4, true, true, string.Empty, string.Empty, false, 0, false, false, false); this.CreateField("dtFECHA", string.Empty, "Fecha", string.Empty, Types.Datetime, 8, false, true, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("sPAGINA", string.Empty, "Pagina", string.Empty, Types.String, 10, false, true, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("sCOMENTARIO", string.Empty, "Comentario", string.Empty, Types.String, 200.90M, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("lLOGTABLA_ID", string.Empty, "lLOGTABLA_ID", string.Empty, Types.Number, 10, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.BuildBRC(); } } } namespace SGIBRL.SMCSGI { [Serializable] public class tblSECCIONES : SIICOL.BRL.BRC { SGIBRL.SMCSGI.tblLOGTABLAS brcLOGTABLA = new SGIBRL.SMCSGI.tblLOGTABLAS(); SGIBRL.SMCSGI.tblLOGTABLAS brcLOGTABLA_ANT = new SGIBRL.SMCSGI.tblLOGTABLAS(); string strTipTra = string.Empty; public tblSECCIONES() { this.SetPropertyValue("TABLE", "tblSECCIONES"); this.SetPropertyValue("NAME", "tblSECCIONES"); this.SetPropertyValue("DBKEY", "SII"); this.SetPropertyValue("DESC", ""); this.SetPropertyValue("COLXROW", 1); this.CreateField("lNORMA_ID", string.Empty, "Estandar ISO", string.Empty, Types.Number, 4, true, true, "SQL: SELECT lNORMA_ID, sNORMA_DESC FROM tblNORMAS", string.Empty, true, 0, false, false, false); this.CreateField("sSECCION_ID", string.Empty, "Acapite o Reparto", string.Empty, Types.String, 15, true, true, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("sSECCION_DESC", string.Empty, "Descripcion", string.Empty, Types.String, 100, false, true, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("sCONTENIDO", string.Empty, "Contenido", string.Empty, Types.String, 200.90M, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("lLOGTABLA_ID", string.Empty, "lLOGTABLA_ID", string.Empty, Types.Number, 10, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("lNORMA_ID_AUX", string.Empty, "lNORMA_ID_AUX", string.Empty, Types.Number, 4, false, false, string.Empty, string.Empty, false, 0, false, false, true); this.BuildBRC(); } }
233
namespace SGIBRL.SMCSGI { [Serializable] public class tblSECCIONES_DPTO : SIICOL.BRL.BRC { SGIBRL.SMCSGI.tblLOGTABLAS brcLOGTABLA = new SGIBRL.SMCSGI.tblLOGTABLAS(); SGIBRL.SMCSGI.tblLOGTABLAS brcLOGTABLA_ANT = new SGIBRL.SMCSGI.tblLOGTABLAS(); string strTipTra = string.Empty; public tblSECCIONES_DPTO() { this.SetPropertyValue("TABLE", "tblSECCIONES_DPTO"); this.SetPropertyValue("NAME", "tblSECCIONES_DPTO"); this.SetPropertyValue("DBKEY", "SII"); this.SetPropertyValue("DESC", ""); this.SetPropertyValue("COLXROW", 1); this.CreateField("lSECC_DPTO_ID", string.Empty, "Código", string.Empty, Types.Number, 4, true, true, string.Empty, string.Empty, true, 0, true, false, false); this.CreateField("sSECC_DPTO_DESC", string.Empty, "Descripción", string.Empty, Types.String, 45, false, true, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("lCLASE_ID", string.Empty, "Clase Documento", string.Empty, Types.Number, 4, false, true, "SQL: SELECT lCLASE_ID, sCLASE_DESC FROM tblCLASES", string.Empty, true, 0, false, false, false); this.CreateField("lLOGTABLA_ID", string.Empty, "lLOGTABLA_ID", string.Empty, Types.Number, 10, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.BuildBRC(); } public int GetRowMax() { int intCodigo = 0; string strSQL = "SELECT MAX(lSECC_DPTO_ID) AS Maximo FROM " + this.GetPropertyValue("TABLE"); System.Data.DataSet dtsProxy = this.ExecuteQueryString(strSQL); dtsProxy.Tables[0].TableName = "TABLA"; int.TryParse(dtsProxy.Tables["TABLA"].Rows[0]["Maximo"].ToString(), out intCodigo); intCodigo++; return intCodigo; } } namespace SGIBRL.SMCSGI { [Serializable] public class tblTIPODCTOS : SIICOL.BRL.BRC { SGIBRL.SMCSGI.tblLOGTABLAS brcLOGTABLA = new SGIBRL.SMCSGI.tblLOGTABLAS(); SGIBRL.SMCSGI.tblLOGTABLAS brcLOGTABLA_ANT = new SGIBRL.SMCSGI.tblLOGTABLAS(); string strTipTra = string.Empty; public tblTIPODCTOS() { this.SetPropertyValue("TABLE", "tblTIPODCTOS"); this.SetPropertyValue("NAME", "tblTIPODCTOS"); this.SetPropertyValue("DBKEY", "SII");
234
this.SetPropertyValue("DESC", ""); this.SetPropertyValue("COLXROW", 1); this.CreateField("sTIPODCTO_ID", string.Empty, "Código", string.Empty, Types.String, 3, true, true, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("lCLASE_ID", string.Empty, "Clase de Documento", string.Empty, Types.Number, 4, false, true, "SQL: SELECT lCLASE_ID, sCLASE_DESC FROM tblCLASES", string.Empty, true, 0, false, false, false); this.CreateField("sTIPODCTO_DESC", string.Empty, "Descripción", string.Empty, Types.String, 70, false, true, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("iPLAZO", string.Empty, "Plazo en Meses", string.Empty, Types.Number, 2, false, true, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("sARCHIVO_NMB", string.Empty, "Nombre de Archivo", string.Empty, Types.String, 45, false, true, string.Empty, string.Empty, false, 0, false, false, false); this.CreateField("sFORMATO_DCTO_DESC", string.Empty, "Contenido", string.Empty, Types.String, 20000, false, false, string.Empty, string.Empty, false, 0, false, false, false); this.CreateField("lLOGTABLA_ID", string.Empty, "lLOGTABLA_ID", string.Empty, Types.Number, 10, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("deDestino", string.Empty, "deDestino", string.Empty, Types.String, 200, false, false, string.Empty, string.Empty, false, 0, false, false, true); this.BuildBRC(); } } namespace SGIBRL.SMCSGI { [Serializable] public class tblTIPOS_USRS : SIICOL.BRL.BRC { SGIBRL.SMCSGI.tblLOGTABLAS brcLOGTABLA = new SGIBRL.SMCSGI.tblLOGTABLAS(); SGIBRL.SMCSGI.tblLOGTABLAS brcLOGTABLA_ANT = new SGIBRL.SMCSGI.tblLOGTABLAS(); string strTipTra = string.Empty; public tblTIPOS_USRS() { this.SetPropertyValue("TABLE", "tblTIPOS_USRS"); this.SetPropertyValue("NAME", "tblTIPOS_USRS"); this.SetPropertyValue("DBKEY", "SII"); this.SetPropertyValue("DESC", ""); this.SetPropertyValue("COLXROW", 1); this.CreateField("lTIPO_USR_ID", string.Empty, "Código", string.Empty, Types.Number, 4, true, true, string.Empty, string.Empty, true, 0, true, false, false); this.CreateField("lTIPO_USR_DESC", string.Empty, "Descripción", string.Empty, Types.String, 45, false, true, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("sTIPO_SUPER_USR", string.Empty, "Super Usuario", string.Empty, Types.String, 1, false, true, "VAL:S|SI;N|NO", string.Empty, true, 0, false, false, false); this.CreateField("lLOGTABLA_ID", string.Empty, "lLOGTABLA_ID", string.Empty, Types.Number, 10, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.BuildBRC(); } public int GetRowMax()
235
{ int intCodigo = 0; string strSQL = "SELECT MAX(lTIPO_USR_ID) AS Maximo FROM " + this.GetPropertyValue("TABLE"); System.Data.DataSet dtsProxy = this.ExecuteQueryString(strSQL); dtsProxy.Tables[0].TableName = "TABLA"; int.TryParse(dtsProxy.Tables["TABLA"].Rows[0]["Maximo"].ToString(), out intCodigo); intCodigo++; return intCodigo; } } namespace SGIBRL.SMCSYS { [Serializable] public class tblACCESOS_PRG : SIICOL.BRL.BRC { public tblACCESOS_PRG() { this.SetPropertyValue("TABLE", "tblACCESOS_PRG"); this.SetPropertyValue("NAME", "tblACCESOS_PRG"); this.SetPropertyValue("DBKEY", "SII"); this.SetPropertyValue("DESC", ""); this.SetPropertyValue("COLXROW", 1); this.CreateField("sPROGRAMA_ID", string.Empty, "Codigo del Programa", string.Empty, Types.String, 10, true, true, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("sUSUARIO_ID", string.Empty, "Usuario", string.Empty, Types.String, 10, true, true, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("dtFECHA_INI", string.Empty, "Fecha de Inicio", string.Empty, Types.Datetime, 8, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("dtFECHA_FIN", string.Empty, "Fecha Final", string.Empty, Types.Datetime, 8, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("iSELACC", string.Empty, "Seleccionar", string.Empty, Types.Number, 4, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("iINSACC", string.Empty, "Insertar", string.Empty, Types.Number, 4, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("iUPDACC", string.Empty, "Actualizar", string.Empty, Types.Number, 4, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("iDELACC", string.Empty, "Eliminar", string.Empty, Types.Number, 4, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("iPRNACC", string.Empty, "Imprimir", string.Empty, Types.Number, 4, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("lLOGTABLA_ID", string.Empty, "lLOGTABLA_ID", string.Empty, Types.Number, 10, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.BuildBRC(); } public bool Grant(System.Collections.Hashtable hstChecked) { System.Data.Common.DbConnection conProxy = this.OpenConnection(); System.Data.Common.DbTransaction trnProxy = conProxy.BeginTransaction(); try { foreach (string strCodPrg in hstChecked.Keys) { string strWhere = "sUSUARIO_ID='{0}' AND sPROGRAMA_ID = '{1}'";
236
strWhere = string.Format(strWhere, this.GetFieldValue<string>("sUSUARIO_ID"), strCodPrg); System.Data.DataSet dtsProxy = this.GetRows(strWhere, trnProxy); if (dtsProxy.Tables["tblACCESOS_PRG"].Rows.Count > 0) { this.DeleteByLogUsrCodPrg(this.GetFieldValue<string>("sUSUARIO_ID"), strCodPrg, trnProxy); } this.SetFieldValue<string>("sPROGRAMA_ID", strCodPrg); this.SetFieldValue<System.DateTime>("dtFECHA_INI", System.DateTime.Now); this.SetFieldValue<System.DateTime>("dtFECHA_FIN", System.DateTime.Now.AddDays(365)); this.SetFieldValue<string>("iSELACC", "1"); this.SetFieldValue<string>("iINSACC", "1"); this.SetFieldValue<string>("iDELACC", "1"); this.SetFieldValue<string>("iUPDACC", "1"); this.SetFieldValue<string>("iPRNACC", "1"); this.Insert(trnProxy); } trnProxy.Commit(); conProxy.Close(); return true; } catch (System.Exception e) { System.Diagnostics.Debug.WriteLine("SOURCE " + e.Source + " MESSAGE: " + e.Message); trnProxy.Rollback(); conProxy.Close(); return false; } } public void SetGrants(SIICOL.BRL.BRC brcProxy, string strLogUsr, string strCodPrg) { string x = this.DBMS; this.SetFieldValue<string>("sUSUARIO_ID", strLogUsr); this.SetFieldValue<string>("sPROGRAMA_ID", strCodPrg); if (this.Search()) { brcProxy.AllowInsert = System.Convert.ToBoolean(this.Definition.Tables["tblACCESOS_PRG"].Rows[0]["iINSACC"]); brcProxy.AllowDelete = System.Convert.ToBoolean(this.Definition.Tables["tblACCESOS_PRG"].Rows[0]["iDELACC"]); brcProxy.AllowUpdate = System.Convert.ToBoolean(this.Definition.Tables["tblACCESOS_PRG"].Rows[0]["iUPDACC"]); brcProxy.AllowSelect = System.Convert.ToBoolean(this.Definition.Tables["tblACCESOS_PRG"].Rows[0]["iSELACC"]); brcProxy.AllowPrint = false; } } } }
237
namespace SGIBRL.SMCSYS { [Serializable] public class tblPROGRAMAS : SIICOL.BRL.BRC { public tblPROGRAMAS() { this.SetPropertyValue("TABLE", "tblPROGRAMAS"); this.SetPropertyValue("NAME", "tblPROGRAMAS"); this.SetPropertyValue("DBKEY", "SII"); this.SetPropertyValue("DESC", ""); this.SetPropertyValue("COLXROW", 1); this.CreateField("sPROGRAMA_ID", string.Empty, "Codigo del Programa", string.Empty, Types.String, 10, true, true, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("sPROGRAMA_NMB", string.Empty, "Nombre", string.Empty, Types.String, 50, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("sPROGRAMA_DESC", string.Empty, "Descripcion", string.Empty, Types.String, 100, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("sPROGRAMA_TIPO", string.Empty, "Tipo de Opcion", string.Empty, Types.String, 10, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("sPROGRAMA_URS", string.Empty, "URL", string.Empty, Types.String, 250, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("sCLSPRG", string.Empty, "Clase", string.Empty, Types.String, 250, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("sCODEST", string.Empty, "Estado", string.Empty, Types.String, 10, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("sPROGRAMA_PAD", string.Empty, "Opcion Padre", string.Empty, Types.String, 10, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("sPROGRAMA_ORD", string.Empty, "Orden", string.Empty, Types.Number, 4, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("iSELPRG", string.Empty, "Seleccionar", string.Empty, Types.Number, 4, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("iINSPRG", string.Empty, "Insertar", string.Empty, Types.Number, 4, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("iUPDPRG", string.Empty, "Actualizar", string.Empty, Types.Number, 4, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("iDELPRG", string.Empty, "Eliminar", string.Empty, Types.Number, 4, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("iPRNPRG", string.Empty, "Imprimir", string.Empty, Types.Number, 4, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("lLOGTABLA_ID", string.Empty, "lLOGTABLA_ID", string.Empty, Types.Number, 10, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.BuildBRC(); } } } namespace SGIBRL.SMCSYS { [Serializable] public class tblUSUARIOS : SIICOL.BRL.BRC { SGIBRL.SMCSGI.tblLOGTABLAS brcLOGTABLA = new SGIBRL.SMCSGI.tblLOGTABLAS();
238
SGIBRL.SMCSGI.tblLOGTABLAS brcLOGTABLA_ANT = new SGIBRL.SMCSGI.tblLOGTABLAS(); string strTipTra = string.Empty; public tblUSUARIOS() { this.SetPropertyValue("TABLE", "tblUSUARIOS"); this.SetPropertyValue("NAME", "tblUSUARIOS"); this.SetPropertyValue("DBKEY", "SII"); this.SetPropertyValue("DESC", ""); this.SetPropertyValue("COLXROW", 1); this.CreateField("sUSUARIO_ID", string.Empty, "Codigo", string.Empty, Types.String, 10, true, true, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("lPERSONA_ID", string.Empty, "Persona", string.Empty, Types.Number, 4, false, true, "SQL: SELECT lPERSONA_ID, sPERSONA_APAT+' '+sPERSONA_AMAT+' '+sPERSONA_NMB FROM tblPERSONAS", string.Empty, true, 0, false, false, false); this.CreateField("lTIPO_USR_ID", string.Empty, "Tipo de Usuario", string.Empty, Types.Number, 4, false, true, "SQL: SELECT lTIPO_USR_ID, lTIPO_USR_DESC FROM tblTIPOS_USRS", string.Empty, true, 0, false, false, false); this.CreateField("sAREA_UND_ID", string.Empty, "Area del SGI", string.Empty, Types.String, 4, false, true, "SQL: SELECT sAREA_UND_ID, sAREA_UND_DESC FROM tblAREAS_UND", string.Empty, true, 0, false, false, false); this.CreateField("lSECC_DPTO_ID", string.Empty, "Departamento", string.Empty, Types.Number, 4, false, true, "SQL: SELECT lSECC_DPTO_ID, sSECC_DPTO_DESC FROM tblSECCIONES_DPTO", string.Empty, true, 0, false, false, false); this.CreateField("sUSUARIO_PASS", string.Empty, "Password", string.Empty, Types.String, 10, false, true, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("sUSUARIO_EMAIL", string.Empty, "E-Mail", string.Empty, Types.String, 45, false, true, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("sUSUARIO_IP", string.Empty, "IP", string.Empty, Types.String, 15, false, true, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("sUSUARIO_FIRMA", string.Empty, "Firma", string.Empty, Types.String, 200.90M, false, true, string.Empty, string.Empty, true, 0, false, false, false); this.CreateField("sUSUARIO_AUT", string.Empty, "Supervisor", string.Empty, Types.String, 1, false, true, "VAL:N|NO;S|SI", string.Empty, true, 0, false, false, false); this.CreateField("lLOGTABLA_ID", string.Empty, "lLOGTABLA_ID", string.Empty, Types.Number, 10, false, false, string.Empty, string.Empty, true, 0, false, false, false); this.BuildBRC(); } public System.Data.DataSet GetRowsByLogUsrPasUsr(string strLogUsr, string strPasUsr) { string strWhere = "sUSUARIO_ID = '" + strLogUsr + "' AND sUSUARIO_PASS = '" + strPasUsr + "'"; return this.GetRows(strWhere); } public System.Data.DataSet GetRowsByLogUsr(string strLogUsr) { string strWhere = "sUSUARIO_ID='" + strLogUsr + "'"; return this.GetRows(strWhere); } public int GetCodPerByLogUsr(string strLogUsr) { System.Data.DataSet dtsProxy = this.GetRowsByLogUsr(strLogUsr); if (dtsProxy.Tables["tblUSUARIOS"].Rows.Count > 0) {
239
return System.Convert.ToInt32(dtsProxy.Tables["MAEUSR"].Rows[0]["CODPER"]); } else throw (new System.Exception("No se pudo obtener el código de la persona")); } public string GetNomPerByLogUsr(string strLogUsr) { string strWhere = string.Format("sUSUARIO_ID='{0}'", strLogUsr); System.Data.DataSet dtsProxy = this.GetRows(strWhere); string strNomCom = string.Empty; if (dtsProxy.Tables[this.GetPropertyValue("NAME")].Rows.Count > 0) { strNomCom = this.GetNomPerByCodPer(int.Parse(dtsProxy.Tables[this.GetPropertyValue("NAME")].Rows[0]["lPERSONA_ID"].ToString())); } return strNomCom; } } }