Sistema de Gestión de Datos ExpoFinder 1
Sistema de Gestión de Datos ExpoFinder 1
Sistema de Gestión de Datos ExpoFinder 1
EXHIBITIUM
Versión 1.2
Sistema de gestión de datos ExpoFinder V1.2 2017-01-
Plan de desarrollo de software y 15 PDSDT-0102_DEF REV:
documentación técnica 15/01/2017
Historial de
revisiones
Tabla de contenidos
1 Introducción ......................................................................................................................................... 7
1.1 Propósito..........................................................................................................................................7
1.2 Usuarios...........................................................................................................................................7
1.3 Alcance ............................................................................................................................................8
1.4 Resumen .........................................................................................................................................8
1.5 Advertencias ....................................................................................................................................9
1.6 Glosario, acrónimos y definiciones ..................................................................................................9
5 Infraestructura..................................................................................................................................... 34
11 Componentes SW ............................................................................................................................ 64
11.1 Componentes básicos .............................................................................................................. 64
11.2 Estructura SW ........................................................................................................................... 64
11.3 Algoritmos y librerías básicas ................................................................................................... 66
11.3.1 Algoritmos............................................................................................................................... 66
11.3.2 Librerías .................................................................................................................................. 67
Tabla de ilustraciones
Ilustración 1. Jerarquía metodológica en EF ................................................................................................................ 19
Ilustración 2. Ciclo SCRUM ........................................................................................................................................ 21
Ilustración 3. Desarrollo secuencial y solapado ........................................................................................................... 22
Ilustración 4. Disciplinas y fases RUP en EF .............................................................................................................. 23
Ilustración 5. Interacciones entre actores en EF ........................................................................................................... 28
Ilustración 6. Modelo simplificado SI EF .................................................................................................................... 47
Ilustración 7. Comparativa de test de velocidad MariaDB y MySQL.......................................................................... 50
Ilustración 8. Procesos GC según PMI ........................................................................................................................ 71
Ilustración 9. EF como subproyecto de EX. Mapa conceptual .................................................................................... 75
Ilustración 10. EF: Esquema de flujo simplificado. Mapa conceptual ......................................................................... 76
Ilustración 11. EF. Esquema procesual. Mapa conceptual ........................................................................................... 77
Ilustración 12. Stack de WordPress ............................................................................................................................. 78
Ilustración 13. EF. Modelo de datos ............................................................................................................................ 79
Ilustración 14. Relaciones entre los 3 sistemas principales de EF ............................................................................... 80
Ilustración 15. Registro ENTIDADES. Relaciones ..................................................................................................... 81
Ilustración 16. Registro PERSON. Relaciones ............................................................................................................ 82
Ilustración 17. Registro PUBLICACIONES. Relaciones ............................................................................................ 82
Ilustración 18. Registro EMPRESA. Relaciones ......................................................................................................... 83
Ilustración 19. Registro EXPOSICIÓN. Relaciones .................................................................................................... 84
Ilustración 20. Interfaz back-end ................................................................................................................................. 85
Ilustración 21. Interfaz front-end ................................................................................................................................. 86
Ilustración 22. Diagrama UML genérico. Modelo de casos de uso ............................................................................. 87
Ilustración 23. Servidor admin.expofinder.es. Tráfico últimos 12 meses .................................................................... 87
Ilustración 24. Servidor admin.expofinder.es. Uso CPU últimos 12 meses ................................................................. 88
1 Introducción
El presente documento (desde ahora, PDSDT) está destinado a describir el plan
de desarrollo (en adelante PDS) de la aplicación denominada ExpoFinder (en
adelante EF) y sus especificaciones técnicas (en adelante DT). Este documento
provee una visión global del enfoque de desarrollo propuesto y una descripción
abreviada de las mencionadas especificaciones.
El proyecto ha sido realizado y descrito en PDSDT basándose en una estructura
de tipo Rational Unified Process (RUP), que junto con el Lenguaje Unificado de
Modelado UML constituye la meto- dología estándar más utilizada para el análisis,
diseño, implementación y documentación de sis- temas orientados a objetos. Por
ello PDSDT utiliza la terminología propia de dicha metodología e incluye el modelo
del negocio y el alcance de EF, identifica los actores y casos de uso y esboza un
plan de negocio para determinar qué recursos deben ser asignados a cada tarea.
El enfoque de desarrollo propuesto constituye una configuración del proceso RUP
de acuerdo a las características de EF, seleccionando los roles de los
participantes, las actividades a realizar y los artefactos (entregables) que serán
generados. PDSDT es, a su vez, uno de los artefactos RUP.
1.1 Propósito
El propósito de PDS es proporcionar la información necesaria para controlar el
proyecto EF y des- cribir su funcionalidad, además de dotarlo de una base teórica
susceptible de revisión, modifica- ciones y mejoras. El propósito de DT es describir
con cierto nivel de detalle las soluciones técnicas adoptadas para implementar
adecuadamente PDS de acuerdo a lo en él estipulado.
Téngase en cuenta que existe documentación adicional detallada, que incluye el
código fuente y los diagramas UML completos empleados durante el proceso de
desarrollo que no figura en PDSDT. Los objetivos esenciales son:
Documentar textualmente de forma sucinta pero clara los elementos
esenciales que confi- guran el proyecto EF.
Referenciar las fases esenciales del proyecto: análisis previo, desarrollo
primario, pruebas funcionales, puesta en marcha y corrección de errores
y/o disfuncionalidades.
Informar sobre el estado actual de la ejecución del proyecto, situándolo
con respecto a la planificación inicial.
Evaluar el grado de ajuste del estado actual mencionado en el punto
anterior y las posibi- lidades de conclusión exitosa del proyecto EF en
tiempo y forma.
1.2 Usuarios
PDSDT está concebido como herramienta de trabajo y referencia, y no como texto
con finalidad divulgativa o para usuarios finales. La audiencia prevista para el
mismo, por tanto, tiene un marca- do perfil técnico. Los actores previstos para la
Universidad de Málaga. Departamento de Historia del Arte. iArtHis_LAB Página 7 de
Research Group 91
Sistema de gestión de datos ExpoFinder V1.2 2017-01-
Plan de desarrollo de software y 15 PDSDT-0102_DEF REV:
consulta
documentación son:
técnica 15/01/2017
1
A. Piscitelli. “Humanidades digitales y nuevo normal educativo”. TELOS (Cuadernos de Comunicación e Innovación), pp. 10 y ss.,
junio-septiembre 2015.
2
INTECO. Ingeniería de Software: metodologías y ciclos de vida. Laboratorio Nacional de Calidad del Software. Instituto Nacional
de Tecnologías de la Comunicación. 2009.
3
IEEE. IEEE Standard Glossary of Software Engineering Terminology, IEEE std 610.12-1990, 1990.
blecidos.
El modelo de ciclo de vida adoptado en el desarrollo de EF es el de prototipos,
propio de la me- todología ágil utilizada para todo el proceso completo (ver 2.6).
Según los principios de este mode- lo, CL a menudo define un conjunto de
objetivos generales para SW, pero no identifica los requisi- tos detallados de
entrada, proceso o salida. En otros casos, el responsable del desarrollo del soft-
ware puede no estar seguro de la eficiencia de un algoritmo, de la calidad de
adaptación de un sis- tema operativo, o de la forma en que debería tomarse la
interacción hombre-máquina. En estas y en otras muchas situaciones, un
paradigma de construcción de prototipos puede ofrecer el mejor enfoque.
El ciclo de construcción de prototipos comienza con la recolección de requisitos.
El desarrollador y CL encuentran y definen los objetivos globales para el software,
identifican los requisitos conoci- dos y las áreas del esquema en donde es
obligatoria más definición. Entonces aparece un diseño rápido. El diseño rápido
se centra en una representación de esos aspectos del software que serán visibles
para CL. El diseño rápido lleva a la construcción de un prototipo. El prototipo lo
evalúa CL y se utiliza para refinar los requisitos del SW a desarrollar. La iteración
ocurre cuando el prototipo se pone a punto para satisfacer las necesidades de CL,
permitiendo al mismo tiempo que el des- arrollador comprenda mejor lo que se
necesita hacer.
Entre las ventajas, citadas por INTECO 2009, figuran:
Ofrece visibilidad del producto desde el inicio del ciclo de vida con el primer
prototipo. Esto puede ayudar al cliente a definir mejor los requisitos y a ver
las necesidades reales del producto. Permite introducir cambios en las
iteraciones siguientes del ciclo. Permite la re- alimentación continua del
cliente.
El prototipo es un documento vivo de buen funcionamiento del producto
final. El cliente reacciona mucho mejor ante el prototipo, sobre el que puede
experimentar, que no sobre una especificación escrita.
Este modelo reduce el riesgo de construir productos que no satisfagan las
necesidades de los usuarios.
El documento citado también describe algunos inconvenientes de este tipo de
ciclo, pero, dadas las características específicas de EF, el equipo de desarrollo ha
concluido de que eran poco apli- cables en este caso concreto y, por tanto, su
impacto en el resultado final es despreciable. Tales inconvenientes pueden
describirse como sigue:
Es posible que el conjunto procesual de desarrollo sea lento. Además,
puede llevar a que se realicen fuertes inversiones en un producto
desechable ya que los prototipos se des- cartan. Ambas contrariedades
carecen de relevancia en el caso EF, puesto que tanto la inversión está
predeterminada desde el primer momento (consúltese al respecto la web
de EX, http://www.exhibitium.com) como la relación con CL es
absolutamente directa, sin in- termediarios.
Universidad de Málaga. Departamento de Historia del Arte. iArtHis_LAB Página 24 de
Research Group 91
Sistema de gestión de datos ExpoFinder V1.2 2017-01-
Plan de desarrollo de software y 15 PDSDT-0102_DEF REV:
técnica
documentación Con este modelo pueden surgir problemas con CL, que ve funcionando
15/01/2017
versiones del pro- totipo pero puede desilusionarse porque el producto final
aún no ha sido construido. El desarrollador puede caer en la tentación de
ampliar el prototipo para construir el sistema final sin tener en cuenta los
compromisos de calidad y de mantenimiento que tiene con el CL. No es el
caso de EF, por tratarse de un comitente que, por así decirlo, es un eslabón
Por contraste con los sistemas anteriores, caracterizados por la rigidez de sus
procedimientos y la sobreabundancia de entregables documentales, el desarrollo
ágil de SW utiliza un proceso itera- tivo como base para abogar por un punto de
vista más ligero y más centrado en las personas que en el caso de las soluciones
tradicionales. Los usos ágiles emplean retroalimentación en lugar de planificación,
como principal mecanismo de control. La retroalimentación se canaliza por medio
de pruebas periódicas y frecuentes versiones del software. De hecho, se trata de
metodologías apli- cables a numerosos tipos de actividades humanas, y no
solamente al desarrollo de SW.
Hay muchas variantes de los procesos ágiles, pero en EF el equipo de desarrollo
ha procurado ceñirse a dos modelos esenciales: eXtreme Programming (XP) y
Lean Programming. En ambos casos, es posible (aunque el desarrollo de la
pertinente argumentación queda fuera del alcance del presente documento) hacer
compatibles tales modelos con el estándar ISO/IEC 15504 o SPICE, considerado
uno de los más fiables para el establecimiento de mejoras en el complejo conjunto
de especificaciones de la ingeniería de software.
En el caso de la programación extrema (XP), las fases se realizan en pasos muy
cortos (o "conti- nuos") con respecto al anterior. Se crean pruebas automatizadas
para proveer metas concretas al desarrollo. Después se programa el código, que
será completo cuando todas las pruebas se su- peran sin errores. El diseño y la
arquitectura emergen a partir de la refactorización del código, y lo realizan los
propios desarrolladores. El sistema, incompleto, pero funcional, se despliega para
su
demostración al CL a través de los
usuarios direc- tos (al menos uno de los
cuales pertenece al equi- po de
desarrollo).
Esta metodología es muy conveniente
para EF por cuanto, como se verá en 3,
existe un grupo de usuarios finales, que
pueden considerarse parte del CL, que
trabajan como revisores y grabadores de
Ilustración 1. Jerarquía metodológica en
datos capturados y actúan como parte
EF intere- sada en el ciclo de desarrollo.
Lean Software Development, también
conocido como Lean Programming es un
conjunto de técni- cas que engloban una
metodología de desarrollo ágil de software
orientado a conseguir exactamen- te lo
que necesita el CL. Es una evolución del
Método Toyota de Producción aplicado al
desarro-
llo y que está muy de moda entre los equipos de desarrollo en startups.
Principalmente consiste en ciclos de evolución de SW incrementales en los que
se posponen las decisiones lo más posible hasta haber obtenido un feedback del
Universidad de Málaga. Departamento de Historia del Arte. iArtHis_LAB Página 30 de
Research Group 91
Sistema de gestión de datos ExpoFinder V1.2 2017-01-
Plan de desarrollo de software y 15 PDSDT-0102_DEF REV:
cliente
documentación y así reaccionar
técnica lo más rápido y eficazmente a15/01/2017
sus necesidades. Se
fundamenta en tener un equipo potente y comprometido y el principio de apren-
dizaje continuo sobre el producto final.
El desarrollo basado en LP se debe su nombre a la palabra inglesa que puede traducirse por “es-
belto”, pero también por “apoyado”. Ambas cosas coinciden en una metodología cimentada a su
4
A pesar de lo que comúnmente se cree, los que comenzaron a popularizar el concepto lean no fueron los japoneses, sino los
responder a requisi- tos emergentes. Los “saltos” evolutivos se llevan a término en ciclos,
denominados Sprints.
Ilustración 3. Desarrollo secuencial y solapado
EF no implementa el modelo SCRUM completo (es posible obtener
documentación adicional al respecto en Palacio 2015 6) por las características de
los recursos humanos implicados (carecen en su totalidad de dedicación plena al
proyecto), que imposibilitan un plan de reuniones tan estric- to como el modelado
original requiere. La plasmación modélica de EF utiliza los siguientes roles:
ROL ACTOR CARACTERÍSTICAS
Scrum Master Facilita la aplicación de SCRUM y
Desarrollador jefe
gestionar
cambios. Coordina con Team
Product Owner Supervisor jefe Representa a los stakeholders
(interesados externos o internos). En
el caso de EF, coin-
cide la figura de supervisión con la
homóloga de EX, lo que resulta muy
adecuado
Team Desarrolladores Realizan los artefactos determinados
en las
reuniones
Las reuniones en SCRUM siguen una pauta poco flexible, y por ello EF ha
simplificado su jerarqu- ía reduciéndolas a una por ciclo (Sprint Planning
Universidad de Málaga. Departamento de Historia del Arte. iArtHis_LAB Página 36 de
Research Group 91
Sistema de gestión de datos ExpoFinder V1.2 2017-01-
Plan de desarrollo de software y 15 PDSDT-0102_DEF REV:
Meeting),
documentación técnica que, por razones de premura y orga- nizativas,15/01/2017
suelen realizarse una
vez cada quince días, en vez de con periodicidad mensual, como
6
J. Palacio. Gestión de proyectos Scrum Manager (Scrum Manager I y II). Versión 2.5.1. España, 2015.
artefac- tos.
Ilustración 4. Disciplinas y fases RUP en EF
La estructura de procesos y secuencias que el principio RUP impone agrupa las
tareas que se realizan en disciplinas (en el diagrama, los elementos que figuran
a la izquierda), y la flecha tem- poral se basa en la realización de iteraciones de
Universidad de Málaga. Departamento de Historia del Arte. iArtHis_LAB Página 38 de
Research Group 91
Sistema de gestión de datos ExpoFinder V1.2 2017-01-
Plan de desarrollo de software y 15 PDSDT-0102_DEF REV:
las tareas
documentación técnicareunidas en fases.
En EF, y puesto que, como ha quedado establecido
15/01/2017
ya desde 1, el constructo lógico del proyecto se apoya en una planificación
Rational Unified, a la vez que sigue principios SCRUM, LP y XP, los entregables
se
7
Expresada, en su caso, en horas por semana.
8
PMI. A Guide to the Project Management Body of Knowledge. EEUU, 2012.
El desarrollo se llevará a cabo en fases con una o más iteraciones en cada una
de ellas. La si- guiente tabla muestra la previsión temporalizada, con expresión de
las iteraciones. Los hitos son actividades, artefactos o entregables que
determinan el logro de los objetivos de cada fase. Se in- cluye, además de las
expresadas en el diagrama denominado Ilustración 4. Disciplinas y fases RUP en
EF, la fase de Mantenimiento, imprescindible como parte del proyecto dada la
naturaleza de EF. Dicha fase se considera integrante del ciclo de desarrollo
porque la propia dinámica del proyecto, basado en capturas automatizadas (ver
9), implica ajustes finos de los sistemas de iden- tificación de datos de manera
que se garantice la resiliencia. La fase de mantenimiento no tiene un número
predeterminado de iteraciones. La temporalización se expresa en semanas de
trabajo.
Universidad de Málaga. Departamento de Historia del Arte. iArtHis_LAB Página 49 de
Research Group 91
Sistema de gestión de datos ExpoFinder V1.2 2017-01-
Plan de desarrollo de software y 15 PDSDT-0102_DEF REV:
documentación técnica 15/01/2017
FASE ITERACION SEMAN HITO
ES AS
Inicio 1 5 Desarrollo de la ingeniería de requisitos a partir
de las indicaciones de CL, los cuales se
establecen en el artefac- to PDSDT. Los
principales casos de uso se identifican y se
emplean para refinar PDS. La aceptación de CL
del arte-
facto PDSDT y la puesta en marcha de PDS
señalan el
5 Infraestructura
La modalidad de trabajo cliente/servidor, adoptada como solución funcional para
EF tal como se describe en 8, implica el uso del siguiente HW por parte de los
diferentes actores del sistema.
Lado cliente
Equipo informático con cualquier sistema operativo capaz de soportar
conexiones a Inter- net (OSX, Windows, Linux,…). Mínimo 4 Gb RAM. EL espacio de
almacenamiento local es irrelevante.
Navegador basado en Webkit o Blink (Google Chrome 40x ó superior, Safari, Firefox… o
bien Microsoft Edge).
Conexión de banda ancha a la red (xDSL, FTTH, FTTC…).
Lado servidor
Equipo blade o enracable con resiliencia eléctrica y
almacenamiento RAID. Sistema operativo Linux, con acceso root.
SGBD MySQL o
MariaDB. Intérprete
de scripts PHP.
Conexión de alta velocidad a
Internet. Dominio Internet de
tipo “.es”
De acuerdo con los requerimientos solicitados por CL, que se expresan en 8, y
para el correcto funcionamiento del sistema EF, Product Owner/Supervisor
aprueba la adquisición en modalidad alquiler temporal de equipamiento en la
nube para que actúe como servidor por el plazo de dura- ción establecido para EX
(y, por tanto, para EF) renovable en ciclos de doce meses, del equipo que se
detalla. Se opta por un alquiler de servidor dedicado y no de hospedaje por las
superiores características de funcionamiento y por permitir el control absoluto
sobre el SO.
El alquiler se ha formalizado con la empresa OVH9, en concreto de su producto
Servidor Enter- prise SP-64 - 64G E5-1620v2 SoftRAID 2x 2 TB. La contratación
se ha realizado por un plazo de 12 meses, con expiración el 1 de mayo de 2016,
con un importe total de 1.197,73 euros por el periodo, IVA incluido, en concepto
de servidor, conexión y dominio.
EQUIPAMIENTO CARACTERÍSTICAS
Servidor dedicado CPU: Intel(R) Xeon(R) CPU E5-1620 v2 @ 3.70GHz.
Núcleos : 8
Caché :
10240KB
RAM: 4x 16384MB
Discos: 2 x 2000 GB RAID 5 MegaRAID 9271 Caché 1 GB +
9
OVH es un proveedor de alojamiento web francés. Ofrece servidores dedicados, alojamiento compartido, registro de dominios,
VPS y servicios de Cloud Computing.
Tabla: wp_posts
Campo Tipo Nulos Clave Por defecto Extra
ID bigint(20) PRI & IND auto_increme
unsigned Pt4 nt
post_author bigint(20) IND 0
unsigned
post_date datetime IND Pt3 0000-00-00
00:00:00
post_date_gmt datetime 0000-00-00
00:00:00
post_content longtext
post_title text
post_excerpt text
post_status varchar(20) IND PT2 publish
comment_status varchar(20) open
ping_status varchar(20) open
post_password varchar(20)
post_name varchar(200) IND
to_ping text
pinged text
post_modified datetime 0000-00-00
00:00:00
post_modified_g datetime 0000-00-00
mt 00:00:00
post_content_filte longtext
Universidad de Málaga. Departamento de Historia del Arte. iArtHis_LAB Página 59 de
Research Group 91
Sistema de gestión de datos ExpoFinder V1.2 2017-01-
Plan de desarrollo de software y 15 PDSDT-0102_DEF REV:
red técnica
documentación 15/01/2017
post_parent bigint(20) IND 0
unsigned
guid varchar(255)
menu_order int(11) 0
post_type varchar(20) IND Pt1 post
post_mime_type varchar(100)
comment_count bigint(20) 0
Índices
Tabla: wp_terms
Campo Tipo Nulos Clave Por defecto Extra
term_id bigint(20) PRI auto_increme
unsigned nt
name varchar(200) IND
slug varchar(200) UNI
term_group bigint(10) 0
Índices
Nombre Tipo Campos
PRIMARY PRIMARY term_id
slug UNIQUE slug
name INDEX name
Tabla:
wp_term_relationships
Campo Tipo Nulos Clave Por defecto Extra
object_id bigint(20) PRI Pt1 0
unsigned
term_taxonomy_i bigint(20) PRI Pt2 & 0
d unsigned IND
term_order int(11) 0
Índices
Nombre Tipo Campos
PRIMARY PRIMARY object_id
term_taxonomy_id
term_taxonomy_i INDEX term_taxonomy_id
d
Tabla:
wp_term_taxonomy
Campo Tipo Nulos Clave Por defecto Extra
term_taxonomy_i bigint(20) PRI auto_increme
d unsigned nt
term_id bigint(20) UNI Pt1 0
unsigned
taxonomy varchar(32) UNI Pt2 &
IND
description longtext
parent bigint(20) 0
unsigned
count bigint(20) 0
Universidad de Málaga. Departamento de Historia del Arte. iArtHis_LAB Página 61 de
Research Group 91
Sistema de gestión de datos ExpoFinder V1.2 2017-01-
Plan de desarrollo de software y 15 PDSDT-0102_DEF REV:
documentación técnica
Índices 15/01/2017
Nombre Tipo Campos
PRIMARY PRIMARY term_taxonomy_id
term_id_taxonom UNIQUE term_id
y
taxonomy
taxonomy INDEX taxonomy
No se incluyen las tablas que dependen de la estructura interna de
funcionamiento de WP y que no están relacionadas con la operatoria de EF.
Las tablas adicionales, no previstas por el FW, que se emplean para la gestión de
EF, son las si- guientes.
Tabla:
wpaef_xtr_activity_log
Campo Tip Nulos Por defecto
o
log_id (Primaria) bigint(20) No
user_id bigint(20) No 0
activity varchar(30) No log_in
object_id bigint(20) No 0
object_type varchar(20) No post
activity_date datetime No 0000-00-00 00:00:00
Índices
Nombre Tip Único Empaqueta
o do
PRIMARY BTREE Sí No
abc BTREE No No
Tabla:
wpaef_xtr_beaglecr_log
Campo Tip Nulos Por defecto
o
log_id (Primaria) int(11) No
log_date timestamp No CURRENT_TIMESTAMP
checked_uris bigint(20) No
invalid_uris bigint(20) No
valid_uris bigint(20) No
sapless_uris bigint(20) No
checked_entries bigint(20) No
sapless_entries bigint(20) No
sapfull_entries bigint(20) No
added_entries bigint(20) No
discarded_entries bigint(20) No
entries_by_valid_ float No
uri
entries_by_useful float No
_uri
operation_time int(11) No
average_time float No
Índices
Nombre Tip Único Empaqueta
o do
PRIMARY BTREE Sí No
def BTREE No No
Tabla: wpaef_xtr_dashboard_chat_log
Campo Tip Nulos Por defecto
o
id (Primaria) bigint(20) No
Universidad de Málaga. Departamento de Historia del Arte. iArtHis_LAB Página 63 de
Research Group 91
Sistema de gestión de datos ExpoFinder V1.2 2017-01-
Plan de desarrollo de software y 15 PDSDT-0102_DEF REV:
documentación técnica
user_id bigint(20) No 15/01/2017
date datetime No CURRENT_TIMESTAMP
content text No
checked bigint(2) No 0
Índices
Tabla:
wpaef_xtr_nbc_b8_wordlist
Campo Tip Nulos Por
o defecto
token (Primaria) varchar(255 No
)
count_ham int(10) Sí NULL
count_spam int(10) Sí NULL
Índices
Nombre Tip Único Empaquetado
o
PRIMARY BTREE Sí No
Tabla:
wpaef_xtr_projectd_log
Campo Tip Nulos Por
o defecto
task_order int(11) No
task_id (Primaria) varchar(50) No
task_name varchar(100 No
)
resource varchar(50) No
start_date date No
end_date date No
dependencies varchar(150 Sí NULL
)
duration int(11) No
percent_complete int(11) Sí NULL
Índices
Nombre Tip Único Empaquetado
o
PRIMARY BTREE Sí No
Tabla:
wpaef_xtr_urierror_log
Campo Tip Nulos Por
o defecto
log_id (Primaria) int(11) No
log_date timestamp No CURRENT_TIMESTAMP
post_author bigint(20) No
invalid_rss_uri longtext Sí NULL
invalid_html_uri longtext Sí NULL
Índices
Nombre Tip Único Empaquetado
o
Universidad de Málaga. Departamento de Historia del Arte. iArtHis_LAB Página 65 de
Research Group 91
Sistema de gestión de datos ExpoFinder V1.2 2017-01-
Plan de desarrollo de software y 15 PDSDT-0102_DEF REV:
documentación técnica
PRIMARY BTREE Sí No 15/01/2017
def BTREE No No
post_author BTREE No No
10
Multiple (wiki). "Web application framework". Docforge. Consultado 2015-01-19.
ELEMENTO OBTIENE DE
12
Recuérdese que, en el caso de EF, coincide con el Product Owner de la filosofía SCRUM, lo que le faculta para decidir los obje-
tivos finales en función de su pertinencia para la obtención de resultados en EX.
13
El proceso de búsqueda debe entenderse como actividad exclusivamente realizada por RRHH, sin intervención del sistema in-
formático. Se trata de utilizar los conocimientos en DH y DAH de los actores Grabador verificador y Revisor para localizar po-
sibles fuentes de información a partir de las cuales obtener una lista de URIs desde las que capturar datos sobre ETA.
14
La disponibilidad es usualmente expresada como un porcentaje del tiempo de funcionamiento en un año dado. La regla de los
“tres nueves” implica que el sistema deberá estar disponible todo el tiempo salvo 99,9% = 43.8 minutos/mes u 8,76 horas/año.
15
Clave de derechos de acceso a información en SGBD. C=Creación; R=Lectura, U=Actualización; D=Borrado. T=acceso a los
registros generados por cualquier actor; P=acceso solo a los registros creados por el propio actor.
Nombre Filtrado
Descripción SC usa la información relevante obtenida por Captura de información para
transformarla en texto y aplicar el algoritmo de selección. Si la información obtiene
o sobrepasa el nivel mínimo, se transfie- re a Aprendizaje como válida; en caso
contrario, se descarta y se transfiere a Aprendizaje como no
válida.
Actores Beagle.
Precondicione Debe existir la información relevante. Debe poder ser transformada desde su
s formato original (XML
o HTML) en texto.
Flujo normal SC lee la información relevante. Evalúa el contenido mediante aplicación de
algoritmo de filtro. Transfiere resultados a Aprendizaje.
Flujo SC dispara una condición de error usando API WP.
alternativo
Postcondicion Aprendizaje debe disponer de un contenido en formato texto.
es
Referencias Captura de información, Aprendizaje
Nombre Aprendizaje
Descripción SC usa la información filtrada. Si procede de Filtrado como válida, aplica algoritmo
clasificador ba-
yesiano ingenuo (CBI) y la clasifica como válida. En caso contrario, aplica el
mismo algoritmo y la clasifica como no válida.
Actores Beagle, Sistema
Precondicione Debe existir la información filtrada y evaluada.
s
Flujo normal SC lee la información evaluada. Aplica algoritmo CBI y la clasifica.
Flujo SC dispara una condición de error usando API WP.
alternativo
Postcondicion Grabación debe disponer de respuesta completa proporcionada por Captura de
es información y del
resultado del filtro y de la clasificación.
Referencias Grabación
Nombre Grabación
Descripción SC recoge la información transferida por Aprendizaje. Añade la metainformación
(entidad origen de URI usada para capturar la información, fecha y hora de captura,…).
Graba un registro de tipo ex-
posición en SGBD marcado como “borrador”. Atribuye dicho registro al actor Grabador verificador
que grabó la información de la entidad origen.
Actores Beagle, Sistema
Precondicione Debe existir la información capturada, filtrada y aprendida. Debe existir la
s metainformación asocia- da.
Nombre Verificación
Descripción Grabador verificador lee registros grabados por Grabación asignados a su usuario
WP. Verifica que
la información capturada es válida. Si no lo es, utiliza el flujo alternativo. Completa
la metainforma-
Nombre Revisión
Descripción Revisor lee registro grabado y en formato “publicado”. Comprueba la adecuación de la metainfor-
mación grabada a la normativa sobre taxonomía y metainformación
(vocabularios controlados). En caso de no adecuación a norma, utiliza flujo
alternativo.
Actores Grabador verificador, Revisor, Supervisor
Precondicione Debe existir un registro guardado en formato “publicado” asignado a Grabador verificador.
s
Flujo normal Revisor lee registro grabado por Grabador verificador como “publicado”. Verifica validez de datos.
Flujo Revisor constata que la metainformación grabada en el registro guardado no se
alternativo adecua a la norma-
tiva sobre taxonomía y metainformación (vocabularios controlados). Emite una SC
a Supervisor.
Postcondicion Revisor debe disponer de un registro grabado y en formato “publicado”.
Universidad de Málaga. Departamento de Historia del Arte. iArtHis_LAB Página 101
Research Group de 91
Sistema de gestión de datos ExpoFinder V1.2 2017-01-
Plan de desarrollo de software y 15 PDSDT-0102_DEF REV:
es
documentación técnica 15/01/2017
Referencias Verificación, Borrado, Supervisión
Nombre Supervisión
Descripción Supervisor recibe una SC de Revisor. Evalúa si se trata de una actuación errónea
o hay que modi- ficar el vocabulario controlado o las normas de verificación. En el
primer caso, utiliza el flujo alterna-
tivo. En el segundo, gestiona el alta de la metainformación en el vocabulario
controlado o altera la normativa en consecuencia.
Actores Grabador verificador, Revisor, Supervisor
Precondicione Debe existir una SC de Revisor.
s
Flujo normal Supervisor recibe una SC de Revisor. Evalúa positivamente la solicitud. Realiza
los cambios en el vocabulario controlado o modifica las normas
Nombre Borrado
Descripción Por iniciativa propia durante Verificación o a instancias de Supervisor tras
Supervisión, Grabador
verificador borra un registro no válido.
Actores Grabador verificador, Revisor, Supervisor, Sistema
Precondicione Debe existir un mensaje por mensajería interna de Supervisor.
s
Flujo normal Grabador verificador recibe un mensaje por mensajería interna para borrado de un
registro. Graba- dor verificador cambia su estado a “papelera”. Grabador verificador “vacía” la
Papelera de su usua- rio WP. Sistema borra el registro del CBI como positivo. Sistema
da de alta el registro en CBI como
negativo.
Flujo SC dispara una condición de error usando API WP.
alternativo
Postcondicion El registro erróneo debe ser eliminado con efectividad de la SGBD.
es
Referencias Supervisión
Nombre Exportación
Descripción A través de API WP, Sistema recibe una solicitud REST de preparar una
exportación de datos. La solicitud incluye parámetros sobre tipo de exportación.
Sistema verifica autenticidad de la solicitud.
En caso de verificación positiva, sigue flujo normal. En caso de verificación
negativa, sigue flujo alternativo.
Actores Sistema, Usuario externo
Precondicione Debe existir una solicitud REST. La solicitud debe superar el control de seguridad
s e identificación.
Flujo normal La solicitud REST es evaluada como válida (identificación, formato de salida y tipo
de datos). Sis- tema selecciona los datos solicitados. Sistema da formato a dichos
datos de acuerdo a la solicitud.
Sistema devuelve un archivo con la información solicitada.
Flujo Sistema devuelve un archivo en formato XML-RPC con la condición de error.
alternativo
Postcondicion El archivo devuelto debe ser legible.
es
Referencias Ninguna
En 14 se incluye un diagrama global y genérico del modelo de casos de uso.
9.2 Procesos
Los procesos de EF se agrupan en principales, derivados de los CDU, y
auxiliares, necesarios para el funcionamiento del sistema. Cada proceso se
corresponde con un elemento dentro del conjunto de interfaces.
9.2.1 Procesos principales
Generados a partir de los casos de uso. Su equivalencia dentro de los sistemas
de EF se expresa en la siguiente tabla.
18
Según el esquema oficial de URIs de IANA. Véase http://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml.
11 Componentes SW
La estructura de componentes SW de EF viene determinada por el análisis de
requisitos, la arqui- tectura y los procesos inherentes al proyecto. Véase al
respecto 2.2, 8 y 9.
Como principio rector, dada la naturaleza científica y académica de los proyectos
EF y EX, se ha adoptado el de usar única y exclusivamente componentes no
propietarios de software libre.
11.1 Componentes básicos
La aplicación se construye empleando PHP, acrónimo de Hypertext Preprocessor.
Se trata de un lenguaje de código abierto muy popular especialmente adecuado
para el desarrollo web y que puede ser incrustado en HTML en forma de scripts
ejecutables desde el extremo servidor.
WordPress es, en palabras de sus autores, “es una poderosa plataforma de publicación
personal, y viene con una gran cantidad de características incorporadas,
diseñadas para hacer tan fácil, pla- centera y atractiva como sea posible la
experiencia de publicar en Internet”. Se distribuye bajo li- cencia estándar GPL.
MySQL es un SGBD relacional, multihilo y multiusuario, cuya compañía matriz
desde enero de 2008 es subsidiaria de Sun Microsystems, y ésta a su vez de
Oracle Corporation desde abril de 2009. Está desarrollado como software libre en
un esquema de licenciamiento dual.
MariaDB es un SGBD derivado de MySQL con licencia GPL y absolutamente
compatible en cuan- to a instrucciones y lenguaje con el mismo. Está desarrollado
por el fundador de MySQL y la co- munidad de desarrolladores de software libre.
En el momento de redactar la versión 1.1 de PDSDT, EF está funcionando
empleando MySQL como gestor de bases de datos, pero está pre- vista la
migración a MariaDB.
Ubuntu es un sistema operativo basado en GNU/Linux y que se distribuye como
software libre. Su patrocinador, Canonical, es una compañía británica propiedad
del empresario sudafricano Mark Shuttleworth. Ofrece el sistema de manera
gratuita, y se financia por medio de servicios vincula- dos al sistema operativo.
EF utiliza ampliamente las posibilidades de la POO mediante el empleo de clases,
subclases y funciones. Toda la nomenclatura de código está normalizada mediante el prefijo
“csl_” en varia- bles de alcance global, funciones, clases y constantes. La grafía del
código sigue las normas de estilo de WP en cuanto a estilos de redacción (Allman
preferentemente, K&R ocasionalmente).
Las versiones en uso de los componentes en el momento de redactar el presente
artefacto PDSDT son las siguientes.
COMPONENTE VERSIÓN
PHP 5.6.11-1ubuntu3.1
WordPress 4.4.1 es-ES
MySQL 5.6.27-0ubuntu1
Ubuntu Ubuntu Server 15.04 "Vivid Vervet". Kernel 3.14.32-xxxx-std-ipv6-64 #5 SMP Tue
Sep 8 17:41:55
Universidad de Málaga. Departamento de Historia del Arte. iArtHis_LAB Página 111
Research Group de 91
Sistema de gestión de datos ExpoFinder V1.2 2017-01-
Plan de desarrollo de software y 15 PDSDT-0102_DEF REV:
documentación técnica CEST 2015 x86_64 15/01/2017
11.2 Estructura SW
Como ya se ha mencionado en 8, EF se construye como extensión sobre el FW
WP. La construc- ción se realiza adoptando el formato de “tema”, con la denominación
específica CSL.
El tema consiste en un directorio, que se instala en la raíz física de la instalación de
WP, en la
:)
Taxonomías: Ausencia de una o más taxonomías obligatorias
Clasificación bayesiana ingenua
Se emplea la librería de Tobias Leupold B8 (véase 11.2). Un clasificador de Bayes
ingenuo asume que la presencia o ausencia de una característica particular no
está relacionada con la presencia o ausencia de cualquier otra característica, dada
la clase variable. Los CBI se pueden entrenar de manera muy eficiente en un
entorno de aprendizaje supervisado19, que es modelo que tal librería emplea, de
manera que obtiene una “opinión probabilística” acerva de la validez o ausencia de ella de
determinado texto capturado. Se utiliza en el contexto de los procesos Filtrado
(Beagle) y Bo- rrado.
11.3.2 Librerías
Como se ha dicho anteriormente, en ningún apartado de 11 se hace mención de
los elementos que forman parte del API de WP, usado en el proyecto como FW.
EF emplea dos categorías de li- brerías: para ejecución en servidor y para
ejecución en cliente. Todas las usadas disponen de li- cencias que las
caracterizan como SW libre, pudiendo ser dispuestas de acuerdo a los términos
establecidos en cada caso.
Para ejecución en servidor (PHP)
o PHP Readability
Release: 0.21. 12 de febrero de 2014.
Licencia: MIT.
Autor: feelinglucky.
Descripción: Port de la librería homónima de
Arc90 (http://graceco.de/readability/).
Función: Selección de texto relevante en página HTML.
o B
8 Release: 0.6.1. 12 de marzo de 2014.
Licencia: GPL 2.
Autor: Tobias Leupold.
Descripción: Clasificador Bayesiano Ingenuo basado en PHP y
MySQL.
Función: Aplicar CBI a textos recuperados por Beagle y
filtrados.
Para ejecución en cliente (Javascript)
o PivotTable.js
Release: 2.0.2. 12 de enero de 2016.
Licencia: MIT.
12 Gestión de riesgos
Se entiende por riesgo en el contexto PDSDT cualquier acontecimiento futuro o
no predecible que pueda afectar de forma negativa a EF. No todos los riesgos
tienen la misma probabilidad de ocu- rrir, ni el mismo impacto, por lo que a la hora
de tratarlos DT opta por seguir una pauta establecida como normal.
En EF se clasifican los riesgos de acuerdo a la matriz que a continuación se
expone, basada en los estudios de Pressman20, clasificándolos por su tipología de
acuerdo a las fases expresadas en 4.2.
TIPO ELABORACIÓ CONSTRUCCIÓ TRANSICIÓN MANTENIMIEN
N N TO
Técnicos Diseño
Requisitos Implementac Verificación Control de
ión Interfaz calidad
Del proyecto RRHH
RRHH RRHH
Tiempo
Tiempo Tiemp
Requisitos
o
Del negocio Apoyo
Presupuesto Presupuesto
Presupuesto
Como base de trabajo para la gestión de riesgos, EF usa la estrategia proactiva
(no reactiva) con los siguientes principios:
Se realiza un estudio de los riesgos potenciales (conocidos y desconocidos).
Se miden las posibilidades de que se conviertan en reales y se cuantifican
los problemas que puedan surgir.
Se redacta una lista priorizada de los riesgos detectados.
Se realiza el plan de gestión de riesgos, es decir, se planifica el proyecto
para evitar los riesgos o minimizarlos.
En caso de no dar resultado se dispondrá de planes de contingencia.
En cuanto al plan de gestión de riesgos, se abordan de acuerdo a la clasificación
propuesta por Boehm21 (modelo en espiral).
VALORACIÓN DEL RIESGO CONTROL DEL RIESGO
Identificación Planificación de la gestión
Análisis de las causas Resolución
Priorización según gravedad Monitorización del resultado de la solución
adoptada
La estrategia proactiva adoptada sigue unos modelos preventivos basados en
los principales factores de riesgo, que se identifican a continuación. Para los
restantes sucesos imponderables y con implicaciones de riesgo, Supervisor, en
coordinación con Administrador y Desarrollador, pre- via reunión, adoptarán las
medidas de corrección oportunas en cada caso.
FACTOR RIESGO ACCIONES PREVENTIVAS
13 Verificación de la calidad
Para la verificación de la calidad se recurre al modelo popularizado por PMBOK,
en una versión simplificada donde solamente se toman en cuenta determinados
parámetros, tanto desde el punto de vista CL como desde el de Desarrollador.
El Project Management Institute (PMI) distingue tres procesos en la gestión de la
calidad (GC) de un proyecto, que EF procura seguir.
Planificación [GCP]: Identificación de los requisitos de calidad y/o normas del
proyecto, docu- mentando la manera en que se demostrará el cumplimiento de los
mismos.
Aseguramiento [GCA]: Auditoría de los requisitos de calidad y los resultados
obtenidos a partir de medidas de control de calidad, a fin de garantizar que se
utilicen definiciones operacionales y normas adecuadas. También implica el
perfeccionamiento y la mejora del proceso con el fin de eliminar las actividades
que no agreguen valor.
Control [GCC]: Monitorización y registro de los resultados de la ejecución de las
actividades de calidad, a fin de evaluar el desempeño y recomendar cambios
necesarios. Permite validar que los entregables y el trabajo cumplen con los
requisitos especificados.
el estado del proyecto. GCC utiliza un conjunto de métricas para obtener una
valoración final del nivel de calidad.
Además de los establecidos por PBMOK, y dada la naturaleza científica y
académica tanto de EF como de su matriz EX, además de la cualidad del proyecto
de ser un PDS, existen condicionantes de calidad adicionales. En la siguiente
tabla se detallan las acciones de verificación que se reali- zan para culminar cada
proceso.
PROCESO ACCIONES EN
PDSDT
Cumplimiento de restricciones y suposiciones. Se verifica
1 2.2
que todos
los puntos establecidos se cumplen
Cumplimiento de requisitos. Se verifica que todos los
Planificación 2 requisitos iniciales se cumplen 8.2
Cumplimiento del plan de fases. Se verifica que los
3 4.2.1
entregables cumplen
el plan establecido.
Cumplimiento de tabla de esfuerzo. Se verifica que la
4 4.1
grabación alcanza las cifras estipuladas
SCRUM. Reuniones de Sprint. Se discute sobre la
Aseguramient 5 2.6
información de errores
o individual. Se discute sobre grado de cumplimiento de
esfuerzo
Información en tiempo real. Grado de cumplimiento de
6 10.1
esfuerzo. En
interfaz back-end. Accesible a todos los usuarios WP
Control Información en tiempo real. Número de errores por actor.
7 10.1
En interfaz
back-end. Accesible a todos los usuarios WP
Suministro de información. Errores formales individuales
8 10.1
por actor.
En interfaz back-end. Accesible a todos los usuarios WP
Cobertura geográfica mínima. Dado el alcance del
9 N/A
proyecto EX (ámbito europeo), se verifica que las zonas
Condicionante geográficas previstas son cubiertas
s adicionales Disponibilidad SW. Se verifica y monitoriza el ancho de
10 5
banda y el acce-
so al servidor durante el tiempo de duración del proyecto
Calidad SW. Se verifica la calidad del código entregado
11 11
mediante herra- mientas de métrica estándar
13.1 Evaluación del nivel de calidad
Con el fin de conocer el grado de calidad alcanzado por EF en su estado en el
momento de entre- gar el artefacto PDSDT actual, a continuación se detallan los
procesos GC considerados, las ac- ciones verificadoras realizadas y los
resultados obtenidos. En primer lugar se citan los requisitos GC mensurables
[RGC] mediante técnicas cuantificadoras, las herramientas empleadas, su ubica-
ción en EF y los resultados a la fecha de entrega de la versión actual de PDSDT.
En la tabla final y en la descripción de las herramientas se especifican los
condicionantes de calidad y el nivel de cumplimiento [NC] (0 >= nivel de
cumplimiento <= 1).
13.1.1 Herramientas de medición de calidad
Universidad de Málaga. Departamento de Historia del Arte. iArtHis_LAB Página 125
Research Group de 91
Sistema de gestión de datos ExpoFinder V1.2 2017-01-
Plan de desarrollo de software y 15 PDSDT-0102_DEF REV:
documentación técnica 15/01/2017
Nombre 1 Grado global de finalización
Procedencia Acción 1
Herramienta Cálculo global de nivel de finalización
Procedimiento Detallado en 4.1
Nivel debido 54%
Nivel alcanzado 60%
Cumplimiento 1
NC
Nombre 4 Disponibilidad SW
Procedencia Acción 10
Herramienta Informe específico (ver 15)
Procedimiento Especificado por Desarrollador. Nivel de disponibilidad de acceso al servidor y
funcionalidad de
aplicación de 99,9%
Nivel debido 99,9%
Nivel alcanzado 99,8%
Cumplimiento 1
NC
Nombre 5 Calidad SW
Procedencia Acción 11
Herramienta Informe específico (ver 15)
Procedimiento Especificado por Desarrollador. Complejidad ciclomática por LLOC <= 0,35
Nivel debido 0,35
Nivel alcanzado 0,38
Cumplimiento 0,9
NC
14 Anexo gráfico
15 Anexo documental
15.1 Informe sobre cobertura geográfica
Datos analizados directamente de SGBD a 30 de diciembre de 2015. Datos sobre
municipios pro- cedentes de Instituto Nacional de Estadística (INE). Padrón
consolidado 2014.
Size
Lines of Code (LOC) 26651
Comment Lines of Code (CLOC) 4046 (15.18%)
Non-Comment Lines of Code (NCLOC) 22605 (84.82%)
Logical Lines of Code (LLOC) 7033 (26.39%)
Classes 2592 (36.85%)
Average Class Length 83
Minimum Class Length 4
Maximum Class Length 370
Average Method Length 8
Minimum Method Length 0
Maximum Method Length 108
Functions 3596 (51.13%)
Average Function Length 11
Not in classes or functions 845 (12.01%)
Cyclomatic Complexity
Average Complexity per LLOC 0.38
Average Complexity per Class 39.87
Dependencies
Global Accesses 2677
Global Constants 2249 (84.01%)
Global Variables 190 (7.10%)
Super-Global Variables 238 (8.89%)
Attribute Accesses 1839
Non-Static 1839 (100.00%)
Static 0 (0.00%)
Method Calls 914
Non-Static 859 (93.98%)
Static 55 (6.02%)
Structure
Namespaces 0
Interfaces 0
Traits 0
Classes 31
Abstract Classes 2 (6.45%)
Concrete Classes 29 (93.55%)
Methods 268
Scope
Non-Static Methods 233 (86.94%)
Static Methods 35 (13.06%)
Visibility
Public Methods 189 (70.52%)
Non-Public Methods 79 (29.48%)
Functions 307
Named Functions 299 (97.39%)
Anonymous Functions 8 (2.61%)
Constants 119
Global Constants 85 (71.43%)
Class Constants 34 (28.57%)