SlideShare una empresa de Scribd logo
1 de 316
Descargar para leer sin conexión
i
Aplicación Web para el Registro y Control de
Documentos de las Dependencias
Administrativas de la
Universidad Nacional Abierta
Caso de Estudio Centro Local Lara
Informe Final de Práctica Profesional
UNIVERSIDAD NACIONAL ABIERTA
VICE-RECTORADO ACADEMICO
AREA DE INGENIERIA
CARRERA INGENIERIA DE SISTEMAS
Autor: Br. Amarelis del Carmen Ybarra Dugarte C.I. 15.032.367
Tutor Académico: Prof. Pedro Luis Rodríguez C.I. 11.187.871
Tutor Empresarial: Profa. Saibel Ramos C.I.:9.837.306
Centro Local Portuguesa
MARZO, 2014
ii
INDICE GENERAL
Dedicatoria……………………………………………………………………………i
Agradecimientos……………………………………………………………………..ii
Resumen………………………………………………………………………...…..iii
Introducción…………........................................................................................1
CAPITULO I
Planteamiento del problema.............................................................................4
Objetivos……………………………………………………………………………..6
Objetivo general..........................................................................................6
Objetivos específicos……...........................................................................6
Alcance.............................................................................................................7
CAPITULO II
MARCO TEÓRICO....………………………………………………………………9
Ingeniería del Software……...............................................................12
Lenguaje Unificado de Modelado UML…………………………..........14
Objetivos de UML……..............................................................19
Uso del Lenguaje unificado de modelado...............................20
Fases del ciclo de desarrollo que soporta UML…..…………..20
Diagramas que ofrece el UML………………...…………….….21
Modelo cliente-servidor…………………………..…………..….33
Programación orientada a objetos……………………………...34
Servidor Web Seguro……………………………………..…..…36
Páginas Web……………………………………………………...37
Lenguaje SQL…………………………………………………...38
iii
Bases de Datos………………………………………………….40
Modelo Entidad-Relación……………………………………....41
Normalización……………………………………………………44
Lenguaje de Programación PHP………………………….…..50
Common Getaway Interface (CGI)……………………………52
Secure Socket Layer (SSL)……………………………………53
Sistema Operativo GNU/Linux………………………………..57
CAPITULO III
MARCO METODOLÓGICO
Dimensiones del RUP..........................................................................61
Fases…………………..……………......................................................73
Disciplinas………..……………………..................................................80
Modelado del Negocio…............................................................80
Requerimientos...........................................................................81
Análisis y Diseño.........................................................................81
Implementación...........................................................................81
Pruebas…...................................................................................82
Despliegue…………....................................................................82
Gestión y configuración de cambios...........................................82
Gestión del Proyecto……...........................................................83
Entorno…………………..............................................................84
Organización y elementos en RUP.......................................................84
Análisis y diseño de la Metodología RUP………………………………………97
CAPITULO IV
iv
ORGANIZACIÓN Y ANÁLISIS DE LOS RESULTADOS
Modelado del Negocio…………………………………………………………..107
Requerimientos………………………………………………………………….109
Especificaciones Complementarias……………………………………………112
Actores del Sistema……………………………………………………………..113
Casos de Uso………………………………………………………………….…113
Diagramas de Casos de Uso……………………………………………………116
Diagramas de Estado de RED…………………………………………………172
Diagramas de Secuencia………………………………………………………176
Asignación de Operaciones a las Clases (Control de Documentos)………185
Asignación de Operaciones a las Clases (Seguridad)……………….………186
Diagrama de Despliegue…………………………………………………..……187
Diagrama de Base de Datos..……………………………………………..……187
Modelo Entidad Relación de RED……………………………………...………191
Gestión de Proyecto: Escogencia del lenguaje de programación………….192
Escogencia del Gestor de Base de Datos……………………………………193
Actividades de formación………………………………………………………194
Recursos Adicionales……………………………………………………………195
Implementación…………………………………………………………………..195
Desarrollo de componentes y codificación de software……………………..195
Relación de los componentes con la Base de Datos…………………..……196
Funcionalidades del Sistema……………………………………………………197
Interfaz de Usuario……………………………………………………………….197
Interfaz de Acceso al Sistema RED……………………………………………198
v
Interfaz General del sistema RED……………………………………………..199
CAPITULO V
CONCLUSIONES Y
RECOMENDACIONES…………………………………………………….…....224
Bibliografía……………………………………………………………………..…227
Anexos………………………………………………………………………….…231
vi
ÍNDICE DE TABLAS
Tabla Nº 1 Estereotipo Utilizados en
la Notación WAE
31
Tabla Nº 2 Esfuerzo – Horario contra
fases del RUP
73
Tabla Nº 3 Artefactos en las Fases
de RUP
87
Tabla Nº 4 Desarrollo de la RUP
92
Tabla Nº 5 Actores del Sistema
109
Tabla Nº 6 Descripción de los Casos
de Uso
110
Tabla Nº7 Descripción de las tablas
de la Base de Datos
186
vii
INDICE DE FIGURAS
Figura Nº 1 Modelo de Cascada de
Desarrollo de Software
13
Figura Nº 2 Desarrollo de UML, con
sus versiones
16
Figura Nº 3 Casos de Uso 18
Figura Nº 4 Diagramas del UML que
expresan gráficamente un Modelo
21
Figura Nº 5 Ejemplo de Modelo de
Casos d Uso
22
Figura Nº 6 Ejemplo de un Diagrama
de Clases
25
Figura Nº 7 Ejemplo de un Diagrama
de Colaboración
26
Figura Nº 8 Ejemplo de un Diagrama
de Secuencia 29
Figura Nº 9 Modelo Cliente Servidor
en un entrono WEB
34
Figura Nº 10 Intercambio de
Información entre un Navegador
Web y un Servidor WEB
37
Figura Nº 11 Tabla en Primera forma
Normal
46
Figura Nº 12 Tabla que no está en
Segunda Forma Normal
47
Figura Nº 13 Tabla Productos 47
Figura Nº 14 Tabla Proveedores 48
Figura Nº 15 Tabla Atletas 49
Figura Nº 16 Tabla Atletas parte 1 49
viii
Figura Nº 17 Tabla Atletas parte 2 49
Figura Nº 18 Transacción usando
cifrado SSl
53
Figura Nº 19 Indicación de una
conexión segura en Navegadores
Web
55
Figura Nº 20 Historia del RUP 60
Figura Nº 21 Disciplinas, fases,
iteraciones del RUP
62
Figura Nº 22 Los Casos de Uso
integran al trabajo
63
Figura Nº 23 Trazabilidad a partir de
los Casos de Uso
64
Figura Nº 24 Evolución de la
arquitectura del sistema
66
Figura Nº 25 Los modelos se
completan, la arquitectura no cambia
drásticamente
67
Figura Nº 26 Una iteración RUP 69
Figura Nº 27 Ciclo de Vida 70
Figura Nº 28 Fases del RUP 71
Figura Nº 29 Recursos utilizados en
las fases del RUP en el tiempo
74
Figura Nº 30 Ciclo evolutivo en la
elaboración de software basado en
RUP
75
Figura Nº 31 Esfuerzo respecto de
los flujos de trabajo
76
Figura Nº 32 Esfuerzo respecto de
las fases
77
ix
Figura Nº 33 Elementos que
conforman el RUO
83
Figura Nº 34 Artefactos en las
disciplinas de la RUP
88
Figura Nº 35 Grado de finalización
de artefactos
89
Figura Nº 36 Comparación entre
diagramas de casos de uso
98
Figura Nº 37 Comparación entre
diagramas de objetos
99
Figura Nº 38 Comparación entre
diagramas de estados
100
Figura Nº 39 Comparación entre
diagramas de actividades
100
Figura Nº 40 Comparación entre
diagramas de secuencia
101
Figura Nº 41 Comparación entre
diagramas de colaboración
102
Figura Nº 42 Diagramas de
componentes
102
Figura Nº 43 Comparación entre
diagramas de despliegue
103
Figura Nº 44 Diagrama del Caso de
Uso Incluir Estado
113
Figura Nº 46 Diagrama del Caso de
Uso Eliminar Estado
115
Figura Nº 47 Diagrama del Caso de
Uso Buscar Estado
116
Figura Nº 48 Diagrama del Caso de
Uso Incluir Tipo Documento
117
Figura Nº 49 Diagrama del Caso de 118
x
Uso Modificar Tipo Documento
Figura Nº 50 Diagrama del Caso de
Uso Eliminar Tipo Documento
119
Figura Nº 51 Diagrama del Caso de
Uso Buscar Tipo Documento
120
Figura Nº 52 Diagrama del Caso de
Uso Incluir Entidad
121
Figura Nº 53 Diagrama del Caso de
Uso Modificar Entidad
122
Figura Nº 54 Diagrama del Caso de
Uso Eliminar Entidad
123
Figura Nº 55 Diagrama del Caso de
Uso Buscar Entidad
124
Figura Nº 56 Diagrama del Caso de
Uso Incluir Tipo Entidad
124
Figura Nº 56 Diagrama del Caso de
Uso Modificar Tipo Entidad
125
Figura Nº 57 Diagrama del Caso de
Uso Eliminar Tipo Entidad
126
Figura Nº 59 Diagrama del Caso de
Uso Incluir Archivo
128
Figura Nº 60 Diagrama del Caso de
Uso Modificar Archivo
129
Figura Nº 61 Diagrama del Caso de
Uso Eliminar Archivo
130
Figura Nº 62 Diagrama del Caso de
Uso Buscar Archivo
131
Figura Nº 63 Diagrama del Caso de
Uso Incluir Documento
132
Figura Nº 64 Diagrama del Caso de
Uso Modificar Documento
133
xi
Figura Nº 65 Diagrama del Caso de
Uso Eliminar Documento
135
Figura Nº 66 Diagrama del Caso de
Uso Buscar Documento
136
Figura Nº 67 Diagrama del Caso de
Uso Incluir Seguimiento
137
Figura Nº 68 Diagrama del Caso de
Uso Modificar Seguimiento
138
Figura Nº 69 Diagrama del Caso de
Uso Eliminar Seguimiento
139
Figura Nº 70 Diagrama del Caso de
Uso Buscar Seguimiento
140
Figura Nº 71 Diagrama de Caso de
Uso Reporte Tipo Documento
141
Figura Nº 73 Diagrama de Caso de
Uso Reporte Estados
143
Figura Nº 74 Diagrama de Caso de
Uso Reporte Entidades
144
Figura Nº 75 Diagrama de Caso de
Uso Reporte Documentos
145
Figura Nº 76 Diagrama de Caso de
Uso Reporte Archivadores
146
Figura Nº 77 Diagrama de Caso de
Uso Incluir Sistema
147
Figura Nº 78 Diagrama de Caso de
Uso Modificar Sistema
148
Figura Nº 79 Diagrama de Caso de
Uso Eliminar Sistema
149
Figura Nº 80 Diagrama de Caso de
Uso Buscar Sistema
150
Figura Nº 81 Diagrama de Caso de 151
xii
Uso Incluir Perfil Usuario
Figura Nº 82 Diagrama de Caso de
Uso Modificar Perfil Usuario
152
Figura Nº 83 Diagrama de Caso de
Uso Eliminar Perfil Usuario
153
Figura Nº 84 Diagrama de Caso de
Uso Buscar Perfil Usuario
154
Figura Nº 85 Diagrama de Caso de
Uso Incluir Cargo Usuario
155
Figura Nº 87 Diagrama de Caso de
Uso Eliminar Cargo Usuario
157
Figura Nº 88 Diagrama de Caso de
Uso Buscar Cargo Usuario
158
Figura Nº 89 Diagrama de Caso de
Uso Incluir Usuario
159
Figura Nº 90 Diagrama de Caso de
Uso Modificar Usuario
160
Figura Nº 91 Diagrama de Caso de
Uso Eliminar Usuario
161
Figura Nº 92 Diagrama de Caso de
Uso Buscar Usuario
162
Figura Nº 93 Modelo General del
Diagrama de Casos de Uso de RED
163
Figura Nº 94 Diagrama de Clases
(Módulo Control de Documentos)
166
Figura Nº 95 Diagrama de clases
(Módulo Seguridad)
167
Figura Nº 96 Diagrama de Clases
Usando estereotipos (Control de
documentos)
168
Figura Nº 97 Diagrama de Clases
Usando estereotipos (Seguridad)
168
xiii
Figura Nº 98 Diagrama de Estados
(Control de Documentos)
170
Figura Nº 99 Diagrama de Estados
(Seguridad)
171
Figura Nº 100 Diagrama de
Secuencia del Caso de Uso Incluir
Documento
173
Figura Nº 101 Diagrama de
Secuencia del Caso de Uso
Modificar Documento
174
Figura Nº 102 Diagrama de
Secuencia del Caso de Uso Eliminar
Documento
175
Figura Nº 103 Diagrama de
Secuencia del Caso de Uso Buscar
Documento
176
Figura Nº 104 Diagrama de
Secuencia del Caso de Uso Incluir
Seguimiento
177
Figura Nº 105 Diagrama de
Secuencia del Caso de Uso Modifica
Seguimiento
178
Figura Nº 106 Diagrama de
Secuencia del Caso de Uso Eliminar
Seguimiento
179
Figura Nº 107 Diagrama de
Secuencia del Caso de Uso Buscar
Seguimiento
180
Figura Nº 108 Diagrama de
Secuencia del Caso de Uso Reporte
Documento
181
Figura Nº 109 Diagrama de
Despliegue de RED
185
xiv
Figura Nº 110 Lenguaje de
Programación utilizado para el
desarrollo de la aplicación
191
Figura Nº 111 Interfaz del entorno
MySQL Administrator
192
Figura Nº 112 Interfaz de Inicio de
Sesión al sistema RED
269
Figura Nº 113 Interfaz de Principal
del sistema RED
270
Figura Nº 114 Interfaz del Menú del
Módulo Seguridad
271
Figura Nº 115 Interfaz para sistemas 272
Figura Nº 116 Interfaz de Perfiles de
Usuarios
272
Figura Nº 117 Interfaz de Cargos de
Usuarios
273
Figura Nº 118 Interfaz Usuarios 274
Figura Nº 119 Interfaz de salida del
sistema
274
Figura Nº 120 Interfaz para el
Usuario del Menú Definiciones
275
Figura Nº 121 Interfaz para el
Usuario del Menú Proceso
276
Figura Nº 122 Interfaz para el
Usuario del Menú Reportes
277
Figura Nº 123 Interfaz para la
Inserción, Eliminación, Modificación
y Búsqueda de Estados
278
Figura Nº 124 Interfaz de Búsqueda
de un Estado
278
Figura Nº 125 Interfaz para la 279
xv
Inserción, Eliminación, Modificación
y Búsqueda de Tipo de Documento
Figura Nº 127 Interfaz para la
Inserción, Eliminación, Modificación
y Búsqueda de Entidades
280
Figura Nº 128 Interfaz de Búsqueda
de una entidad
281
Figura Nº 129 Interfaz para la
Inserción, Eliminación, Modificación
y Búsqueda de Tipo de Entidades
281
Figura Nº 130 Interfaz de Búsqueda
para tipo de Entidades
282
Figura Nº 131 Interfaz para la
Inserción, Eliminación, Modificación
y Búsqueda de Archivos
282
Figura Nº 132 Interfaz de Búsqueda
de Archivo
283
Figura Nº 133 Interfaz para la
Inserción, Eliminación, Modificación
y Búsqueda de Documentos
284
Figura Nº 134 Interfaz de Búsqueda
de Documentos
285
Figura Nº 135 Interfaz para la
Inserción, Eliminación, Modificación
y Búsqueda de Seguimiento
286
Figura Nº 136 Interfaz de Búsqueda
de Seguimiento de Documentos
287
Figura Nº 137 Interfaz para el reporte
de Tipo de Entidades
287
Figura Nº 138 Archivo PDF de Tipo
de Entidades
288
Figura Nº 139 Interfaz de Reporte de
Tipos de Documentos
289
xvi
Figura Nº 140 Archivo PDF de Tipos
de Documentos
290
Figura Nº 141 Interfaz de Reporte de
Tipos de Estados
291
Figura Nº 142 Archivo PDF de
Estados
291
Figura Nº 143 Interfaz de Reporte
Entidades
292
Figura Nº 144 Archivo PDF de
Entidades
293
Figura Nº 145 Interfaz de Reporte de
Archivos
293
Figura Nº 146 Archivo PDF de
Archivos
294
Figura Nº 147 Interfaz de Reporte de
documentos por medio de
Descriptores
295
i
DEDICATORIA
Primero que todo quiero dedicarle éste paso en mi vida profesional a Dios
Todopoderoso y a la Santísima Virgen por darme la virtud y la fortaleza
necesaria para salir siempre adelante, pese a las dificultades; iluminando
cada paso de mi vida.
A mis Padres, Albis y Teodolinda, son ustedes quienes verdaderamente
son los dueños de éste título, sin su apoyo no lo habría logrado, mil gracias
por ser mis guías y un ejemplo de trabajo, esfuerzo y dedicación.
A mi Hermana Theisy, porque nunca dudó de que lograría este triunfo y
con la que compartí cada etapa de este camino, recibiendo siempre una
sonrisa y un apoyo irremplazable.
A mi Tío Jesús Rangel (Q.E.P.D.), quien siempre me motivó a seguir
adelante y a quien prometí terminaría mis estudios. Promesa cumplida.
Sin Ustedes no hubiese podido hacer realidad este sueño.
¡Los Amo!
ii
AGRADECIMIENTOS
A Dios y la Virgen, por ser mis guías, iluminando y protegiendo siempre
mi camino.
A mis Padres y Hermana, por sus consejos, atenciones, cariño y apoyo
incondicional a lo largo de la carrera.
A mi Esposo quien me brindó su apoyo constante y paciencia para que
pudiera terminar esta meta.
A la Universidad Nacional Abierta, mi casa de estudio, por brindarme la
formación académica requerida.
A mis Profesores Carlos Aguirre, Pedro Rodríguez y Saibel Ramos,
por su ayuda, confianza, paciencia, estímulo, calidad profesional y
conocimientos que me ayudaron a finalizar mi trabajo.
A Dra. Dora de Valderrama, Sra. María Peraza y Elizabeht Valladares,
por la comprensión, amistad, confianza, paciencia, ánimos y por darme el
permiso en mi área laboral cuando necesité ausentarme.
En General a todas aquellas personas que de una u otra forma
colaboraron o participaron en mi formación como persona y profesional, hago
extensivo mis más sinceros agradecimientos.
¡Mil Gracias!
iii
RESUMEN
La Sección Académica del Centro Local Lara de la Universidad Nacional
Abierta, es el organismo destinado para estudiar las cuestiones relacionadas
con las funciones de docencia, investigación y extensión que ejerce en dicha
universidad. Para mejorar su funcionamiento surgió la necesidad de
desarrollar un software que automatizara la Recepción y Emisión de
Documentos desde, y para este departamento. La aplicación fue desarrollada
bajo los lineamientos de la Metodología del Proceso Unificado, la cual divide
el desarrollo del proyecto en 4 fases: Inicio, Elaboración, Construcción y
Transición. Con el desarrollo de esta práctica profesional se pretendió
implantar en la Unidad Académica del Centro Local Lara de la Universidad
Nacional Abierta una aplicación que tuviese el siguiente alcance: a) Controlar
los documentos enviados y recibidos de las diferentes áreas y
departamentos del propio centro local. b) Registrar y controlar los
documentos que provienen y/o son enviados a otros centros locales o a nivel
central. c) Optimización de la búsqueda de información que requieren
consultar dichas dependencias en un momento determinado, y que
difícilmente la persona encargada en el departamento. d) Hacer un registro
adecuado de la información generada y recibida en cada departamento. Se
realizó la metodología una iteración por cada fase, se identificaron los
requisitos del departamento y se representaron en un modelo de caso de
uso. Luego se realizó el análisis y diseño de los casos de usos y de las
clases que fueron implementadas. El sistema fue codificado utilizando el
lenguaje de programación PHP (Adobe Dreamweaver CS5). Se utilizó el
sistema manejador de base de datos MySQL Administrator para la
implementación de la base de datos. Palabras claves: Unidad Sección
Académica, recepción, emisión, documentos, búsqueda, metodología.
1
INTRODUCCIÓN
En la actualidad las grandes empresas e instituciones públicas o privadas
requieren inmediatez en el manejo de información, debido a la rapidez con la
que se manejan datos en los diferentes departamentos que conforman
dichas instituciones, los cuales son de vital importancia para el buen
funcionamiento de los mismos. Es por ello que las aplicaciones Web se
están implementando en muchas empresas donde sus procesos
administrativos carecen de bases tecnológicas que ayuden a fortalecer la
estructura comunicacional de las mismas.
A mediados del siglo pasado los cambios tecnológicos se sucedían muy
lentamente, con lo cual las organizaciones disponían del tiempo suficiente
para analizar los factores relevantes y adoptar nuevas decisiones que
condujesen a su buen funcionamiento.
Actualmente, la complejidad de los sistemas va en aumento con la
aparición de nuevas tecnologías en un entorno que cambia sin cesar; el
tiempo que se tarda en transformar una necesidad identificada en el
desarrollo de un nuevo sistema operativo es cada vez más largo y los costos
asociados con el desarrollo, producción, utilización y apoyo de los sistemas
están incrementando.
Para los Ingenieros Carlos Curotto y Pablo Díaz: “En los primeros días los
sitios Web consistían de páginas estáticas, permitiendo una interacción
limitada con el usuario. Al comienzo de los años 90, estas limitaciones fueron
superadas cuando los servidores Web fueron reemplazados para permitir
comunicaciones a través del desarrollo de fragmentos de código que eran
ejecutados del lado del servidor. A partir de entonces las aplicaciones
2
dejaron de ser estáticas y solamente editadas por aquellos “gurúes” del
HTML y se permitieron a usuarios normales interactuar con las aplicaciones
por primera vez.” Este fue un paso fundamental para llegar a la Web que hoy
en día conocemos. Sin la interacción no existiría el comercio electrónico (Ej.:
Amazon.com), el Web-mail (Ej.: Gmail), Internet-banking, blogs, fórums o
comunidades online, entre otros.
A través del tiempo, el conocimiento necesario para construir
aplicaciones ha sido reducido. Hoy día, es relativamente sencillo construir
aplicaciones sofisticadas utilizando las modernas plataformas y lenguajes,
como ser PHP, .NET o Java.
La falta de manejos de sesiones y control de autorización por parte de
Common Gateway Interface (CGI) impidió el desarrollo de aplicaciones Web
comerciales con esa tecnología.
Los desarrolladores Web comenzaron entonces a utilizar lenguajes de
script, como ser JavaScript o PHP para resolver esos problemas.
Básicamente los lenguajes de script son ejecutados en el servidor Web y
como son no compilados son desarrollados e implementados más fácilmente.
El propósito de este trabajo se enmarca dentro de este interés,
enmarcada bajo los lineamientos de la Metodología RUP (Rational Unified
Process) debido a la flexibilidad que tiene de adaptarse a cualquier tipo de
proyecto haciendo uso de buenas prácticas en el desarrollo de software
como desarrollo iterativo, administrativo eficiente de requerimientos y
prototipos incrementales Es por ello que se plantea la realización de una
Aplicación Web para el Registro y Control de Documentos en las
dependencias administrativas de los Centros Locales de la Universidad
3
Nacional Abierta, la cual permitirá la optimización de la búsqueda de
información que requieren consultar en las distintas dependencias en un
momento determinado.
Esta investigación se encuentra formulada de la siguiente manera:
a) Capítulo I: abarca el Planteamiento del Problema, donde se describe la
situación del problema, el trabajo a desarrollar, la situación actual y área
problemática, así como la solución propuesta y los beneficios que la
misma traería, además del Objetivo General y los objetivos Específicos,
que se alcanzan en el desarrollo del proyecto y el Alcance del Trabajo,
en el cual se indicará hasta dónde se llegará con el trabajo, demarcando
los límites del mismo.
b) Capítulo II: engloba el Marco Teórico de la Investigación, incluye los
trabajos de investigación de diferentes autores que hacen referencia al
tema (Desarrollo de Aplicaciones WEB) y las bases teóricas que
ayudaron al desarrollo de la misma.
c) Capítulo III: corresponde al Marco Metodológico, donde se describe la
metodología a utilizar en el desarrollo de la solución propuesta.
d) Capitulo IV: contiene la Organización y Análisis de los Resultados
obtenidos en el trabajo de investigación.
e) Capítulo V: comprende las Conclusiones y Recomendaciones que
arrojaron el trabajo de investigación
4
CAPÍTULO I
PLANTEAMIENTO DEL PROBLEMA
La Unidad Académica del Centro Local Lara de la Universidad Nacional
Abierta (UNA), es el organismo destinado para estudiar las cuestiones
relacionadas con las funciones de docencia, investigación y extensión que
ejerce en dicha universidad, para el Estado Lara específicamente. Siendo
esta dependencia la que se tomará como referencia de estudio para esta
investigación, donde se pretende analizar la forma de cómo llevar de manera
automatizada la recepción y envíos de documentos en este departamento, ya
sea de manera interna o externa en el centro local.
Actualmente dicha entidad presenta la necesidad de un sistema de control
de documentos enviados y recibidos de las diferentes áreas y departamentos
del propio centro local. Es conveniente resaltar que su sistema real es el
físico, lo cual hace que dicha actividad sea lenta y en algunos casos
infructuosa, debido a que se maneja un archivo de documentos (lugar donde
se almacena el material escrito), conllevando a que exista la posibilidad de
que no sea encontrada la información requerida y así ayude a la pérdida de
tiempo y esfuerzo por parte de la persona encargada de su búsqueda. Por
ejemplo, si un profesor que recién encargan para dirigir una oficina como la
de sección académica, (unidad esta que recibe y emite diariamente muchos
documentos), es muy difícil que recuerde documentos que recibió hace un
mes, o su defecto más complicado tener en cuenta documentos que hayan
recibido antes de su gestión, esto hace la gerencia de este tipo de cargos
transitorios muy complicados ya que sin un registro indexado sea físico o
5
automatizado de los documentos procesados se haga un tarea cuesta arriba
y conlleva una pérdida de tiempo muy importante.
Por ello se requiere registrar y controlar los documentos que provienen y/o
son enviados a otros centros locales o a nivel central. Todo esto con la
finalidad de poder consultar en línea con buscadores especiales, (sobre la
intranet del centro local en estudio), la ubicación exacta del documento
solicitado en el archivo físico donde está almacenado el mismo. Dicha
búsqueda será realizada específicamente por una frase del documento, una
fecha, un tema, una dependencia, un remitente, etc.
La realización de una aplicación web para el Registro y Control de
Documentos en las dependencias administrativas de los Centros Locales de
la Universidad Nacional Abierta, permitirá la optimización de la búsqueda de
información que requieren consultar dichas dependencias en un momento
determinado, y que difícilmente la persona encargada en el departamento, en
este caso la Unidad Académica del Centro Local Lara, pueda saberla o en
su defecto recordarla. Además, por medio de dicha aplicación se podrá hacer
un registro adecuado de la información generada y recibida en cada
departamento, teniendo la posibilidad de ordenar electrónicamente la
ubicación de los documentos y hacerlos corresponder con el espacio físico
donde se encuentren.
6
OBJETIVOS
OBJETIVO GENERAL
Desarrollar una Aplicación Web para el Registro y Control de Documentos
de las Dependencias Administrativas de los Centros Locales de la
Universidad Nacional Abierta.
OBJETIVOS ESPECÍFICOS
a) Realizar el modelo del negocio, mediante el estudio y descripción de
las funciones que cumple la Unidad Académica del Centro Local Lara.
b) Especificar los requisitos, que permitan satisfacer las necesidades de
información de los usuarios del sistema que llevará el Registro y
Control de Documentos.
c) Realizar el modelado de diseño y de datos del sistema.
d) Implementar la aplicación web.
e) Realizar las pruebas necesarias para medir el comportamiento y
asegurar el buen funcionamiento de la aplicación web desarrollada.
f) Implantar la aplicación web en la Unidad Académica del Centro Local
Lara.
g) Elaborar el Informe Final de Práctica Profesional.
7
ALCANCE
Las aplicaciones Web ofrecen un complejo arreglo de contenido y
funcionalidad a una amplia población de usuarios finales y se evalúan
mediante criterios tanto técnicos como institucionales.
En base a la motivación del trabajo, en el desarrollo de esta práctica
profesional se pretende implantar en la Unidad Académica del Centro Local
Lara de la Universidad Nacional Abierta una aplicación que resuelva todos o
la mayoría de los problemas presentados como son:
a) Controlar los documentos enviados y recibidos de las diferentes
áreas y departamentos del propio centro local.
b) Registrar y controlar los documentos que provienen y/o son
enviados a otros centros locales o a nivel central. Todo esto con
la finalidad de poder consultar en línea con buscadores especiales,
(sobre la intranet del centro local en estudio), la ubicación exacta
del documento solicitado en el archivo físico donde está
almacenado el mismo. Dicha búsqueda será realizada
específicamente por una frase del documento, una fecha, un
tema, una dependencia, un remitente, etc.
8
c) Optimización de la búsqueda de información que requieren
consultar dichas dependencias en un momento determinado, y que
difícilmente la persona encargada en el departamento, en este
caso la Secretaria y/o Jefe de la Unidad Académica del Centro
Local Lara, pueda saberla o en su defecto recordarla.
d) Hacer un registro adecuado de la información generada y recibida
en cada departamento, teniendo la posibilidad de ordenar
electrónicamente la ubicación de los documentos y hacerlos
corresponder con el espacio físico donde se encuentren.
Sin embargo como toda aplicación, esta no está exenta de presentar
algunas limitaciones, entre las cuales podemos mencionar:
a) Dificultades para obtener en las aplicaciones Web
comportamientos clásicos de aplicaciones stand-alone (Hecho a la
medida).
b) Necesidad de aprendizaje de lenguajes adicionales (HTML,
JavaScript, CSS) que pertenecen al basamento del desarrollo de
aplicaciones Web, para construir apropiadamente la aplicación.
Es importante acotar que la aplicación propuesta posee características
valiosas que nos servirán como punto de partida para resolver el tema
planteado, es decir llevar el registro y control de todos los documentos en las
dependencias administrativas, para así evitar la pérdida de datos e
información y con ello implantar una novedosa aplicación que podrá ser
instalada en cualquier departamento e incluso en instituciones ajenas a la
Universidad Nacional Abierta en un momento dado y de esta forma ayudar al
crecimiento en materia tecnológica a quienes lo requieran.
9
CAPÍTULO II
MARCO TEÓRICO
Dentro de la línea de investigación que se ha realizado a cerca de las
aplicaciones Web sea recopiló información de varios autores que sirvieron
como soporte para llevar a cabo tal investigación. Entre los trabajos más
relevantes que aportaron información (aplicaciones web y metodología a
usar) sobre el tema tratado en este estudio se encuentran:
 Intriago Macias, Ana Yadira (2013), en su trabajo de grado
