Documentos de Académico
Documentos de Profesional
Documentos de Cultura
MARCO TEÓRICO
Por consiguiente en este capítulo se abordará una recopilación de textos, publicaciones sobre
definiciones, conceptos y metodologías tomados en cuenta durante todo el proceso de
elaboración de la aplicación web de este proyecto de sistema de información.
Es por ello que a continuación se presenta una serie de definiciones, conceptos y metodologías
que ayudaran a comprender mejor estos temas.
De manera que se puede decir que este proyecto busca denotar una manera de elaborar una
investigación mediante exploración e integración de tecnologías disponibles para entregar un
19
sistema que se enfoque en “probar la teoría” más que en construirla, dando paso a un progreso
fluido desde el desarrollo a la evaluación.
FIGURA Nº 6
Estructura del RUP mostrada en dos dimensiones
Tamaño 12 …
Time New Roman
Los autores de RUP destacan que el proceso de software propuesto por RUP tiene tres
características esenciales: está dirigido por los la arquitectura y es iterativo e incremental.
21
1.2.1.2.1. PROCESO DIRIGIDO A CASO DE USOS
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 especificar los 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. No solo inician como se muestra en la (FIGURA
Nº 8).
FIGURA Nº 8
LOS CASOS DE USO INTEGRAN EL TRABAJO
Tamaño 12 …
Time New Roman
Fuente: [CITATION Los15 \l 3082 ]
Falta datos
Los Casos de Uso no sólo inician el proceso de desarrollo sino establecen la transacción entre
los distintos artefactos que son generados en las diferentes actividades del proceso de
desarrollo. Basándose en los Casos de Uso se crean los modelos de análisis y diseño,
posteriormente se genera la implementación que los lleva a cabo, ayuda a verificar la adecuada
implementación de cada caso de uso en el producto final. Fuente
1.2.1.2.2. PROCESO CENTRADO EN LA ARQUITECTURA
22
La arquitectura involucra los aspectos estáticos y dinámicos más significativos del sistema,
Fuente
está relacionada con la toma de decisiones que indican la forma de construcción del sistema.
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.
RUP 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.
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.
23
llamado modelo 4+1 de la arquitectura, 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.
Durante la construcción, los diversos modelos van desarrollándose hasta completarse. La
descripción de la arquitectura sin embargo, no debería cambiar significativamente debido
a que la mayor parte de la arquitectura se decidió durante la elaboración, incorporando pocos
cambios a la arquitectura, (FIGURA Nº 10).
FIGURA Nº 10
PROCESO DE MADUREZ DE LA ARQUITECTURA
Fuente: [ CITATION Tol151 \l 3082 ]
RUP propone tener un proceso iterativo e incremental en donde el trabajo se divide en partes
más pequeñas o mini proyectos, permitiendo generar un equilibrio entre casos de uso y
arquitectura. Cada mini proyecto se puede ver como una iteración (un recorrido más o
menos completo a lo largo de todos los flujos de trabajo fundamentales) del cual se
obtiene un incremento que produce un crecimiento en el producto.
24
Una iteración puede realizarse por medio de una cascada como se muestra en (FIGURA Nº
11) la cual pasa por los flujos fundamentales (Requisitos, Análisis, Diseño, Implementación y
Pruebas), también existe una planificación de la iteración, un análisis de la iteración y algunas
actividades específicas de la iteración. Al finalizar se realiza una integración de los resultados
con lo obtenido de las iteraciones anteriores.
FIGURA Nº 11
ITERACIÓN DE RUP
Incluye además:
La planificación de la
Iteración.
REQUISITOS El análisis de la iteración.
Actividades especifica.
ANÁLISIS
DISEÑO
IMPLEMENTACIÓN
PRUEBA E INTEGRACIÓN
UNA ITERACIÓN
RUP divide el proceso en cuatro fases, dentro de las cuales se realizan varias iteraciones en
número variable según el proyecto y en las que se hace un mayor o menor hincapié en los
25
distintas actividades. En la (FIGURA Nº6) se muestra cómo varía el esfuerzo asociado a
las disciplinas según la fase en la que se encuentre el proyecto RUP.
Durante la fase de inicio las iteraciones hacen mayor énfasis en actividades modelado del
negocio y de requisitos.
Fase de construcción: Se lleva a cabo la construcción del producto por medio de una serie
de iteraciones.
Para cada iteración se selecciona algunos Casos de Uso, se refina su análisis y diseño y se
procede a su implementación y pruebas. Se realiza una pequeña cascada para cada ciclo. Se
realizan tantas iteraciones hasta que se termine la implementación de la nueva versión del
producto.
RUP identifica las seis mejores prácticas con las que define una forma efectiva de trabajar
para los equipos de desarrollo de software (FIGURA Nº 6).
- La administración de requerimientos
- El desarrollo iterativo
26
- La arquitectura basada en componentes
- El modelo visual
- La verificación continua de la calidad
- La administración del cambio.
Estas seis prácticas orientan el modelo y con ellas se pretende solucionar muchos de los
problemas asociados al software. Adicionalmente hay muchos aspectos de diseño que son
bien conocidos, pero que en realidad han sido muy poco implementados en los proyectos
de software; estos son: facilidad de uso, modularidad, encapsulamiento y facilidad de
mantenimiento. Es necesario entonces definir una arquitectura sólida basada en
componentes, para construir mejores y más flexibles soluciones de software para las
necesidades organizacionales.
Los cambios en un proyecto no pueden ser detenidos dado que la evolución del entorno de
cada organización es continua, pero sí pueden ser administrados de manera que su impacto
pueda ser estimado para determinar si dicho cambio se incluye o no y si el proyecto debe
ser reajustado.
Cada cambio en el proyecto debe tener especificado cuándo y cómo se va a realizar, quién
lo va a hacer y qué productos se ven involucrados en ese cambio. En ese punto es donde el
control de cambios y la trazabilidad de los componentes a través de los diversos modelos
adquieren una gran importancia.
RUP brinda una guía para encontrar, organizar, documentar, y seguir los cambios de los
requisitos funcionales y restricciones (FIGURA Nº 12). Utiliza una notación de Caso de
Uso para representar los requisitos. Con la finalidad de especificar el comportamiento
deseado del sistema (objetivos del usuario), así como describir qué debe de hacer, pero no
especifica cómo lo hace y da lugar a un conjunto de posibles escenarios.
FIGURA Nº 12
DEPÓSITO DE REQUERIMIENTOS
Desarrollo del producto mediante iteraciones con hitos bien definidos, en las cuales se
repiten las actividades pero con distinto énfasis, según la fase del proyecto, (FIGURA Nº6)
- Entregables bien definidos y delimitados permiten tener metas a corto plazo y no una
sola meta a largo plazo.
- El progreso se mide mediante la evaluación de las implementaciones (mediciones
reales).
Aunque todas las iteraciones suelen incluir trabajo en casi todas las disciplinas, el grado de
28
esfuerzo dentro de cada una de ellas varía a lo largo del proyecto.
La clave del éxito es crear arquitecturas duraderas, flexibles al cambio y basadas en componentes
(FIGURA Nº 13).
- Arquitectura.
- Proceso y automatización
- Proyectos
- Guías
FIGURA Nº 13
29
Fuente: [ CITATION Pro152 \l 3082 ]
FIGURA Nº 14
Es importante que la calidad de todos los artefactos se evalúe en varios puntos durante el
proceso de desarrollo, especialmente al final de cada iteración. En esta verificación las
pruebas juegan un papel fundamental y se integran a lo largo de todo el proceso. Para todos
los artefactos no ejecutables las revisiones e inspecciones también deben ser continuas (es
de 100 a 1000 veces más costoso encontrar y reparar los problemas del software después
30
del desarrollo).
Se hace una evaluación objetiva del estatus del proyecto, se detecta inconsistencias entre
análisis, diseño e implementación. Las pruebas se concentran en los aspectos de mayor
riesgo, los defectos se identifican claramente:
- Verificar y probar todo continuamente desde el inicio.
FIGURA Nº 15
PLAN DE ACTIVIDADES DE ASEGURAMIENTO DE LA CALIDAD.
31
release, y quizás en distintas plataformas. La ausencia de disciplina rápidamente conduciría
al caos.
- Eje vertical: Representa los aspectos estáticos del proceso. Describe el proceso en
términos de componentes de proceso, disciplinas, flujos de trabajo, actividades,
artefactos y roles.
32
conceptos propios del proceso unificado tradicional con técnicas ágiles, con el objetivo de
mejorar la productividad.
En general, el Proceso Unificado Ágil supone un enfoque intermedio entre XP (Extreme
Programming) y el Proceso Unificado de Rational, y tiene la ventaja de ser un proceso ágil
que incluye explícitamente actividades y artefactos a los que la mayoría de desarrolladores ya
están, de alguna manera, acostumbrados.
El Proceso Unificado Ágil consta de cuatro fases (FIGURA Nº 16) que el proyecto atraviesa
de forma secuencial. Dichas fases son:
FIGURA Nº 16
CICLO DE VIDA DEL PROCESO UNIFICADO AGIL
1. Iniciación. El objetivo de esta fase es identificar el alcance inicial del proyecto, una
arquitectura potencial para el sistema y obtener, si procede, financiación para el proyecto y la
aceptación por parte de los promotores del sistema.
33
3. Construcción. El objetivo de esta fase consiste en construir software desde un punto de
vista incremental basado en las prioridades de los participantes.
FIGURA Nº1 7
OBJETIVOS Y TAREAS FUNDAMENTALES
A lo largo de las cuatro fases, se desarrollan actividades relativas a siete disciplinas de manera
iterativa:
3. Pruebas. Realizar una evaluación de los objetivos para asegurar la calidad. Esto incluye
encontrar defectos, validar que el sistema funciona como fue diseñado y verificar que los
requisitos se cumplen.
34
4. Despliegue. Planear la entrega del sistema y ejecutar el plan para hacer que el sistema
quede disponible para los usuarios finales.
6. Gestión del proyecto. Dirige las actividades que tienen lugar dentro del proyecto,
incluyendo gestión de riesgos, dirección del personal y coordinación.
7. Entorno. Apoyar el resto del esfuerzo asegurando que los procesos, métodos y
herramientas están disponibles para el equipo cuando los necesitan.
En la próxima entrega veremos cómo se tratan en el Proceso Unificado Ágil los modelos y la
documentación. [ CITATION Pab121 \l 3082 ]
También puede usarse en tres áreas, como la ingeniería de negocio y modelado de procesos
gracias a los mecanismos de adaptación/extensión mediante perfiles.
35
otras se modelas mejor de forma gráfica UML es algo más que un simple montón de símbolos
gráficos. [ CITATION Nor17 \l 3082 ]
- Requisitos.
- Arquitectura.
- Diseño.
- Código fuente.
- Planificación de proyectos.
- Pruebas.
- Prototipos.
- Versiones.
36
1.3.5. VISTAS DEL MODELO DE UN SISTEMA
FIGURA Nº 18
La vista de casos de uso de un sistema comprende los casos de uso que describen el
comportamiento del sistema tal y como es percibido por los usuarios finales, analistas, y
encargados de las pruebas.
37
hardware sobre la que se ejecuta el sistema.
Cada una de estas cinco vistas puede existir por sí misma, de forma que diferentes usuarios
pueden centrarse en las cuestiones de la arquitectura del sistema que más le interese.
FIGURA Nº 19
ELEMENTOS UML
38
1.3.6.2. ELEMENTOS ESTRUCTURALES
Al igual que los elementos de agrupación en estos elementos tampoco encontramos con
variaciones a los siete elementos mencionados que se identifican como:
Tipos de clase: actores, señales, utilidades, Tipos de clases activas: procesos e hilos y Tipos
de Componentes: aplicaciones, documentos, archivos, bibliotecas, páginas y tablas.
Es la parte dinámica de un modelo y se ve representada por los verbos que representan una
función sobre tiempo y espacio. Se identifican dos tipos de elementos de comportamiento: la
interacción y la máquina de estado.
Son los comentarios explícitos o muy detallados de un modelo UML y se aplican para
describir, iluminar y remarcar algunos elementos del modelo. Solo presenta un tipo de
elemento de anotación que es denominado Nota y este re registraran los comentarios y
limitaciones asociados a un elemento o una colección de datos. [ CITATION Uni16 \l 3082 ]
TABLA Nº 2
TIPOS DE RELACIONES
39
Fuente: [ CITATION Jam14 \l 3082 ]
1.3.7.1. ASOCIACIONES
Una asociación es una relación estructural que describe una conexión entre objetos.
FIGURA Nº 20
RELACIÓN DE ASOCIACIÓN
En la (FIGURA Nº 20) e1 podemos observar una relación entre la clase Cliente y la clase
Dirección.
1.3.7.2. DEPENDENCIA
Es una relación más débil que una asociación que muestra la relación entre un cliente y el
proveedor de un servicio usado por el cliente. Los conceptos que hacen parte una relación de
dependencia son Cliente y Servidor.
40
- Servidor: Es el objeto que provee el servicio.
FIGURA Nº 21
DEPENDENCIA
Son relaciones de herencia entre una superclase y sus subclases. Podemos usarlas cuando
objetos de distintas clases pueden tener atributos similares y exhibir comportamientos
parecidos véase en (FIGURA Nº 22).
FIGURA Nº 22
GENERALIZACIÓN
41
Las subclases heredan características de las clases de las que se derivan y añaden
características específicas que las diferencian.
1.3.7.4. REALIZACIÓN
Es una relación semántica entre clasificadores donde este especifica unas normas o un
reglamento con otro clasificador que garantiza que se cumplirá.
FIGURA Nº 23
REALIZACIÓN
42
UML no es un lenguaje de programación, pero existen herramientas que se pueden usar para
generar código en diversos lenguajes usando los diagramas. UML guarda una relación directa
con el análisis y el diseño orientados a objetos.
UML usa elementos y los asocia de diferentes formas para formar diagramas que representan
aspectos estáticos o estructurales de un sistema, y diagramas de comportamiento, que captan
los aspectos dinámicos de un sistema.
43
entre objetos.
44
crea para ilustrar cómo se relacionan las funcionalidades con sus controladores
(actores) internos/externos. [ CITATION Ant18 \l
3082 ]
45
una cultura que evalúe; incorporando a la evaluación como una práctica cotidiana de todos los
integrantes del proceso de desarrollo. Como consecuencias directas de la evaluación se tiene:
- Dominación de los riesgos del proceso: entre más rápido se detecten fallas, las estrategias
de contingencia de riesgos serán más efectivas.
FIGURA Nº 24
MODELO DE MEDICIÓN DE USABILIDAD BASADA EN
JERARQUÍA DE TRES NIVELES.
46
Fuente: [ CITATION Ivá16 \l 3082 ]
Por otro lado, el clásico proceso de evaluación de productos software puede ser descrito de
acuerdo al modelo mostrado en la (FIGURA Nº 25) . Dicho modelo ha sido interpretado de la
siguiente forma: para pasar de la fase de desarrollo Fase N a Fase N+1 es necesario un
proceso de evaluación: un procedimiento que controle, mejore y permita hacer seguimiento de
la calidad tanto del producto como del proceso. Dicho proceso se construye con base en dos
entradas fundamentales: los requerimientos, criterios o métricas a evaluar, y las técnicas o
métodos que permitan recolectar y procesar datos de la evaluación.
FIGURA Nº25
47
Fuente: [ CITATION Ivá161 \l 3082 ]
Bajo una definición formal, una métrica es un valor numérico o nominal asignado a
características o atributos de un ente y se calcula a partir de un conjunto de datos observables
y consistentes con la intuición. Es una correspondencia entre un dominio empírico y un mundo
48
formal o matemático. La métrica puede ser directa o indirecta, interna o externa, objetiva o
subjetiva.
La métrica debe ser en todo momento una medida válida, la medida debe ser una
caracterización numérica apropiada del atributo, mostrando que se satisfaga la condición de
representación, esto es, que la correspondencia entre el dominio empírico y el nuevo dominio
numérico o simbólico preserve la relación de manera que estudiando y analizando a los
números podamos explicar y conjeturar sobre el ente del mundo real. Cualquier medida que
satisfaga la condición de representación es una métrica válida.
Kitchenham afirma que para decir si una métrica es válida es necesario al menos confirmar:
- La validez del atributo: si el atributo en cuestión es realmente exhibido por el ente que
se desea evaluar.
- La validez de la unidad: si la unidad de medición a ser usada es apropiada para medir el
atributo.
Para este trabajo, siguiendo con el modelo de evaluación planteado, las métricas de usabilidad
Web se han agrupado dentro de seis grandes criterios: Aprendizaje, Operatividad,
Satisfacción, Contenido, Eficiencia y Eficacia. Esta división obedece principalmente a la
combinación entre las diferentes definiciones de usabilidad que se han apropiado para este
trabajo de grado. Dentro de cada criterio se dispone de un conjunto de métricas que creemos,
según resultados de nuestro trabajo de investigación y juicios propios, se han dispuesto como
las más adecuadas para cada criterio.
Desde este enfoque, las Métricas de usabilidad para la Web pueden verse como requisitos
deseables para una aplicación Web. El cálculo de dichas métricas no se realiza directamente,
para ello se define un conjunto de atributos e indicadores por cada métrica. Los Atributos son
elementos más prácticos y claros que cualifican o cuantifican las métricas (preferiblemente
cuantitativo para facilitar su análisis a través de métodos estadísticos). Los Indicadores, se han
postulado como estrategias para la medida de los atributos; en muchos casos, estas estrategias
resultan igual de abstractas que los mismos atributos, para tal caso se espera que una vez
49
definidas las métricas particulares a utilizar en el contexto de la evaluación, se precise de
argumentos numéricos que permitan estimar una medida.
1.3.10. PHP
PHP es un lenguaje interpretado del lado del servidor que surge dentro de la corriente
denominada código abierto (open source). Se caracteriza por su potencia, versatilidad,
robustez y modularidad. Al igual que ocurre con tecnologías similares, los programas son
integrados directamente dentro del código HTML. En este libro se explicará en detalle la
sintaxis y el funcionamiento de este lenguaje, de momento se realiza a continuación una breve
comparativa con las otras tecnologías del lado del servidor descritas previamente.
1) Velocidad: PHP no solo es rápido al ser ejecutado sino que no genera retrasos en la
máquina, por esto no requiere grandes recursos del sistema. PHP se integra muy bien
junto a otras aplicaciones, especialmente bajo ambientes Unix.
2) Estabilidad: PHP utiliza su propio sistema de administración de recursos y posee de un
sofisticado método de manejo de variables, conformando un sistema robusto y estable.
3) Seguridad: PHP maneja distintos niveles de seguridad, estos pueden ser configurados
desde el archivo .ini
50
4) Simplicidad: Usuarios con experiencia en C y C++ podrán utilizar PHP rápidamente.
Además PHP dispone de una amplia gama de librerías, y permite la posibilidad de
agregarle extensiones. Esto le permite su aplicación en múltiples áreas, tales como
encriptado, gráficos, XML y otras.
- Capacidad de conexión con la mayoría de los motores de base de datos que se utilizan
en la actualidad, destaca su conectividad con MySQL y PostgreSQL.
b) Desventajas:
- Como es un lenguaje que se interpreta en ejecución para ciertos usos puede resultar un
inconveniente que el código fuente no pueda ser ocultado. La ofuscación es una técnica
que puede dificultar la lectura del código pero no la impide y, en ciertos casos,
representa un costo en tiempos de ejecución. [ CITATION Jes16 \l 3082 ]
MySQL es un gestor de bases de datos relacional de licencia. Una base de datos relacional
desde un punto de vista lógico usa tablas para guardar los datos. Internamente un mecanismo
de almacenamiento (storage engine) es el encargado de almacenar en último término los datos
de las tablas en dispositivos físicos, para que estos tengan durabilidad. El mecanismo es
totalmente clave a la hora de evaluar la rapidez y las funcionalidades que puede ofrecer el
51
SGBD. MySQL tiene la opción de incluir dinámicamente desde MySQL los distintos
mecanismos para soportar el almacenamiento de las tablas. [ CITATION Wii16 \l
3082 ]
MySQL presenta algunas ventajas que lo hacen muy interesante para los desarrolladores. La más
evidente es que trabaja con bases de datos relacionales, es decir, utiliza tablas múltiples que se
interconectan entre sí para almacenar la información y organizarla correctamente.
3) Vistas: Desde la versión 5.0 de MySQL se ofrece compatibilidad para poder configurar
No emplear niveles de
vistas personalizadas del mismo modo que podemos hacerlo en otras bases de datos SQL. En
números…
bases de datos de gran tamaño las vistas se hacen un recurso imprescindible.
4) Procedimientos almacenados. MySQL posee la característica de no procesar las tablas
Viñetas o niveles del
directamente sino que a través de procedimientos almacenados es posible incrementar la
abecedario
eficacia de nuestra implementación.
52
Fuente bibliográfica, todas están
incompletas
5) Siga
Desencadenantes. MySQL laspermite
recomendaciones hechas
además poder automatizar ciertas tareas dentro de
nuestra base deen datos.clase…
En el momento que se produce un evento otro es lanzado para
Descritas las principales características de MySQL es fácil ver sus ventajas. MySQL es una
opción razonable para ser usado en ámbito empresarial. Al estar basado en código abierto permite
a pequeñas empresas y desarrolladores disponer de una solución fiable y estandarizada para sus
aplicaciones. Por ejemplo, si se cuenta con un listado de clientes, una tienda online con un
catálogo de productos o incluso una gran selección de contenidos multimedia disponible, MySQL
ayuda a gestionarlo todo debida y ordenadamente.
53