Desarrollo e Implementación de un Aplicación Web de encuestas de
satisfacción docente y currículum para la Facultad de Ciencias
Informáticas, permite obtener el currículum actualizado y realizar
encuestas online y conocer la satisfacción del docente en las
diferentes áreas, sean estas académicas, gestión, investigación,
vinculación, infraestructura, entre otras.
 Tubay Vergara, José Luis (2010), realizó como tesis de grado
Desarrollo de una Aplicación Web para el control de Avances
Académicos y Asistencia de Docentes, con la cual se puede obtener
10
un control de cada uno de los Docentes en el cumplimiento
académico de una manera fácil y rápida.
 Guariman Rondón, Oscar Enrique (2009), en su trabajo de grado
Diseño de una aplicación Web para la Gestión en Línea de los
Servicios Académicos de una Institución de Educación Superior se
refiere al diseño de una aplicación informática utilizando tecnología
Web. Este permitirá la gestión en línea de los servicios académicos de
la Universidad Bolivariana de Venezuela (UBV), la cual está distribuida
en 5 sedes en todo el territorio nacional. La UBV ofrece Programas de
Formación de Grado que se imparten no sólo en la sede, sino también
en otras instalaciones denominadas “aldeas”. Para la recolección de
información acerca de los procesos que dan soporte a los servicios
académicos como son: las inscripciones, solicitud de documentos,
registro de notas, prosecución del estudiante, entre otros, se
emplearon técnicas como la entrevista y observación directa.
 Blanco, Ignacio Carlos (2008), en su trabajo de tesis denominado
Plataformas de desarrollo de Aplicaciones Web orientadas a
componentes reutilizables, estudia las plataformas de desarrollo de
aplicaciones Web existentes teniendo en cuenta su arquitectura, los
servicios prestados así como también sus fortalezas y debilidades. En
base al análisis comparativo y a un conjunto de requerimientos
necesarios para el desarrollo de aplicaciones Web empresariales se
planteará una posible solución, una plataforma, que cumpla con los
requerimientos y a la vez que resuelva las debilidades encontradas en
las plataformas estudiadas.
11
 Mora Luján, Sergio (2002), en su trabajo sobre Programación sobre
Aplicaciones Web, nos explica que las aplicaciones web permiten la
generación automática de contenido, la creación de páginas
personalizadas según el perfil del usuario o el desarrollo del comercio
electrónico, además permite interactuar con los sistemas informáticos
de gestión de un empresa, como puede ser gestión de clientes,
contabilidad o inventario a través de una página web. También nos
señala que las aplicaciones web se encuentran dentro de las
arquitecturas cliente/servidor.
 Para el año 2001 el estudiante Iván José Puglieser Saroff realizó el
trabajo de grado “Desarrollo del Sistema de Compras
Cliente/Servidor para la Universidad de Oriente, Núcleo
Anzoátegui”, En este trabajo se plantea la necesidad de que en la
Universidad de Oriente Núcleo Anzoátegui se desarrolle un sistema
que permita gestionar las compras de la Universidad de Oriente
núcleo Anzoátegui, para lo cual el estudiante Iván Puglieser diseñó
una herramienta para gestionar el procesamiento de las solicitudes de
compras, ordenes de compras, hojas de análisis e informe de
recepción. El análisis y diseño de esta aplicación fue realizado
mediante la notación UML (Unified Modeling Language) y fue
implantado bajo la tecnología cliente/servidor.
 Para el año 2001 el estudiante Alfredo Molero desarrolló el trabajo
titulado “Diseño de la Intranet de la Escuela de Medicina de la
Universidad de Oriente Núcleo de Anzoátegui”. Donde se plantea
el diseño e implantación de un proyecto de alto nivel tecnológico que
solvente los problemas de comunicación y coordinación de índole
académico-administrativo de la escuela de medicina. Para ello de
12
diseño una infraestructura de hardware y software que conformó la
Intranet de dicha escuela la cual permitió el uso de aplicaciones que
se diseñaron para el uso en la Intranet así como herramientas que
permitieran ayudar al control de las distintas actividades
administrativas.
BASES TEÓRICAS
A continuación se presentarán una serie de conceptos y definiciones
relacionadas con el tema central de este trabajo.
INGENIERÍA DE SOFTWARE
El proceso de ingeniería de software se define como “un conjunto de
etapas parcialmente ordenadas con la intención de lograr un objetivo, en este
caso, la obtención de un producto de software de calidad…".Roger Presman
Ingeniería del Software (Pág…24) El proceso de desarrollo de software “es
aquel en que las necesidades del usuario son traducidas en requerimientos
de software, estos requerimientos transformados en diseño y el diseño
implementado en código, el código es probado, documentado y certificado
para su uso operativo". Concretamente "define quién está haciendo qué,
cuándo hacerlo y cómo alcanzar un cierto objetivo…." (Pág…24).
El proceso de desarrollo de software requiere por un lado un conjunto
de conceptos, una metodología y un lenguaje propio. A este proceso también
se le llama el ciclo de vida del software que comprende cuatro grandes fases:
concepción, elaboración, construcción y transición (véase figura Nº 1).
13
La concepción define el alcance del proyecto y desarrolla un caso de
negocio, la elaboración define un plan del proyecto, especifica las
características y fundamenta la arquitectura, la construcción crea el producto
y la transición transfiere el producto a los usuarios.
Figura Nº 1 Modelo de Cascada de Desarrollo de Software.
Fuente: elaboración propia, año: 2014.
Actualmente se encuentra en una etapa de madurez el enfoque OO
(Orientado a Objetos) como paradigma del desarrollo de sistemas de
información. El (OMG) Object Management Group es un consorcio a nivel
internacional que integra a los principales representantes en la industria de la
tecnología de información OO, éste tiene como objetivo central la promoción,
fortalecimiento e impulso de la tecnología OO, propone y adopta por
consenso especificaciones entorno a esta. Una de las especificaciones más
importantes es la adopción en 1998 del Lenguaje de Modelado Unificado o
UML como un estándar, que junto con el Proceso Unificado están
consolidando la tecnología OO.
14
LENGUAJE UNIFICADO DE MODELADO UML
UML surge como respuesta al problema de contar con un lenguaje
estándar para escribir planos de software. Muchas personas han creído ver
UML como solución para todos los problemas sin saber en muchos casos de
lo que se trataba en realidad.
El Lenguaje Unificado de Modelado, UML es una notación estándar para
el modelado de sistemas software, resultado de una propuesta de
estandarización promovida por el consorcio OMG (Object Management
Group),del cual forman parte las empresas más importantes que se dedican
al desarrollo de software, en 1996.
UML representa la unificación de las notaciones de los métodos Booch,
Objectory (Ivar Jacobson) y OMT (James Rumbaugh) siendo su sucesor
directory compatible. Igualmente, UML incorpora ideas de otros metodólogos
entre los que se pueden incluir a Peter Coad, Derek Coleman, Ward
Cunningham, David Harel, Richard Helm, Ralph Johnson, Stephen Mellor,
Bertrand Meyer, Jim Odell, Kenny Rubin, Sally Shlaer, John Vlissides, Paul
Ward, Rebecca Wirfs-Brock y Ed Yourdon.
En Septiembre de 2001 se ha publicada la especificación de la versión1.4.
Es importante recalcar que sólo se trata de una notación, es decir, de una
serie de reglas y recomendaciones para representar modelos. UML no es un
proceso de desarrollo, es decir, no describe los pasos sistemáticos a seguir
para desarrollar software. UML sólo permite documentar y especificar los
elementos creados mediante un lenguaje común describiendo modelos.
El Lenguaje Unificado de Modelado o UML es una técnica para la
especificación de sistemas en todas sus fases. Esta ha sido desarrollada por
15
los más importantes autores en materia de análisis y diseño de sistemas, ha
sido usada con éxito en sistemas hechos para toda clase de industrias
alrededor del mundo: salud, bancos, comunicaciones, aeronáutica, finanzas,
etc.
UML no es un lenguaje de programación. Existen herramientas que
pueden ofrecer generadores de código de UML para una gran variedad de
lenguaje de programación, así como construir modelos por ingeniería inversa
a partir de programas existentes. Este es pues un lenguaje de propósito
general para el modelado orientado a objetos, UML es también un lenguaje
de modelamiento visual que permite una abstracción del sistema y sus
componentes.
En la figura Nº 2 se puede observar el desarrollo de UML y sus versiones
en los años dados, sufriendo revisiones menores, y ciertos participantes en
las diversas versiones.
16
Figura Nº 2. Desarrollo de UML, con sus versiones
Fuente: http://www.usmp.edu.pe/publicaciones/boletin/fia/info21/fig_uml.jpg
UML es un lenguaje de propósito general para el modelado orientado a
objetos, que combina notaciones provenientes desde: Modelado Orientado a
Objetos, Modelado de Datos, Modelado de Componentes, Modelado de
Flujos de Trabajo (Workflows).
En todos los ámbitos de la ingeniería se construyen modelos, en realidad,
simplificaciones de la realidad, para comprender mejor el sistema que vamos
a desarrollar: los arquitectos utilizan y construyen planos (modelos) delos
edificios, los grandes diseñadores de coches preparan modelos en sistemas
existentes con todos los detalles y los ingenieros de software deberían
igualmente construir modelos de los sistemas software.
17
Un enfoque sistemático permite construir estos modelos de una forma
consistente demostrando su utilidad en sistemas de cierto tamaño. Cuando
se trata de un programa de cincuenta, cien líneas, la utilidad del modelado
parece discutible pero cuando involucramos a cientos de desarrolladores
trabajando y compartiendo información, el uso de modelos y el proporcionar
información sobre las decisiones tomadas, es vital no sólo durante el
desarrollo del proyecto, sino una vez finalizado éste, cuando se requiere
algún cambio en el sistema. En realidad, incluso en el proyecto más simple
los desarrolladores hacen algo de modelado, si bien informalmente.
Para la construcción de modelos, hay que centrarse en los detalles
relevantes mientras se ignoran los demás, por lo cual con un único modelo
no tenemos bastante.
Como Inconvenientes en UML se tiene que Como todo en el desarrollo
de software UML presenta ciertos inconvenientes, entre los cuales se pueden
mencionar: Falta integración con respecto de otras técnicas tales como
patrones de diseño, interfaces de usuario, documentación, etc., los ejemplos
aislados, el monopolio de conceptos, técnicas y métodos en torno a UML.
También se prevé varias perspectivas de UML ya que por ser un lenguaje
de propósito general será un lenguaje de modelado orientado a objetos
estándar predominante los próximos años, esto se basa en las siguientes
razones:
 Participación de metodólogos influyentes
 Participación de importantes empresas
 Aceptación del OMG como notación estándar
Se muestran las siguientes evidencias que apoyan lo antedicho:
18
 Herramientas que proveen la notación UML
 “Edición” de libros
 Congresos, cursos, “camisetas”, etc.
Descripción de los diagramas Un modelo captura una vista de un sistema
del mundo real. Es una abstracción de dicho sistema, considerando un cierto
propósito. Así, el modelo describe completamente aquellos aspectos del
sistema que son relevantes al propósito del modelo, y a un apropiado nivel
de detalle. Un diagrama es una representación gráfica de una colección de
elementos de modelado, a menudo dibujada como un grafo con vértices
conectados por arcos
Un proceso de desarrollo de software debe ofrecer un conjunto de
modelos que permitan expresar el producto desde cada una de las
perspectivas de interés. Es aquí donde se hace evidente la importancia de
UML en el contexto de un proceso de desarrollo de software.
El código fuente del sistema es el modelo más detallado del sistema (y
además es ejecutable). Sin embargo, se requieren otros modelos.
Figura Nº 3. Relaciones de enlaces entre modelos
Fuente: http://www.monografias.com/trabajos-pdf5/diagramas-casos-
uso/image001.jpg
19
Cada modelo es completo desde su punto de vista del sistema, sin
embargo, existen relaciones de enlaces entre los diferentes modelos (figura
Nº 3).
Objetivos del lenguaje unificado de modelado.
UML es un lenguaje de modelado que pueden usar todos los modeladores.
No tiene propietario y está basado en el común acuerdo de gran parte de la
comunidad informática.
UML no pretende ser un método de desarrollo completo, pues no incluye
un proceso de desarrollo paso a paso, pero puede manejar todos los
conceptos que se consideran necesarios para utilizar un proceso moderno de
desarrollo, basado en construir una sólida arquitectura para resolver
requisitos dirigidos por casos de uso, por otro lado busca ser tan simple
como sea posible pero manteniendo la capacidad de modelar toda la gama
de sistemas que se necesiten construir. UML necesita ser lo suficientemente
expresivo para manejar todos los conceptos que se originan en un sistema
moderno, tales como la concurrencia y distribución, así como también los
mecanismos de la ingeniería de software como son la encapsulación y
componentes.
Uso del lenguaje unificado de modelado.
UML sirve para hacer modelos que permitan:
a) Visualizar como es un sistema o como de desea.
20
b) Especificar la estructura y/o comportamiento de un sistema.
c) Hacer una plantilla que guíe la construcción de los sistemas
El modelado sirve no solamente para los grandes sistemas; aún en
aplicaciones de pequeño tamaño se obtienen beneficios de modelar, sin
embargo, es un hecho que entre más grande y más complejo es el sistema,
el modelado juega un papel más importante, esto se debe a una razón
simple: se hacen modelos de sistemas complejos porque no se pueden
entender en su totalidad.
El UML es independiente de metodología, por lo que puede ser usada y
lo es en distintas metodología como: Fusion, Objectory, Rational Unified
Process, OMT, ECM, Catalysys, etc. La independencia antes mencionada
permite que las organizaciones adapten el uso de UML a la metodología que
consideren más apropiada.
Fases del ciclo de desarrollo que soporta UML.
Cada diagrama puede ser usado con énfasis distinto en las fase de
desarrollo: análisis, diseño e implementación, un diagrama cualquiera en una
fase de tendrá un estudio lógico, cabe aclarar que aunque UML es orientado
a objetos preferentemente, esto es útil en cualquier modelo tecnológico ya
que es independiente de lenguajes de programación o tecnología
determinada.
Diagramas que ofrece el UML.
21
El UML tiene una notación gráfica muy expresiva que permite
representar en mayor o menor medida todas las fases de un proyecto
informático pasando por el análisis, diseño, implementación y hasta
configuración. Estos gráficos son un conjunto de elementos con sus
relaciones, por otro lado ofrecen una vista del sistema a modelar. Para poder
representar correctamente un sistema UML ofrece una amplia variedad de
diagramas para visualizar el sistema desde varias perspectivas, entre estos
diagramas se tienen los siguientes:
Figura Nº 4 Diagramas del UML que expresan gráficamente un Modelo.
Fuente: elaboración propia, año: 2009.
22
Diagrama de Casos de Usos.
El diagrama de casos de usos representa gráficamente los casos de
uso que tiene un sistema véase figura Nº 5. Se define un caso de uso como
cada interacción supuesta con el sistema a desarrollar donde se representan
los requisitos funcionales. Es decir se está diciendo lo que tiene que hacer un
sistema
Figura Nº 5 Ejemplo de Modelo de Casos de Uso.
Fuente: http: //www.cyta.com.ar/ta0604/v6n4a1.htm, año: 2007
Diagrama de Clase.
Un diagrama de clases sirve para visualizar las relaciones entre las clases
que involucran el sistema, las cuales pueden ser asociativas, de herencia, de
uso y de contenido. Un diagrama de clases está compuesto por los
siguientes elementos:
•Clase: atributos, métodos y visibilidad.
23
• Relaciones: Herencia, Composición, Agregación, Asociación y
Uso.
Clase: Es la unidad básica que encapsula toda la información de un Objeto (un
objeto es una instancia de una clase). A través de ella podemos modelar el entorno
en estudio (una Casa, un Auto, una Cuenta Corriente, etc.).
Relaciones entre Clases: Ahora ya definido el concepto de Clase, es necesario
explicar cómo se pueden interrelacionar dos o más clases (cada uno con
características y objetivos diferentes). Antes es necesario explicar el concepto de
cardinalidad de relaciones: En UML, la cardinalidad de las relaciones indica el
grado y nivel de dependencia, se anotan en cada extremo de la relación y
éstas pueden ser:
• Uno o muchos: 1...* (1...n)
• 0 o muchos: 0...* (0...n)
• Número fijo: m (m denota el número).
Herencia (Especialización/Generalización): Indica que una subclase hereda
los métodos y atributos especificados por una Súper Clase, por ende la Subclase
además de poseer sus propios métodos y atributos, poseerá las características y
atributos visibles de la Súper Clase (public y protected).
Agregación: Para modelar objetos complejos, n bastan los tipos de datos básicos
que proveen los lenguajes: enteros, reales y secuencias de caracteres. Cuando se
requiere componer objetos que son instancias de clases definidas por el
desarrollador de la aplicación, tenemos dos posibilidades:
• Por Valor: Es un tipo de relación estática, en donde el tiempo de vida
del objeto incluido está condicionado por el tiempo de vida del que lo
incluye. Este tipo de relación es comúnmente llamada Composición
24
(el Objeto base se construye a partir del objeto incluido, es decir, es
"parte/todo").
• Por Referencia: Es un tipo de relación dinámica, en donde el tiempo de
vida del objeto incluido es independiente del que lo incluye. Este tipo
de relación es comúnmente llamada Agregación (el objeto base utiliza
al incluido para su funcionamiento).
Asociación: La relación entre clases conocida como Asociación, permite
asociar objetos que colaboran entre sí. Cabe destacar que no es una relación
fuerte, es decir, el tiempo de vida de un objeto no depende del otro.
Dependencia o Instanciación (uso): Representa un tipo de relación muy
particular, en la que una clase es instanciada (su instanciación es
dependiente de otro objeto/clase). Se denota por una flecha punteada. El
uso más particular de este tipo de relación es para denotar la dependencia
que tiene una clase de otra, como por ejemplo una aplicación gráfica que
instancia una ventana (la creación del Objeto Ventana está condicionado a la
instanciación proveniente desde el objeto Aplicación):
25
Figura Nº 6 Ejemplo de un Diagrama de Clases.
Fuente: http: //es.geocities.com/nacarit_espaa/fase2/t1.html, año: 2007
Diagrama de Colaboración
Un diagrama de colaboración es una forma alternativa al diagrama de
secuencia para mostrar un escenario. Este tipo de diagrama muestra las
interacciones entre objetos y los enlaces entre ellos.
Los diagramas de secuencia proporcionan una forma de ver el
escenario en un orden temporal - qué pasa primero, qué pasa después -, los
clientes entienden fácilmente este tipo de diagramas, por lo que resultan
útiles en las primeras fases de análisis. Por tanto los diagramas de
26
colaboración proporcionan la representación principal de un escenario, ya
que las colaboraciones se organizan entorno a los enlaces de unos objetos
con otros. Este tipo de diagramas se utilizan frecuentemente en la fase de
diseño, véase figura Nº 7 donde se muestra un ejemplo.
Figura Nº 7 Ejemplo de un Diagrama de Colaboración.
Fuente: http: //rtlabnet.wikidot.com/doc: diseno: rcu: editor, año: 2007.
Diagrama de Secuencia
Un diagrama de secuencia es una forma de diagrama de interacción
que muestra los objetos como líneas de vida a lo largo de la página y con sus
interacciones en el tiempo representadas como mensajes dibujados como
flechas desde la línea de vida origen hasta la línea de vida destino. Los
diagramas de secuencia son buenos para mostrar qué objetos se comunican
27
con qué otros objetos y qué mensajes disparan esas comunicaciones. Los
diagramas de secuencia no están pensados para mostrar lógicas de
procedimientos complejos, véase figura Nº 8.
Línea de Vida
Una línea de vida representa un participante individual en un diagrama
de secuencia. Una línea de vida usualmente tiene un rectángulo que
contiene el nombre del objeto. Si el nombre es self entonces eso indica que
la línea de vida representa el clasificador que posee el diagrama de
secuencia.
Algunas veces un diagrama de secuencia tendrá una línea de vida con
un símbolo del elemento actor en la parte superior. Este usualmente sería el
caso si un diagrama de secuencia es contenido por un caso de uso. Los
elementos entidad, control y límite de los diagramas de robustez también
pueden contener líneas de vida.
Mensajes
Los mensajes se muestran como flechas. Los mensajes pueden ser
completos, perdidos o encontrados; síncronos o asíncronos: llamadas o
señales.
Ocurrencia de ejecución
Un rectángulo fino a lo largo de la línea de vida denota la ocurrencia de
ejecución o activación de un foco de control.
28
Mensaje Self
Un mensaje self puede representar una llamada recursiva de una
operación, o un método llamando a otro método perteneciente al mismo
objeto. Este se muestra como cuando crea un foco de control anidado en la
ocurrencia de ejecución de la línea de vida.
Mensajes perdidos y encontrados
Los mensajes perdidos son aquellos que han sido enviados pero que no
han llegado al destino esperado, o que han llegado a un destino que no se
muestra en el diagrama actual. Los mensajes encontrados son aquellos que
llegan de un remitente no conocido, o de un remitente no conocido en el
diagrama actual. Ellos se denotan yendo o llegando desde un elemento de
punto final.
Inicio y final de línea de vida
Una línea de vida se puede crear o destruir durante la escala de tiempo
representada por un diagrama de secuencia. En el último caso, la línea de
vida se termina por un símbolo de detención, representado como una cruz.
En el primer caso, el símbolo al inicio de la línea de vida se muestra en un
nivel más bajo de la página que el símbolo del objeto que causó la creación.
Restricciones de tiempo y duración
En forma predeterminada, un mensaje se muestra como una línea
horizontal. Ya que la línea de vida representa el pasaje de tiempo hacia
abajo, cuando se modela un sistema en tiempo real, o incluso un proceso de
29
negocios en tiempo límite, puede ser importante considerar el tiempo que
toma realizar las acciones.
Al configurar una restricción de duración para un mensaje, el mensaje
se mostrará como una línea inclinada.
Figura Nº 8 Ejemplo de un Diagrama de Secuencia.
Fuente: http: //www.chuidiang.com/ood/metodologia/diagrama_secuencia.php, año: 2007.
Extensión WAE del UML.
Una de las características más relevantes de la notación UML es su
capacidad para absorber nueva semántica sin romper su lógica interna. La
necesidad de implementar complejas arquitecturas con múltiples capas y una
gran dispersión geográfica de nodos, ha supuesto todo un reto al abordar su
modelado y especificación. Jim Conallen ha desarrollado desde 1998 una
extensión de la notación UML denominada WAE “Web Application Extensión”
30
que permite rentabilizar toda la gramática interna de UML para modelar
aplicaciones con elementos específicos de la arquitectura de un entorno
WEB.
La tabla Nº 1, muestra los estereotipos que se utilizan en WAE. Una
página cliente es una unidad de código HTML que es distribuida por el
servidor Web a sus clientes, que son los navegadores Web, los navegadores
interpretan el código y presentan la información que contiene al usuario. Para
obtener una página cliente, el navegador envía al servidor Web la dirección
URL (Uniform Resource Locator) de la página.
Una página servidora, por su parte, es una secuencia de comandos en
algún lenguaje de programación como ser PHP, ASP, JSP, PERL, etc. que
son procesados por el mismo servidor.
Al igual que las páginas cliente la página servidora tienen una URL que
es enviada por el navegador al servidor Web, pero éste, en lugar de distribuir
la página, ejecuta las instrucciones que contiene. Estas instrucciones pueden
ser, por ejemplo, para consultar una base de datos y extraer de ella
información que interesa al usuario del navegador, y terminan generalmente
con la construcción de una página cliente que contiene la información
obtenida, y que es enviada entonces por el servidor Web al navegador para
que se la presente al usuario.
Desde el punto de vista de éste, el servidor Web le envía la página
cliente construida en forma dinámica, en respuesta a la URL de la página
servidora enviada previamente.
31
Tabla Nº 1 Estereotipos Utilizados en la Notación WAE. Estereotipos
para las Clases
Estereotipo Descripción
Server Page
Representa una página Web que tiene scripts
ejecutados por el servidor. Estos scripts
interactúan con los recursos que se
encuentran al alcance del servidor. Sólo puede
mantener relaciones con objetos que se
encuentren en el servidor
Client Page
Representan páginas que son dibujadas por
el navegador web y pueden ser una
combinación de algún o algunos lenguajes de
marcado, scripts del lado del cliente, islas de
datos, etc.
Form
Representa una colección de campos de
entrada que forman parte con una página del
lado cliente (Client Page). Tiene una
correspondencia directa con la etiqueta
<FORM> de XHTML.
ClientScript
Es una colección de scripts del lado del cliente
que existe como un archivo separado y que
32
Object son incluidos mediante una petición
independiente por parte del navegador.
Estereotipos para las Relaciones entre las Clases
Link
Representa un apuntador desde una “client
page” hacia una “client page” o “server page”.
Corresponde directamente con una etiqueta
<a> (ancla) de HTML
Submit
Esta relación siempre se da entre una “form” y
una “server page”, por supuesto, la “server
page” procesa los datos que la “form” le envía
(submits)
Build
Sirve para identificar cuales “server page” son
responsables de la creación de una “client
page”. Una “server page” puede crear varias
“client page”, pero una “client page” sólo
puede ser creada por una sola “server page”.
Esta relación siempre es unidireccional
Redirect
Esta es también una relación unidireccional
que indica que una página Web redirige hacia
otra. En caso de que la página origen sea una
“client page” esta asociación corresponderá
con la “META” etiqueta y valor HTTP-EQUIV
de “Refresh”*.
33
MODELO CLIENTE-SERVIDOR.
La tecnología denominada Cliente/Servidor es utilizada en todas las
aplicaciones de Internet/intranet, un servidor es un ordenador remoto en
algún lugar de la red que proporciona información según la petición véase
figura Nº 9. Un cliente funciona en su computador local que se comunica con
el servidor remoto y pide a éste información. Un servidor típicamente sirve a
una multitud de clientes, ahorrando a cada uno de ellos el problema de tener
la información instalada y almacenada localmente.
Los sistemas Cliente/Servidor pueden ser de muchos tipos,
dependiendo de las aplicaciones que el servidor pone a disposición de los
clientes, entre otros, existen los siguientes:
• Servidor de Impresión: mediante el cual los usuarios imprimen
remotamente.
• Servidor de Archivos: con el cual los clientes comparten y/o
almacenan archivos, a este servicio se le conoce cono Servidor FTP.
• Servidor de Bases de Datos: donde existe uno o varios sistemas de
Base de Datos.
• Servidor de Nombres: el cual convierte las direcciones IP (Protocolo
Internet) en nombres y viceversa también se conoce como Servidor
DNS.
 Servidor Web: el cual sirve páginas Web.
• Servidor de Correo: el cual permite enviar y/o recibir correo
electrónicos mediante un cliente de correo electrónico.
34
Figura Nº 9Modelo Cliente-Servidor en un entorno Web.
Fuente: http://daw-fiec.pbworks.com/f/cliente_servidor2.jpg
PROGRAMACIÓN ORIENTADA A OBJETOS.
El paradigma OO se basa en el concepto de objeto, un objeto es
aquello que tiene estado (propiedades más valores), comportamiento
(acciones y reacciones a mensajes) e identidad (propiedad que lo distingue
de los demás objetos). La estructura y comportamiento de objetos similares
están definidos en una clase común, los términos instancia y objeto son
intercambiables.
Una clase es un conjunto de objetos que comparten una estructura y
comportamiento común, la diferencia entre un objeto y una clase es que un
objeto es una entidad concreta que existe en tiempo y espacio, mientras que
una clase representa una abstracción, la "esencia" de un objeto, tal como
son, de aquí que un objeto no es una clase, sin embargo, una clase puede
ser un objeto.
35
En el enfoque OO las propiedades del objeto son claves, los principios
del modelo OO son:
• Abstracción: Es una descripción simplificada o especificación de un
sistema que enfatiza algunos de los detalles o propiedades del sistema,
mientras suprime otros.
• Encapsulación: Es el proceso de ocultar todos los detalles de un objeto
que no contribuyen a sus características esenciales.
• Modularidad: Es la propiedad de un sistema que ha sido descompuesto
en un conjunto de módulos coherentes e independientes.
• Jerarquía o herencia: Es el orden de las abstracciones organizado por
niveles.
• Tipificación: Es la definición precisa de un objeto de tal forma que
objetos de diferentes tipos no puedan ser intercambiados o cuando
mucho, puedan intercambiarse de manera muy restringida.
• Concurrencia: Es la propiedad que distingue un objeto que está activo
de uno que no lo está.
• 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. Si un modelo que se dice OO no contiene alguno de los
primeros cuatro elementos, entonces no es OO.
36
Los beneficios del enfoque OO.
• El uso del modelo OO ayuda a explotar el poder expresivo de todos los
lenguajes de programación basados en objetos y los orientados a
objetos, como Smalltalk, Object Pascal, C++, CLOS, Ada, y Java.
• El uso del modelo OO alienta el rehúso no solo del software, sino de
diseños completos.
• Produce sistemas que están construidos en formas intermedias estables y
por ello son más resistentes al cambio en especificaciones y tecnología.
SERVIDOR WEB SEGURO.
Existen ocasiones en las que se hace necesario recibir/enviar información
sensible a un Servidor Web, es por ello que se hace imprescindible el contar
con un mecanismo que dé fe de si, un servidor seguro es en quien se cree y
se puede confiar en él a la hora de transmitirle la información. La forma como
se hace es mediante las Autoridades de Certificación (AC), conocidas
informalmente como notarios electrónicos, encargadas de autenticar a los
participantes en transacciones y comunicaciones a través de la red. Su
función es emitir certificados a los usuarios, de manera que se pueda estar
seguro de que el interlocutor (cliente o servidor) es quien pretende ser,
garantizando así la seguridad de las transacciones, véase figura Nº 10.
El certificado de seguridad se concede a una entidad después de
comprobar una serie de referencias, para asegurar la identidad del receptor
de los datos cifrados. Se construye a partir de la clave pública del servidor
solicitante, junto con algunos datos básicos del mismo y es firmado por la
37
autoridad de certificación correspondiente con su clave privada. En la
práctica, se sabe que el servidor es seguro porque en el navegador de
Internet se ve una llave o un candado cerrado en la barra de estado de éste.
Figura Nº 10 Intercambio de Información entre un Navegador Web (cliente) y un Servidor
Web Seguro.
Fuente: http: //neo.lcc.uma.es/evirtual/cdd/tutorial/presentacion/ssl.html, año 2007.
PÁGINAS WEB
38
Una página Web estática incluye un contenido que se muestra del
mismo modo cada vez que se solicita desde un navegador. Un ejemplo de
una página Web estática es una página de servicio al cliente que contiene
información de contacto como por ejemplo: los números de teléfono, los
números de fax y las direcciones de correo electrónico que no suelen
cambiar con frecuencia.
Una página Web estática se crea utilizando sólo HTML lenguaje que
interpretan los navegadores Web. Una página Web estática contiene además
del código HTML, texto, así como otros elementos apropiados para la página
como imágenes y animación, pero no utilizan la información almacenada en
Base de Datos.
El contenido de una página Web dinámica en cambio se genera cuando
el usuario solicita la página. Generalmente el contenido se extrae de una
Base de Datos, lo que permite presentar la información más actual sin volver
a codificar la página Web. Una página Web dinámica actúa como una
plantilla: contiene código para recuperar la información solicitada y dar
formato a la salida.
EL LENGUAJE SQL.
El SQL (Structured Query Language) o Lenguaje de Consultas
Estructurado, es el lenguaje que permite la comunicación con el Sistema
Gestor de Bases de Datos. Es un lenguaje unificado, y lo utilizan todo tipo de
usuarios, desde el administrador de la Base de Datos, hasta el usuario final.
El SQL es un lenguaje no procedimental esto quiere decir que el
usuario especifica Qué quiere, no Cómo ni Dónde conseguirlo. El SQL es
39
relacionalmente completo esto permite la realización de cualquier consulta de
datos.
Las sentencias SQL pertenecen a dos categorías principales: Lenguaje
de Definición de Datos (DDL) y Lenguaje de Manipulación de Datos (DML).
Estos dos lenguajes no son lenguajes en sí mismos, sino que es una forma
de clasificar las sentencias de lenguaje SQL en función de su cometido. La
diferencia principal reside en que el DDL crea objetos en la base de datos y
sus efectos se pueden ver en el diccionario de la base de datos, mientras
que el DML es el que permite consultar, insertar, modificar y eliminar la
información almacenada en los objetos de la base de datos.
El lenguaje SQL está basado en el cálculo relacional de tuplas. Como
resultado, toda consulta formulada utilizando el cálculo relacional de tuplas (o
su equivalente, el álgebra relacional) se pude formular también utilizando
SQL. Hay, sin embargo, capacidades que van más allá del cálculo o del
álgebra relaciona. A continuación se muestra una lista de algunas
características proporcionadas por SQL que no forman parte del álgebra y de
cálculo relacionales:
 Comandos para inserción, borrado o modificación de datos.
 Capacidades aritméticas: En SQL es posible incluir operaciones
aritméticas así como comparaciones, por ejemplo A < B + 3. Nótese
que ni + ni otros operadores aritméticos aparecían en el álgebra
relacional ni en cálculo relacional.
 Asignación y comandos de impresión: es posible imprimir una relación
construida por una consulta y asignar una relación calculada a un
nombre de relación.
40
 Funciones agregadas: Operaciones tales como promedio (average),
suma (sum), máximo (max), etc. se pueden aplicar a las columnas de
una relación para obtener una cantidad única.
LAS BASES DE DATOS
Una base de datos es un conjunto de datos estructurados, en un
soporte de almacenamiento de datos y se puede acceder a ella desde uno o
varios programas. Antes de diseñar una base de datos se debe establecer un
proceso partiendo del mundo real, de manera que sea posible plasmar éste
mediante una serie de datos. La imagen que se obtiene del mundo real se
denomina modelo conceptual y consiste en una serie de elementos que
definen perfectamente lo que se quiere plasmar del mundo real en la base de
datos.
El Sistema Gestor de Bases de Datos (SGBD) es un conjunto de
programas, procedimientos y lenguajes que proporcionan a los usuarios las
herramientas necesarias para operar con una base de datos. Por tanto, el
SGBD actúa como un intermediario entre los usuarios y los datos. Debe
cumplir una serie de funciones como descripción de los datos, de manera
que debe permitir definir los registros, sus campos, sus relaciones de
autorización, etc. Debe manipular los datos permitiendo a los usuarios
insertar, suprimir, modificar y consultar datos de la base de datos y por
último, debe permitir usar la base de datos, dando un interfaz adecuado a
cada tipo de usuario.
41
EL MODELO ENTIDAD-RELACIÓN
Es una técnica de diseño de bases de datos gráfica, que incorpora
información relativa a los datos y la relación existente entre ellos, para poder
así plasmar una visión del mundo real sobre un soporte informático.
Sus características fundamentales son:
1. Reflejan tan sólo la existencia de los datos sin expresar lo que se hace con
ellos.
2. Es independiente de las bases de datos y de los sistemas operativos.
3. Incluye todos los datos que se estudian sin tener en cuenta las
aplicaciones que se van a tratar.
Las entidades se representan como rectángulos, los atributos como
elipses y las relaciones como rombos.
Entidad: Una entidad es un objeto concreto o abstracto que presenta interés
para el sistema y sobre el que se recoge información la cual va a ser
representada en un sistema de base de datos. La mayoría de las entidades
modelan objetos o eventos del mundo real, por ejemplo, clientes, productos o
llamadas de pedidos.
Atributo: Es una unidad básica e indivisible de información acerca de una
entidad o una relación y sirve para identificar y describir a las mismas. Por
ejemplo, si se va a modelar un evento como una llamada al servicio de
asistencia, probablemente se querrá saber quién era el cliente, quién hizo la
42
llamada y cuándo, así como si se resolvió o no el problema. La
determinación de los atributos que hay que incluir en el modelo es un
problema semántico (de significado). Se deben tomar decisiones basadas en
el significado de los datos y en cómo se utilizarán.
Dominio: Un dominio es el conjunto de valores que puede tomar cada uno
de los atributos.
Tabla: Organización de los datos en forma de filas y columnas. Cada fila se
llama tupla, y cada columna dentro de una tupla corresponde al valor de un
atributo para esa tupla.
Relación: Asociación entre entidades. Por ejemplo, un "alumno" "tiene" una
"asignatura".
Tabla relacional: Es una tabla que debe cumplir las siguientes
características:
• Cada fila debe ser única.
• Cada columna debe ser única.
• Los valores de las columnas deben pertenecer al dominio de cada
atributo.
• Debe tener un solo tipo de fila, cuyo formato está definido por el
esquema de la tabla o relación.
• El valor de la columna para cada fila debe ser único.
Clave candidata: Atributo o atributos que pueden distinguir de forma
unívoca una tupla dentro de una tabla. Puede haber varias claves candidatas
para distinguir una misma entidad. Se elegirá como clave candidata aquel
atributo que posea un dominio en el que se tenga valores únicos. Si esto no
43
es posible, entonces se usa como clave candidata la combinación de varios
atributos, de manera que esta combinación sí sea única.
Clave principal: Aquella de las claves candidatas que es designada para
distinguir de forma unívoca una tupla dentro de una tabla.
Clave ajena: Se trata de un atributo que es clave principal en otra tabla.
Vista: Una vista es una tabla ficticia cuya definición y tuplas se obtiene a
partir de una o más tablas base. Sus características son:
1. Sus columnas se obtienen a partir de varias tablas base.
2. Pueden estar definidas a partir de otras vistas.
3. Sus datos se obtienen como resultado de una consulta a la base de
datos.
4. Se puede almacenar su estructura.
Se trata de una tabla virtual que no existe como tabla en el disco.
Inconsistencia: Se da cuando se encuentra un valor en una clave ajena no
existente en la entidad donde ésta sea clave principal.
Asociaciones entre entidades
Asociaciones uno-a-uno: Si es cierto que cualquier ejemplar de la entidad
X se puede asociar con tan sólo un ejemplar de la entidad Y, entonces se
dice que la asociación es uno-a-uno. Cuando se elige una asociación uno-a-
uno se debe asegurar de que se mantenga la asociación en todo momento.
44
Asociaciones uno-a-muchos: Es el tipo de asociación más común, donde
un solo ejemplar de una entidad se puede asociar con cero, uno o muchos
ejemplares de otra entidad. Por ejemplo, una persona puede tener varios
números de teléfono.
Asociaciones muchos-a-muchos: Los clientes compran en muchas
tiendas, una tienda tiene muchos clientes. Como este tipo de relaciones no
se puede modelar directamente en una base de datos relacional, se modela
usando una tabla intermedia que tenga una asociación uno-a-muchos con
cada uno de los participantes originales. Por ejemplo, un pedido puede tener
muchos tipos de confección, y un tipo de confección puede aparecer en
varios pedidos.
Normalización
La normalización se encarga de obtener los datos agrupados en
distintas tablas siguiendo una serie de pasos, de tal manera que los datos
obtenidos tienen una estructura óptima para su implementación, gestión y
explotación desde distintas aplicaciones futuras. Una de las ventajas
principales que se obtiene al realizar la normalización es que la información
no estará duplicada innecesariamente dentro de las estructuras: habrá
mínima redundancia.
Dependencia funcional.
Se dice que un atributo B depende funcionalmente de A (A -> B) si cada
valor de A se corresponde con un único valor de B o, visto de otra manera, si
dado A se puede obtener B. Un caso típico podría ser DNI -> Nombre, pues
dado un DNI se puede obtener el nombre de la persona con ese DNI. Existen
reglas que se pueden realizar entre atributos para poder obtener
45
dependencias funcionales adicionalmente. Supóngase que T es una tabla
relacional y X, Y, Z son subconjuntos de atributos de la tabla T.
Reflexividad: Si los valores de un subconjunto de atributos Y están
incluidos dentro de un subconjunto de atributos X, se dice que X depende
funcionalmente de Y (Y -> X).
Aumentación: Si un subconjunto X depende funcionalmente de otro Y,
dicha dependencia se mantendrá aunque se añada otro atributo a los dos
subconjuntos (X -> Y entonces X.a ->Y.a).
Transitividad: Si Y depende funcionalmente de X y Z depende
funcionalmente de Y, entonces Z depende funcionalmente de X (X -> Y e Y -
> Z entonces X -> Z). Por ejemplo, DNI -> NOMBRE y NOMBRE ->
DIRECCIÓN, luego DNI -> DIRECCIÓN.
Dependencia funcional total: Un atributo Y tiene una dependencia
funcional total con otro atributo X si tiene una dependencia funcional con X y
no depende funcionalmente de ningún subconjunto de X. Por ejemplo,
supóngase que una empresa tiene empleados y que una persona puede ser
empleado de varias empresas. Según esto, se podría decir que
DNI.EMPRESA -> NOMBRE, pero esta dependencia no es total porque
también es cierto que DNI -> NOMBRE. Sin embargo, no se puede identificar
el sueldo de un empleado sin saber a qué empresa pertenece, por lo tanto,
DNI.EMPRESA -> SUELDO sí es una dependencia funcional total.
46
Primera Forma Normal (1FN).
Se dice que una tabla está en primera forma normal si todos los valores
que componen a sus tuplas son atómicos: un atributo no puede tener más de
un valor. Para normalizar una tabla que no esté en 1FN han de seguirse los
siguientes pasos:
• Se localizan los atributos correspondientes a la clave principal
• Se realiza una proyección sobre la tabla y así se descompone en
varias, de manera que se hace la proyección de la clave con los
atributos que tengan los valores únicos.
Por ejemplo, la figura Nº 11 muestra una tabla que no está en 1FN:
Figura Nº 11Tabla en Primera Forma Normal.
Fuente:http://www.formauri.es/arrobamasmas/Cursos/index.php?apdo=05&curso=51&cap=4
, año: 2009.
Segunda Forma Normal (2FN).
Esta forma normal se considerará únicamente cuando la clave principal
sea compuesta, si no (la clave principal está formada por un único atributo) la
tabla estaría en segunda forma normal. Se dice que una tabla está en
segunda forma normal si se cumplen las siguientes condiciones:
• Está en 1FN.
47
• Todo atributo secundario (los que no pertenecen a la clave principal)
tiene una dependencia funcional total de la clave completa y no de una
parte de ella.
Para convertir una tabla que no esté en 2FN a 2FN se creará una tabla
con la clave y todas sus dependencias funcionales totales y otra tabla con la
parte de la clave que tiene dependencias con los atributos secundarios.
Por ejemplo, la figura Nº 12 muestra una tabla que no está en 2FN:
Figura Nº 12Tabla que no está en 2FN.
Fuente:http://www.formauri.es/arrobamasmas/Cursos/index.php?apdo=05&curso=51&cap=4
, año: 2009.
Ya que el campo "TeléfonoProveedor" no es dependiente de la clave
candidata {"NombreProducto, "NombreProveedor"} sino únicamente de
"NombreProveedor". Se trata de no representar dos entidades distintas en
una sola tabla.
En este ejemplo, se reorganizan los datos de la siguiente manera:
48
Tabla Productos:
Figura Nº 13Tabla Productos
Fuente:http://www.formauri.es/arrobamasmas/Cursos/index.php?apdo=05&curso=51&cap=4
, año: 2009.
Tabla Proveedores:
Figura Nº 14Tabla Proveedores.
Fuente:http://www.formauri.es/arrobamasmas/Cursos/index.php?apdo=05&curso=51&cap=4
, año: 2009.
Tercera Forma Normal (3FN).
Una tabla está en 3FN si:
• Está en 2FN
• No existen atributos no primarios (no pertenecen a la clave) que son
transitivamente dependientes de cada posible clave de la tabla, o lo que
es lo mismo, un atributo secundario sólo puede ser conocido a través
49
de la clave principal o claves secundarias de la tabla y no por medio de
otro atributo no primario.
Para convertir una tabla a 3FN se realizará una proyección de la clave a
los elementos que no tengan dependencia funcional transitiva y otra tabla
con una nueva clave a los elementos que anteriormente tenían esta
dependencia.
Por ejemplo, la siguiente tabla no está en 3FN:
Tabla Atletas:
Figura Nº 15 Tabla Atletas.
Fuente:http://www.formauri.es/arrobamasmas/Cursos/index.php?apdo=05&curso=51&cap=4
, año: 2009.
Ya que, dado un número de licencia, se puede obtener la edad del
inscrito, y dada la edad del inscrito, se puede averiguar la categoría a la que
pertenece: teniendo entonces una dependencia funcional transitiva.
Evidentemente, dado el número de licencia se puede averiguar la categoría
pero lo importante aquí es que la categoría depende de un atributo que no
forma parte de la clave. Para normalizar, se descompone la tabla en las
siguientes:
50
Figura Nº 16Tabla Atletas parte 1.
Fuente:http://www.formauri.es/arrobamasmas/Cursos/index.php?apdo=05&curso=51&cap=4
, año: 2009.
Figura Nº 17Tabla Atletas parte2.
Fuente:http://www.formauri.es/arrobamasmas/Cursos/index.php?apdo=05&curso=51&cap=4
, año: 2009.
LENGUAJE DE PROGRAMACIÓN PHP.
PHP es un lenguaje de programación interpretado, diseñado
originalmente para la creación de páginas dinámicas. Es usado
principalmente en interpretación del lado del servidor (server-side scripting)
pero actualmente puede ser utilizado desde una interfaz de línea de
comandos o en la creación de otros tipos de programas incluyendo
aplicaciones con interfaz gráfica usando las bibliotecas Qt o GTK+.
PHP es un acrónimo recursivo que significa PHP Hypertext Pre-processor
(inicialmente PHP Tools, o, Personal Home Page Tools). Fue creado
originalmente por Rasmus Lerdof en 1994; sin embargo la implementación
51
principal de PHP es producida ahora por The PHP Group y sirve como el
estándar de facto para PHP al no haber una especificación formal. Publicado
bajo la PHP License, la Free Software Foundation considera esta licencia
como software libre.
Ventajas del lenguaje PHP.
• Es un lenguaje multiplataforma.
• Capacidad de conexión con la mayoría de los manejadores de base de
datos que se utilizan en la actualidad, destaca su conectividad con
MySQL
• Capacidad de expandir su potencial utilizando la enorme cantidad de
módulos (llamados ext's o extensiones).
• Posee una amplia documentación en su página oficial ([2]), entre la cual
se destaca que todas las funciones del sistema están explicadas y
ejemplificadas en un único archivo de ayuda.
• Es libre, por lo que se presenta como una alternativa de fácil acceso
para todos.
• Permite las técnicas de Programación Orientada a Objetos.
• Biblioteca nativa de funciones sumamente amplia e incluida.
• No requiere definición de tipos de variables.
• Tiene manejo de excepciones (desde php5).
52
Desventajas del Lenguaje PHP.
Si bien PHP no obliga a quien lo usa a seguir una determinada
metodología a la hora de programar (muchos otros lenguajes tampoco lo
hacen), aun estando dirigido a alguna en particular, el programador puede
aplicar en su trabajo cualquier técnica de programación y/o desarrollo que le
permita escribir código ordenado, estructurado y manejable.
Un ejemplo de esto son los desarrollos que en PHP se han hecho del
patrón de diseño Modelo Vista Controlador (o MVC), que permiten separar el
tratamiento y acceso a los datos, la lógica de control y la interfaz de usuario
en tres componentes independientes (ver más abajo Frameworks en PHP).
COMMON GATEWAY INTERFACE (CGI).
El CGI (Por sus siglas en inglés "Common Gateway Interface") cambio
la forma de manipular información en el Web. En sí, es un método para la
transmisión de información hacia un compilador instalado en el servidor. Su
función principal es la de añadir una mayor interacción a los documentos
Web que por medio del HTML se presentan de forma estática.
El CGI es utilizado comúnmente para contadores, bases de datos,
motores de búsqueda, formularios, generadores de email automático, foros
de discusión, chats, comercio electrónico, rotadores y mapas de imágenes,
juegos en línea y otros. Esta tecnología tiene la ventaja de correr en el
servidor cuando el usuario lo solicita por lo que es dependiente del servidor y
no de la computadora del usuario.
53
De acuerdo a la traducción de la NCSA: "Un documento HTML es
estático, lo que significa que existe en un estado constante; es un archivo de
texto que no cambia. Un script CGI por otro lado, es ejecutado en tiempo
real, lo que permite que regrese información dinámica”. Por ejemplo, si se
desea conectar las bases de datos de Unix al World Wide Web para permitir
que las personas de todo el mundo la manipulen básicamente, lo se debe
hacer es crear un script CGI que será ejecutado por el servidor para
transmitir información al motor de la base de datos, recibir los resultados y
mostrárselos al cliente. Los programas que maneja el CGI pueden estar
compilados en diferentes lenguajes de programación.
El más popular para el desarrollo de contenidos Web es el lenguaje Perl
de distribución gratuita, aunque también podemos mencionar: C, C++ y Java.
El funcionamiento de esta tecnología es muy sencillo. Los scripts residen en
el servidor, donde son llamados, ejecutados y regresa información de vuelta
al usuario.
SECURE SOCKET LAYER (SSL).
El protocolo SSL es un sistema diseñado y propuesto por Netscape
Communications Corporation. Este se encuentra en la pila OSI entre los
niveles de TCP/IP y de los protocolos HTTP, FTP, SMTP, etc. Proporciona
sus servicios de seguridad cifrando los datos intercambiados entre el servidor
y el cliente con un algoritmo de cifrado simétrico, típicamente el RC4 o IDEA,
y cifrando la clave de sesión de RC4 o IDEA mediante un algoritmo de
cifrado de clave pública, típicamente el RSA. La clave de sesión es la que se
utiliza para cifrar los datos que vienen y van al servidor seguro. Se genera
una clave de sesión distinta para cada transacción, lo cual permite que
54
aunque sea reventada por un atacante en una transacción dada, no sirva
para descifrar futuras transacciones (véase figura Nº 18). El MD5 se usa
como algoritmo de hash.
El SSL proporciona cifrado de datos, autenticación de servidores,
integridad de mensajes y opcionalmente autenticación de cliente para
conexiones TCP/IP. Cuando el cliente pide al servidor seguro una
comunicación segura, el servidor abre un puerto cifrado, gestionado por un
software llamado Protocolo SSL Record, situado encima de TCP. Será el
software de alto nivel, Protocolo SSL Handshake, quien utilice el Protocolo
SSL Record y el puerto abierto para comunicarse de forma segura con el
cliente.
Figura Nº 18Transacción usando Cifrado SSL.
Fuente: http: //www.enelnombredetux.com/project.php?project=pgp, año:2008.
El Protocolo SSL Handshake.
Durante el protocolo SSL Handshake, el cliente y el servidor intercambian
una serie de mensajes para negociar las mejoras de seguridad. Este
protocolo sigue las siguientes seis fases:
55
• La fase “hola”, usada para ponerse de acuerdo sobre el conjunto de
algoritmos para mantener la intimidad y para la autenticación.
• La fase de intercambio de claves, en la que intercambia información
sobre las claves, de modo que al final ambas partes comparten una
clave maestra.
• La fase de producción de clave de sesión, que será la usada para cifrar
los datos intercambiados.
• La fase de verificación del servidor, presente sólo cuando se usa RSA
como algoritmo de intercambio de claves, y sirve para que el cliente
autentique al servidor.
• La fase de autenticación del cliente, en la que el servidor solicita al
cliente un certificado X.509 (si es necesaria la autenticación de cliente).
• Por último, la fase de fin, que indica que ya se puede comenzar la
sesión segura.
Protocolo SSL Record.
El Protocolo SSL Record especifica la forma de encapsular los datos
transmitidos y recibidos. La porción de datos del protocolo tiene tres
componentes:
• MAC-DATA, el código de autenticación del mensaje.
• ACTUAL-DATA, los datos de aplicación a transmitir.
• PADDING-DATA, los datos requeridos para rellenar el mensaje
cuando se usa cifrado en bloque.
56
Cómo saber si una Conexión se está Realizando Mediante SSL.
Los navegadores Web disponen de un icono que lo indica, generalmente
un candado en la parte inferior de la ventana, véase figura Nº 19. Si el
candado está abierto se trata de una conexión normal, y si está cerrado de
una conexión segura. Si hace “doble click” sobre el candado cerrado
aparecerá el Certificado Digital del Servidor Web Seguro.
Figura Nº 19Indicación de una Conexión Segura en Navegadores Web.
Fuente:http://www.microsoft.com/spain/protect/yourself/phishing/spoof.mspx, año:2009
OpenSSL.
El software OpenSSL es un proyecto de software desarrollado por lo
miembros de la comunidad Open Source (código abierto). Es un robusto
juego de herramientas que le ayudan a su sistema a implementar el Secure
Sockets Layer (SSL), así como otros protocolos relacionados con la
seguridad, tales como el Transport Layer Security (TLS). También incluye
una librería de criptografía.
57
SISTEMA OPERATIVO GNU/LINUX
GNU/Linux es un Sistema Operativo, es una implementación de libre
distribución UNIX para computadoras personales (PC), servidores, y
estaciones de trabajo. Fue desarrollado para el i386 y ahora soporta los
procesadores i486, Pentium, Pentium Pro y Pentium II, así como los clones
AMD y Cyrix. También soporta máquinas basadas en SPARC, DEC Alpha,
PowerPC/PowerMac, y Mac/Amiga Motorola 680x0.
Como sistema operativo, GNU/Linux es muy eficiente y tiene un excelente
diseño. Es multitarea, multiusuario, multiplataforma y multiprocesador; en las
plataformas Intel corre en modo protegido; protege la memoria para que un
programa no pueda hacer caer al resto del sistema; carga sólo las partes de
un programa que se usan; comparte la memoria entre programas
aumentando la velocidad y disminuyendo el uso de memoria; usa un sistema
de memoria virtual por páginas; utiliza toda la memoria libre para cache;
permite usar bibliotecas enlazadas tanto estática como dinámicamente; se
distribuye con código fuente; usa hasta 64 consolas virtuales; tiene un
sistema de archivos avanzado pero puede usar los de los otros sistemas; y
soporta redes tanto en TCP/IP como en otros protocolos.
GNU/Linux es una muy buena alternativa frente a los demás sistemas
operativos. Más allá de las ventajas evidentes de costo, ofrece algunas
características muy notables.
En comparación con las otras versiones de Unix para PC, la velocidad y
confiabilidad de GNU/Linux son muy superiores. También está en ventaja
58
sobre la disponibilidad de aplicaciones, ya que no hay mucha difusión de
estos otros Unixes (como Solaris, XENIX o SCO) entre los usuarios de PC
por sus altos costos.
Comparado con sistemas operativos como Microsoft Windows,
GNU/Linux también sale ganando. Los bajos requisitos de hardware permiten
hacer un sistema potente y útil de aquel 486 que algunos guardan en un
armario. Esta misma característica permite aprovechar al máximo las
capacidades de las computadoras más modernas. Es poco práctico tener
una PC con 16 Mb de RAM y ponerle un sistema operativo que ocupa 13
(que es lo que reporta sobre Windows 95 el System Information de
Symantec).
No solo es superior respecto al sistema de multitarea y de administración
de memoria, sino también en la capacidades de networking (conectividad a
redes) y de multiusuario (aun comparando con sistemas multiusuario como
NT). La única desventaja de GNU/Linux frente a estos sistemas, es la menor
disponibilidad de software, pero este problema disminuye con cada nuevo
programa que se escribe para el proyecto GNU, y con algunas empresas que
están desarrollando software comercial para GNU/Linux.
59
CAPÍTULO III
MARCO METODOLÓGICO
En la actualidad, la utilización de metodologías para el desarrollo de
aplicaciones no se pueden descartadas, debido a la necesidad de control de
variables que conlleva el mismo desarrollo, y para la ordenada elaboración
de las aplicaciones, por lo tanto, seguir metodologías y estándares nos llevan
a estar en competitividad en todo momento.
Es de suma importancia conocer el modo como se interrelacionan
metodologías con estándares y herramientas siguiendo un único propósito, el
cual consiste en la elaboración de aplicaciones de manera eficiente,
ordenada y con el menor número de defectos.
Las siglas RUP en ingles significa Rational Unified Process (Proceso
Unificado Racional) es un producto del proceso de ingeniería de software
que proporciona un enfoque disciplinado para asignar tareas y
responsabilidades dentro de una organización del desarrollo. Su meta es
asegurar la producción del software de alta calidad que resuelve las
necesidades de los usuarios dentro de un presupuesto y tiempo
60
establecidos. La metodología RUP nos proporciona disciplinas en las cuales
se encuentran artefactos con lo cual se podrá contar con guías para poder
documentar e implementar de una manera fácil y eficiente, todas las guías
para un buen desarrollo, todo esto dentro de las respectivas fases con las
cuales cuenta.
Según Jacobson, I., Booch, G., Rumbaugh J. (1998) El nombre Proceso
Unificado se usa para describir el proceso genérico que incluye aquellos
elementos que son comunes a la mayoría de los refinamientos existentes.
También permite evitar problemas legales ya que Proceso Unificado Racional
o RUP son marcas registradas por IBM (desde su compra de Rational
Software Corporation en 2003).
Según Grady Booch (2000) un reflejo de lo que hemos visto en el trabajo
con literalmente decenas de miles de proyectos en los últimos 20 años, la
codificación de lo que funciona en las organizaciones exitosas y lo que está
notablemente ausente en los fallidos.
La Figura Nº 20 ilustra la historia de RUP. El antecedente más importante
se ubica en 1967 con la Metodología Ericsson (Ericsson Approach)
elaborada por Ivar Jacobson, una aproximación de desarrollo basada en
componentes, que introdujo el concepto de Caso de Uso. Entre los años de
1987 a 1995 Jacobson fundó la compañía Objectory AB y lanza el proceso
de desarrollo Objectory (abreviación de Object Factory).
61
Figura Nº 20: Historia de RUP
Fuente: http://2.bp.blogspot.com/-CiLFgoBq_GM/TdxjrUWtAaI/AAAAAAAAACk/ksc4zv-
Ek6Y/s1600/FIGURA+1.jpg
Posteriormente en 1995 Rational Software Corporation adquiere
Objectory AB y entre1995 y 1997 se desarrolla Rational Objectory Process
(ROP) a partir de Objectory 3.8 y del Enfoque Rational (Rational Approach)
adoptando UML como lenguaje de modelado.
Desde ese entonces y a la cabeza de Grady Booch, Ivar Jacobson y
James Rumbaugh, Rational Software desarrolló e incorporó diversos
elementos para expandir RUP, destacándose especialmente el flujo de
trabajo conocido como modelado del negocio. En junio del 1998 se lanza
Rational Unified Process.
DIMENSIONES DEL RUP
El RUP tiene dos dimensiones:
62
a) El eje horizontal representa tiempo y demuestra los aspectos del
ciclo de vida del proceso.
b) El eje vertical representa las disciplinas, que agrupan actividades
definidas lógicamente por la naturaleza.
La primera dimensión representa el aspecto dinámico del proceso y se
expresa en términos de fases, de iteraciones, y la finalización de las fases.
La segunda dimensión representa el aspecto estático del proceso: cómo
se describe en términos de componentes de proceso, las disciplinas, las
actividades, los flujos de trabajo, los artefactos, y los roles.
En la figura Nº 21 se puede observar como varía el énfasis de cada
disciplina en un cierto plazo en el tiempo, y durante cada una de las fases.
Por ejemplo, en iteraciones tempranas, pasamos más tiempo en
requerimientos, y en las últimas iteraciones pasamos más tiempo en poner
en práctica la realización del proyecto en sí.
63
Figura Nº 21. Disciplinas, fases, iteraciones del RUP
Fuente: http://www.monografias.com/trabajos82/aplicacion-tecnologia-
j2ee/image011.png
Se puede hacer mención de las tres características esenciales que
definen al RUP:
Características esenciales
Los autores de RUP destacan que el proceso de software propuesto por
RUP tiene tres características esenciales: está dirigido por los Casos de Uso,
está centrado en la arquitectura, y es iterativo e incremental.
Proceso dirigido por Casos de Uso
64
Según Kruchten, P. (2000), los Casos de Uso son una técnica de captura
de requisitos que fuerza a pensar en términos de importancia para el usuario
y no sólo en términos de funciones que sería bueno contemplar.
Se define un Caso de Uso como un fragmento de funcionalidad del
sistema que proporciona al usuario un valor añadido. Los Casos de Uso
representan los requisitos funcionales del sistema.
En RUP los Casos de Uso no son sólo una herramienta para
especificarlos requisitos del sistema. También guían su diseño,
implementación y prueba. Los Casos de Uso constituyen un elemento
integrador y una guía del trabajo como se muestra en la Figura Nº 22.
Figura Nº 22: Los Casos de Uso integran el trabajo
Fuente: http://4.bp.blogspot.com/-
DhDJJXg9Y_s/TdxkLmOd5CI/AAAAAAAAACo/39SGhuPI1Cg/s1600/FIGURA+2.jpg
Los Casos de Uso no sólo inician el proceso de desarrollo sino que
proporcionan un hilo conductor, permitiendo establecer trazabilidad entre los
65
artefactos que son generados en las diferentes actividades del proceso de
desarrollo. Como se muestra en la Figura Nº 23, basándose en los Casos de
Uso se crean los modelos de análisis y diseño, luego la implementación que
los lleva a cabo, y se verifica que efectivamente el producto implemente
adecuadamente cada Caso de Uso. Todos los modelos deben estar
sincronizados con el modelo de Casos de Uso.
Figura Nº 23: Trazabilidad a partir de los Casos de Uso
Fuente: http://www.magis.com.co/images/Paquete-Exito_clip_image004.jpg
Proceso centrado en la arquitectura
La arquitectura de un sistema es la organización o estructura de sus
partes más relevantes, lo que permite tener una visión común entre todos los
involucrados (desarrolladores y usuarios) y una perspectiva clara del sistema
completo, necesaria para controlar el desarrollo. La arquitectura involucra los
aspectos estáticos y dinámicos más significativos del sistema, está
relacionada con la toma de decisiones que indican cómo tiene que ser
66
construido el sistema y ayuda a determinar en qué orden. Además la
definición de la arquitectura debe tomar en consideración elementos de
calidad del sistema, rendimiento, reutilización y capacidad de evolución por lo
que debe ser flexible durante todo el proceso de desarrollo. La arquitectura
se ve influenciada por la plataforma software, sistema operativo, gestor de
bases de datos, protocolos, consideraciones de desarrollo como sistemas
heredados. Muchas de estas restricciones constituyen requisitos no
funcionales del sistema.
En el caso de RUP además de utilizar los Casos de Uso para guiar el
proceso se presta especial atención al establecimiento temprano de una
buena arquitectura que no se vea fuertemente impactada ante cambios
posteriores durante la construcción y el mantenimiento. Cada producto tiene
tanto una función como una forma. La función corresponde a la funcionalidad
reflejada en los Casos de Uso y la forma la proporciona la arquitectura.
Existe una interacción entre los Casos de Uso y la arquitectura, los Casos de
Uso deben encajar en la arquitectura cuando se llevan a cabo y la
arquitectura debe permitir el desarrollo de todos los Casos de Uso
requeridos, actualmente y en el futuro. Esto provoca que tanto arquitectura
como Casos de Uso deban evolucionar en paralelo durante todo el proceso
de desarrollo de software.
En la Figura Nº 24 se ilustra la evolución de la arquitectura durante las
fases de RUP. Se tiene una arquitectura más robusta en las fases finales del
proyecto. En las fases iníciales lo que se hace es ir consolidando la
arquitectura por medio de baselines y se va modificando dependiendo delas
necesidades del proyecto.
67
Figura Nº 24: Evolución de la arquitectura del sistema
Fuente: http://www.scielo.cl/fbpe/img/formuniv/v6n2/art02-f3.jpg
Es conveniente ver el sistema desde diferentes perspectivas para
comprender mejor el diseño por lo que la arquitectura se representa
mediante varias vistas que se centran en aspectos concretos del sistema,
abstrayéndose de los demás. Para RUP, todas las vistas juntas forman el
llamado modelo 4+1 de la arquitectura según Kruchten, P. (1986), el cual
recibe este nombre porque lo forman las vistas lógica, de implementación, de
proceso y de despliegue, más la de Casos de Uso que es la que da cohesión
a todas.
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web
Aplicacion web

Más contenido relacionado

Destacado

Desarrollo de aplicación web para la administración de condominios
Desarrollo de aplicación web para la administración de condominiosDesarrollo de aplicación web para la administración de condominios
Desarrollo de aplicación web para la administración de condominios
Kevin Palacios Macedo
 
Modelos de los sistemas distribuidos
Modelos de los sistemas distribuidosModelos de los sistemas distribuidos
Modelos de los sistemas distribuidos
Margarita Labastida
 
Ficha esquematica de auditoria
Ficha esquematica de auditoriaFicha esquematica de auditoria
Ficha esquematica de auditoria
rafael_isaac
 
Presentac..[1]
Presentac..[1]Presentac..[1]
Presentac..[1]
msv3
 
Expo 2[2]!!!
Expo 2[2]!!!Expo 2[2]!!!
Expo 2[2]!!!
msv3
 
Guía entregable software parte i
Guía entregable software parte iGuía entregable software parte i
Guía entregable software parte i
ColegioUpb
 

Destacado (20)

Desarrollo de aplicación web para la administración de condominios
Desarrollo de aplicación web para la administración de condominiosDesarrollo de aplicación web para la administración de condominios
Desarrollo de aplicación web para la administración de condominios
 
SOAP
SOAPSOAP
SOAP
 
NuSoap & Test Web Services
NuSoap & Test Web ServicesNuSoap & Test Web Services
NuSoap & Test Web Services
 
Token - Seguridad para Web Services
Token - Seguridad para Web ServicesToken - Seguridad para Web Services
Token - Seguridad para Web Services
 
Introduccion a Investigacion de Operaciones - IO
Introduccion a Investigacion de Operaciones - IOIntroduccion a Investigacion de Operaciones - IO
Introduccion a Investigacion de Operaciones - IO
 
Estudio de mercado
Estudio de mercadoEstudio de mercado
Estudio de mercado
 
Procesos de la ingeniería de requisitos
Procesos de la ingeniería de requisitosProcesos de la ingeniería de requisitos
Procesos de la ingeniería de requisitos
 
XML
XMLXML
XML
 
Modelos de los sistemas distribuidos
Modelos de los sistemas distribuidosModelos de los sistemas distribuidos
Modelos de los sistemas distribuidos
 
DAP - Configuracion ambiente de desarrollo
DAP - Configuracion ambiente de desarrolloDAP - Configuracion ambiente de desarrollo
DAP - Configuracion ambiente de desarrollo
 
Desarrollo de aplicaciones empresariales Introducción
Desarrollo de aplicaciones empresariales IntroducciónDesarrollo de aplicaciones empresariales Introducción
Desarrollo de aplicaciones empresariales Introducción
 
Metodo Delphi
Metodo DelphiMetodo Delphi
Metodo Delphi
 
Microsoft sql server 2012
Microsoft sql server 2012Microsoft sql server 2012
Microsoft sql server 2012
 
Web services
Web servicesWeb services
Web services
 
Base datos
Base datosBase datos
Base datos
 
Ficha esquematica de auditoria
Ficha esquematica de auditoriaFicha esquematica de auditoria
Ficha esquematica de auditoria
 
Presentac..[1]
Presentac..[1]Presentac..[1]
Presentac..[1]
 
Expo 2[2]!!!
Expo 2[2]!!!Expo 2[2]!!!
Expo 2[2]!!!
 
VS2010 como herramienta de desarrollo
VS2010 como herramienta de desarrolloVS2010 como herramienta de desarrollo
VS2010 como herramienta de desarrollo
 
Guía entregable software parte i
Guía entregable software parte iGuía entregable software parte i
Guía entregable software parte i
 

Similar a Aplicacion web

Rc alex solera
Rc alex soleraRc alex solera
Rc alex solera
Alexsolera
 
Rc alex solera
Rc alex soleraRc alex solera
Rc alex solera
Alexsolera
 

Similar a Aplicacion web (20)

Cespedes za
Cespedes zaCespedes za
Cespedes za
 
Cespedes za
Cespedes zaCespedes za
Cespedes za
 
Cuaderno_de_Informes_Noviembre(ing. software) (1).pdf
Cuaderno_de_Informes_Noviembre(ing. software) (1).pdfCuaderno_de_Informes_Noviembre(ing. software) (1).pdf
Cuaderno_de_Informes_Noviembre(ing. software) (1).pdf
 
08 0308 cs
08 0308 cs08 0308 cs
08 0308 cs
 
Sistema notas saga
Sistema notas sagaSistema notas saga
Sistema notas saga
 
B4lvre1596217837
B4lvre1596217837B4lvre1596217837
B4lvre1596217837
 
Sistema para el control de ventas e inventarios
Sistema para el control de ventas e inventariosSistema para el control de ventas e inventarios
Sistema para el control de ventas e inventarios
 
PEA de VI de Soporte SENATI
PEA de VI de Soporte SENATIPEA de VI de Soporte SENATI
PEA de VI de Soporte SENATI
 
Principios de labview
Principios de labviewPrincipios de labview
Principios de labview
 
Tesis maquinaria
Tesis maquinariaTesis maquinaria
Tesis maquinaria
 
Tesis139
Tesis139Tesis139
Tesis139
 
Tesis139
Tesis139Tesis139
Tesis139
 
Algoritmos-y-Diagramas_AHQ.pdf
Algoritmos-y-Diagramas_AHQ.pdfAlgoritmos-y-Diagramas_AHQ.pdf
Algoritmos-y-Diagramas_AHQ.pdf
 
01.introduccion metricauml
01.introduccion metricauml01.introduccion metricauml
01.introduccion metricauml
 
Reporte proyecto-control digital (1)
Reporte proyecto-control digital (1)Reporte proyecto-control digital (1)
Reporte proyecto-control digital (1)
 
Cuestionario video
Cuestionario videoCuestionario video
Cuestionario video
 
Entrega trabajo final uml gp 8
Entrega trabajo final uml gp 8Entrega trabajo final uml gp 8
Entrega trabajo final uml gp 8
 
mejía-pezo (abierto).pdf
mejía-pezo (abierto).pdfmejía-pezo (abierto).pdf
mejía-pezo (abierto).pdf
 
Rc alex solera
Rc alex soleraRc alex solera
Rc alex solera
 
Rc alex solera
Rc alex soleraRc alex solera
Rc alex solera
 

Último

Antenas, tipos de antenas, diseño basico de una antena y parámetros.pdf
Antenas, tipos de antenas, diseño basico de una antena y parámetros.pdfAntenas, tipos de antenas, diseño basico de una antena y parámetros.pdf
Antenas, tipos de antenas, diseño basico de una antena y parámetros.pdf
perezreyesalberto10
 

Último (6)

Emprende en SPA Segundo día CENEC Mexico
Emprende en SPA Segundo día CENEC MexicoEmprende en SPA Segundo día CENEC Mexico
Emprende en SPA Segundo día CENEC Mexico
 
Corte de luz 2024 Guayaquil Guayas ecuad
Corte de luz 2024 Guayaquil Guayas ecuadCorte de luz 2024 Guayaquil Guayas ecuad
Corte de luz 2024 Guayaquil Guayas ecuad
 
Presentacion Seguridad y Privacidad en la Web
Presentacion Seguridad y Privacidad en la WebPresentacion Seguridad y Privacidad en la Web
Presentacion Seguridad y Privacidad en la Web
 
Antenas, tipos de antenas, diseño basico de una antena y parámetros.pdf
Antenas, tipos de antenas, diseño basico de una antena y parámetros.pdfAntenas, tipos de antenas, diseño basico de una antena y parámetros.pdf
Antenas, tipos de antenas, diseño basico de una antena y parámetros.pdf
 
Biología Células Musculares presentación
Biología Células Musculares presentaciónBiología Células Musculares presentación
Biología Células Musculares presentación
 
¡Descubre el Poder del Masaje Holístico en nuestra Primera Sesión del Seminar...
¡Descubre el Poder del Masaje Holístico en nuestra Primera Sesión del Seminar...¡Descubre el Poder del Masaje Holístico en nuestra Primera Sesión del Seminar...
¡Descubre el Poder del Masaje Holístico en nuestra Primera Sesión del Seminar...
 

Aplicacion web

  • 1. i Aplicación Web para el Registro y Control de Documentos de las Dependencias Administrativas de la Universidad Nacional Abierta Caso de Estudio Centro Local Lara Informe Final de Práctica Profesional UNIVERSIDAD NACIONAL ABIERTA VICE-RECTORADO ACADEMICO AREA DE INGENIERIA CARRERA INGENIERIA DE SISTEMAS Autor: Br. Amarelis del Carmen Ybarra Dugarte C.I. 15.032.367 Tutor Académico: Prof. Pedro Luis Rodríguez C.I. 11.187.871 Tutor Empresarial: Profa. Saibel Ramos C.I.:9.837.306 Centro Local Portuguesa MARZO, 2014
  • 2. ii INDICE GENERAL Dedicatoria……………………………………………………………………………i Agradecimientos……………………………………………………………………..ii Resumen………………………………………………………………………...…..iii Introducción…………........................................................................................1 CAPITULO I Planteamiento del problema.............................................................................4 Objetivos……………………………………………………………………………..6 Objetivo general..........................................................................................6 Objetivos específicos……...........................................................................6 Alcance.............................................................................................................7 CAPITULO II MARCO TEÓRICO....………………………………………………………………9 Ingeniería del Software……...............................................................12 Lenguaje Unificado de Modelado UML…………………………..........14 Objetivos de UML……..............................................................19 Uso del Lenguaje unificado de modelado...............................20 Fases del ciclo de desarrollo que soporta UML…..…………..20 Diagramas que ofrece el UML………………...…………….….21 Modelo cliente-servidor…………………………..…………..….33 Programación orientada a objetos……………………………...34 Servidor Web Seguro……………………………………..…..…36 Páginas Web……………………………………………………...37 Lenguaje SQL…………………………………………………...38
  • 3. iii Bases de Datos………………………………………………….40 Modelo Entidad-Relación……………………………………....41 Normalización……………………………………………………44 Lenguaje de Programación PHP………………………….…..50 Common Getaway Interface (CGI)……………………………52 Secure Socket Layer (SSL)……………………………………53 Sistema Operativo GNU/Linux………………………………..57 CAPITULO III MARCO METODOLÓGICO Dimensiones del RUP..........................................................................61 Fases…………………..……………......................................................73 Disciplinas………..……………………..................................................80 Modelado del Negocio…............................................................80 Requerimientos...........................................................................81 Análisis y Diseño.........................................................................81 Implementación...........................................................................81 Pruebas…...................................................................................82 Despliegue…………....................................................................82 Gestión y configuración de cambios...........................................82 Gestión del Proyecto……...........................................................83 Entorno…………………..............................................................84 Organización y elementos en RUP.......................................................84 Análisis y diseño de la Metodología RUP………………………………………97 CAPITULO IV
  • 4. iv ORGANIZACIÓN Y ANÁLISIS DE LOS RESULTADOS Modelado del Negocio…………………………………………………………..107 Requerimientos………………………………………………………………….109 Especificaciones Complementarias……………………………………………112 Actores del Sistema……………………………………………………………..113 Casos de Uso………………………………………………………………….…113 Diagramas de Casos de Uso……………………………………………………116 Diagramas de Estado de RED…………………………………………………172 Diagramas de Secuencia………………………………………………………176 Asignación de Operaciones a las Clases (Control de Documentos)………185 Asignación de Operaciones a las Clases (Seguridad)……………….………186 Diagrama de Despliegue…………………………………………………..……187 Diagrama de Base de Datos..……………………………………………..……187 Modelo Entidad Relación de RED……………………………………...………191 Gestión de Proyecto: Escogencia del lenguaje de programación………….192 Escogencia del Gestor de Base de Datos……………………………………193 Actividades de formación………………………………………………………194 Recursos Adicionales……………………………………………………………195 Implementación…………………………………………………………………..195 Desarrollo de componentes y codificación de software……………………..195 Relación de los componentes con la Base de Datos…………………..……196 Funcionalidades del Sistema……………………………………………………197 Interfaz de Usuario……………………………………………………………….197 Interfaz de Acceso al Sistema RED……………………………………………198
  • 5. v Interfaz General del sistema RED……………………………………………..199 CAPITULO V CONCLUSIONES Y RECOMENDACIONES…………………………………………………….…....224 Bibliografía……………………………………………………………………..…227 Anexos………………………………………………………………………….…231
  • 6. vi ÍNDICE DE TABLAS Tabla Nº 1 Estereotipo Utilizados en la Notación WAE 31 Tabla Nº 2 Esfuerzo – Horario contra fases del RUP 73 Tabla Nº 3 Artefactos en las Fases de RUP 87 Tabla Nº 4 Desarrollo de la RUP 92 Tabla Nº 5 Actores del Sistema 109 Tabla Nº 6 Descripción de los Casos de Uso 110 Tabla Nº7 Descripción de las tablas de la Base de Datos 186
  • 7. vii INDICE DE FIGURAS Figura Nº 1 Modelo de Cascada de Desarrollo de Software 13 Figura Nº 2 Desarrollo de UML, con sus versiones 16 Figura Nº 3 Casos de Uso 18 Figura Nº 4 Diagramas del UML que expresan gráficamente un Modelo 21 Figura Nº 5 Ejemplo de Modelo de Casos d Uso 22 Figura Nº 6 Ejemplo de un Diagrama de Clases 25 Figura Nº 7 Ejemplo de un Diagrama de Colaboración 26 Figura Nº 8 Ejemplo de un Diagrama de Secuencia 29 Figura Nº 9 Modelo Cliente Servidor en un entrono WEB 34 Figura Nº 10 Intercambio de Información entre un Navegador Web y un Servidor WEB 37 Figura Nº 11 Tabla en Primera forma Normal 46 Figura Nº 12 Tabla que no está en Segunda Forma Normal 47 Figura Nº 13 Tabla Productos 47 Figura Nº 14 Tabla Proveedores 48 Figura Nº 15 Tabla Atletas 49 Figura Nº 16 Tabla Atletas parte 1 49
  • 8. viii Figura Nº 17 Tabla Atletas parte 2 49 Figura Nº 18 Transacción usando cifrado SSl 53 Figura Nº 19 Indicación de una conexión segura en Navegadores Web 55 Figura Nº 20 Historia del RUP 60 Figura Nº 21 Disciplinas, fases, iteraciones del RUP 62 Figura Nº 22 Los Casos de Uso integran al trabajo 63 Figura Nº 23 Trazabilidad a partir de los Casos de Uso 64 Figura Nº 24 Evolución de la arquitectura del sistema 66 Figura Nº 25 Los modelos se completan, la arquitectura no cambia drásticamente 67 Figura Nº 26 Una iteración RUP 69 Figura Nº 27 Ciclo de Vida 70 Figura Nº 28 Fases del RUP 71 Figura Nº 29 Recursos utilizados en las fases del RUP en el tiempo 74 Figura Nº 30 Ciclo evolutivo en la elaboración de software basado en RUP 75 Figura Nº 31 Esfuerzo respecto de los flujos de trabajo 76 Figura Nº 32 Esfuerzo respecto de las fases 77
  • 9. ix Figura Nº 33 Elementos que conforman el RUO 83 Figura Nº 34 Artefactos en las disciplinas de la RUP 88 Figura Nº 35 Grado de finalización de artefactos 89 Figura Nº 36 Comparación entre diagramas de casos de uso 98 Figura Nº 37 Comparación entre diagramas de objetos 99 Figura Nº 38 Comparación entre diagramas de estados 100 Figura Nº 39 Comparación entre diagramas de actividades 100 Figura Nº 40 Comparación entre diagramas de secuencia 101 Figura Nº 41 Comparación entre diagramas de colaboración 102 Figura Nº 42 Diagramas de componentes 102 Figura Nº 43 Comparación entre diagramas de despliegue 103 Figura Nº 44 Diagrama del Caso de Uso Incluir Estado 113 Figura Nº 46 Diagrama del Caso de Uso Eliminar Estado 115 Figura Nº 47 Diagrama del Caso de Uso Buscar Estado 116 Figura Nº 48 Diagrama del Caso de Uso Incluir Tipo Documento 117 Figura Nº 49 Diagrama del Caso de 118
  • 10. x Uso Modificar Tipo Documento Figura Nº 50 Diagrama del Caso de Uso Eliminar Tipo Documento 119 Figura Nº 51 Diagrama del Caso de Uso Buscar Tipo Documento 120 Figura Nº 52 Diagrama del Caso de Uso Incluir Entidad 121 Figura Nº 53 Diagrama del Caso de Uso Modificar Entidad 122 Figura Nº 54 Diagrama del Caso de Uso Eliminar Entidad 123 Figura Nº 55 Diagrama del Caso de Uso Buscar Entidad 124 Figura Nº 56 Diagrama del Caso de Uso Incluir Tipo Entidad 124 Figura Nº 56 Diagrama del Caso de Uso Modificar Tipo Entidad 125 Figura Nº 57 Diagrama del Caso de Uso Eliminar Tipo Entidad 126 Figura Nº 59 Diagrama del Caso de Uso Incluir Archivo 128 Figura Nº 60 Diagrama del Caso de Uso Modificar Archivo 129 Figura Nº 61 Diagrama del Caso de Uso Eliminar Archivo 130 Figura Nº 62 Diagrama del Caso de Uso Buscar Archivo 131 Figura Nº 63 Diagrama del Caso de Uso Incluir Documento 132 Figura Nº 64 Diagrama del Caso de Uso Modificar Documento 133
  • 11. xi Figura Nº 65 Diagrama del Caso de Uso Eliminar Documento 135 Figura Nº 66 Diagrama del Caso de Uso Buscar Documento 136 Figura Nº 67 Diagrama del Caso de Uso Incluir Seguimiento 137 Figura Nº 68 Diagrama del Caso de Uso Modificar Seguimiento 138 Figura Nº 69 Diagrama del Caso de Uso Eliminar Seguimiento 139 Figura Nº 70 Diagrama del Caso de Uso Buscar Seguimiento 140 Figura Nº 71 Diagrama de Caso de Uso Reporte Tipo Documento 141 Figura Nº 73 Diagrama de Caso de Uso Reporte Estados 143 Figura Nº 74 Diagrama de Caso de Uso Reporte Entidades 144 Figura Nº 75 Diagrama de Caso de Uso Reporte Documentos 145 Figura Nº 76 Diagrama de Caso de Uso Reporte Archivadores 146 Figura Nº 77 Diagrama de Caso de Uso Incluir Sistema 147 Figura Nº 78 Diagrama de Caso de Uso Modificar Sistema 148 Figura Nº 79 Diagrama de Caso de Uso Eliminar Sistema 149 Figura Nº 80 Diagrama de Caso de Uso Buscar Sistema 150 Figura Nº 81 Diagrama de Caso de 151
  • 12. xii Uso Incluir Perfil Usuario Figura Nº 82 Diagrama de Caso de Uso Modificar Perfil Usuario 152 Figura Nº 83 Diagrama de Caso de Uso Eliminar Perfil Usuario 153 Figura Nº 84 Diagrama de Caso de Uso Buscar Perfil Usuario 154 Figura Nº 85 Diagrama de Caso de Uso Incluir Cargo Usuario 155 Figura Nº 87 Diagrama de Caso de Uso Eliminar Cargo Usuario 157 Figura Nº 88 Diagrama de Caso de Uso Buscar Cargo Usuario 158 Figura Nº 89 Diagrama de Caso de Uso Incluir Usuario 159 Figura Nº 90 Diagrama de Caso de Uso Modificar Usuario 160 Figura Nº 91 Diagrama de Caso de Uso Eliminar Usuario 161 Figura Nº 92 Diagrama de Caso de Uso Buscar Usuario 162 Figura Nº 93 Modelo General del Diagrama de Casos de Uso de RED 163 Figura Nº 94 Diagrama de Clases (Módulo Control de Documentos) 166 Figura Nº 95 Diagrama de clases (Módulo Seguridad) 167 Figura Nº 96 Diagrama de Clases Usando estereotipos (Control de documentos) 168 Figura Nº 97 Diagrama de Clases Usando estereotipos (Seguridad) 168
  • 13. xiii Figura Nº 98 Diagrama de Estados (Control de Documentos) 170 Figura Nº 99 Diagrama de Estados (Seguridad) 171 Figura Nº 100 Diagrama de Secuencia del Caso de Uso Incluir Documento 173 Figura Nº 101 Diagrama de Secuencia del Caso de Uso Modificar Documento 174 Figura Nº 102 Diagrama de Secuencia del Caso de Uso Eliminar Documento 175 Figura Nº 103 Diagrama de Secuencia del Caso de Uso Buscar Documento 176 Figura Nº 104 Diagrama de Secuencia del Caso de Uso Incluir Seguimiento 177 Figura Nº 105 Diagrama de Secuencia del Caso de Uso Modifica Seguimiento 178 Figura Nº 106 Diagrama de Secuencia del Caso de Uso Eliminar Seguimiento 179 Figura Nº 107 Diagrama de Secuencia del Caso de Uso Buscar Seguimiento 180 Figura Nº 108 Diagrama de Secuencia del Caso de Uso Reporte Documento 181 Figura Nº 109 Diagrama de Despliegue de RED 185
  • 14. xiv Figura Nº 110 Lenguaje de Programación utilizado para el desarrollo de la aplicación 191 Figura Nº 111 Interfaz del entorno MySQL Administrator 192 Figura Nº 112 Interfaz de Inicio de Sesión al sistema RED 269 Figura Nº 113 Interfaz de Principal del sistema RED 270 Figura Nº 114 Interfaz del Menú del Módulo Seguridad 271 Figura Nº 115 Interfaz para sistemas 272 Figura Nº 116 Interfaz de Perfiles de Usuarios 272 Figura Nº 117 Interfaz de Cargos de Usuarios 273 Figura Nº 118 Interfaz Usuarios 274 Figura Nº 119 Interfaz de salida del sistema 274 Figura Nº 120 Interfaz para el Usuario del Menú Definiciones 275 Figura Nº 121 Interfaz para el Usuario del Menú Proceso 276 Figura Nº 122 Interfaz para el Usuario del Menú Reportes 277 Figura Nº 123 Interfaz para la Inserción, Eliminación, Modificación y Búsqueda de Estados 278 Figura Nº 124 Interfaz de Búsqueda de un Estado 278 Figura Nº 125 Interfaz para la 279
  • 15. xv Inserción, Eliminación, Modificación y Búsqueda de Tipo de Documento Figura Nº 127 Interfaz para la Inserción, Eliminación, Modificación y Búsqueda de Entidades 280 Figura Nº 128 Interfaz de Búsqueda de una entidad 281 Figura Nº 129 Interfaz para la Inserción, Eliminación, Modificación y Búsqueda de Tipo de Entidades 281 Figura Nº 130 Interfaz de Búsqueda para tipo de Entidades 282 Figura Nº 131 Interfaz para la Inserción, Eliminación, Modificación y Búsqueda de Archivos 282 Figura Nº 132 Interfaz de Búsqueda de Archivo 283 Figura Nº 133 Interfaz para la Inserción, Eliminación, Modificación y Búsqueda de Documentos 284 Figura Nº 134 Interfaz de Búsqueda de Documentos 285 Figura Nº 135 Interfaz para la Inserción, Eliminación, Modificación y Búsqueda de Seguimiento 286 Figura Nº 136 Interfaz de Búsqueda de Seguimiento de Documentos 287 Figura Nº 137 Interfaz para el reporte de Tipo de Entidades 287 Figura Nº 138 Archivo PDF de Tipo de Entidades 288 Figura Nº 139 Interfaz de Reporte de Tipos de Documentos 289
  • 16. xvi Figura Nº 140 Archivo PDF de Tipos de Documentos 290 Figura Nº 141 Interfaz de Reporte de Tipos de Estados 291 Figura Nº 142 Archivo PDF de Estados 291 Figura Nº 143 Interfaz de Reporte Entidades 292 Figura Nº 144 Archivo PDF de Entidades 293 Figura Nº 145 Interfaz de Reporte de Archivos 293 Figura Nº 146 Archivo PDF de Archivos 294 Figura Nº 147 Interfaz de Reporte de documentos por medio de Descriptores 295
  • 17. i DEDICATORIA Primero que todo quiero dedicarle éste paso en mi vida profesional a Dios Todopoderoso y a la Santísima Virgen por darme la virtud y la fortaleza necesaria para salir siempre adelante, pese a las dificultades; iluminando cada paso de mi vida. A mis Padres, Albis y Teodolinda, son ustedes quienes verdaderamente son los dueños de éste título, sin su apoyo no lo habría logrado, mil gracias por ser mis guías y un ejemplo de trabajo, esfuerzo y dedicación. A mi Hermana Theisy, porque nunca dudó de que lograría este triunfo y con la que compartí cada etapa de este camino, recibiendo siempre una sonrisa y un apoyo irremplazable. A mi Tío Jesús Rangel (Q.E.P.D.), quien siempre me motivó a seguir adelante y a quien prometí terminaría mis estudios. Promesa cumplida. Sin Ustedes no hubiese podido hacer realidad este sueño. ¡Los Amo!
  • 18. ii AGRADECIMIENTOS A Dios y la Virgen, por ser mis guías, iluminando y protegiendo siempre mi camino. A mis Padres y Hermana, por sus consejos, atenciones, cariño y apoyo incondicional a lo largo de la carrera. A mi Esposo quien me brindó su apoyo constante y paciencia para que pudiera terminar esta meta. A la Universidad Nacional Abierta, mi casa de estudio, por brindarme la formación académica requerida. A mis Profesores Carlos Aguirre, Pedro Rodríguez y Saibel Ramos, por su ayuda, confianza, paciencia, estímulo, calidad profesional y conocimientos que me ayudaron a finalizar mi trabajo. A Dra. Dora de Valderrama, Sra. María Peraza y Elizabeht Valladares, por la comprensión, amistad, confianza, paciencia, ánimos y por darme el permiso en mi área laboral cuando necesité ausentarme. En General a todas aquellas personas que de una u otra forma colaboraron o participaron en mi formación como persona y profesional, hago extensivo mis más sinceros agradecimientos. ¡Mil Gracias!
  • 19. iii RESUMEN La Sección Académica del Centro Local Lara de la Universidad Nacional Abierta, es el organismo destinado para estudiar las cuestiones relacionadas con las funciones de docencia, investigación y extensión que ejerce en dicha universidad. Para mejorar su funcionamiento surgió la necesidad de desarrollar un software que automatizara la Recepción y Emisión de Documentos desde, y para este departamento. La aplicación fue desarrollada bajo los lineamientos de la Metodología del Proceso Unificado, la cual divide el desarrollo del proyecto en 4 fases: Inicio, Elaboración, Construcción y Transición. Con el desarrollo de esta práctica profesional se pretendió implantar en la Unidad Académica del Centro Local Lara de la Universidad Nacional Abierta una aplicación que tuviese el siguiente alcance: a) Controlar los documentos enviados y recibidos de las diferentes áreas y departamentos del propio centro local. b) Registrar y controlar los documentos que provienen y/o son enviados a otros centros locales o a nivel central. c) Optimización de la búsqueda de información que requieren consultar dichas dependencias en un momento determinado, y que difícilmente la persona encargada en el departamento. d) Hacer un registro adecuado de la información generada y recibida en cada departamento. Se realizó la metodología una iteración por cada fase, se identificaron los requisitos del departamento y se representaron en un modelo de caso de uso. Luego se realizó el análisis y diseño de los casos de usos y de las clases que fueron implementadas. El sistema fue codificado utilizando el lenguaje de programación PHP (Adobe Dreamweaver CS5). Se utilizó el sistema manejador de base de datos MySQL Administrator para la implementación de la base de datos. Palabras claves: Unidad Sección Académica, recepción, emisión, documentos, búsqueda, metodología.
  • 20. 1 INTRODUCCIÓN En la actualidad las grandes empresas e instituciones públicas o privadas requieren inmediatez en el manejo de información, debido a la rapidez con la que se manejan datos en los diferentes departamentos que conforman dichas instituciones, los cuales son de vital importancia para el buen funcionamiento de los mismos. Es por ello que las aplicaciones Web se están implementando en muchas empresas donde sus procesos administrativos carecen de bases tecnológicas que ayuden a fortalecer la estructura comunicacional de las mismas. A mediados del siglo pasado los cambios tecnológicos se sucedían muy lentamente, con lo cual las organizaciones disponían del tiempo suficiente para analizar los factores relevantes y adoptar nuevas decisiones que condujesen a su buen funcionamiento. Actualmente, la complejidad de los sistemas va en aumento con la aparición de nuevas tecnologías en un entorno que cambia sin cesar; el tiempo que se tarda en transformar una necesidad identificada en el desarrollo de un nuevo sistema operativo es cada vez más largo y los costos asociados con el desarrollo, producción, utilización y apoyo de los sistemas están incrementando. Para los Ingenieros Carlos Curotto y Pablo Díaz: “En los primeros días los sitios Web consistían de páginas estáticas, permitiendo una interacción limitada con el usuario. Al comienzo de los años 90, estas limitaciones fueron superadas cuando los servidores Web fueron reemplazados para permitir comunicaciones a través del desarrollo de fragmentos de código que eran ejecutados del lado del servidor. A partir de entonces las aplicaciones
  • 21. 2 dejaron de ser estáticas y solamente editadas por aquellos “gurúes” del HTML y se permitieron a usuarios normales interactuar con las aplicaciones por primera vez.” Este fue un paso fundamental para llegar a la Web que hoy en día conocemos. Sin la interacción no existiría el comercio electrónico (Ej.: Amazon.com), el Web-mail (Ej.: Gmail), Internet-banking, blogs, fórums o comunidades online, entre otros. A través del tiempo, el conocimiento necesario para construir aplicaciones ha sido reducido. Hoy día, es relativamente sencillo construir aplicaciones sofisticadas utilizando las modernas plataformas y lenguajes, como ser PHP, .NET o Java. La falta de manejos de sesiones y control de autorización por parte de Common Gateway Interface (CGI) impidió el desarrollo de aplicaciones Web comerciales con esa tecnología. Los desarrolladores Web comenzaron entonces a utilizar lenguajes de script, como ser JavaScript o PHP para resolver esos problemas. Básicamente los lenguajes de script son ejecutados en el servidor Web y como son no compilados son desarrollados e implementados más fácilmente. El propósito de este trabajo se enmarca dentro de este interés, enmarcada bajo los lineamientos de la Metodología RUP (Rational Unified Process) debido a la flexibilidad que tiene de adaptarse a cualquier tipo de proyecto haciendo uso de buenas prácticas en el desarrollo de software como desarrollo iterativo, administrativo eficiente de requerimientos y prototipos incrementales Es por ello que se plantea la realización de una Aplicación Web para el Registro y Control de Documentos en las dependencias administrativas de los Centros Locales de la Universidad
  • 22. 3 Nacional Abierta, la cual permitirá la optimización de la búsqueda de información que requieren consultar en las distintas dependencias en un momento determinado. Esta investigación se encuentra formulada de la siguiente manera: a) Capítulo I: abarca el Planteamiento del Problema, donde se describe la situación del problema, el trabajo a desarrollar, la situación actual y área problemática, así como la solución propuesta y los beneficios que la misma traería, además del Objetivo General y los objetivos Específicos, que se alcanzan en el desarrollo del proyecto y el Alcance del Trabajo, en el cual se indicará hasta dónde se llegará con el trabajo, demarcando los límites del mismo. b) Capítulo II: engloba el Marco Teórico de la Investigación, incluye los trabajos de investigación de diferentes autores que hacen referencia al tema (Desarrollo de Aplicaciones WEB) y las bases teóricas que ayudaron al desarrollo de la misma. c) Capítulo III: corresponde al Marco Metodológico, donde se describe la metodología a utilizar en el desarrollo de la solución propuesta. d) Capitulo IV: contiene la Organización y Análisis de los Resultados obtenidos en el trabajo de investigación. e) Capítulo V: comprende las Conclusiones y Recomendaciones que arrojaron el trabajo de investigación
  • 23. 4 CAPÍTULO I PLANTEAMIENTO DEL PROBLEMA La Unidad Académica del Centro Local Lara de la Universidad Nacional Abierta (UNA), es el organismo destinado para estudiar las cuestiones relacionadas con las funciones de docencia, investigación y extensión que ejerce en dicha universidad, para el Estado Lara específicamente. Siendo esta dependencia la que se tomará como referencia de estudio para esta investigación, donde se pretende analizar la forma de cómo llevar de manera automatizada la recepción y envíos de documentos en este departamento, ya sea de manera interna o externa en el centro local. Actualmente dicha entidad presenta la necesidad de un sistema de control de documentos enviados y recibidos de las diferentes áreas y departamentos del propio centro local. Es conveniente resaltar que su sistema real es el físico, lo cual hace que dicha actividad sea lenta y en algunos casos infructuosa, debido a que se maneja un archivo de documentos (lugar donde se almacena el material escrito), conllevando a que exista la posibilidad de que no sea encontrada la información requerida y así ayude a la pérdida de tiempo y esfuerzo por parte de la persona encargada de su búsqueda. Por ejemplo, si un profesor que recién encargan para dirigir una oficina como la de sección académica, (unidad esta que recibe y emite diariamente muchos documentos), es muy difícil que recuerde documentos que recibió hace un mes, o su defecto más complicado tener en cuenta documentos que hayan recibido antes de su gestión, esto hace la gerencia de este tipo de cargos transitorios muy complicados ya que sin un registro indexado sea físico o
  • 24. 5 automatizado de los documentos procesados se haga un tarea cuesta arriba y conlleva una pérdida de tiempo muy importante. Por ello se requiere registrar y controlar los documentos que provienen y/o son enviados a otros centros locales o a nivel central. Todo esto con la finalidad de poder consultar en línea con buscadores especiales, (sobre la intranet del centro local en estudio), la ubicación exacta del documento solicitado en el archivo físico donde está almacenado el mismo. Dicha búsqueda será realizada específicamente por una frase del documento, una fecha, un tema, una dependencia, un remitente, etc. La realización de una aplicación web para el Registro y Control de Documentos en las dependencias administrativas de los Centros Locales de la Universidad Nacional Abierta, permitirá la optimización de la búsqueda de información que requieren consultar dichas dependencias en un momento determinado, y que difícilmente la persona encargada en el departamento, en este caso la Unidad Académica del Centro Local Lara, pueda saberla o en su defecto recordarla. Además, por medio de dicha aplicación se podrá hacer un registro adecuado de la información generada y recibida en cada departamento, teniendo la posibilidad de ordenar electrónicamente la ubicación de los documentos y hacerlos corresponder con el espacio físico donde se encuentren.
  • 25. 6 OBJETIVOS OBJETIVO GENERAL Desarrollar una Aplicación Web para el Registro y Control de Documentos de las Dependencias Administrativas de los Centros Locales de la Universidad Nacional Abierta. OBJETIVOS ESPECÍFICOS a) Realizar el modelo del negocio, mediante el estudio y descripción de las funciones que cumple la Unidad Académica del Centro Local Lara. b) Especificar los requisitos, que permitan satisfacer las necesidades de información de los usuarios del sistema que llevará el Registro y Control de Documentos. c) Realizar el modelado de diseño y de datos del sistema. d) Implementar la aplicación web. e) Realizar las pruebas necesarias para medir el comportamiento y asegurar el buen funcionamiento de la aplicación web desarrollada. f) Implantar la aplicación web en la Unidad Académica del Centro Local Lara. g) Elaborar el Informe Final de Práctica Profesional.
  • 26. 7 ALCANCE Las aplicaciones Web ofrecen un complejo arreglo de contenido y funcionalidad a una amplia población de usuarios finales y se evalúan mediante criterios tanto técnicos como institucionales. En base a la motivación del trabajo, en el desarrollo de esta práctica profesional se pretende implantar en la Unidad Académica del Centro Local Lara de la Universidad Nacional Abierta una aplicación que resuelva todos o la mayoría de los problemas presentados como son: a) Controlar los documentos enviados y recibidos de las diferentes áreas y departamentos del propio centro local. b) Registrar y controlar los documentos que provienen y/o son enviados a otros centros locales o a nivel central. Todo esto con la finalidad de poder consultar en línea con buscadores especiales, (sobre la intranet del centro local en estudio), la ubicación exacta del documento solicitado en el archivo físico donde está almacenado el mismo. Dicha búsqueda será realizada específicamente por una frase del documento, una fecha, un tema, una dependencia, un remitente, etc.
  • 27. 8 c) Optimización de la búsqueda de información que requieren consultar dichas dependencias en un momento determinado, y que difícilmente la persona encargada en el departamento, en este caso la Secretaria y/o Jefe de la Unidad Académica del Centro Local Lara, pueda saberla o en su defecto recordarla. d) Hacer un registro adecuado de la información generada y recibida en cada departamento, teniendo la posibilidad de ordenar electrónicamente la ubicación de los documentos y hacerlos corresponder con el espacio físico donde se encuentren. Sin embargo como toda aplicación, esta no está exenta de presentar algunas limitaciones, entre las cuales podemos mencionar: a) Dificultades para obtener en las aplicaciones Web comportamientos clásicos de aplicaciones stand-alone (Hecho a la medida). b) Necesidad de aprendizaje de lenguajes adicionales (HTML, JavaScript, CSS) que pertenecen al basamento del desarrollo de aplicaciones Web, para construir apropiadamente la aplicación. Es importante acotar que la aplicación propuesta posee características valiosas que nos servirán como punto de partida para resolver el tema planteado, es decir llevar el registro y control de todos los documentos en las dependencias administrativas, para así evitar la pérdida de datos e información y con ello implantar una novedosa aplicación que podrá ser instalada en cualquier departamento e incluso en instituciones ajenas a la Universidad Nacional Abierta en un momento dado y de esta forma ayudar al crecimiento en materia tecnológica a quienes lo requieran.
  • 28. 9 CAPÍTULO II MARCO TEÓRICO Dentro de la línea de investigación que se ha realizado a cerca de las aplicaciones Web sea recopiló información de varios autores que sirvieron como soporte para llevar a cabo tal investigación. Entre los trabajos más relevantes que aportaron información (aplicaciones web y metodología a usar) sobre el tema tratado en este estudio se encuentran:  Intriago Macias, Ana Yadira (2013), en su trabajo de grado Desarrollo e Implementación de un Aplicación Web de encuestas de satisfacción docente y currículum para la Facultad de Ciencias Informáticas, permite obtener el currículum actualizado y realizar encuestas online y conocer la satisfacción del docente en las diferentes áreas, sean estas académicas, gestión, investigación, vinculación, infraestructura, entre otras.  Tubay Vergara, José Luis (2010), realizó como tesis de grado Desarrollo de una Aplicación Web para el control de Avances Académicos y Asistencia de Docentes, con la cual se puede obtener
  • 29. 10 un control de cada uno de los Docentes en el cumplimiento académico de una manera fácil y rápida.  Guariman Rondón, Oscar Enrique (2009), en su trabajo de grado Diseño de una aplicación Web para la Gestión en Línea de los Servicios Académicos de una Institución de Educación Superior se refiere al diseño de una aplicación informática utilizando tecnología Web. Este permitirá la gestión en línea de los servicios académicos de la Universidad Bolivariana de Venezuela (UBV), la cual está distribuida en 5 sedes en todo el territorio nacional. La UBV ofrece Programas de Formación de Grado que se imparten no sólo en la sede, sino también en otras instalaciones denominadas “aldeas”. Para la recolección de información acerca de los procesos que dan soporte a los servicios académicos como son: las inscripciones, solicitud de documentos, registro de notas, prosecución del estudiante, entre otros, se emplearon técnicas como la entrevista y observación directa.  Blanco, Ignacio Carlos (2008), en su trabajo de tesis denominado Plataformas de desarrollo de Aplicaciones Web orientadas a componentes reutilizables, estudia las plataformas de desarrollo de aplicaciones Web existentes teniendo en cuenta su arquitectura, los servicios prestados así como también sus fortalezas y debilidades. En base al análisis comparativo y a un conjunto de requerimientos necesarios para el desarrollo de aplicaciones Web empresariales se planteará una posible solución, una plataforma, que cumpla con los requerimientos y a la vez que resuelva las debilidades encontradas en las plataformas estudiadas.
  • 30. 11  Mora Luján, Sergio (2002), en su trabajo sobre Programación sobre Aplicaciones Web, nos explica que las aplicaciones web permiten la generación automática de contenido, la creación de páginas personalizadas según el perfil del usuario o el desarrollo del comercio electrónico, además permite interactuar con los sistemas informáticos de gestión de un empresa, como puede ser gestión de clientes, contabilidad o inventario a través de una página web. También nos señala que las aplicaciones web se encuentran dentro de las arquitecturas cliente/servidor.  Para el año 2001 el estudiante Iván José Puglieser Saroff realizó el trabajo de grado “Desarrollo del Sistema de Compras Cliente/Servidor para la Universidad de Oriente, Núcleo Anzoátegui”, En este trabajo se plantea la necesidad de que en la Universidad de Oriente Núcleo Anzoátegui se desarrolle un sistema que permita gestionar las compras de la Universidad de Oriente núcleo Anzoátegui, para lo cual el estudiante Iván Puglieser diseñó una herramienta para gestionar el procesamiento de las solicitudes de compras, ordenes de compras, hojas de análisis e informe de recepción. El análisis y diseño de esta aplicación fue realizado mediante la notación UML (Unified Modeling Language) y fue implantado bajo la tecnología cliente/servidor.  Para el año 2001 el estudiante Alfredo Molero desarrolló el trabajo titulado “Diseño de la Intranet de la Escuela de Medicina de la Universidad de Oriente Núcleo de Anzoátegui”. Donde se plantea el diseño e implantación de un proyecto de alto nivel tecnológico que solvente los problemas de comunicación y coordinación de índole académico-administrativo de la escuela de medicina. Para ello de
  • 31. 12 diseño una infraestructura de hardware y software que conformó la Intranet de dicha escuela la cual permitió el uso de aplicaciones que se diseñaron para el uso en la Intranet así como herramientas que permitieran ayudar al control de las distintas actividades administrativas. BASES TEÓRICAS A continuación se presentarán una serie de conceptos y definiciones relacionadas con el tema central de este trabajo. INGENIERÍA DE SOFTWARE El proceso de ingeniería de software se define como “un conjunto de etapas parcialmente ordenadas con la intención de lograr un objetivo, en este caso, la obtención de un producto de software de calidad…".Roger Presman Ingeniería del Software (Pág…24) El proceso de desarrollo de software “es aquel en que las necesidades del usuario son traducidas en requerimientos de software, estos requerimientos transformados en diseño y el diseño implementado en código, el código es probado, documentado y certificado para su uso operativo". Concretamente "define quién está haciendo qué, cuándo hacerlo y cómo alcanzar un cierto objetivo…." (Pág…24). El proceso de desarrollo de software requiere por un lado un conjunto de conceptos, una metodología y un lenguaje propio. A este proceso también se le llama el ciclo de vida del software que comprende cuatro grandes fases: concepción, elaboración, construcción y transición (véase figura Nº 1).
  • 32. 13 La concepción define el alcance del proyecto y desarrolla un caso de negocio, la elaboración define un plan del proyecto, especifica las características y fundamenta la arquitectura, la construcción crea el producto y la transición transfiere el producto a los usuarios. Figura Nº 1 Modelo de Cascada de Desarrollo de Software. Fuente: elaboración propia, año: 2014. Actualmente se encuentra en una etapa de madurez el enfoque OO (Orientado a Objetos) como paradigma del desarrollo de sistemas de información. El (OMG) Object Management Group es un consorcio a nivel internacional que integra a los principales representantes en la industria de la tecnología de información OO, éste tiene como objetivo central la promoción, fortalecimiento e impulso de la tecnología OO, propone y adopta por consenso especificaciones entorno a esta. Una de las especificaciones más importantes es la adopción en 1998 del Lenguaje de Modelado Unificado o UML como un estándar, que junto con el Proceso Unificado están consolidando la tecnología OO.
  • 33. 14 LENGUAJE UNIFICADO DE MODELADO UML UML surge como respuesta al problema de contar con un lenguaje estándar para escribir planos de software. Muchas personas han creído ver UML como solución para todos los problemas sin saber en muchos casos de lo que se trataba en realidad. El Lenguaje Unificado de Modelado, UML es una notación estándar para el modelado de sistemas software, resultado de una propuesta de estandarización promovida por el consorcio OMG (Object Management Group),del cual forman parte las empresas más importantes que se dedican al desarrollo de software, en 1996. UML representa la unificación de las notaciones de los métodos Booch, Objectory (Ivar Jacobson) y OMT (James Rumbaugh) siendo su sucesor directory compatible. Igualmente, UML incorpora ideas de otros metodólogos entre los que se pueden incluir a Peter Coad, Derek Coleman, Ward Cunningham, David Harel, Richard Helm, Ralph Johnson, Stephen Mellor, Bertrand Meyer, Jim Odell, Kenny Rubin, Sally Shlaer, John Vlissides, Paul Ward, Rebecca Wirfs-Brock y Ed Yourdon. En Septiembre de 2001 se ha publicada la especificación de la versión1.4. Es importante recalcar que sólo se trata de una notación, es decir, de una serie de reglas y recomendaciones para representar modelos. UML no es un proceso de desarrollo, es decir, no describe los pasos sistemáticos a seguir para desarrollar software. UML sólo permite documentar y especificar los elementos creados mediante un lenguaje común describiendo modelos. El Lenguaje Unificado de Modelado o UML es una técnica para la especificación de sistemas en todas sus fases. Esta ha sido desarrollada por
  • 34. 15 los más importantes autores en materia de análisis y diseño de sistemas, ha sido usada con éxito en sistemas hechos para toda clase de industrias alrededor del mundo: salud, bancos, comunicaciones, aeronáutica, finanzas, etc. UML no es un lenguaje de programación. Existen herramientas que pueden ofrecer generadores de código de UML para una gran variedad de lenguaje de programación, así como construir modelos por ingeniería inversa a partir de programas existentes. Este es pues un lenguaje de propósito general para el modelado orientado a objetos, UML es también un lenguaje de modelamiento visual que permite una abstracción del sistema y sus componentes. En la figura Nº 2 se puede observar el desarrollo de UML y sus versiones en los años dados, sufriendo revisiones menores, y ciertos participantes en las diversas versiones.
  • 35. 16 Figura Nº 2. Desarrollo de UML, con sus versiones Fuente: http://www.usmp.edu.pe/publicaciones/boletin/fia/info21/fig_uml.jpg UML es un lenguaje de propósito general para el modelado orientado a objetos, que combina notaciones provenientes desde: Modelado Orientado a Objetos, Modelado de Datos, Modelado de Componentes, Modelado de Flujos de Trabajo (Workflows). En todos los ámbitos de la ingeniería se construyen modelos, en realidad, simplificaciones de la realidad, para comprender mejor el sistema que vamos a desarrollar: los arquitectos utilizan y construyen planos (modelos) delos edificios, los grandes diseñadores de coches preparan modelos en sistemas existentes con todos los detalles y los ingenieros de software deberían igualmente construir modelos de los sistemas software.
  • 36. 17 Un enfoque sistemático permite construir estos modelos de una forma consistente demostrando su utilidad en sistemas de cierto tamaño. Cuando se trata de un programa de cincuenta, cien líneas, la utilidad del modelado parece discutible pero cuando involucramos a cientos de desarrolladores trabajando y compartiendo información, el uso de modelos y el proporcionar información sobre las decisiones tomadas, es vital no sólo durante el desarrollo del proyecto, sino una vez finalizado éste, cuando se requiere algún cambio en el sistema. En realidad, incluso en el proyecto más simple los desarrolladores hacen algo de modelado, si bien informalmente. Para la construcción de modelos, hay que centrarse en los detalles relevantes mientras se ignoran los demás, por lo cual con un único modelo no tenemos bastante. Como Inconvenientes en UML se tiene que Como todo en el desarrollo de software UML presenta ciertos inconvenientes, entre los cuales se pueden mencionar: Falta integración con respecto de otras técnicas tales como patrones de diseño, interfaces de usuario, documentación, etc., los ejemplos aislados, el monopolio de conceptos, técnicas y métodos en torno a UML. También se prevé varias perspectivas de UML ya que por ser un lenguaje de propósito general será un lenguaje de modelado orientado a objetos estándar predominante los próximos años, esto se basa en las siguientes razones:  Participación de metodólogos influyentes  Participación de importantes empresas  Aceptación del OMG como notación estándar Se muestran las siguientes evidencias que apoyan lo antedicho:
  • 37. 18  Herramientas que proveen la notación UML  “Edición” de libros  Congresos, cursos, “camisetas”, etc. Descripción de los diagramas Un modelo captura una vista de un sistema del mundo real. Es una abstracción de dicho sistema, considerando un cierto propósito. Así, el modelo describe completamente aquellos aspectos del sistema que son relevantes al propósito del modelo, y a un apropiado nivel de detalle. Un diagrama es una representación gráfica de una colección de elementos de modelado, a menudo dibujada como un grafo con vértices conectados por arcos Un proceso de desarrollo de software debe ofrecer un conjunto de modelos que permitan expresar el producto desde cada una de las perspectivas de interés. Es aquí donde se hace evidente la importancia de UML en el contexto de un proceso de desarrollo de software. El código fuente del sistema es el modelo más detallado del sistema (y además es ejecutable). Sin embargo, se requieren otros modelos. Figura Nº 3. Relaciones de enlaces entre modelos Fuente: http://www.monografias.com/trabajos-pdf5/diagramas-casos- uso/image001.jpg
  • 38. 19 Cada modelo es completo desde su punto de vista del sistema, sin embargo, existen relaciones de enlaces entre los diferentes modelos (figura Nº 3). Objetivos del lenguaje unificado de modelado. UML es un lenguaje de modelado que pueden usar todos los modeladores. No tiene propietario y está basado en el común acuerdo de gran parte de la comunidad informática. UML no pretende ser un método de desarrollo completo, pues no incluye un proceso de desarrollo paso a paso, pero puede manejar todos los conceptos que se consideran necesarios para utilizar un proceso moderno de desarrollo, basado en construir una sólida arquitectura para resolver requisitos dirigidos por casos de uso, por otro lado busca ser tan simple como sea posible pero manteniendo la capacidad de modelar toda la gama de sistemas que se necesiten construir. UML necesita ser lo suficientemente expresivo para manejar todos los conceptos que se originan en un sistema moderno, tales como la concurrencia y distribución, así como también los mecanismos de la ingeniería de software como son la encapsulación y componentes. Uso del lenguaje unificado de modelado. UML sirve para hacer modelos que permitan: a) Visualizar como es un sistema o como de desea.
  • 39. 20 b) Especificar la estructura y/o comportamiento de un sistema. c) Hacer una plantilla que guíe la construcción de los sistemas El modelado sirve no solamente para los grandes sistemas; aún en aplicaciones de pequeño tamaño se obtienen beneficios de modelar, sin embargo, es un hecho que entre más grande y más complejo es el sistema, el modelado juega un papel más importante, esto se debe a una razón simple: se hacen modelos de sistemas complejos porque no se pueden entender en su totalidad. El UML es independiente de metodología, por lo que puede ser usada y lo es en distintas metodología como: Fusion, Objectory, Rational Unified Process, OMT, ECM, Catalysys, etc. La independencia antes mencionada permite que las organizaciones adapten el uso de UML a la metodología que consideren más apropiada. Fases del ciclo de desarrollo que soporta UML. Cada diagrama puede ser usado con énfasis distinto en las fase de desarrollo: análisis, diseño e implementación, un diagrama cualquiera en una fase de tendrá un estudio lógico, cabe aclarar que aunque UML es orientado a objetos preferentemente, esto es útil en cualquier modelo tecnológico ya que es independiente de lenguajes de programación o tecnología determinada. Diagramas que ofrece el UML.
  • 40. 21 El UML tiene una notación gráfica muy expresiva que permite representar en mayor o menor medida todas las fases de un proyecto informático pasando por el análisis, diseño, implementación y hasta configuración. Estos gráficos son un conjunto de elementos con sus relaciones, por otro lado ofrecen una vista del sistema a modelar. Para poder representar correctamente un sistema UML ofrece una amplia variedad de diagramas para visualizar el sistema desde varias perspectivas, entre estos diagramas se tienen los siguientes: Figura Nº 4 Diagramas del UML que expresan gráficamente un Modelo. Fuente: elaboración propia, año: 2009.
  • 41. 22 Diagrama de Casos de Usos. El diagrama de casos de usos representa gráficamente los casos de uso que tiene un sistema véase figura Nº 5. Se define un caso de uso como cada interacción supuesta con el sistema a desarrollar donde se representan los requisitos funcionales. Es decir se está diciendo lo que tiene que hacer un sistema Figura Nº 5 Ejemplo de Modelo de Casos de Uso. Fuente: http: //www.cyta.com.ar/ta0604/v6n4a1.htm, año: 2007 Diagrama de Clase. Un diagrama de clases sirve para visualizar las relaciones entre las clases que involucran el sistema, las cuales pueden ser asociativas, de herencia, de uso y de contenido. Un diagrama de clases está compuesto por los siguientes elementos: •Clase: atributos, métodos y visibilidad.
  • 42. 23 • Relaciones: Herencia, Composición, Agregación, Asociación y Uso. Clase: Es la unidad básica que encapsula toda la información de un Objeto (un objeto es una instancia de una clase). A través de ella podemos modelar el entorno en estudio (una Casa, un Auto, una Cuenta Corriente, etc.). Relaciones entre Clases: Ahora ya definido el concepto de Clase, es necesario explicar cómo se pueden interrelacionar dos o más clases (cada uno con características y objetivos diferentes). Antes es necesario explicar el concepto de cardinalidad de relaciones: En UML, la cardinalidad de las relaciones indica el grado y nivel de dependencia, se anotan en cada extremo de la relación y éstas pueden ser: • Uno o muchos: 1...* (1...n) • 0 o muchos: 0...* (0...n) • Número fijo: m (m denota el número). Herencia (Especialización/Generalización): Indica que una subclase hereda los métodos y atributos especificados por una Súper Clase, por ende la Subclase además de poseer sus propios métodos y atributos, poseerá las características y atributos visibles de la Súper Clase (public y protected). Agregación: Para modelar objetos complejos, n bastan los tipos de datos básicos que proveen los lenguajes: enteros, reales y secuencias de caracteres. Cuando se requiere componer objetos que son instancias de clases definidas por el desarrollador de la aplicación, tenemos dos posibilidades: • Por Valor: Es un tipo de relación estática, en donde el tiempo de vida del objeto incluido está condicionado por el tiempo de vida del que lo incluye. Este tipo de relación es comúnmente llamada Composición
  • 43. 24 (el Objeto base se construye a partir del objeto incluido, es decir, es "parte/todo"). • Por Referencia: Es un tipo de relación dinámica, en donde el tiempo de vida del objeto incluido es independiente del que lo incluye. Este tipo de relación es comúnmente llamada Agregación (el objeto base utiliza al incluido para su funcionamiento). Asociación: La relación entre clases conocida como Asociación, permite asociar objetos que colaboran entre sí. Cabe destacar que no es una relación fuerte, es decir, el tiempo de vida de un objeto no depende del otro. Dependencia o Instanciación (uso): Representa un tipo de relación muy particular, en la que una clase es instanciada (su instanciación es dependiente de otro objeto/clase). Se denota por una flecha punteada. El uso más particular de este tipo de relación es para denotar la dependencia que tiene una clase de otra, como por ejemplo una aplicación gráfica que instancia una ventana (la creación del Objeto Ventana está condicionado a la instanciación proveniente desde el objeto Aplicación):
  • 44. 25 Figura Nº 6 Ejemplo de un Diagrama de Clases. Fuente: http: //es.geocities.com/nacarit_espaa/fase2/t1.html, año: 2007 Diagrama de Colaboración Un diagrama de colaboración es una forma alternativa al diagrama de secuencia para mostrar un escenario. Este tipo de diagrama muestra las interacciones entre objetos y los enlaces entre ellos. Los diagramas de secuencia proporcionan una forma de ver el escenario en un orden temporal - qué pasa primero, qué pasa después -, los clientes entienden fácilmente este tipo de diagramas, por lo que resultan útiles en las primeras fases de análisis. Por tanto los diagramas de
  • 45. 26 colaboración proporcionan la representación principal de un escenario, ya que las colaboraciones se organizan entorno a los enlaces de unos objetos con otros. Este tipo de diagramas se utilizan frecuentemente en la fase de diseño, véase figura Nº 7 donde se muestra un ejemplo. Figura Nº 7 Ejemplo de un Diagrama de Colaboración. Fuente: http: //rtlabnet.wikidot.com/doc: diseno: rcu: editor, año: 2007. Diagrama de Secuencia Un diagrama de secuencia es una forma de diagrama de interacción que muestra los objetos como líneas de vida a lo largo de la página y con sus interacciones en el tiempo representadas como mensajes dibujados como flechas desde la línea de vida origen hasta la línea de vida destino. Los diagramas de secuencia son buenos para mostrar qué objetos se comunican
  • 46. 27 con qué otros objetos y qué mensajes disparan esas comunicaciones. Los diagramas de secuencia no están pensados para mostrar lógicas de procedimientos complejos, véase figura Nº 8. Línea de Vida Una línea de vida representa un participante individual en un diagrama de secuencia. Una línea de vida usualmente tiene un rectángulo que contiene el nombre del objeto. Si el nombre es self entonces eso indica que la línea de vida representa el clasificador que posee el diagrama de secuencia. Algunas veces un diagrama de secuencia tendrá una línea de vida con un símbolo del elemento actor en la parte superior. Este usualmente sería el caso si un diagrama de secuencia es contenido por un caso de uso. Los elementos entidad, control y límite de los diagramas de robustez también pueden contener líneas de vida. Mensajes Los mensajes se muestran como flechas. Los mensajes pueden ser completos, perdidos o encontrados; síncronos o asíncronos: llamadas o señales. Ocurrencia de ejecución Un rectángulo fino a lo largo de la línea de vida denota la ocurrencia de ejecución o activación de un foco de control.
  • 47. 28 Mensaje Self Un mensaje self puede representar una llamada recursiva de una operación, o un método llamando a otro método perteneciente al mismo objeto. Este se muestra como cuando crea un foco de control anidado en la ocurrencia de ejecución de la línea de vida. Mensajes perdidos y encontrados Los mensajes perdidos son aquellos que han sido enviados pero que no han llegado al destino esperado, o que han llegado a un destino que no se muestra en el diagrama actual. Los mensajes encontrados son aquellos que llegan de un remitente no conocido, o de un remitente no conocido en el diagrama actual. Ellos se denotan yendo o llegando desde un elemento de punto final. Inicio y final de línea de vida Una línea de vida se puede crear o destruir durante la escala de tiempo representada por un diagrama de secuencia. En el último caso, la línea de vida se termina por un símbolo de detención, representado como una cruz. En el primer caso, el símbolo al inicio de la línea de vida se muestra en un nivel más bajo de la página que el símbolo del objeto que causó la creación. Restricciones de tiempo y duración En forma predeterminada, un mensaje se muestra como una línea horizontal. Ya que la línea de vida representa el pasaje de tiempo hacia abajo, cuando se modela un sistema en tiempo real, o incluso un proceso de
  • 48. 29 negocios en tiempo límite, puede ser importante considerar el tiempo que toma realizar las acciones. Al configurar una restricción de duración para un mensaje, el mensaje se mostrará como una línea inclinada. Figura Nº 8 Ejemplo de un Diagrama de Secuencia. Fuente: http: //www.chuidiang.com/ood/metodologia/diagrama_secuencia.php, año: 2007. Extensión WAE del UML. Una de las características más relevantes de la notación UML es su capacidad para absorber nueva semántica sin romper su lógica interna. La necesidad de implementar complejas arquitecturas con múltiples capas y una gran dispersión geográfica de nodos, ha supuesto todo un reto al abordar su modelado y especificación. Jim Conallen ha desarrollado desde 1998 una extensión de la notación UML denominada WAE “Web Application Extensión”
  • 49. 30 que permite rentabilizar toda la gramática interna de UML para modelar aplicaciones con elementos específicos de la arquitectura de un entorno WEB. La tabla Nº 1, muestra los estereotipos que se utilizan en WAE. Una página cliente es una unidad de código HTML que es distribuida por el servidor Web a sus clientes, que son los navegadores Web, los navegadores interpretan el código y presentan la información que contiene al usuario. Para obtener una página cliente, el navegador envía al servidor Web la dirección URL (Uniform Resource Locator) de la página. Una página servidora, por su parte, es una secuencia de comandos en algún lenguaje de programación como ser PHP, ASP, JSP, PERL, etc. que son procesados por el mismo servidor. Al igual que las páginas cliente la página servidora tienen una URL que es enviada por el navegador al servidor Web, pero éste, en lugar de distribuir la página, ejecuta las instrucciones que contiene. Estas instrucciones pueden ser, por ejemplo, para consultar una base de datos y extraer de ella información que interesa al usuario del navegador, y terminan generalmente con la construcción de una página cliente que contiene la información obtenida, y que es enviada entonces por el servidor Web al navegador para que se la presente al usuario. Desde el punto de vista de éste, el servidor Web le envía la página cliente construida en forma dinámica, en respuesta a la URL de la página servidora enviada previamente.
  • 50. 31 Tabla Nº 1 Estereotipos Utilizados en la Notación WAE. Estereotipos para las Clases Estereotipo Descripción Server Page Representa una página Web que tiene scripts ejecutados por el servidor. Estos scripts interactúan con los recursos que se encuentran al alcance del servidor. Sólo puede mantener relaciones con objetos que se encuentren en el servidor Client Page Representan páginas que son dibujadas por el navegador web y pueden ser una combinación de algún o algunos lenguajes de marcado, scripts del lado del cliente, islas de datos, etc. Form Representa una colección de campos de entrada que forman parte con una página del lado cliente (Client Page). Tiene una correspondencia directa con la etiqueta <FORM> de XHTML. ClientScript Es una colección de scripts del lado del cliente que existe como un archivo separado y que
  • 51. 32 Object son incluidos mediante una petición independiente por parte del navegador. Estereotipos para las Relaciones entre las Clases Link Representa un apuntador desde una “client page” hacia una “client page” o “server page”. Corresponde directamente con una etiqueta <a> (ancla) de HTML Submit Esta relación siempre se da entre una “form” y una “server page”, por supuesto, la “server page” procesa los datos que la “form” le envía (submits) Build Sirve para identificar cuales “server page” son responsables de la creación de una “client page”. Una “server page” puede crear varias “client page”, pero una “client page” sólo puede ser creada por una sola “server page”. Esta relación siempre es unidireccional Redirect Esta es también una relación unidireccional que indica que una página Web redirige hacia otra. En caso de que la página origen sea una “client page” esta asociación corresponderá con la “META” etiqueta y valor HTTP-EQUIV de “Refresh”*.
  • 52. 33 MODELO CLIENTE-SERVIDOR. La tecnología denominada Cliente/Servidor es utilizada en todas las aplicaciones de Internet/intranet, un servidor es un ordenador remoto en algún lugar de la red que proporciona información según la petición véase figura Nº 9. Un cliente funciona en su computador local que se comunica con el servidor remoto y pide a éste información. Un servidor típicamente sirve a una multitud de clientes, ahorrando a cada uno de ellos el problema de tener la información instalada y almacenada localmente. Los sistemas Cliente/Servidor pueden ser de muchos tipos, dependiendo de las aplicaciones que el servidor pone a disposición de los clientes, entre otros, existen los siguientes: • Servidor de Impresión: mediante el cual los usuarios imprimen remotamente. • Servidor de Archivos: con el cual los clientes comparten y/o almacenan archivos, a este servicio se le conoce cono Servidor FTP. • Servidor de Bases de Datos: donde existe uno o varios sistemas de Base de Datos. • Servidor de Nombres: el cual convierte las direcciones IP (Protocolo Internet) en nombres y viceversa también se conoce como Servidor DNS.  Servidor Web: el cual sirve páginas Web. • Servidor de Correo: el cual permite enviar y/o recibir correo electrónicos mediante un cliente de correo electrónico.
  • 53. 34 Figura Nº 9Modelo Cliente-Servidor en un entorno Web. Fuente: http://daw-fiec.pbworks.com/f/cliente_servidor2.jpg PROGRAMACIÓN ORIENTADA A OBJETOS. El paradigma OO se basa en el concepto de objeto, un objeto es aquello que tiene estado (propiedades más valores), comportamiento (acciones y reacciones a mensajes) e identidad (propiedad que lo distingue de los demás objetos). La estructura y comportamiento de objetos similares están definidos en una clase común, los términos instancia y objeto son intercambiables. Una clase es un conjunto de objetos que comparten una estructura y comportamiento común, la diferencia entre un objeto y una clase es que un objeto es una entidad concreta que existe en tiempo y espacio, mientras que una clase representa una abstracción, la "esencia" de un objeto, tal como son, de aquí que un objeto no es una clase, sin embargo, una clase puede ser un objeto.
  • 54. 35 En el enfoque OO las propiedades del objeto son claves, los principios del modelo OO son: • Abstracción: Es una descripción simplificada o especificación de un sistema que enfatiza algunos de los detalles o propiedades del sistema, mientras suprime otros. • Encapsulación: Es el proceso de ocultar todos los detalles de un objeto que no contribuyen a sus características esenciales. • Modularidad: Es la propiedad de un sistema que ha sido descompuesto en un conjunto de módulos coherentes e independientes. • Jerarquía o herencia: Es el orden de las abstracciones organizado por niveles. • Tipificación: Es la definición precisa de un objeto de tal forma que objetos de diferentes tipos no puedan ser intercambiados o cuando mucho, puedan intercambiarse de manera muy restringida. • Concurrencia: Es la propiedad que distingue un objeto que está activo de uno que no lo está. • 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. Si un modelo que se dice OO no contiene alguno de los primeros cuatro elementos, entonces no es OO.
  • 55. 36 Los beneficios del enfoque OO. • El uso del modelo OO ayuda a explotar el poder expresivo de todos los lenguajes de programación basados en objetos y los orientados a objetos, como Smalltalk, Object Pascal, C++, CLOS, Ada, y Java. • El uso del modelo OO alienta el rehúso no solo del software, sino de diseños completos. • Produce sistemas que están construidos en formas intermedias estables y por ello son más resistentes al cambio en especificaciones y tecnología. SERVIDOR WEB SEGURO. Existen ocasiones en las que se hace necesario recibir/enviar información sensible a un Servidor Web, es por ello que se hace imprescindible el contar con un mecanismo que dé fe de si, un servidor seguro es en quien se cree y se puede confiar en él a la hora de transmitirle la información. La forma como se hace es mediante las Autoridades de Certificación (AC), conocidas informalmente como notarios electrónicos, encargadas de autenticar a los participantes en transacciones y comunicaciones a través de la red. Su función es emitir certificados a los usuarios, de manera que se pueda estar seguro de que el interlocutor (cliente o servidor) es quien pretende ser, garantizando así la seguridad de las transacciones, véase figura Nº 10. El certificado de seguridad se concede a una entidad después de comprobar una serie de referencias, para asegurar la identidad del receptor de los datos cifrados. Se construye a partir de la clave pública del servidor solicitante, junto con algunos datos básicos del mismo y es firmado por la
  • 56. 37 autoridad de certificación correspondiente con su clave privada. En la práctica, se sabe que el servidor es seguro porque en el navegador de Internet se ve una llave o un candado cerrado en la barra de estado de éste. Figura Nº 10 Intercambio de Información entre un Navegador Web (cliente) y un Servidor Web Seguro. Fuente: http: //neo.lcc.uma.es/evirtual/cdd/tutorial/presentacion/ssl.html, año 2007. PÁGINAS WEB
  • 57. 38 Una página Web estática incluye un contenido que se muestra del mismo modo cada vez que se solicita desde un navegador. Un ejemplo de una página Web estática es una página de servicio al cliente que contiene información de contacto como por ejemplo: los números de teléfono, los números de fax y las direcciones de correo electrónico que no suelen cambiar con frecuencia. Una página Web estática se crea utilizando sólo HTML lenguaje que interpretan los navegadores Web. Una página Web estática contiene además del código HTML, texto, así como otros elementos apropiados para la página como imágenes y animación, pero no utilizan la información almacenada en Base de Datos. El contenido de una página Web dinámica en cambio se genera cuando el usuario solicita la página. Generalmente el contenido se extrae de una Base de Datos, lo que permite presentar la información más actual sin volver a codificar la página Web. Una página Web dinámica actúa como una plantilla: contiene código para recuperar la información solicitada y dar formato a la salida. EL LENGUAJE SQL. El SQL (Structured Query Language) o Lenguaje de Consultas Estructurado, es el lenguaje que permite la comunicación con el Sistema Gestor de Bases de Datos. Es un lenguaje unificado, y lo utilizan todo tipo de usuarios, desde el administrador de la Base de Datos, hasta el usuario final. El SQL es un lenguaje no procedimental esto quiere decir que el usuario especifica Qué quiere, no Cómo ni Dónde conseguirlo. El SQL es
  • 58. 39 relacionalmente completo esto permite la realización de cualquier consulta de datos. Las sentencias SQL pertenecen a dos categorías principales: Lenguaje de Definición de Datos (DDL) y Lenguaje de Manipulación de Datos (DML). Estos dos lenguajes no son lenguajes en sí mismos, sino que es una forma de clasificar las sentencias de lenguaje SQL en función de su cometido. La diferencia principal reside en que el DDL crea objetos en la base de datos y sus efectos se pueden ver en el diccionario de la base de datos, mientras que el DML es el que permite consultar, insertar, modificar y eliminar la información almacenada en los objetos de la base de datos. El lenguaje SQL está basado en el cálculo relacional de tuplas. Como resultado, toda consulta formulada utilizando el cálculo relacional de tuplas (o su equivalente, el álgebra relacional) se pude formular también utilizando SQL. Hay, sin embargo, capacidades que van más allá del cálculo o del álgebra relaciona. A continuación se muestra una lista de algunas características proporcionadas por SQL que no forman parte del álgebra y de cálculo relacionales:  Comandos para inserción, borrado o modificación de datos.  Capacidades aritméticas: En SQL es posible incluir operaciones aritméticas así como comparaciones, por ejemplo A < B + 3. Nótese que ni + ni otros operadores aritméticos aparecían en el álgebra relacional ni en cálculo relacional.  Asignación y comandos de impresión: es posible imprimir una relación construida por una consulta y asignar una relación calculada a un nombre de relación.
  • 59. 40  Funciones agregadas: Operaciones tales como promedio (average), suma (sum), máximo (max), etc. se pueden aplicar a las columnas de una relación para obtener una cantidad única. LAS BASES DE DATOS Una base de datos es un conjunto de datos estructurados, en un soporte de almacenamiento de datos y se puede acceder a ella desde uno o varios programas. Antes de diseñar una base de datos se debe establecer un proceso partiendo del mundo real, de manera que sea posible plasmar éste mediante una serie de datos. La imagen que se obtiene del mundo real se denomina modelo conceptual y consiste en una serie de elementos que definen perfectamente lo que se quiere plasmar del mundo real en la base de datos. El Sistema Gestor de Bases de Datos (SGBD) es un conjunto de programas, procedimientos y lenguajes que proporcionan a los usuarios las herramientas necesarias para operar con una base de datos. Por tanto, el SGBD actúa como un intermediario entre los usuarios y los datos. Debe cumplir una serie de funciones como descripción de los datos, de manera que debe permitir definir los registros, sus campos, sus relaciones de autorización, etc. Debe manipular los datos permitiendo a los usuarios insertar, suprimir, modificar y consultar datos de la base de datos y por último, debe permitir usar la base de datos, dando un interfaz adecuado a cada tipo de usuario.
  • 60. 41 EL MODELO ENTIDAD-RELACIÓN Es una técnica de diseño de bases de datos gráfica, que incorpora información relativa a los datos y la relación existente entre ellos, para poder así plasmar una visión del mundo real sobre un soporte informático. Sus características fundamentales son: 1. Reflejan tan sólo la existencia de los datos sin expresar lo que se hace con ellos. 2. Es independiente de las bases de datos y de los sistemas operativos. 3. Incluye todos los datos que se estudian sin tener en cuenta las aplicaciones que se van a tratar. Las entidades se representan como rectángulos, los atributos como elipses y las relaciones como rombos. Entidad: Una entidad es un objeto concreto o abstracto que presenta interés para el sistema y sobre el que se recoge información la cual va a ser representada en un sistema de base de datos. La mayoría de las entidades modelan objetos o eventos del mundo real, por ejemplo, clientes, productos o llamadas de pedidos. Atributo: Es una unidad básica e indivisible de información acerca de una entidad o una relación y sirve para identificar y describir a las mismas. Por ejemplo, si se va a modelar un evento como una llamada al servicio de asistencia, probablemente se querrá saber quién era el cliente, quién hizo la
  • 61. 42 llamada y cuándo, así como si se resolvió o no el problema. La determinación de los atributos que hay que incluir en el modelo es un problema semántico (de significado). Se deben tomar decisiones basadas en el significado de los datos y en cómo se utilizarán. Dominio: Un dominio es el conjunto de valores que puede tomar cada uno de los atributos. Tabla: Organización de los datos en forma de filas y columnas. Cada fila se llama tupla, y cada columna dentro de una tupla corresponde al valor de un atributo para esa tupla. Relación: Asociación entre entidades. Por ejemplo, un "alumno" "tiene" una "asignatura". Tabla relacional: Es una tabla que debe cumplir las siguientes características: • Cada fila debe ser única. • Cada columna debe ser única. • Los valores de las columnas deben pertenecer al dominio de cada atributo. • Debe tener un solo tipo de fila, cuyo formato está definido por el esquema de la tabla o relación. • El valor de la columna para cada fila debe ser único. Clave candidata: Atributo o atributos que pueden distinguir de forma unívoca una tupla dentro de una tabla. Puede haber varias claves candidatas para distinguir una misma entidad. Se elegirá como clave candidata aquel atributo que posea un dominio en el que se tenga valores únicos. Si esto no
  • 62. 43 es posible, entonces se usa como clave candidata la combinación de varios atributos, de manera que esta combinación sí sea única. Clave principal: Aquella de las claves candidatas que es designada para distinguir de forma unívoca una tupla dentro de una tabla. Clave ajena: Se trata de un atributo que es clave principal en otra tabla. Vista: Una vista es una tabla ficticia cuya definición y tuplas se obtiene a partir de una o más tablas base. Sus características son: 1. Sus columnas se obtienen a partir de varias tablas base. 2. Pueden estar definidas a partir de otras vistas. 3. Sus datos se obtienen como resultado de una consulta a la base de datos. 4. Se puede almacenar su estructura. Se trata de una tabla virtual que no existe como tabla en el disco. Inconsistencia: Se da cuando se encuentra un valor en una clave ajena no existente en la entidad donde ésta sea clave principal. Asociaciones entre entidades Asociaciones uno-a-uno: Si es cierto que cualquier ejemplar de la entidad X se puede asociar con tan sólo un ejemplar de la entidad Y, entonces se dice que la asociación es uno-a-uno. Cuando se elige una asociación uno-a- uno se debe asegurar de que se mantenga la asociación en todo momento.
  • 63. 44 Asociaciones uno-a-muchos: Es el tipo de asociación más común, donde un solo ejemplar de una entidad se puede asociar con cero, uno o muchos ejemplares de otra entidad. Por ejemplo, una persona puede tener varios números de teléfono. Asociaciones muchos-a-muchos: Los clientes compran en muchas tiendas, una tienda tiene muchos clientes. Como este tipo de relaciones no se puede modelar directamente en una base de datos relacional, se modela usando una tabla intermedia que tenga una asociación uno-a-muchos con cada uno de los participantes originales. Por ejemplo, un pedido puede tener muchos tipos de confección, y un tipo de confección puede aparecer en varios pedidos. Normalización La normalización se encarga de obtener los datos agrupados en distintas tablas siguiendo una serie de pasos, de tal manera que los datos obtenidos tienen una estructura óptima para su implementación, gestión y explotación desde distintas aplicaciones futuras. Una de las ventajas principales que se obtiene al realizar la normalización es que la información no estará duplicada innecesariamente dentro de las estructuras: habrá mínima redundancia. Dependencia funcional. Se dice que un atributo B depende funcionalmente de A (A -> B) si cada valor de A se corresponde con un único valor de B o, visto de otra manera, si dado A se puede obtener B. Un caso típico podría ser DNI -> Nombre, pues dado un DNI se puede obtener el nombre de la persona con ese DNI. Existen reglas que se pueden realizar entre atributos para poder obtener
  • 64. 45 dependencias funcionales adicionalmente. Supóngase que T es una tabla relacional y X, Y, Z son subconjuntos de atributos de la tabla T. Reflexividad: Si los valores de un subconjunto de atributos Y están incluidos dentro de un subconjunto de atributos X, se dice que X depende funcionalmente de Y (Y -> X). Aumentación: Si un subconjunto X depende funcionalmente de otro Y, dicha dependencia se mantendrá aunque se añada otro atributo a los dos subconjuntos (X -> Y entonces X.a ->Y.a). Transitividad: Si Y depende funcionalmente de X y Z depende funcionalmente de Y, entonces Z depende funcionalmente de X (X -> Y e Y - > Z entonces X -> Z). Por ejemplo, DNI -> NOMBRE y NOMBRE -> DIRECCIÓN, luego DNI -> DIRECCIÓN. Dependencia funcional total: Un atributo Y tiene una dependencia funcional total con otro atributo X si tiene una dependencia funcional con X y no depende funcionalmente de ningún subconjunto de X. Por ejemplo, supóngase que una empresa tiene empleados y que una persona puede ser empleado de varias empresas. Según esto, se podría decir que DNI.EMPRESA -> NOMBRE, pero esta dependencia no es total porque también es cierto que DNI -> NOMBRE. Sin embargo, no se puede identificar el sueldo de un empleado sin saber a qué empresa pertenece, por lo tanto, DNI.EMPRESA -> SUELDO sí es una dependencia funcional total.
  • 65. 46 Primera Forma Normal (1FN). Se dice que una tabla está en primera forma normal si todos los valores que componen a sus tuplas son atómicos: un atributo no puede tener más de un valor. Para normalizar una tabla que no esté en 1FN han de seguirse los siguientes pasos: • Se localizan los atributos correspondientes a la clave principal • Se realiza una proyección sobre la tabla y así se descompone en varias, de manera que se hace la proyección de la clave con los atributos que tengan los valores únicos. Por ejemplo, la figura Nº 11 muestra una tabla que no está en 1FN: Figura Nº 11Tabla en Primera Forma Normal. Fuente:http://www.formauri.es/arrobamasmas/Cursos/index.php?apdo=05&curso=51&cap=4 , año: 2009. Segunda Forma Normal (2FN). Esta forma normal se considerará únicamente cuando la clave principal sea compuesta, si no (la clave principal está formada por un único atributo) la tabla estaría en segunda forma normal. Se dice que una tabla está en segunda forma normal si se cumplen las siguientes condiciones: • Está en 1FN.
  • 66. 47 • Todo atributo secundario (los que no pertenecen a la clave principal) tiene una dependencia funcional total de la clave completa y no de una parte de ella. Para convertir una tabla que no esté en 2FN a 2FN se creará una tabla con la clave y todas sus dependencias funcionales totales y otra tabla con la parte de la clave que tiene dependencias con los atributos secundarios. Por ejemplo, la figura Nº 12 muestra una tabla que no está en 2FN: Figura Nº 12Tabla que no está en 2FN. Fuente:http://www.formauri.es/arrobamasmas/Cursos/index.php?apdo=05&curso=51&cap=4 , año: 2009. Ya que el campo "TeléfonoProveedor" no es dependiente de la clave candidata {"NombreProducto, "NombreProveedor"} sino únicamente de "NombreProveedor". Se trata de no representar dos entidades distintas en una sola tabla. En este ejemplo, se reorganizan los datos de la siguiente manera:
  • 67. 48 Tabla Productos: Figura Nº 13Tabla Productos Fuente:http://www.formauri.es/arrobamasmas/Cursos/index.php?apdo=05&curso=51&cap=4 , año: 2009. Tabla Proveedores: Figura Nº 14Tabla Proveedores. Fuente:http://www.formauri.es/arrobamasmas/Cursos/index.php?apdo=05&curso=51&cap=4 , año: 2009. Tercera Forma Normal (3FN). Una tabla está en 3FN si: • Está en 2FN • No existen atributos no primarios (no pertenecen a la clave) que son transitivamente dependientes de cada posible clave de la tabla, o lo que es lo mismo, un atributo secundario sólo puede ser conocido a través
  • 68. 49 de la clave principal o claves secundarias de la tabla y no por medio de otro atributo no primario. Para convertir una tabla a 3FN se realizará una proyección de la clave a los elementos que no tengan dependencia funcional transitiva y otra tabla con una nueva clave a los elementos que anteriormente tenían esta dependencia. Por ejemplo, la siguiente tabla no está en 3FN: Tabla Atletas: Figura Nº 15 Tabla Atletas. Fuente:http://www.formauri.es/arrobamasmas/Cursos/index.php?apdo=05&curso=51&cap=4 , año: 2009. Ya que, dado un número de licencia, se puede obtener la edad del inscrito, y dada la edad del inscrito, se puede averiguar la categoría a la que pertenece: teniendo entonces una dependencia funcional transitiva. Evidentemente, dado el número de licencia se puede averiguar la categoría pero lo importante aquí es que la categoría depende de un atributo que no forma parte de la clave. Para normalizar, se descompone la tabla en las siguientes:
  • 69. 50 Figura Nº 16Tabla Atletas parte 1. Fuente:http://www.formauri.es/arrobamasmas/Cursos/index.php?apdo=05&curso=51&cap=4 , año: 2009. Figura Nº 17Tabla Atletas parte2. Fuente:http://www.formauri.es/arrobamasmas/Cursos/index.php?apdo=05&curso=51&cap=4 , año: 2009. LENGUAJE DE PROGRAMACIÓN PHP. PHP es un lenguaje de programación interpretado, diseñado originalmente para la creación de páginas dinámicas. Es usado principalmente en interpretación del lado del servidor (server-side scripting) pero actualmente puede ser utilizado desde una interfaz de línea de comandos o en la creación de otros tipos de programas incluyendo aplicaciones con interfaz gráfica usando las bibliotecas Qt o GTK+. PHP es un acrónimo recursivo que significa PHP Hypertext Pre-processor (inicialmente PHP Tools, o, Personal Home Page Tools). Fue creado originalmente por Rasmus Lerdof en 1994; sin embargo la implementación
  • 70. 51 principal de PHP es producida ahora por The PHP Group y sirve como el estándar de facto para PHP al no haber una especificación formal. Publicado bajo la PHP License, la Free Software Foundation considera esta licencia como software libre. Ventajas del lenguaje PHP. • Es un lenguaje multiplataforma. • Capacidad de conexión con la mayoría de los manejadores de base de datos que se utilizan en la actualidad, destaca su conectividad con MySQL • Capacidad de expandir su potencial utilizando la enorme cantidad de módulos (llamados ext's o extensiones). • Posee una amplia documentación en su página oficial ([2]), entre la cual se destaca que todas las funciones del sistema están explicadas y ejemplificadas en un único archivo de ayuda. • Es libre, por lo que se presenta como una alternativa de fácil acceso para todos. • Permite las técnicas de Programación Orientada a Objetos. • Biblioteca nativa de funciones sumamente amplia e incluida. • No requiere definición de tipos de variables. • Tiene manejo de excepciones (desde php5).
  • 71. 52 Desventajas del Lenguaje PHP. Si bien PHP no obliga a quien lo usa a seguir una determinada metodología a la hora de programar (muchos otros lenguajes tampoco lo hacen), aun estando dirigido a alguna en particular, el programador puede aplicar en su trabajo cualquier técnica de programación y/o desarrollo que le permita escribir código ordenado, estructurado y manejable. Un ejemplo de esto son los desarrollos que en PHP se han hecho del patrón de diseño Modelo Vista Controlador (o MVC), que permiten separar el tratamiento y acceso a los datos, la lógica de control y la interfaz de usuario en tres componentes independientes (ver más abajo Frameworks en PHP). COMMON GATEWAY INTERFACE (CGI). El CGI (Por sus siglas en inglés "Common Gateway Interface") cambio la forma de manipular información en el Web. En sí, es un método para la transmisión de información hacia un compilador instalado en el servidor. Su función principal es la de añadir una mayor interacción a los documentos Web que por medio del HTML se presentan de forma estática. El CGI es utilizado comúnmente para contadores, bases de datos, motores de búsqueda, formularios, generadores de email automático, foros de discusión, chats, comercio electrónico, rotadores y mapas de imágenes, juegos en línea y otros. Esta tecnología tiene la ventaja de correr en el servidor cuando el usuario lo solicita por lo que es dependiente del servidor y no de la computadora del usuario.
  • 72. 53 De acuerdo a la traducción de la NCSA: "Un documento HTML es estático, lo que significa que existe en un estado constante; es un archivo de texto que no cambia. Un script CGI por otro lado, es ejecutado en tiempo real, lo que permite que regrese información dinámica”. Por ejemplo, si se desea conectar las bases de datos de Unix al World Wide Web para permitir que las personas de todo el mundo la manipulen básicamente, lo se debe hacer es crear un script CGI que será ejecutado por el servidor para transmitir información al motor de la base de datos, recibir los resultados y mostrárselos al cliente. Los programas que maneja el CGI pueden estar compilados en diferentes lenguajes de programación. El más popular para el desarrollo de contenidos Web es el lenguaje Perl de distribución gratuita, aunque también podemos mencionar: C, C++ y Java. El funcionamiento de esta tecnología es muy sencillo. Los scripts residen en el servidor, donde son llamados, ejecutados y regresa información de vuelta al usuario. SECURE SOCKET LAYER (SSL). El protocolo SSL es un sistema diseñado y propuesto por Netscape Communications Corporation. Este se encuentra en la pila OSI entre los niveles de TCP/IP y de los protocolos HTTP, FTP, SMTP, etc. Proporciona sus servicios de seguridad cifrando los datos intercambiados entre el servidor y el cliente con un algoritmo de cifrado simétrico, típicamente el RC4 o IDEA, y cifrando la clave de sesión de RC4 o IDEA mediante un algoritmo de cifrado de clave pública, típicamente el RSA. La clave de sesión es la que se utiliza para cifrar los datos que vienen y van al servidor seguro. Se genera una clave de sesión distinta para cada transacción, lo cual permite que
  • 73. 54 aunque sea reventada por un atacante en una transacción dada, no sirva para descifrar futuras transacciones (véase figura Nº 18). El MD5 se usa como algoritmo de hash. El SSL proporciona cifrado de datos, autenticación de servidores, integridad de mensajes y opcionalmente autenticación de cliente para conexiones TCP/IP. Cuando el cliente pide al servidor seguro una comunicación segura, el servidor abre un puerto cifrado, gestionado por un software llamado Protocolo SSL Record, situado encima de TCP. Será el software de alto nivel, Protocolo SSL Handshake, quien utilice el Protocolo SSL Record y el puerto abierto para comunicarse de forma segura con el cliente. Figura Nº 18Transacción usando Cifrado SSL. Fuente: http: //www.enelnombredetux.com/project.php?project=pgp, año:2008. El Protocolo SSL Handshake. Durante el protocolo SSL Handshake, el cliente y el servidor intercambian una serie de mensajes para negociar las mejoras de seguridad. Este protocolo sigue las siguientes seis fases:
  • 74. 55 • La fase “hola”, usada para ponerse de acuerdo sobre el conjunto de algoritmos para mantener la intimidad y para la autenticación. • La fase de intercambio de claves, en la que intercambia información sobre las claves, de modo que al final ambas partes comparten una clave maestra. • La fase de producción de clave de sesión, que será la usada para cifrar los datos intercambiados. • La fase de verificación del servidor, presente sólo cuando se usa RSA como algoritmo de intercambio de claves, y sirve para que el cliente autentique al servidor. • La fase de autenticación del cliente, en la que el servidor solicita al cliente un certificado X.509 (si es necesaria la autenticación de cliente). • Por último, la fase de fin, que indica que ya se puede comenzar la sesión segura. Protocolo SSL Record. El Protocolo SSL Record especifica la forma de encapsular los datos transmitidos y recibidos. La porción de datos del protocolo tiene tres componentes: • MAC-DATA, el código de autenticación del mensaje. • ACTUAL-DATA, los datos de aplicación a transmitir. • PADDING-DATA, los datos requeridos para rellenar el mensaje cuando se usa cifrado en bloque.
  • 75. 56 Cómo saber si una Conexión se está Realizando Mediante SSL. Los navegadores Web disponen de un icono que lo indica, generalmente un candado en la parte inferior de la ventana, véase figura Nº 19. Si el candado está abierto se trata de una conexión normal, y si está cerrado de una conexión segura. Si hace “doble click” sobre el candado cerrado aparecerá el Certificado Digital del Servidor Web Seguro. Figura Nº 19Indicación de una Conexión Segura en Navegadores Web. Fuente:http://www.microsoft.com/spain/protect/yourself/phishing/spoof.mspx, año:2009 OpenSSL. El software OpenSSL es un proyecto de software desarrollado por lo miembros de la comunidad Open Source (código abierto). Es un robusto juego de herramientas que le ayudan a su sistema a implementar el Secure Sockets Layer (SSL), así como otros protocolos relacionados con la seguridad, tales como el Transport Layer Security (TLS). También incluye una librería de criptografía.
  • 76. 57 SISTEMA OPERATIVO GNU/LINUX GNU/Linux es un Sistema Operativo, es una implementación de libre distribución UNIX para computadoras personales (PC), servidores, y estaciones de trabajo. Fue desarrollado para el i386 y ahora soporta los procesadores i486, Pentium, Pentium Pro y Pentium II, así como los clones AMD y Cyrix. También soporta máquinas basadas en SPARC, DEC Alpha, PowerPC/PowerMac, y Mac/Amiga Motorola 680x0. Como sistema operativo, GNU/Linux es muy eficiente y tiene un excelente diseño. Es multitarea, multiusuario, multiplataforma y multiprocesador; en las plataformas Intel corre en modo protegido; protege la memoria para que un programa no pueda hacer caer al resto del sistema; carga sólo las partes de un programa que se usan; comparte la memoria entre programas aumentando la velocidad y disminuyendo el uso de memoria; usa un sistema de memoria virtual por páginas; utiliza toda la memoria libre para cache; permite usar bibliotecas enlazadas tanto estática como dinámicamente; se distribuye con código fuente; usa hasta 64 consolas virtuales; tiene un sistema de archivos avanzado pero puede usar los de los otros sistemas; y soporta redes tanto en TCP/IP como en otros protocolos. GNU/Linux es una muy buena alternativa frente a los demás sistemas operativos. Más allá de las ventajas evidentes de costo, ofrece algunas características muy notables. En comparación con las otras versiones de Unix para PC, la velocidad y confiabilidad de GNU/Linux son muy superiores. También está en ventaja
  • 77. 58 sobre la disponibilidad de aplicaciones, ya que no hay mucha difusión de estos otros Unixes (como Solaris, XENIX o SCO) entre los usuarios de PC por sus altos costos. Comparado con sistemas operativos como Microsoft Windows, GNU/Linux también sale ganando. Los bajos requisitos de hardware permiten hacer un sistema potente y útil de aquel 486 que algunos guardan en un armario. Esta misma característica permite aprovechar al máximo las capacidades de las computadoras más modernas. Es poco práctico tener una PC con 16 Mb de RAM y ponerle un sistema operativo que ocupa 13 (que es lo que reporta sobre Windows 95 el System Information de Symantec). No solo es superior respecto al sistema de multitarea y de administración de memoria, sino también en la capacidades de networking (conectividad a redes) y de multiusuario (aun comparando con sistemas multiusuario como NT). La única desventaja de GNU/Linux frente a estos sistemas, es la menor disponibilidad de software, pero este problema disminuye con cada nuevo programa que se escribe para el proyecto GNU, y con algunas empresas que están desarrollando software comercial para GNU/Linux.
  • 78. 59 CAPÍTULO III MARCO METODOLÓGICO En la actualidad, la utilización de metodologías para el desarrollo de aplicaciones no se pueden descartadas, debido a la necesidad de control de variables que conlleva el mismo desarrollo, y para la ordenada elaboración de las aplicaciones, por lo tanto, seguir metodologías y estándares nos llevan a estar en competitividad en todo momento. Es de suma importancia conocer el modo como se interrelacionan metodologías con estándares y herramientas siguiendo un único propósito, el cual consiste en la elaboración de aplicaciones de manera eficiente, ordenada y con el menor número de defectos. Las siglas RUP en ingles significa Rational Unified Process (Proceso Unificado Racional) es un producto del proceso de ingeniería de software que proporciona un enfoque disciplinado para asignar tareas y responsabilidades dentro de una organización del desarrollo. Su meta es asegurar la producción del software de alta calidad que resuelve las necesidades de los usuarios dentro de un presupuesto y tiempo
  • 79. 60 establecidos. La metodología RUP nos proporciona disciplinas en las cuales se encuentran artefactos con lo cual se podrá contar con guías para poder documentar e implementar de una manera fácil y eficiente, todas las guías para un buen desarrollo, todo esto dentro de las respectivas fases con las cuales cuenta. Según Jacobson, I., Booch, G., Rumbaugh J. (1998) El nombre Proceso Unificado se usa para describir el proceso genérico que incluye aquellos elementos que son comunes a la mayoría de los refinamientos existentes. También permite evitar problemas legales ya que Proceso Unificado Racional o RUP son marcas registradas por IBM (desde su compra de Rational Software Corporation en 2003). Según Grady Booch (2000) un reflejo de lo que hemos visto en el trabajo con literalmente decenas de miles de proyectos en los últimos 20 años, la codificación de lo que funciona en las organizaciones exitosas y lo que está notablemente ausente en los fallidos. La Figura Nº 20 ilustra la historia de RUP. El antecedente más importante se ubica en 1967 con la Metodología Ericsson (Ericsson Approach) elaborada por Ivar Jacobson, una aproximación de desarrollo basada en componentes, que introdujo el concepto de Caso de Uso. Entre los años de 1987 a 1995 Jacobson fundó la compañía Objectory AB y lanza el proceso de desarrollo Objectory (abreviación de Object Factory).
  • 80. 61 Figura Nº 20: Historia de RUP Fuente: http://2.bp.blogspot.com/-CiLFgoBq_GM/TdxjrUWtAaI/AAAAAAAAACk/ksc4zv- Ek6Y/s1600/FIGURA+1.jpg Posteriormente en 1995 Rational Software Corporation adquiere Objectory AB y entre1995 y 1997 se desarrolla Rational Objectory Process (ROP) a partir de Objectory 3.8 y del Enfoque Rational (Rational Approach) adoptando UML como lenguaje de modelado. Desde ese entonces y a la cabeza de Grady Booch, Ivar Jacobson y James Rumbaugh, Rational Software desarrolló e incorporó diversos elementos para expandir RUP, destacándose especialmente el flujo de trabajo conocido como modelado del negocio. En junio del 1998 se lanza Rational Unified Process. DIMENSIONES DEL RUP El RUP tiene dos dimensiones:
  • 81. 62 a) El eje horizontal representa tiempo y demuestra los aspectos del ciclo de vida del proceso. b) El eje vertical representa las disciplinas, que agrupan actividades definidas lógicamente por la naturaleza. La primera dimensión representa el aspecto dinámico del proceso y se expresa en términos de fases, de iteraciones, y la finalización de las fases. La segunda dimensión representa el aspecto estático del proceso: cómo se describe en términos de componentes de proceso, las disciplinas, las actividades, los flujos de trabajo, los artefactos, y los roles. En la figura Nº 21 se puede observar como varía el énfasis de cada disciplina en un cierto plazo en el tiempo, y durante cada una de las fases. Por ejemplo, en iteraciones tempranas, pasamos más tiempo en requerimientos, y en las últimas iteraciones pasamos más tiempo en poner en práctica la realización del proyecto en sí.
  • 82. 63 Figura Nº 21. Disciplinas, fases, iteraciones del RUP Fuente: http://www.monografias.com/trabajos82/aplicacion-tecnologia- j2ee/image011.png Se puede hacer mención de las tres características esenciales que definen al RUP: Características esenciales Los autores de RUP destacan que el proceso de software propuesto por RUP tiene tres características esenciales: está dirigido por los Casos de Uso, está centrado en la arquitectura, y es iterativo e incremental. Proceso dirigido por Casos de Uso
  • 83. 64 Según Kruchten, P. (2000), los Casos de Uso son una técnica de captura de requisitos que fuerza a pensar en términos de importancia para el usuario y no sólo en términos de funciones que sería bueno contemplar. Se define un Caso de Uso como un fragmento de funcionalidad del sistema que proporciona al usuario un valor añadido. Los Casos de Uso representan los requisitos funcionales del sistema. En RUP los Casos de Uso no son sólo una herramienta para especificarlos requisitos del sistema. También guían su diseño, implementación y prueba. Los Casos de Uso constituyen un elemento integrador y una guía del trabajo como se muestra en la Figura Nº 22. Figura Nº 22: Los Casos de Uso integran el trabajo Fuente: http://4.bp.blogspot.com/- DhDJJXg9Y_s/TdxkLmOd5CI/AAAAAAAAACo/39SGhuPI1Cg/s1600/FIGURA+2.jpg Los Casos de Uso no sólo inician el proceso de desarrollo sino que proporcionan un hilo conductor, permitiendo establecer trazabilidad entre los
  • 84. 65 artefactos que son generados en las diferentes actividades del proceso de desarrollo. Como se muestra en la Figura Nº 23, basándose en los Casos de Uso se crean los modelos de análisis y diseño, luego la implementación que los lleva a cabo, y se verifica que efectivamente el producto implemente adecuadamente cada Caso de Uso. Todos los modelos deben estar sincronizados con el modelo de Casos de Uso. Figura Nº 23: Trazabilidad a partir de los Casos de Uso Fuente: http://www.magis.com.co/images/Paquete-Exito_clip_image004.jpg Proceso centrado en la arquitectura La arquitectura de un sistema es la organización o estructura de sus partes más relevantes, lo que permite tener una visión común entre todos los involucrados (desarrolladores y usuarios) y una perspectiva clara del sistema completo, necesaria para controlar el desarrollo. La arquitectura involucra los aspectos estáticos y dinámicos más significativos del sistema, está relacionada con la toma de decisiones que indican cómo tiene que ser
  • 85. 66 construido el sistema y ayuda a determinar en qué orden. Además la definición de la arquitectura debe tomar en consideración elementos de calidad del sistema, rendimiento, reutilización y capacidad de evolución por lo que debe ser flexible durante todo el proceso de desarrollo. La arquitectura se ve influenciada por la plataforma software, sistema operativo, gestor de bases de datos, protocolos, consideraciones de desarrollo como sistemas heredados. Muchas de estas restricciones constituyen requisitos no funcionales del sistema. En el caso de RUP además de utilizar los Casos de Uso para guiar el proceso se presta especial atención al establecimiento temprano de una buena arquitectura que no se vea fuertemente impactada ante cambios posteriores durante la construcción y el mantenimiento. Cada producto tiene tanto una función como una forma. La función corresponde a la funcionalidad reflejada en los Casos de Uso y la forma la proporciona la arquitectura. Existe una interacción entre los Casos de Uso y la arquitectura, los Casos de Uso deben encajar en la arquitectura cuando se llevan a cabo y la arquitectura debe permitir el desarrollo de todos los Casos de Uso requeridos, actualmente y en el futuro. Esto provoca que tanto arquitectura como Casos de Uso deban evolucionar en paralelo durante todo el proceso de desarrollo de software. En la Figura Nº 24 se ilustra la evolución de la arquitectura durante las fases de RUP. Se tiene una arquitectura más robusta en las fases finales del proyecto. En las fases iníciales lo que se hace es ir consolidando la arquitectura por medio de baselines y se va modificando dependiendo delas necesidades del proyecto.
  • 86. 67 Figura Nº 24: Evolución de la arquitectura del sistema Fuente: http://www.scielo.cl/fbpe/img/formuniv/v6n2/art02-f3.jpg Es conveniente ver el sistema desde diferentes perspectivas para comprender mejor el diseño por lo que la arquitectura se representa mediante varias vistas que se centran en aspectos concretos del sistema, abstrayéndose de los demás. Para RUP, todas las vistas juntas forman el llamado modelo 4+1 de la arquitectura según Kruchten, P. (1986), el cual recibe este nombre porque lo forman las vistas lógica, de implementación, de proceso y de despliegue, más la de Casos de Uso que es la que da cohesión a todas.