Facultad de Informática de San Sebastián Sistema de gestión y adjudicación de obras de construcción



Documentos relacionados
Planificación, Gestión y Desarrollo de Proyectos

Metodología básica de gestión de proyectos. Octubre de 2003

Oficina Online. Manual del administrador

Funcionalidades Software SAT GotelGest.Net (Software de Servicio de Asistencia Técnica)

Sistema de marketing de proximidad

Guías _SGO. Gestione administradores, usuarios y grupos de su empresa. Sistema de Gestión Online

APOLO GESTION INTEGRAL.

DE VIDA PARA EL DESARROLLO DE SISTEMAS

Norma ISO 9001: Sistema de Gestión de la Calidad

Sistema de Facturación de Ventas WhitePaper Enero de 2007

Administración Local Soluciones

Ayuda para la instalación Componente Firma Digital INDICE. 1 Configuración previa Configuración Internet Explorer para ActiveX...

e-commerce, es hacer comercio utilizando la red. Es el acto de comprar y vender en y por medio de la red.

Project Ing. Christian Ovalle

CONSTRUCCIÓN DEL PROCESO PAGO DE FACTURAS. BizAgi Process Modeler

Ley Orgánica de Protección de Datos

El objetivo principal del presente curso es proporcionar a sus alumnos los conocimientos y las herramientas básicas para la gestión de proyectos.

Gestión de proyectos

Curso Online de Microsoft Project

FOROS. Manual de Usuario

MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD

Mantenimiento de Sistemas de Información

elastic PROJECTS INFORMACIÓN COMERCIAL PROJECTS

MANUAL DE INSTALACIÓN DEL COMPONENTE WEBSIGNER ACTIVEX. Versión 4.0

EDI. por dónde empezar? Intercambio Electrónico de Datos (EDI), Intercambio Electrónico de Datos (EDI), Intercambio Electrónico de Datos (EDI)

Trey-SAT Pag. 1. Manual de usuario

ERP GESTION LOGÍSTICA

Manual del Usuario. Sistema de Help Desk

Plantilla para Casos de Éxito

GedicoPDA: software de preventa

La Digitalización del Ayuntamiento. Gestión Integral

gestión económica programación económica gestión financiera contratación administrativa

Cómo seleccionar el mejor ERP para su empresa Sumario ejecutivo

SISTEMA DE GESTIÓN DE INCIDENCIAS Y REQUERIMIENTOS MESA DE AYUDA SINAT MANUAL DE USUARIO

UF0351: Aplicaciones informáticas de la gestión. comercial. TEMA 1. Utilización de aplicaciones de gestión en relación con clientesproveedores

Euroasesores Montalbán SL

Elementos requeridos para crearlos (ejemplo: el compilador)

Funcionalidades Software PROYECTOS GotelGest.Net Software para la gestión de Proyectos GotelGest.Net

Gestión de Permisos. Bizagi Suite. Copyright 2014 Bizagi

NOTAS TÉCNICAS SOBRE EL SIT: Documentos de Gestión

TARIFAS DE VENTA Y DESCUENTOS

Oasis es una fábrica para el bien común de los datos mediante la utilización de aplicaciones propuestas.

Almacenes de Materiales para la Construcción y Distribución de Cerámica

Traslado de Copias y Presentación de Escritos. Manual de Usuario V.3.1

Seminario Electrónico de Soluciones Tecnológicas sobre VPNs de Extranets

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD

G R U P O S INDICE Cómo crear una cuenta en ARQA? Cómo tener un grupo en ARQA? Secciones y funcionalidades de los grupos Configuración del grupo

Manual de Usuario Proveedor Módulo Cotizaciones

Cómo preparar una licitación con Presto

Introducción a la Firma Electrónica en MIDAS

GESTINLIB GESTIÓN PARA LIBRERÍAS, PAPELERÍAS Y KIOSCOS DESCRIPCIÓN DEL MÓDULO DE KIOSCOS

ADT CONSULTING S.L. PROYECTO DE DIFUSIÓN DE BUENAS PRÁCTICAS

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere.

Sistema de Gestión Integral STI NETWORK

"Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios

Tú diriges. SICAT E3 soluciona. Software de Gestión FOC310901

Internet Information Server

Manual para la utilización de PrestaShop

Gestión de la Configuración

Introducción a las redes de computadores

MARFIL CONTABILIDAD ACTUALIZACIÓN FEBRERO 2011

Prestador de servicios de certificación digital Empresas Organismos Administración Pública Gobiernos

Gestión de Oportunidades

Aplicación informática de Optimización de Facturas Eléctricas (O.F.E)

OBTENGA un Presupuesto Automático a partir del modelo DIGITAL.

I. T. en Informática de Sistemas. Facultad de Informática

Centrales solares con Phoenix Solar

Manual del Alumno de la plataforma de e-learning.

D.T.Informática S.L. [Sistema hada] hilo Administrador Desarrollo Activo

Gestió n de Certificadó Digital

INSTRODUCCION. Toda organización puede mejorar su manera de trabajar, lo cual significa un

PROYECTOS, FORMULACIÓN Y CRITERIOS DE EVALUACIÓN

GVisualPDA Módulo de Almacén

MANUAL DE USUARIO. Se deben seguir los siguientes pasos para la correcta instalación del módulo descargable:

LLEVE SU NEGOCIO al SIGUIENTE NIVEL. digitalice todos sus documentos y procesos.

Guía de Apoyo Project Professional

MANUAL DE AYUDA. MODULO SAT (Anexo Integración AGIL SAT)

1.- INTRODUCCIÓN 2.- PARÁMETROS

VENTA Y REPARACIÓN DE MAQUINARIA MAQUINARIA

MANUAL DE AYUDA. SAT Móvil (Movilidad del Servicio Técnico)

Prácticas ITIL para un mejor flujo de trabajo en el helpdesk

Activos Intangibles Costos de Sitios Web

Sistema de SaaS (Software as a Service) para centros educativos

MANUAL DE USUARIO DE EGROUPWARE MANUAL DE USUARIO EGROUPWARE

DIRECCIÓN ABASTECIMIENTO SOLICITUD PRIVADA DE OFERTAS 00305

1 Marketing Avanzado: Eventos y Campañas

Portal de Compras del Gobierno del Estado de Baja California ( A. Antecedentes

CAPITULO V. Conclusiones y recomendaciones. Este capítulo tiene como objetivo mostrar las conclusiones más significativas que se

Accede a su DISCO Virtual del mismo modo como lo Hace a su disco duro, a través de:

UAM MANUAL DE EMPRESA. Universidad Autónoma de Madrid

GESTIÓN DE DOCUMENTACIÓN PARA FACTORING

INSTALACIÓ N A3ERP. Informática para empresas INTRODUCCIÓN CONSIDERACIONES GENERALES DE LA INSTALACIÓN PAQUETES DE INSTALACIÓN PREDEFINIDOS

MANUAL DE USUARIO: AGENCIA DE VIAJES Configuración. Principales funcionalidades

Norma ISO 14001: 2004

Contenido Derechos Reservados DIAN - Proyecto MUISCA

Mesa de Ayuda Interna

CASOS DE ÉXITO DIST-PLEX MODUART. PARTNER Team Solutions SAS Es una compañía con más de 10 años de experiencia en la implementación de soluciones de

Guía de Apoyo Project Web Access. (Jefe de Proyectos)

Quatrotec mejora la relación con sus clientes a través de las funcionalidades de Sage ERP X3

SISTEMAS Y MANUALES DE LA CALIDAD

Transcripción:

AGRADECIMIENTOS Quiero dar gracias de forma general a la universidad y a LANTEK AUTOMATIZACIÓN que me han ofrecido la posibilidad de realizar mi proyecto de fin de carrera en sus instalaciones. En particular, quiero ofrecer mi gratitud a Germán Rigau por guiarme en el proyecto y ayudarme en la elaboración de la memoria y a Nuria Amescoa por ayudarme en todas y cada una de las fases del proyecto ya que sin su colaboración hubiese sido imposible la realización del mismo. RESUMEN Este documento corresponde a la memoria del Proyecto Fin de Carrera para la obtención de la titulación superior de Ingeniería en Informática. Ha sido realizado por Ignacio Muñoz Regaira en LANTEK AUTOMATIZACIÓN, bajo la dirección de Nuria Amescoa (tutora por parte de la empresa) y Germán Rigau (tutor de la universidad). Título del Proyecto:. El proyecto consiste básicamente en ampliar el módulo de gestión de proyectos de un ERP existente con la siguiente funcionalidad. Se desea poder gestionar la adjudicación por parte de una ingeniería de todas las contratas de las que constaría la construcción de una nueva edificación. Para ello se necesitará un sistema capaz de enviar y recibir toda a la información de los presupuestos de las diferentes obras. Las constructoras darían de alta los presupuestos a partir de la definición del proyecto introducida por parte de la ingeniería. La ingeniería posteriormente realizaría adjudicación de la obra. 1

INDICE 1. INTRODUCCIÓN... 1 1.1 Presentación de Lantek Automatización...1 1.2 Lantek ispace...2 1.3 El proceso de licitación...2 1.3.1 Qué es un proceso de licitación?...3 1.3.2 Problemática (Motivación)...3 2. D.O.P (Documento objetivos del proyecto)... 5 2.1 Introducción...5 2.2 Descripción...5 2.3 Objetivos...5 2.4 Método de trabajo...6 2.5 Alcance...6 2.5.1 Estructura de descomposición del trabajo (EDT)...7 2.5.2 Formación...7 2.5.3 Tácticos...8 2.5.4 Operativas...8 2.6 Planificación. Diagrama de Gantt...9 2.7 Plan de riesgos...10 2.7.1 Fuentes de riesgos...10 2.7.2 Plan de contingencia...10 3. ANALISIS DEL SOFTWARE EXISTENTE... 13 3.1 Xunta de Galicia...13 3.2 Sistema de licitación electrónica del Gobierno Vasco...14 3.3 Presto...15 4. MODIFICACIÓN DE REQUISITOS DEL SISTEMA... 17 4.1 Re-análisis de los objetivos y alcance del proyecto...17 4.2 Re-planificación de tareas...17 5. DISEÑO DE LA BASE DE DATOS... 19 5.1 Modelo del dominio...19 5.2 Modelo del dominio centrado en la entidad Proyectos...20 5.3 Modelo del dominio centrado en la entidad Actividades...21 5.4 Entidades...23 i

6. MODELO DE CASOS DE USO... 31 6.1 Modelo casos de uso Gestión de proyectos...31 6.1.1 Caso de uso: Identificarse...32 6.1.1.1 Flujo de eventos...32 6.1.1.2 Interfaz...33 6.1.1.3 Diagrama de secuencia...35 6.1.2 Caso de uso: Actualizar costes reales...36 6.1.2.1 Flujo de eventos...36 6.1.2.2 Interfaz...36 6.1.2.3 Diagrama de secuencia...37 6.1.2.4 Diagrama de actividad...38 6.1.2.5 Diagramas de pseudocódigo asociados...39 6.1.2.5.1 UpdateProjectRealCost...39 6.1.2.5.2 GetProjectCostActual...40 6.1.3 Caso de uso: Facturación a partir de costes reales...40 6.1.3.1 Flujo de eventos...41 6.1.3.2 Interfaz...41 6.1.3.3 Diagrama de secuencia...43 6.1.3.4 Diagrama de actividad...44 6.1.3.5 Diagramas de pseudocódigo asociados...45 6.1.4 Caso de uso: Facturación a partir de presupuesto...46 6.1.4.1 Flujo de eventos e interfaz...46 6.1.4.2 Diagrama de secuencia...49 6.1.4.3 Diagrama de actividad...50 6.1.4.4 Diagramas de pseudocódigo asociados...51 6.1.5 Caso de uso: Asignar artículo a actividad...54 6.1.5.1 Flujo de eventos...54 6.1.5.2 Interfaz...54 6.1.5.3 Diagrama de secuencia...56 6.1.6 Caso de uso: Modificar datos coste actual...56 6.1.6.1 Flujo de eventos...56 6.1.6.2 Interfaz...57 6.1.6.3 Diagrama de secuencia...57 6.1.7 Caso de uso: Modificar datos coste estimado...58 6.1.7.1 Flujo de eventos...58 6.1.7.2 Interfaz...58 6.1.7.3 Diagrama de secuencia...59 6.1.8 Caso de uso: Declarar desierto concurso...59 6.1.8.1 Flujo de eventos...59 ii

6.1.8.2 Diagrama de secuencia...60 6.2 Modelo casos de uso Gestión de presupuestos...60 6.2.1 Caso de uso: Añadir presupuesto...60 6.2.1.1 Flujo de eventos...61 6.2.1.2 Interfaz...61 6.2.1.3 Diagrama de secuencia...62 6.2.2 Caso de uso: Borrar presupuesto...63 6.2.2.1 Flujo de eventos...63 6.2.2.2 Interfaz...63 6.2.2.3 Diagrama de secuencia...64 6.2.3 Caso de uso: Modificar descuento...65 6.2.3.1 Flujo de eventos...65 6.2.3.2 Interfaz...65 6.2.3.3 Diagrama de secuencia...66 6.2.4 Caso de uso: Modificar impuesto...66 6.2.4.1 Flujo de eventos...66 6.2.4.2 Interfaz...67 6.2.4.3 Diagrama de secuencia...68 6.2.5 Caso de uso: Activar presupuesto...68 6.2.5.1 Flujo de eventos...68 6.2.5.2 Interfaz...69 6.2.5.3 Diagrama de secuencia...69 6.2.6 Caso de uso: Añadir línea de presupuesto...70 6.2.6.1 Flujo de eventos...70 6.2.6.2 Interfaz...70 6.2.6.3 Diagrama de secuencia...71 6.2.7 Caso de uso: Borrar línea de presupuesto...71 6.2.7.1 Flujo de eventos...71 6.2.7.2 Interfaz...72 6.2.7.3 Diagrama de secuencia...73 6.2.8 Caso de uso: Añadir sublínea de presupuesto...73 6.2.8.1 Flujo de eventos...73 6.2.8.2 Interfaz...74 6.2.8.3 Diagrama de secuencia...74 6.2.9 Caso de uso: Modificar datos de costes...75 6.2.9.1 Flujo de eventos...75 6.2.9.2 Interfaz...75 iii

6.2.9.3 Diagrama de secuencia...76 6.2.10 Caso de uso: Asignar actividad a línea de presupuesto...76 6.2.10.1 Flujo de eventos...76 6.2.10.2 Interfaz...77 6.2.10.3 Diagrama de secuencia...78 6.3 Aclaraciones modelo casos de uso Gestión de ofertas...79 6.4 Gestión de ofertas recibidas...80 6.4.1 Caso de uso: Ver ofertas...80 6.4.1.1 Flujo de eventos...80 6.4.1.2 Diagrama de secuencia...81 6.4.2 Caso de uso: Comparar ofertas...81 6.4.2.1 Flujo de eventos...81 6.4.2.2 Diagrama de secuencia...82 6.4.3 Caso de uso: Rechazar oferta...82 6.4.3.1 Flujo de eventos...82 6.4.3.2 Diagrama de secuencia...83 6.4.4 Caso de uso: Adjudicar oferta...83 6.4.4.1 Flujo de eventos...83 6.4.4.2 Diagrama de secuencia...84 6.5 Modelo de casos de uso Gestión de petición de ofertas...84 6.5.1 Caso de uso: Crear petición de oferta...84 6.5.1.1 Flujo de eventos...85 6.5.1.2 Diagrama de secuencia...85 6.5.2 Caso de uso: Añadir línea de presupuesto...85 6.5.2.1 Flujo de eventos...85 6.5.2.2 Diagrama de secuencia...86 6.5.3 Caso de uso: Borrar línea de presupuesto...86 6.5.3.1 Flujo de eventos...86 6.5.3.2 Diagrama de secuencia...87 6.5.4 Caso de uso: Borrar petición de oferta...87 6.5.4.1 Flujo de eventos...87 6.5.4.2 Diagrama de secuencia...88 6.6 Modelo casos de uso Ofertante...88 6.6.1 Caso de uso: Ver ofertas enviadas...89 6.6.1.1 Flujo de eventos...89 6.6.1.2 Diagrama de secuencia...89 iv

6.6.2 Caso de uso: Ver peticiones de oferta...89 6.6.2.1 Flujo de eventos...90 6.6.2.2 Diagrama de secuencia...90 7. SOFTWARE UTILIZADO... 91 7.1 Microsoft Visual Studio 6.0 sp6...91 7.2 Microsoft SQL Server 2000 sp3...91 7.3 Elección de las herramientas de desarrollo...92 8. INFORME SOBRE LA GESTIÓN DEL PROYECTO... 93 9. CONCLUSIONES... 99 9.1 Plano personal...99 10. GLOSARIO... 101 11. BIBLIOGRAFÍA... 103 12. ANEXOS... 105 12.1 Anexo I: Manual de instalación del SQL Server Enterprise para la ingeniería...105 12.2 Anexo II: Creación de una base de datos para trabajar con ispace...111 12.3 Anexo III : Manual de usuario del modulo Gestión de proyectos...123 12.4 Anexo IV: Futuro funcionamiento para el ofertante...139 12.5 Anexo V: Futuro funcionamiento para la ingeniería...142 v

INDICE DE FIGURAS Figura 2.1 Estructura de descomposición del trabajo... 7 Figura 2.2 Diagrama de Gantt... 9 Figura 5.1 Modelo del dominio... 19 Figura 5.2 Modelo del dominio centrado en la entidad Proyectos... 20 Figura 5.3 Modelo del dominio centrado en la entidad Actividades... 21 Figura 5.4 Diagrama Relacional... 30 Figura 6.2 Caso de uso Identificarse... 32 Figura 6.3 Interfaz caso de uso Identificarse I... 33 Figura 6.4 Interfaz caso de uso Identificarse II... 33 Figura 6.5 Interfaz caso de uso Identificarse III... 34 Figura 6.6 Interfaz caso de uso Identificarse IV... 34 Figura 6.8 Diagrama de secuencia caso de uso Identificarse... 35 Figura 6.9 Caso de uso Actualizar costes reales... 36 Figura 6.10 Interfaz caso de uso Actualizar costes reales I... 36 Figura 6.11 Interfaz caso de uso Actualizar costes reales II... 37 Figura 6.12 Interfaz caso de uso Actualizar costes reales III... 37 Figura 6.13 Diagrama de secuencia caso de uso Actualizar costes reales... 37 Figura 6.14 Diagrama de actividad caso de uso Actualizar costes reales... 38 Figura 6.15 Diagrama de pseudocódigo UpdateProjectRealCost... 39 Figura 6.16 Diagrama de pseudocódigo GetProjectCostActual... 40 Figura 6.17 Caso de uso Facturación a partir de costes reales... 40 Figura 6.18 Interfaz caso de uso Facturación a partir de costes reales I... 41 Figura 6.20 Interfaz caso de uso Facturación a partir de costes reales III... 42 Figura 6.21 Interfaz caso de uso Facturación a partir de costes reales IV... 43 Figura 6.22 Interfaz caso de uso Facturación a partir de costes reales V... 43 Figura 6.23 Diagrama de secuencia caso de uso Facturación a partir de costes reales... 43 Figura 6.24 Diagrama de Actividad caso de uso Facturación a partir de costes reales... 44 Figura 6.25 Diagrama de pseudocódigo ProjectInvoicingFromRealCost... 45 Figura 6.26 Diagrama de pseudocódigo CreateProjectInvoiceFromReal... 46 Figura 6.27 Caso de uso Facturación a partir de presupuesto... 46 Figura 6.28 Interfaz caso de uso Facturación a partir de presupuesto I... 47 Figura 6.29 Interfaz caso de uso Facturación a partir de presupuesto II... 47 Figura 6.30 Interfaz caso de uso Facturación a partir de presupuesto III... 48 Figura 6.31 Interfaz caso de uso Facturación a partir de presupuesto IV... 48 Figura 6.32 Interfaz caso de uso Facturación a partir de presupuesto V... 48 Figura 6.33 Interfaz caso de uso Facturación a partir de presupuesto IV... 49 Figura 6.34 Diagrama de secuencia caso de uso Facturación a partir de presupuesto... 49 Figura 6.35 Diagrama de actividad caso de uso Facturación a partir de presupuesto... 50 Figura 6.36 Diagrama de pseudocódigo ProjectInvoicingFromBudget... 51 Figura 6.38 Diagrama de pseudocódigo CreateProjectInvoiceFromBudgetManual... 53 Figura 6.39 Caso de uso Asignar artículo a actividad... 54 Figura 6.40 Interfaz Caso de uso Asignar artículo a actividad I... 54 Figura 6.41 Interfaz Caso de uso Asignar artículo a actividad II... 55 Figura 6.42 Interfaz Caso de uso Asignar artículo a actividad III... 55 Figura 6.43 Diagrama de secuencia caso de uso Asignar artículo a actividad... 56 Figura 6.44 Caso de uso Modificar datos coste actual... 56 Figura 6.45 Interfaz caso de uso Modificar datos coste actual... 57 Figura 6.46 Diagrama de secuencia caso de uso Modificar datos coste actual... 57 vi

Figura 6.47 Caso de uso Modificar datos coste estimado... 58 Figura 6.48 Interfaz caso de uso Modificar datos coste estimado... 58 Figura 6.49 Diagrama de secuencia caso de uso Modificar datos coste estimado... 59 Figura 6.50 Caso de uso Declarar desierto concurso... 59 Figura 6.51 Diagrama de secuencia caso de uso Declarar desierto concurso... 60 Figura 6.52 Modelo casos de uso Gestión de presupuestos... 60 Figura 6.53 Caso de uso Añadir presupuesto... 61 Figura 6.54 Interfaz caso de uso Añadir presupuesto I... 61 Figura 6.55 Interfaz caso de uso Añadir presupuesto II... 62 Figura 6.56 Diagrama de secuencia caso de uso Añadir presupuesto... 62 Figura 6.57 Caso de uso Borrar presupuesto... 63 Figura 6.58 Interfaz caso de uso Borrar presupuesto I... 63 Figura 6.59 Interfaz caso de uso Borrar presupuesto II... 64 Figura 6.60 Diagrama de secuencia caso de uso Borrar presupuesto... 64 Figura 6.61 Caso de uso Modificar descuento... 65 Figura 6.62 Interfaz caso de uso Modificar descuento... 65 Figura 6.64 Caso de uso Modificar impuesto... 66 Figura 6.65 Interfaz caso de uso Modificar impuesto I... 67 Figura 6.66 Interfaz caso de uso Modificar impuesto II... 67 Figura 6.68 Caso de uso Activar Presupuesto... 68 Figura 6.69 Interfaz caso de uso Activar Presupuesto... 69 Figura 6.70 Diagrama de secuencia caso de uso Activar Presupuesto... 69 Figura 6.71 Caso de uso Añadir línea a presupuesto... 70 Figura 6.72 Interfaz caso de uso Añadir línea a presupuesto... 70 Figura 6.73 Diagrama de secuencia caso de uso Añadir línea a presupuesto... 71 Figura 6.74 Caso de uso Borrar línea de presupuesto... 71 Figura 6.75 Interfaz caso de uso Borrar línea de presupuesto I... 72 Figura 6.76 Interfaz caso de uso Borrar línea de presupuesto II... 72 Figura 6.77 Diagrama de secuencia caso de uso Borrar línea de presupuesto... 73 Figura 6.78 Caso de uso Añadir sublínea de presupuesto... 73 Figura 6.79 Interfaz caso de uso Añadir sublínea de presupuesto... 74 Figura 6.80 Diagrama de secuencia caso de uso Añadir sublínea de presupuesto... 74 Figura 6.82 Interfaz caso de uso Modificar datos de costes... 75 Figura 6.83 Diagrama caso de uso Modificar datos de costes... 76 Figura 6.84 Caso de uso Asignar actividad a línea de presupuesto... 76 Figura 6.85 Interfaz caso de uso Asignar actividad a línea de presupuesto I... 77 Figura 6.86 Interfaz caso de uso Asignar actividad a línea de presupuesto II... 77 Figura 6.87 Interfaz caso de uso Asignar actividad a línea de presupuesto III... 78 Figura 6.88 Diagrama de secuencia caso de uso Asignar actividad a línea de presupuesto... 78 Figura 6.89 Nuevas pestañas... 79 Figura 6.90 Modelo casos de uso Gestión de ofertas recibidas... 80 Figura 6.91 Caso de uso Ver ofertas... 80 Figura 6.92 Diagrama de secuencia caso de uso Ver ofertas... 81 Figura 6.93 Caso de uso Comparar ofertas... 81 Figura 6.94 Diagrama de secuencia caso de uso Comparar ofertas... 82 Figura 6.95 Caso de uso Rechazar oferta... 82 Figura 6.96 Diagrama de secuencia caso de uso Rechazar oferta... 83 Figura 6.97 Caso de uso Adjudicar oferta... 83 Figura 6.98 Diagrama de secuencia caso de uso Adjudicar oferta... 84 Figura 6.99 Modelo caso de uso Gestión de petición de ofertas... 84 vii

Figura 6.100 Caso de uso Crear petición de oferta... 84 Figura 6.101 Diagrama de secuencia caso de uso Crear petición de oferta... 85 Figura 6.102 Caso de uso Añadir línea de presupuesto... 85 Figura 6.103 Diagrama de secuencia caso de uso Añadir línea de presupuesto... 86 Figura 6.104 Caso de uso Borrar línea de presupuesto... 86 Figura 6.105 Diagrama de secuencia caso de uso Borrar línea de presupuesto... 87 Figura 6.106 Caso de uso Borrar petición de oferta... 87 Figura 6.107 Diagrama de secuencia caso de uso Borrar petición de oferta... 88 Figura 6.108 Modelo casos de uso Ofertante... 88 Figura 6.109 Caso de uso Ver ofertas enviadas... 89 Figura 6.110 Diagrama de secuencia caso de uso Ver ofertas enviadas... 89 Figura 6.111 Caso de uso Ver peticiones de oferta... 89 Figura 6.112 Diagrama de secuencia caso de uso Ver peticiones de oferta... 90 Figura 8.1 Diagrama de Gantt replanificado... 94 Figura 8.2 Estructura descomposición del trabajo versión modificada... 95 Figura 8.3 Planificado vs Real... 97 Figura 1 Elección nombre equipo y forma de instalación... 105 Figura 2 Selección tipo de instalación... 106 Figura 3 Elección herramientas a instalar... 106 Figura 5 Selección tipo de instalación... 107 Figura 6 Selección componentes a instalar... 108 Figura 7 Cuentas de usuario... 108 Figura 8 Modo de autenticación... 109 Figura 9 Configuración regional... 110 Figura 1 Cambio de clave de acceso... 113 Figura 2 Selección de ubicación del servidor de datos... 113 Figura 3 Selección tipo de la base de datos... 114 Figura 4 Clave de acceso al servidor... 114 Figura 5 Creación nueva base de datos... 115 Figura 6 Creación nueva base de datos II... 115 Figura 7 Ubicación servidor de datos... 116 Figura 8 Selección tipo de la base de datos... 116 Figura 9 Datos de la base de datos... 117 Figura 10 Elección de esquemas a utilizar... 117 Figura 11 Resumen de la nueva base de datos... 118 Figura 12 Proceso finalizado... 118 Figura 13 Cargar base datos existente... 119 Figura 14 Propiedades de la base de datos... 120 Figura 15 Restaurar base de datos I... 120 Figura 16 Restaurar base de datos II... 121 Figura 17 Destino de la restauración... 121 Figura 18 Opciones de la restauración... 122 Figura 1 Proyectos (lista)... 124 Figura 2 Proyectos(Explorador), Actividades(Detalles)... 125 Figura 3 Actividades (Detalles)... 126 Figura 4 Enlaces de actividades,actividades y Proyectos (Lista)... 127 Figura 5 Actividades (Detalles)... 128 Figura 6 Recursos... 129 Figura 7 Actualizar capacidad recurso... 129 Figura 8 Calendario disponibilidad recurso... 130 viii

Figura 9 Editor disponibilidad recurso... 131 Figura 10 Asignaciones de recursos... 131 Figura 11 Proyectos (Lista)... 132 Figura 12 Planificación automática... 133 Figura 13 Visualizador Gantt... 135 Figura 14 Asignación de recursos... 135 Figura 15 Actividades (Detalles)... 136 Figura 16 Proyectos (Detalles)... 137 Figura 17 Actividades (Detalles)... 138 Figura 1 Parámetros de conexión... 139 Figura 2 Proyectos (Detalles)... 140 Figura 3 Presupuestos (Detalles... 140 Figura 4 Líneas de presupuesto (Detalles)... 141 Figura 1 Parámetros de conexión... 142 Figura 2 Nuevas pestañas... 143 ix

INDICE DE TABLAS Tabla 5.1 Definición de relaciones I... 23 Tabla 5.2 Definición de relaciones II... 23 Tabla 5.3 Entidad Actividades... 24 Tabla 5.4 Entidad Presupuestos... 26 Tabla 5.5 Entidad Líneas de presupuesto... 26 Tabla 5.6 Entidad Detalles de facturación del projecto... 27 Tabla 5.7 Entidad Proyectos... 28 x

1. INTRODUCCIÓN 1.1 Presentación de Lantek Automatización Lantek Automatización S.L (www.lantek.es) es una empresa de Tecnologías de la Información, especializada en el desarrollo de soluciones software propias. Forma parte integral de nuestro objetivo conseguir el más alto nivel de satisfacción de todas las personas, que de alguna manera, se relacionan con Lantek, ya sea como trabajadores, como clientes o como empresas colaboradoras. Actualmente cuenta con dos líneas de negocio diferenciadas; Lantek Sheet Metal Solutions dedicada al desarrollo de soluciones CAD/CAM dirigidas al sector de chapa y Lantek Business Solutions, dedicada al desarrollo de soluciones para la Gestión de la Información de la empresa. Lantek se fundó en el año 1986 y su sede central está situada en el Parque Tecnológico de Álava, a 9 kilómetros de Vitoria-Gasteiz. A partir de ese momento no ha dejado de expandirse por todo el mundo hasta llegar a ser por una parte líder mundial en el desarrollo de Software CAD/CAM para máquinas de oxicorte, plasma, chorro de agua y punzonado y por otra pionero en el desarrollo de soluciones Software de Gestión comercializadas bajo demanda. A medida que las necesidades de los clientes han ido creciendo, LANTEK ha ido ampliando su cartera de productos. Nuestros clientes actualmente demandan algo más que un software CAD/CAM. En un mercado tan competitivo como en el que nuestros clientes se mueven, la necesidad de controlar todo el proceso productivo se ha convertido en un aspecto clave para garantizar la competitividad de las empresas. Con este objetivo LANTEK ha desarrollado una solución completa que integra los sistemas CAD/CAM con un nuevo software de gestión de la producción, que permite a sus clientes gestionar de forma eficaz todo el proceso que empieza con la elaboración de un presupuesto, pasando por la fabricación de los productos, y terminando con la emisión de una factura. Todo ello integrado en un solo producto y con la garantía de un líder en soluciones para la industria de la chapa. Como resultado, ya son más de 5000 las empresas repartidas en 76 países en todo el mundo que confían en Lantek para optimizar su trabajo diario. En estos momentos Lantek cuenta con delegaciones en Estados Unidos, Alemania, Italia, Reino Unido, Corea del Sur, Francia, España, Japón, India y República Checa. 1

Lantek cuenta también con una amplia red de distribuidores repartida por todo el mundo: Austria, Argelia, Argentina, Australia, Bélgica, Brasil, Canadá, Chile, China, Estonia, Grecia, Holanda, México, Marruecos, Noruega, Portugal, Paraguay, Perú, Polonia, Rusia, Suecia, Singapur, Taiwán, Turquía, Túnez, Venezuela, Suiza...etc. 1.2 Lantek ispace Lantek ispace es la solución de Gestión integral de la Información de menor Coste Total de Propiedad (TCO) y diseñada para satisfacer las necesidades de gestión de la pequeña y mediana empresa. Se compone de un conjunto de módulos funcionales que cubren de forma completa e integrada las actuales y futuras necesidades de gestión de la empresa, desde el proceso inicial de captación del cliente hasta el servicio final de soporte. En la figura a continuación se muestran los diferentes módulos que componen LANTEK ispace El módulo a modificar es el de proyectos. Figura 1.1 Módulos de Lantek ispace 1.3 El proceso de licitación Previamente a la explicación del desarrollo del proyecto se realizará una breve explicación del proceso de licitación. 2

1.3.1 Qué es un proceso de licitación? La licitación es una invitación a proveedores distintos para proporcionar un bien o servicio al contratante (organización que realiza la solicitud). El contratante establece las bases para la participación. Los contratistas presentan las ofertas y después de un largo proceso el contratante asigna el pedido formulado al contratista que ha presentado la mejor propuesta. Un proceso de licitación puede ser iniciado por Administraciones Públicas (en cuyo caso la licitación será pública) o por alguna ingeniería o entidad privada. Existen dos tipos de procesos de licitación. El público, que es aquel en el que puede participar cualquier persona o entidad capacitada para ello, y el privado, que es aquel en el cual solo pueden participar entidades o personas invitadas de manera especial por la ingeniería. Este proyecto se va a centrar en la licitación privada. 1.3.2 Problemática (Motivación) Actualmente hay varios factores que hacen que se gaste más tiempo y más dinero del que se desearía a lo largo del proceso de licitación como pueden ser todos los desplazamientos necesarios para recoger y entregar la información y documentación necesaria o el gasto de papel que conlleva toda la documentación. De ahí surge la idea de poder realizar las licitaciones electrónicamente. El proceso de licitación electrónica es análogo al proceso de licitación tradicional. El fin es el mismo, asignar las obras a la mejor oferta partiendo de unos criterios determinados. Algunas de las ventajas que ofrece la licitación electrónica son las siguientes: La presentación de todo tipo de documentación, ofertas, y demás papeleo requerido se podrá realizar 24 horas al día todos los días del año, siempre que esta sea presentada dentro del plazo exigido. Eliminación de todos los desplazamientos (para recoger los pliegos de condiciones, entregar documentación, realizar ofertas, asistir al acto de apertura de ofertas ). El ahorro económico es importante ya que se evitan costes de material, de correo y mensajería y todos los costes relacionados con los desplazamientos. La obtención de todos los documentos necesarios para presentar ofertas como pueden ser los pliegos de condiciones, ficheros de presupuesto y planos, se pueden obtener más fácilmente Se evita tener que enviar toda la documentación cada vez que se presenta una oferta a una licitación 3

4

2. D.O.P (Documento objetivos del proyecto) 2.1 Introducción El proyecto se va a realizar en la empresa Lantek Automatización S.L situada en el Parque Tecnológico de Miñano (Álava). Es una empresa de Tecnologías de la Información, especializada en el desarrollo de soluciones software propias. Actualmente cuenta con dos líneas de negocio diferenciadas: Lantek Sheet Metal Solutions dedicada al desarrollo de soluciones CAD/CAM dirigidas al sector de chapa y Lantek Business Solutions, dedicada al desarrollo de soluciones para la Gestión de la Información de la empresa. La empresa está en continua expansión. 2.2 Descripción Actualmente en el proceso de licitación mediante invitación intervienen varios factores que hacen que sea, aparte de costoso económicamente, costoso a nivel temporal. Se requiere mucho papeleo, desplazamientos para recoger los pliegos, desplazamientos para entregar los documentos, etc. Se ha pensado que sería interesante disponer de una aplicación que pueda gestionar en la medida de lo posible todo este proceso. 2.3 Objetivos El objetivo principal de este proyecto es ampliar el módulo de gestión de proyectos de un ERP existente con la siguiente funcionalidad. Se desea poder gestionar la adjudicación por parte de una ingeniería de todas las contratas de las que constaría la construcción de una nueva edificación. Para ello se necesitará un sistema capaz de enviar y recibir toda a la información de los presupuestos de las diferentes obras. Las constructoras darían de alta los presupuestos a partir de la definición del proyecto introducida por parte de la ingeniería. La ingeniería posteriormente realizaría la adjudicación de la obra. Cómo objetivos más específicos están: Conocer el funcionamiento del proceso de licitación actual Conocer las ventajas que aporta realizar el proceso de licitación electrónica Conocer las necesidades reales existentes en las diferentes empresas Conocer el funcionamiento de la infraestructura y que repercusión tiene sobre ella la ampliación del modulo de gestión de proyectos Estudiar nuevas funcionalidades que se podrían implementar. Lo que no se realizará en ningún caso será lo siguiente: Rellenar la base de datos con información real de los usuarios, en todo caso será información ficticia necesaria para la fase de pruebas Un manual de instalación del ERP ya que éste ya existe En principio no se realizara un manual de usuario pero lo que si se realizará será la modificación del manual de la de gestión de proyectos 5

2.4 Método de trabajo El proyecto se va a realizar en la empresa Lantek Automatización S.L con la supervisión de Nuria Amescoa en calidad de directora de proyecto. Para la realización del proyecto se ha decidido que el ciclo de vida en cascada es el más adecuado ya que las fases están muy definidas y se sabe de antemano que ninguna fase va a necesitar nada de fases posteriores. También se ha tenido en cuenta la facilidad de gestión. Por esto se ha decidido que es el ciclo de vida más adecuado para este proyecto. Se van a definir el diagrama de casos de uso acompañado por el modelo del dominio y diagramas de secuencia junto con otros diagramas utilizados por la empresa como pueden ser el diagrama de actividades y el diagrama de pseudocódigo. 2.5 Alcance El alcance de este proyecto esta definido por los objetivos generales y específicos en los que se basa la realización misma de este trabajo. Los cambios en el alcance vendrán determinados por las necesidades que surjan durante las fases del desarrollo. 6

2.5.1 Estructura de descomposición del trabajo (EDT) Proyecto Introducción Planificación Definición y alcance del proyecto Investigación previa Investigación proceso licitación Investigación software existente Análisis de especificaciones Captura de requisitos Estudio herramientas utilizadas en Lantek Estudio software de gestión Estudio software de desarrollo Diseño del módulo Diagramas de datos Diagrama de casos de uso Diagrama de secuencia Diagrama de actividad Diagrama de pseudocódigo Web Services Introducción Web Services Aplicación Web Services Implementación Estudio código existente Implementación proyecto Testeo e implantación en Lantek Testeo Implantación Figura 2.1 Estructura de descomposición del trabajo 2.5.2 Formación Se realizará primeramente un cursillo de formación sobre Lantek ispace de dos horas de duración y durante el transcurso del proyecto se podrán realizar diversos cursos siempre que estos sean de utilidad para la realización del proyecto. 7

2.5.3 Tácticos Durante la realización del proyecto se realizarán reuniones con el gerente de la empresa y con la directora de proyecto en la empresa normalmente antes del fin de cada fase para reunir información y tomar decisiones sobre la forma final de la aplicación, así como viajes a la facultad para realizar reuniones con el director de proyecto de la UPV, aunque el contacto con éste será principalmente por medio del correo electrónico. 2.5.4 Operativas Se realizará la captura de requisitos mediante la búsqueda de información sobre el proceso de licitación actual y reuniones con el gerente y la directora. Se realizarán el modelo de casos de uso, modelo del dominio, diagramas de secuencia, diagramas de actividad y diagramas de pseudocódigo teniendo que ser estos aprobados primero por la directora de proyecto en la empresa y más tarde por el gerente. 8

2.6 Planificación. Diagrama de Gantt Figura 2.2 Diagrama de Gantt 9

2.7 Plan de riesgos Durante el transcurso del proyecto este puede ser afectado por una serie de riesgos los cuales hay que contemplar para poder así dar una rápida solución o tener un plan que haga que el riesgo afecte lo mínimo posible en tiempo y recursos al proyecto. En el Plan de riesgos se contemplan todos los riesgos posibles detectados los cuales pueden afectar al proyecto. 2.7.1 Fuentes de riesgos Cambios en los requisitos (muy alto) Avería del equipo(bajo) Errores de diseño, omisiones o malentendidos (alto) Error en la planificación (alto) Permiso de vacaciones para estudiar(muy alto) Baja (muy bajo) Pérdida de información (bajo) Error en la definición del alcance (bajo) 2.7.2 Plan de contingencia Para hacer frente a los posibles riesgos se llevará a cabo lo siguiente: Cambios en los requisitos Cuando se produzcan el primer paso será documentarlos, y a continuación adaptar el diseño actual del sistema de información a las nuevas necesidades. Avería del equipo En este caso, se procedería por parte de la empresa a asignar un nuevo equipo al alumno y en caso de pérdida de datos se procedería a recuperarlos de la última copia disponible desde el soporte de backup elegido Errores de diseño, omisiones o malentendidos Documentar los errores cometidos y a continuación corregirlos, bien mediante un rediseño del sistema o bien acordando nuevos requisitos Error en la planificación Todas las correspondencias entre estimaciones y tiempos reales hay que documentarlas. Si la estimación se produce al alta, entonces la duración del proyecto se reduce y vale con documentarlo. Si la estimación fue a la baja, el proyecto se alarga y hay que acordar medidas a tomar. Estas medidas pueden ser acortar el número de funcionalidades que se esperan del sistema, dedicar más tiempo al proyecto o intentar buscar alguna otra solución como no 10

implementación de partes de código siempre que su diseño garantice una rápida implementación incluso por una persona ajena al proyecto. Permiso de vacaciones para estudiar Realizar una replanificación de las duraciones de las actividades que faltan por completar. En principio lo que se hará será desplazar las actividades que queden los días que se haya disfrutado de vacaciones. Baja Realizar una replanificación de las duraciones de las actividades que faltan por completar y si fuera el caso del alcance del proyecto Pérdida de información Recuperar la última copia disponible desde el soporte de backup elegido. Error en la definición del alcance Se acordará entre todas las partes implicadas la redefinición del alcance del proyecto 11

12

3. ANALISIS DEL SOFTWARE EXISTENTE Actualmente existen varias soluciones de contratación electrónica cómo pueden ser SIPLEX (un sistema de licitación electrónica usado por la Xunta de Galicia), El sistema de licitación del Gobierno Vasco o SAC (Sistema de Adquisición Centralizada perteneciente al Ministerio de Economía y Hacienda que todavía no tiene disponible el servicio de licitación electrónica) También otras administraciones disponen de sistemas de contratación electrónica como PLYCA(una solución para los procesos de licitación y contratación administrativa electrónica desarrollada por IconMedialab que actualmente usa el Gobierno de Canarias) pero las anteriores son las más destacadas. Actualmente la licitación electrónica supone un porcentaje muy bajo en los procesos de licitación. Toda la documentación se manda en archivos cifrados y firmados electrónicamente y las ofertas se envían normalmente en un archivo de extensión BC3, un estándar en el mundo de los presupuestos de la construcción que todo el software existente en este campo es capaz de reconocer. También se ha realizado un análisis del software de gestión de presupuestos relacionados con la construcción. En este campo destaca la presencia de PRESTO un programa de SOFT capaz de importar y exportar ofertas, realizar comparaciones entre ellas e incluso realizar la adjudicación de las obras. PRESTO esta muy extendido en el campo de la construcción hasta el punto de ser un estándar Este proyecto no esta dirigido, al contrario que los dos primeros, a la contratación pública, sino que esta dirigido a los procedimientos privados de licitación. Otra diferencia es que estos sistemas de licitación electrónica se basan en el envío a través de Internet de toda la información necesaria, que al estar cifrada y firmada electrónicamente es de un gran tamaño y hace necesaria una conexión muy buena a Internet y mucho espacio en disco y este proyecto tiene como objetivo que la oferta que hace la empresa contratista no se envíe a través de Internet sino que sea insertada directamente en la Base de Datos de la ingeniería de modo que se ahorra tiempo y espacio en disco. 3.1 Xunta de Galicia Desarrollado por Altia Consultores el sistema SIPLEX, pionero en España en el ámbito de la e-administración y las compras electrónicas, facilita y agiliza el proceso de licitación apoyándose en el uso de las nuevas tecnologías. Este proyecto permite a las Empresas la presentación de ofertas a concursos públicos en formato electrónico, conocer las ofertas presentadas a los concursos, recibir requerimientos de subsanación, notificaciones e incluso firmar electrónicamente los contratos. Con su puesta en marcha, la Xunta realiza una actuación práctica en apoyo del comercio electrónico al utilizarlo en sus compras. Esto, además de presentar un ahorro de costes 13

para las empresas y para la Xunta, servirá para generar confianza en el uso de estas tecnologías en el ámbito de las compras electrónicas. Los requerimientos para las empresas que quieran usar este sistema en los concursos públicos de la Xunta de Galicia, son los siguientes: Estar inscritos en el Registro de Contratistas de la CCAA. Que el apoderado que firma y presenta la oferta tenga un certificado digital Clase 2 de la Fábrica Nacional de Moneda y Timbre y conste como tal en el Registro de Contratistas. El desarrollo del sistema de licitación electrónica ha sido posible en gran parte gracias a la existencia del Registro de Contratistas de la Xunta de Galicia que evita la presentación de toda la documentación administrativa sobre la constitución de la empresa, apoderamientos, certificados necesarios, etc. Altia desarrolló para el registro un módulo para la consulta de su situación al contratista a través de Internet mediante el uso de certificados digitales. El uso de los certificados digitales apoyándose en el Real Decreto Ley 14/1999, de 1999, sobre firma electrónica, permite la garantía del no repudio de la oferta por parte del licitante. Para asegurar el secreto de la oferta hasta el momento de la apertura de la misma por la mesa de contratación se utilizan algoritmos matemáticos de compartición y claves asimétricas para evitar que la oferta sea descifrada sin el consentimiento de al menos 3 miembros de la mesa de contratación. 3.2 Sistema de licitación electrónica del Gobierno Vasco También desarrollado por Altia Consultores el nuevo sistema de información cubre las actuales necesidades del Sistema Global de Contratación del Gobierno Vasco, de manera que permite: Gestionar la preparación de los concursos habilitados para su licitación a través de Internet. Presentación de las ofertas a través de Internet Apertura de las mismas mediante sistemas electrónicos. Publicación de los resultados de la apertura y adjudicación a través de Internet. Firma del contrato mediante sistemas electrónicos. El proceso global se ha dividido en dos grandes entornos, el del ofertante y el de la administración. El proceso general esta estrechamente relacionado con los sistemas existentes en el Gobierno Vasco, principalmente con el Gestor de Expedientes de Contratación, registro general de entradas / salidas y registro de contratistas. Para licitar electrónicamente, el ofertante selecciona el concurso al que quiere presentarse para realizar el envío de su oferta. Para poder licitar electrónicamente se 14

debe disponer de un certificado electrónico en este caso emitido por IZENPE, una empresa que ofrece servicios de certificación electrónica, creada por las sociedades informáticas de las Administraciones públicas vascas (CCASA, EJIE, IZFE Y LANTIK). El otro requisito es pertenecer al Registro de Contratistas de la Comunidad Autónoma de Euskadi. Al estar inscrito en este registro se evita el envió redundante de información cada vez que una empresa se presenta a una licitación. Naturalmente la empresa debe haberse dado de alta en el Sistema de Contratación Pública Electrónica, indicando para ello la relación de apoderados y personas que serán usuarias del mismo para cada uno de los perfiles establecidos. Un módulo importante en el sistema es el que se encarga del envío de las notificaciones (comunicaciones que la Administración genera y envía al ofertante). Además de este módulo, existe otro que se encarga de las comunicaciones del ofertante al Órgano de Contratación, en el que se enviarán documentos firmados por el ofertante. 3.3 Presto Presto es un potente programa integrado para gestión de la construcción (desarrollado por SOFT S.A.), con 40.000 licencias, dirigido a tres grupos de usuarios: Profesionales, estudios e ingenierías que realizan proyectos Empresas constructoras Promotores y empresas de todo tipo que construyen a través de empresas constructoras Presto es el programa reconocido como estándar en el mundo de la construcción. Al ser un estándar hay diversas comunidades en la Web donde se puede encontrar toda la ayuda que se pueda necesitar e incluso compartir presupuestos con otros usuarios. Presto tiene innumerables opciones por las cuales es el número uno en su sector. Las opciones que más interés tienen para la realización de este proyecto son las siguientes: Exportar solicitud de precios: Permite crear un fichero en donde aparecerán solo las partes del presupuesto que se deseen ofertar y todos los costes y mediciones estarán a cero para que los contratistas a los que se les envié rellenen con sus cálculos. Se asignan proveedores a estos paquetes y se crean tantos ficheros de oferta como proveedores haya asignados. Importar solicitud de precios: Permite, una vez recibida la oferta por parte del proveedor, importar los datos al proyecto de presto. Comparación de ofertas: Presto dispone de informes para la comparación de ofertas así como vistas en las que se visualizan todas las ofertas recibidas. 15

Asignación de ofertas: También tiene la opción de asignar la obra a la oferta que se considere la mejor. Esto no quiere decir que presto elija la mejor oferta, sino que el usuario puede asignar al cliente que desee la parte ofertada. Es decir, presto permite crear plantillas de ofertas para enviar a los ofertante y cuando estás se reciben completas presto las importa al proyecto para compararlas y poder asignar las tareas a la mejor oferta. La gran difusión de Presto permite entregar y recibir los presupuestos para recibir ofertas en su propio formato. Las ofertas se pueden recibir en diferentes formatos, que se importan en una tabla de comparación. Presto proporciona las funciones necesarias para elegir la oferta más adecuada, calculando los precios medios y su desviación estándar, comprobando que no ha habido manipulaciones o cambios, homogeneizando y documentando todo el proceso. 16

4. MODIFICACIÓN DE REQUISITOS DEL SISTEMA Una vez realizadas las cuatro primeras fases del proyecto (Definición y alcance del proyecto, Investigación previa y Análisis de especificaciones) se decidió modificar los objetivos y el alcance del proyecto. 4.1 Re-análisis de los objetivos y alcance del proyecto Una vez estudiado el proceso de licitación y el software existente en ese campo se decidió, en una reunión entre el alumno, la directora de proyecto en la empresa y el gerente de la misma, que antes de modificar el módulo del ERP para enviar y recibir ofertas se debería modificar este para poder crear presupuestos para obras de la construcción ya que con la estructura inicial de actividades no era posible crear un presupuesto con las necesidades de la construcción. Una vez añadido este nuevo objetivo Adecuación del módulo para la creación y gestión de presupuestos de la construcción se decidió redefinir el alcance del proyecto ya que con la nueva funcionalidad el proyecto sería de gran magnitud para el alumno. Se decidió que en la fase de diseño el alumno realizase todo lo planificado en un principio más la nueva parte de los presupuestos. También se decidió que en la fase de implementación en vez de realizar lo previamente planeado (Adecuar el módulo para enviar y recibir ofertas) se realizase la adecuación del módulo para la creación de presupuestos de la construcción. 4.2 Re-planificación de tareas Después de estos cambios en los objetivos y en el alcance del proyecto se decidió eliminar la fase Web Services ya que al no implementar la parte de envío y recepción de ofertas no tiene sentido estudiarlo para este proyecto Asimismo se decidió ampliar la fase de Diseño del módulo para diseñar la nueva parte de la creación y gestión de presupuestos. Se decidió ampliar esta fase en 10 días. También se decidió que la planificación de la fase de Implementación se mantuviese igual ya que se creyó que el alumno en ese tiempo sería capaz de lograr el nuevo objetivo. La fase de implantación fue suprimida ya que al no implementar la parte de envío y recepción de ofertas carece de sentido. 17

18

5. DISEÑO DE LA BASE DE DATOS 5.1 Modelo del dominio A continuación se muestran las entidades que componen el modelo del dominio del sistema: Figura 5.1 Modelo del dominio 19

5.2 Modelo del dominio centrado en la entidad Proyectos Company -ComRef DXG Contact -ComRef -RecID -ESurname1 DXA DXG DXG Project calendar -CalRef -PrjRef -Date -EDate DXE Calendar -CalRef Opportunity -OprRef DDE Project contact -PrjRef -Contact DDE -PrjRef Project DDE DXG Employee expenses line -EmpRef -LineNum -ExpenseRef IXG DDE Miscellaneous costs -RecID IXG DDE IXD Invoice -InvRef Purchase expenses -InvRef -LineNum IXG IXG Project backlogs lines -PrjRef DXG DXA DDE Cases -PrjRef -Project -PrjRef -ActRef Activity DXE Warehouse movement -MovDate -Category -Type -Reference -PrdRef -WrhRef -RecID Time sheet -LineNum -BdgRef Budget -BdgRef -BLineNum Budget line DDE DXF DXG Unit subcategory -UCtName -USCName Unit category -UCtName DXF DXF Unit -UCtName -UntName Tax -TaxRef Figura 5.2 Modelo del dominio centrado en la entidad Proyectos 20

5.3 Modelo del dominio centrado en la entidad Actividades Project -PrjRef DDE -BdgRef Budget DXG Warehouse movement -MovDate -Category -Type -Reference -PrdRef -WrhRef -RecID IXA Item -PrdRef DDE DDE Tax -TaxRef Purchase invoice line -InvRef -LineNum IXA DXG DXF Unit -UCtName -UntName Time sheet -LineNum IXA -ActRef -PrjRef Activity DXF -BdgRef -BLineNum Budget line DXF Unit category -UCtName IXA DXF DXF Unit -UCtName -UntName Unit subcategory -UCtName -USCName Miscellaneous cost details -MiscRef IXA DDE DXF Unit category -UCtName Employee expenses line -EmpRef -LineNum -ExpenseRef Project invoicing details -PrjRef -ActRef -InvRef -InvLineNum DXF IXE Unit subcategory -UCtName -USCName Invoices lines -InvRef -LineNume Figura 5.3 Modelo del dominio centrado en la entidad Actividades A continuación se explican los diferentes tipos de relaciones existentes en el diagrama. 21

Relaciones de definición y relaciones de no definición Relación de no definición Los registros de la tabla hija no forman parte de la definición del padre. _X_ Relación de definición Los registros de la tabla hija forman parte de la definición del padre. _D_ Relaciones directas y relaciones inversas Relación directa La relación está definida en el esquema de la tabla hija. D Relación inversa La relación está definida en el esquema de la tabla padre. I Relaciones fuertes y relaciones débiles A Al eliminar un padre, no hacer nada. Al insertar o actualizar un hijo, no verificar si existe el padre. A B Al eliminar un padre, eliminar los hijos. Al insertar o actualizar un hijo, no verificar si existe el padre. B C Al eliminar un padre, dar un error si hay hijos. Al insertar o actualizar un hijo, no verificar si existe el padre. C D Al eliminar un padre, actualizar los hijos con valores nulos. Al insertar o actualizar un hijo, no verificar si existe el padre. D E Al eliminar un padre, eliminar los hijos. Al insertar o actualizar un hijo, verificar si existe el padre. E F Al eliminar un padre, dar un error si hay hijos. Al insertar o actualizar un hijo, verificar si existe el padre. F 22

G G Al eliminar un padre, actualizar los hijos con valores nulos (sólo los campos indicados en el atributo AuxFld del flag). Al insertar o actualizar un hijo, verificar si existe el padre. Estas relaciones suelen llevar una condición en el hijo diciendo que la relación solamente es válida si los campos del hijo no tienen el valor por defecto. Tabla 5.1 Definición de relaciones I Tabla 5.2 Definición de relaciones II 5.4 Entidades A continuación se comentarán un poco más en profundidad acerca de las entidades que componen el modelo del dominio del sistema. Sólo se comentan las modificadas o creadas por el alumno. Entidad Actividades Activities Field Type Default Range Description 1: General ActRef Text lnull 1..80 Reference ActName Text lnull 1..def Name PrjRef Text lnull 1..40 Project PrjName Text lnull 1..def Project name ActOrg Text lnull 0..80 Origin activity ActOrder Text 000 1..3 Order BSDate Date lnull def..def Baseline start date BEDate Date lnull def..def Baseline end date ESDate Date lnull def..def Early start date EEDate Date lnull def..def Early end date LSDate Date lnull def..def Late start date LEDate Date lnull def..def Late end date DueDate Date lnull def..def Due date ClosedDate Date lnull def..def Closed date Priority Text 000 1..3 Priority SDate Date @#TODAYD# @ def..def Start date 23

EDate Date lnull def..def End date LstLevel Enumerated lnull 0..1 Last level - - - - 0: Capítulo - - - - 1: Partida Status Enumerated lnull def..def Status - - - - ValDsc = Status - - - - 0: New - - - - 1: In progress - - - - 3: Completed PrjOrder Text lnull def..def Project order Descrip Long Text Lnull def..def Description 2: Planificación Milestone Boolean lnull def..def Milestone CnstType Enumerated lnull def..def Constraint type - - - - 0: As soon as possible - - - - 1: Must start on - - - - 2: Must finish on CnstDate Date lnull def..def Constraint date ETime Real (double) lnull 0..def Estimated time ATime Real (double) lnull 0..def Accumulated time TimeDev Real (double) lnull -100..def Time deviation Completed Real (double) lnull 0..100 Completed 3: Seguimiento de costes Acost Real (double) lnull 0..def Current cost AUCost Real(double) lnull 0..def Current unit cost Aquantity Real(double) 1 0,00000..def Current quantity Fcost Real(double) lnull 0..def Estimated Cost FUCost Real(double) lnull 0..def Estimated unit cost Fquantity Real(double) 1 0,00000..def Estimated quantity ItemRef Text lnull 0..40 Item ItemName Text lnull def..def Item name IAmount Real(double) lnull 0..def Total invoiced IQuantity Real(double) lnull 0..def Invoiced quantity UctName Text lnull def..80 Unit category USCName Text lnull def..80 Unit subcategory UntName Text lnull def..80 Unit Primary key ActRef, PrjRef Tabla 5.3 Entidad Actividades ActRef ::Referencia ActName ::Nombre PrjRef ::Referencia del proyecto al que pertenece la actividad PrjName ::Nombre del proyecto al que pertenece la actividad ActOrg ::Referencia de la actividad origen, si la hay ActOrder ::Orden BSDate ::Fecha límite de comienzo BEDate ::Fecha límite de finalización ESDate ::Fecha en la que como muy pronto debe comenzar la actividad EEDate ::Fecha en la que como muy pronto debe terminar la actividad LSDate ::Fecha en la que como muy tarde debe empezar la actividad LEDate ::Fecha en la que como muy tarde debe terminar la actividad 24

DueDate ::Fecha requerida para acabar la actividad ClosedDate ::Fecha cierre Priority ::Prioridad SDate ::Fecha de inicio EDate ::Fecha de fin LstLevel ::Tipo. Dos tipos, capítulo y partida Status ::Estado PrjOrder ::Orden respecto del proyecto al que pertenece la actividad Descrip ::Descripción Milestone ::Hito CnstType ::Tipo de delimitación que tiene impuesta la actividad CnstDate ::Fecha de delimitación para la actividad ETime ::Tiempo estimado para concluir la actividad ATime ::Tiempo acumulado TimeDev ::Desviación respecto a lo estimado Completed ::Porcentaje completado AQuantity ::Cantidad actual AUCost ::Coste unitario actual ACost ::Coste actual FUCost ::Coste unitario estimado FQuantity ::Cantidad estimada FCost ::Coste estimado ItemRef ::Referencia del artículo asociado ItemName ::Nombre del artículo asociado IAmount ::Total facturado IQuantity ::Cantidad facturada UntName ::Nombre de la unidad UctName ::Categoría de la unidad USCName ::Subcategoría de la unidad Entidad Presupuestos Budgets Field Type Default Range Description 1: General BdgRef Text Lnull 1..40 Budget BdgName Text Lnull 1..def Budget name PrjRef Text Lnull 1..40 Project PrjName Text Lnull 1..def Project name BCDate Date @#TODAY#@ def..def Budget create date BAmount Real (double) Lnull 0..def Budget amount Subtotal Real(double) Lnull 0..def Subtotal TotalWT Real(double) Lnull 0.def Total with VAT ActiveB Boolean Lnull def..def BStatus Enumerated Lnull 0..3 Status - - - - 0:nuevo - - - - 1:en espera Active Budget 0:not active, 1:active 25

- - - - 2: aceptado - - - - 3: rechazado Descrip Long text Lnull def..def Description Discount Real Lnull 0..def Discount TaxRef Text Lnull def..40 Tax Primary key BdgRef Tabla 5.4 Entidad Presupuestos BdgRef ::Referencia BdgName ::Nombre PrjRef ::Proyecto al que está asociado PrjName ::Nombre del proyecto al que está asociado BCDate ::Fecha de creación BAmount ::Total del presupuesto sumados IVA y descuento Subtotal ::Subtotal TotalWT ::Total con IVA ActiveB ::Booleano que determina si el presupuesto esta activo o no BStatus ::Estado. Puede tomar los valores nuevo, en espera, aceptado y rechazado Discount ::Descuento aplicado cobre el total con IVA TaxRef ::Referencia del impuesto aplicado al subtotal Descrip ::Descripción Entidad Líneas de presupuesto Budget Lines Field Type Default Range Description PrjRef Text lnull 1..40 Project BdgRef Text lnull 1..40 Budget BLineNum Text lnull 1..40 Reference BLineOrg Text lnull 0..40 Origin ActRef Text lnull def..80 Activity ActName Text lnull def..def Activity name UCtName Text lnull def..80 Unit category USCName Text lnull def..80 Unit subcategory UntName Text lnull def..80 Unit LstLevel Enumerated Lnull 0..1 Last level - - - - 0: fase - - - - 1: actividad BQuantity Real (double) 1 0.00001..def Quantity BUCost Real (double) lnull 0..def Unit Cost BCost Real (double) lnull 0..def Cost Percent Real (double) lnull 0..def Percent USPrice Real (double) 0 0..def Unit sale price SPrice Real (double) 0 0..def Sale price Primary key BdgRef, BLineNum Tabla 5.5 Entidad Líneas de presupuesto 26

PrjRef ::Referencia del proyecto al que esta asociada la línea BdgRef ::Referencia del presupuesto al que pertenece la línea BLineNum ::Numero de línea BLineOrg ::Numero de línea origen ActRef ::Referencia de la actividad asociada a la línea ActName ::Nombre de la actividad asociada a la línea UntName ::Nombre de la unidad UctName ::Categoría de la unidad USCName ::Subcategoría de la unidad LstLevel ::Tipo de la actividad asociada BQuantity ::Cantidad presupuestada BUCost ::Coste unitario presupuestado BCost ::Coste total presupuestado Percent ::Porcentaje a aplicar al coste unitario presupuestado USPrice ::Precio unitario de venta SPrice ::Precio total de venta Entidad Detalles de facturación del proyecto Projects invoicing details Field Type Default Range Description PrjRef Text lnull 1..40 Project ActRef Text lnull 1..40 Activity InvRef Text lnull 1..40 Invoice InvLineNum Text lnull 1..def Line number IQuantity Real (double) lnull 0..def Invoiced quantity IAmount Real (double) lnull 0..def Invoiced amount Primary key PrjRef, ActRef, InvRef, InvLineNum Tabla 5.6 Entidad Detalles de facturación del projecto PrjRef ::Referencia del proyecto asociado ActRef ::Referencia de la actividad asociada InvRef ::Referencia de la factura asociada InvLineNum ::Numero de línea de la factura asociada IQuantity ::Cantidad facturada IAmount ::Total facturado Entidad proyectos Projects Field Type Default Range Description 1: General (30469) PrjRef Text lnull 1..40 Reference PrjOrg Text lnull 0..def Project origin PrjOrder Long integer lnull def..def Project order Project Text lnull 1..def Project MProject Boolean lnull def..def Multiproject 27

ComRef Text lnull 0..def Customer ComName Text lnull def..def Customer name Contact Long integer lnull 0..def ConSurname1 Text lnull def..def Contact Associated element identifier SDate Date @#TODAYD#@ def..def Start date EDate Date lnull def..def End date DueDate Date lnull def..def Due date ClosedDate Date lnull def..def Closed date EstimatedTime Real (double) lnull 0..def Estimated time Completed Real (double) lnull 0..100 Completed Status Enumerated lnull def..40 Status - - - - ValDsc = 'Status' - - - - 0: New - - - - 1: In progress - - - - 3: Completed 2: Costs data (32673) FixedUCost Boolean lnull def..def Fixed unit cost Budget Real (double) 0 0..def Total budget Forecast Real (double) 0 0..def Total forecast Actual Real (double) 0 0..def Total actual TarRef Text lnull def..40 Tariff CurName Text 3: Project invoicing (32674) @#ENTCURNAME# @ 1..80 Currency InvMethod Enumerated lnull 0..def Invoicing method - - - - 0: From real costs - - - - 1: From budget InvAlloc Enumerated lnull 0..def Invoicing allocation - - - - 0: Periodical amount - - - - 1: Invoices fixed quantity - - - - 2: Manual PeriodA Real (double) 0 0..def Periodical amount InvPeriod Enumerated lnull 0..def Invoicing period - - - - 0: Days - - - - 1: Months - - - - 2: Years InvFrq Integer lnull 0..def Invoicing frequency InvNum Integer 0 0..def Number of invoices NIDate Date @#TODAYD#@ def..def Next invoicing date TotalA Real (double) 0 0..def Total amount Invoiced Real (double) 0 0..def Total invoiced 4: Keywords (30076) Keywords Long text lnull def..def Keywords 5: Description (30446) Description Long text lnull def..def Description Primary key PrjRef Tabla 5.7 Entidad Proyectos PrjRef: Referencia PrjOrg: Proyecto del que es origen el proyecto 28

PrjOrder: Orden Project: Nombre MProject: Booleano que dice si el proyecto es multiproyecto ComRef: Referencia de la compañía cliente del proyecto ComName: Nombre de la compañía cliente Contac: Persona de contacto dentro de la compañía cliente ConSurname1: Apellido de la persona de contacto SDate: Fecha de inicio EDate: Fecha fin DueDate: Fecha requerida para acabar el proyecto ClosedDate: Fecha de cierre EstimtedTime: Tiempo estimado para la realización del proyecto Completed: Porcentaje completado Status: Estado FixedUCost: Booleano que indica si el coste unitario de las actividades es fijo o por el contrario si es fija la cantidad real Budget: Total presupuestado Forecast: Total estimado Actual: Total actual TarRef: Tarifa especial a aplicar CurName: Tipo de moneda InvMethod: Metodo de facturación InvAlloc: Distribución de la facturación. Sólo si el método de facturación es a partir de presupuesto PeriodA: Cantidad periódica a facturar. Sólo si el método de facturación es a partir de presupuesto InvPeriod: Periodo de facturación. Sólo si el método de facturación es a partir de presupuesto InvFrq: Frecuencia de facturación. Sólo si el método de facturación es a partir de presupuesto InvNum: Número de facturas. Sólo si el método de facturación es a partir de presupuesto NIDate: Fecha de la próxima factura. Sólo si el método de facturación es a partir de presupuesto TotalA: Total a facturar Invoiced: Total facturado Keywords: Palabras clave del proyecto Description: Descripción del proyecto 29

Figura 5.4 Diagrama Relacional 30

6. MODELO DE CASOS DE USO A continuación se muestra el modelo de casos de uso dividido en partes para que sea más fácil su comprensión. Se muestran los casos de uso del módulo de gestión de proyectos del ERP y se detallan a continuación los nuevos casos de uso surgidos o los modificados por el alumno. También se detalla el caso de uso Identificarse porque ayuda a entender el funcionamiento del proyecto. 6.1 Modelo casos de uso Gestión de proyectos Figura 6.1 Modelo casos de uso Gestión de proyectos 31

6.1.1 Caso de uso: Identificarse 6.1.1.1 Flujo de eventos Figura 6.2 Caso de uso Identificarse Al ejecutar la solución aparece una pantalla de entrada que pide el nombre de usuario y la contraseña. En esta misma pantalla el usuario configura una conexión de entrada. En esta conexión y a partir de seleccionar la opción detalles, el usuario define los siguientes parámetros de conexión: -El servidor de datos. -La base de datos a la que desea conectarse -Nombre de empresa de conexión En caso de elegir unos parámetros a los que no tenga derecho a acceder el sistema muestra un mensaje de error. Si todos los datos introducidos son correctos se realiza la conexión con la base de datos 32

6.1.1.2 Interfaz Figura 6.3 Interfaz caso de uso Identificarse I Figura 6.4 Interfaz caso de uso Identificarse II 33

Figura 6.5 Interfaz caso de uso Identificarse III Figura 6.6 Interfaz caso de uso Identificarse IV 34

Figura 6.7 Interfaz caso de uso Identificarse V 6.1.1.3 Diagrama de secuencia Figura 6.8 Diagrama de secuencia caso de uso Identificarse El caso de uso de Identificarse desde el punto de vista de la seguridad (el control de accesos) es muy importante. Sino, se dejaría que cualquiera pudiera tener acceso a la aplicación pudiera acceder a toda la información de la misma. 35

6.1.2 Caso de uso: Actualizar costes reales 6.1.2.1 Flujo de eventos Figura 6.9 Caso de uso Actualizar costes reales -Desde la ventana de Proyectos (lista) teniendo seleccionado el proyecto, o una vez abierto el proyecto, desde la vista de detalles del proyecto el empleado despliega el menú lista de acciones y elige la opción actualizar costes reales. -El sistema muestra la ventana Rango de fechas para que el empleado seleccione el día hasta el cual quiere actualizar los costes. -El empleado selecciona la fecha deseada y pulsa Aceptar -El sistema actualiza todos los costes reales del proyecto 6.1.2.2 Interfaz Figura 6.10 Interfaz caso de uso Actualizar costes reales I 36

Figura 6.11 Interfaz caso de uso Actualizar costes reales II 6.1.2.3 Diagrama de secuencia Figura 6.12 Interfaz caso de uso Actualizar costes reales III Figura 6.13 Diagrama de secuencia caso de uso Actualizar costes reales 37

6.1.2.4 Diagrama de actividad Figura 6.14 Diagrama de actividad caso de uso Actualizar costes reales 38

6.1.2.5 Diagramas de pseudocódigo asociados 6.1.2.5.1 UpdateProjectRealCost Figura 6.15 Diagrama de pseudocódigo UpdateProjectRealCost 39

6.1.2.5.2 GetProjectCostActual Cost1 = GetTimeSheetsCosts(strPrjRef, stractref, dateuntil) Cost2 = GetEmployeeExpensesCosts(strPrjRef, stractref, dateuntil) Cost3 = GetMiscellaneousCosts(strPrjRef, stractref, dateuntil) Cost4 = GetInventoryEntriesCosts(strPrjRef, stractref, dateuntil) Cost5 = GetPurchasesCosts(strPrjRef, stractref, dateuntil) Return ACost = cost1 + cost2 + cost3 + cost4 + cost5 Figura 6.16 Diagrama de pseudocódigo GetProjectCostActual 6.1.3 Caso de uso: Facturación a partir de costes reales Figura 6.17 Caso de uso Facturación a partir de costes reales 40

6.1.3.1 Flujo de eventos -Desde la ventana de proyectos (detalles) el empleado selecciona la pestaña Facturación de proyecto y ahí en Método de facturación selecciona A partir de costes reales. Pincha sobre Lista de acciones y elige Facturación de proyecto. 6.1.3.2 Interfaz Figura 6.18 Interfaz caso de uso Facturación a partir de costes reales I -El sistema muestra una pantalla para que el empleado elija las actividades que desea facturar y éste las selecciona 41

Figura 6.19 Interfaz caso de uso Facturación a partir de costes reales II -Una vez elegidas las actividades el empleado pulsa Aceptar y el sistema muestra una pantalla para que el empleado elija si desea una factura en la que solo aparezca el total facturado o si quiere que la factura esté dividida en partes Figura 6.20 Interfaz caso de uso Facturación a partir de costes reales III -Si el empleado elige facturar por partes puede elegir hasta que nivel de actividades quiere que se facture 42

Figura 6.21 Interfaz caso de uso Facturación a partir de costes reales IV Una vez elegidas todas las opciones de facturación el empleado pulsa Aceptar y el sistema muestra una ventanita donde el empleado pone la referencia que quiere que tenga la factura Figura 6.22 Interfaz caso de uso Facturación a partir de costes reales V El empleado pulsa Aceptar y se crea la factura 6.1.3.3 Diagrama de secuencia Figura 6.23 Diagrama de secuencia caso de uso Facturación a partir de costes reales 43

6.1.3.4 Diagrama de actividad Select Projects management >>Projects option in main menu tree Select the project to create the invoice Select 'Project invoicing?' in actions list [from real] Select tracking lines Select option (invoice lines) [n lines] Select level [one line] [all levels] [Define level] Insert level [OK] Insert invoice rerefence The invoice is created [Cancel] Figura 6.24 Diagrama de Actividad caso de uso Facturación a partir de costes reales 44

6.1.3.5 Diagramas de pseudocódigo asociados Figura 6.25 Diagrama de pseudocódigo ProjectInvoicingFromRealCost 45

strxmldata contains the following Values ActRef,ActName,ActOrg,ItemRef,UntName,UCtName,USCName,AQuantity,AUCost,PrjOrder strprjref,strinvref,strcomref,strcomname,strprjname,strcdate,strtarref,strcurname,intdeflevel,intinvmethod,intoption,intnumelements,strxmldata GetProjectActivitiesList Actual Cost<>Invoiced Amount and lastlevel=1 (i.e Lastlevel elements) Get Invoice Amount and Invoice Quantity Update Invoice Amount and Invoiced Quantity in Project activitytable intdeflevel < 0 Resultset for inserting data in PPMM_IINN_00000100 (Invoice Auxillary) table Insert line in the Invoice Auxillary ResultSet Insert line in the Invoice ResultSet Resultset for inserting data in SSAA_IINN_00000200 (Invoice) table Insert Invoice Main Data Insert Invoice Lines define level Not define level Insert Invoice Auxillary from ResultSet Figura 6.26 Diagrama de pseudocódigo CreateProjectInvoiceFromReal 6.1.4 Caso de uso: Facturación a partir de presupuesto 6.1.4.1 Flujo de eventos e interfaz Figura 6.27 Caso de uso Facturación a partir de presupuesto -Desde la ventana de proyectos (detalles) el empleado selecciona la pestaña Facturación de proyecto y ahí en Método de facturación selecciona A partir de Presupuesto. Ahora el empleado tiene tres opciones de Distribución de la 46

facturación : Cantidad fija de facturas, Cantidad periódica y Manual. Las dos primeras van unidas de la mano ya que la aplicación actúa de la misma manera. La diferencia es que en la primera el empleado elige el número total de facturas que quiere realizar y se calcula automáticamente el importe de cada factura y en la segunda opción es al revés, el empleado selecciona de que importe quiere que sea cada factura y se calcula automáticamente cual será el numero de facturas. En todos los casos el empleado puede elegir el periodo y la frecuencia de facturación Una vez elegida la Distribución de la facturación el empleado pincha sobre Lista de acciones y elige Facturación de proyecto. Figura 6.28 Interfaz caso de uso Facturación a partir de presupuesto I Si la opción de Distribución de la facturación elegida es Manual el sistema muestra la siguiente ventana Figura 6.29 Interfaz caso de uso Facturación a partir de presupuesto II -Si el empleado elige la opción Definir el porcentaje y pulsa Aceptar el sistema muestra la pantalla de Selección de líneas de presupuesto. El porcentaje elegido es el porcentaje del coste de las líneas elegidas que se quiere facturar. 47

Figura 6.30 Interfaz caso de uso Facturación a partir de presupuesto III -El empleado elige las líneas que desee y pulsa Aceptar y el sistema le da la opción de crear factura por partes o simple. Figura 6.31 Interfaz caso de uso Facturación a partir de presupuesto IV -El usuario elige la opción deseada y pulsa Aceptar y el sistema le pide la referencia para la factura Figura 6.32 Interfaz caso de uso Facturación a partir de presupuesto V -El usuario introduce la referencia deseada y pulsa Aceptar y el sistema crea la factura. -Si el empleado hubiese elegido la opción Seleccionar líneas lo que hace el sistema es directamente una factura por partes y facturando el 100 % de la línea. Es decir, elegir 48

esta opción es como elegir Definir el porcentaje con un valor del 100% y luego seleccionar las líneas y elegir Crear factura con líneas -Si la opción elegida es Cantidad fija de facturas o Cantidad periódica el sistema muestra directamente la ventana Figura 6.33 Interfaz caso de uso Facturación a partir de presupuesto IV El empleado introduce la referencia y pulsa aceptar. El sistema crea la factura con los datos introducidos por el usuario. 6.1.4.2 Diagrama de secuencia IUProyectos L3_ppmm L2D_ppmm Facturación de presupuesto ProjectInvoicing Empleado APPProjectInvoicing [Condicion_1]CreateProjectInvoiceFromBudget(strData) string APPCreateProjectInvoiceFromBudget(strData) [Condicion_2]CreateProjectInvoiceFromBudgetManual(strData) APPCreateProjectInvoiceFromBudgetManual(strData) string string [Condicion_1] Método de facturación = A partir de presupuesto (no manual) [Condicion_2] Método de facturación = A partir de presupuesto (manual) Figura 6.34 Diagrama de secuencia caso de uso Facturación a partir de presupuesto 49

6.1.4.3 Diagrama de actividad Select Projects management >>Projects option in main menu tree Select the project to create the invoice Select 'Project invoicing?' in actions list [From budget] [periodical amount] [Fixed quantity] [Manual] Select Option (percentage) [select lines] [percentage] Select budget lines Define percentage [manual] Select option (invoice lines) [OK] Insert invoice rerefence The invoice is created [Cancel] Figura 6.35 Diagrama de actividad caso de uso Facturación a partir de presupuesto 50

6.1.4.4 Diagramas de pseudocódigo asociados Get Project Data Get Invoicing Method [InvMethod = Budget] Get Invoiced Cost and Total Cost Invoiced Cost < Total Cost Get Invoice Allocation Show FrmSelManMethod InvAlloc = 2 Percentage Define Percentage Select lines Invoiced Cost < Actual Cost GetProjectBudgetLines InvAlloc <> 2 InvAlloc = 2 GetProjectBudgetLines <> [PrjRef = ] Select Lines GetNumElements InvAlloc <> 2 GetNumElements <> Invoiced Cost >= Total Cost (Invmethod=1 and InvAlloc= 2 and Percentage) Invmethod=1 and InvAlloc= 2 and select lines [GetProjectActivitiesList = ] Show FrmOption Invoiced Cost >= Actual Cost GetNumElements = Get invoice reference Invmethod=1 and InvAlloc=2 Invmethod=1 and InvAlloc= 0 or 1 l2d_ppmm.createprojectinvoicefrombudget l2d_ppmm.createprojectinvoicefrombudgetmanual Invref = Refresh Structure Figura 6.36 Diagrama de pseudocódigo ProjectInvoicingFromBudget 51

Figura 6.37 Diagrama de pseudocódigo CreateProjectInvoiceFromBudget 52

Figura 6.38 Diagrama de pseudocódigo CreateProjectInvoiceFromBudgetManual 53

6.1.5 Caso de uso: Asignar artículo a actividad 6.1.5.1 Flujo de eventos Figura 6.39 Caso de uso Asignar artículo a actividad -Desde la interfaz de Actividades en modo detalle el empleado accede a la tercera pestaña Seguimiento de costes. Ahí pincha sobre la flecha al lado de Artículo -El sistema muestra la ventana de selección de artículo -El empleado selecciona el artículo deseado haciendo doble click sobre el o eligiéndolo y pulsando el botón Aceptar -El sistema asigna a la actividad el artículo seleccionado y también sus unidades y coste unitario actual 6.1.5.2 Interfaz Figura 6.40 Interfaz Caso de uso Asignar artículo a actividad I 54

Figura 6.41 Interfaz Caso de uso Asignar artículo a actividad II Figura 6.42 Interfaz Caso de uso Asignar artículo a actividad III 55

6.1.5.3 Diagrama de secuencia Figura 6.43 Diagrama de secuencia caso de uso Asignar artículo a actividad 6.1.6 Caso de uso: Modificar datos coste actual Gestionar proyecto «extends» Modificar actividad «extends» Modificar datos coste actual Empleado Figura 6.44 Caso de uso Modificar datos coste actual 6.1.6.1 Flujo de eventos -Desde la interfaz de Actividades en modo detalle el empleado accede a la tercera pestaña Seguimiento de costes. Ahí dependiendo de si el proyecto tiene o no activado el campo Coste unitario fijo el empleado podrá cambiar bien el Coste unitario Actual o la Cantidad actual. El empleado cambia uno de estos datos -El sistema calcula los nuevos valores y los muestra. Hasta el momento en que el usuario pulse el botón Guardar o Cerrar los nuevos datos no serán guardados en la base de datos y podrán ser recuperados pulsando el botón Actualizar 56

6.1.6.2 Interfaz 6.1.6.3 Diagrama de secuencia Figura 6.45 Interfaz caso de uso Modificar datos coste actual Figura 6.46 Diagrama de secuencia caso de uso Modificar datos coste actual 57

6.1.7 Caso de uso: Modificar datos coste estimado 6.1.7.1 Flujo de eventos Figura 6.47 Caso de uso Modificar datos coste estimado -Desde la interfaz de Actividades en modo detalle el empleado accede a la tercera pestaña Seguimiento de costes. Ahí el empleado podrá cambiar bien el Coste unitario estimado o la Cantidad estimada. El empleado cambia uno de estos datos -El sistema calcula los nuevos valores y los muestra. Hasta el momento en que el usuario pulse el botón Guardar o Cerrar los nuevos datos no serán guardados en la base de datos y podrán ser recuperados pulsando el botón Actualizar 6.1.7.2 Interfaz Figura 6.48 Interfaz caso de uso Modificar datos coste estimado 58

6.1.7.3 Diagrama de secuencia Figura 6.49 Diagrama de secuencia caso de uso Modificar datos coste estimado 6.1.8 Caso de uso: Declarar desierto concurso 6.1.8.1 Flujo de eventos Figura 6.50 Caso de uso Declarar desierto concurso -El empleado selecciona el proyecto deseado desde la vista Proyectos(lista) y pincha sobre Lista de actividades o bien abre el proyecto y pincha sobre Lista de actividades. Selecciona la opción declarar desierto concurso. -El sistema marca el proyecto como desierto y todos los presupuestos y ofertas recibidas los marca como Rechazado 59

6.1.8.2 Diagrama de secuencia IUProyectos L3_ppmm L2D_ppmm Declarar desierto concurso SetVoidContest() Empleado AppSetVoidContest() SetVoidContest() AppSetVoidContest() string string Figura 6.51 Diagrama de secuencia caso de uso Declarar desierto concurso 6.2 Modelo casos de uso Gestión de presupuestos Figura 6.52 Modelo casos de uso Gestión de presupuestos 6.2.1 Caso de uso: Añadir presupuesto 60

6.2.1.1 Flujo de eventos Figura 6.53 Caso de uso Añadir presupuesto -Desde la ventana de Proyectos(Detalles) el empleado accede a la pestaña de Presupuestos, la tercera de abajo. Ahí bien hace click derecho y elige nuevo. -El sistema muestra la ventana de Presupuestos(Detalles) donde el empleado podrá insertar los datos que desee 6.2.1.2 Interfaz Figura 6.54 Interfaz caso de uso Añadir presupuesto I 61

6.2.1.3 Diagrama de secuencia Figura 6.55 Interfaz caso de uso Añadir presupuesto II Figura 6.56 Diagrama de secuencia caso de uso Añadir presupuesto 62

6.2.2 Caso de uso: Borrar presupuesto 6.2.2.1 Flujo de eventos Figura 6.57 Caso de uso Borrar presupuesto -Desde la ventana Presupuesto (Detalles) el empleado pulsa el icono y le da a guardar. -El sistema elimina el presupuesto y todas las líneas de presupuesto pertenecientes al mismo 6.2.2.2 Interfaz Figura 6.58 Interfaz caso de uso Borrar presupuesto I 63

Figura 6.59 Interfaz caso de uso Borrar presupuesto II 6.2.2.3 Diagrama de secuencia Figura 6.60 Diagrama de secuencia caso de uso Borrar presupuesto 64

6.2.3 Caso de uso: Modificar descuento 6.2.3.1 Flujo de eventos Figura 6.61 Caso de uso Modificar descuento -Desde la ventana de Presupuestos (Detalles) el empleado modifica el descuento. -El sistema modifica los datos y los muestra Hasta el momento en que el usuario pulse el botón Guardar o Cerrar los nuevos datos no serán guardados en la base de datos y podrán ser recuperados pulsando el botón Actualizar 6.2.3.2 Interfaz Figura 6.62 Interfaz caso de uso Modificar descuento 65

6.2.3.3 Diagrama de secuencia Figura 6.63 Diagrama de secuencia caso de uso Modificar descuento 6.2.4 Caso de uso: Modificar impuesto Gestion de presupuestos «extends» Modificar impuesto Empleado Figura 6.64 Caso de uso Modificar impuesto 6.2.4.1 Flujo de eventos -Desde la ventana de Presupuestos (Detalles) el empleado pincha sobre impuesto. -El sistema muestra una ventana con todos los impuestos disponibles -El empleado selecciona el deseado -El sistema modifica los datos y los muestra Hasta el momento en que el usuario pulse el botón Guardar o Cerrar los nuevos datos no serán guardados en la base de datos y podrán ser recuperados pulsando el botón Actualizar 66

6.2.4.2 Interfaz Figura 6.65 Interfaz caso de uso Modificar impuesto I Figura 6.66 Interfaz caso de uso Modificar impuesto II 67

6.2.4.3 Diagrama de secuencia Figura 6.67 Diagrama de secuencia caso de uso Modificar impuesto 6.2.5 Caso de uso: Activar presupuesto 6.2.5.1 Flujo de eventos Figura 6.68 Caso de uso Activar Presupuesto -Desde la ventana Presupuestos (detalles) el empleado activa la casilla Activo y le da a Guardar -El sistema marca el presupuesto como activo y desmarca el que estuviese activo hasta ese momento a menos que no hubiese ninguno activo. También actualiza el campo presupuesto de la tabla proyectos con el total del presupuesto activado. 68

6.2.5.2 Interfaz 6.2.5.3 Diagrama de secuencia Figura 6.69 Interfaz caso de uso Activar Presupuesto Figura 6.70 Diagrama de secuencia caso de uso Activar Presupuesto 69

6.2.6 Caso de uso: Añadir línea de presupuesto 6.2.6.1 Flujo de eventos Figura 6.71 Caso de uso Añadir línea a presupuesto -Desde la ventana de Presupuestos(Detalles) el empleado hace click derecho y elige nuevo. -El sistema muestra la ventana de Líneas de presupuesto (Detalles) donde el empleado podrá insertar los datos que desee 6.2.6.2 Interfaz Figura 6.72 Interfaz caso de uso Añadir línea a presupuesto 70

6.2.6.3 Diagrama de secuencia Figura 6.73 Diagrama de secuencia caso de uso Añadir línea a presupuesto 6.2.7 Caso de uso: Borrar línea de presupuesto 6.2.7.1 Flujo de eventos Figura 6.74 Caso de uso Borrar línea de presupuesto -Desde la ventana Líneas de Presupuesto (Detalles) el empleado selecciona la línea deseada y pulsa el icono y le da a guardar. -El sistema elimina la línea seleccionada y todas las líneas de presupuesto que tenga por debajo. Es decir, a sus hijos, los hijos de sus hijos, etc. 71

6.2.7.2 Interfaz Figura 6.75 Interfaz caso de uso Borrar línea de presupuesto I Figura 6.76 Interfaz caso de uso Borrar línea de presupuesto II 72

6.2.7.3 Diagrama de secuencia Figura 6.77 Diagrama de secuencia caso de uso Borrar línea de presupuesto 6.2.8 Caso de uso: Añadir sublínea de presupuesto 6.2.8.1 Flujo de eventos Figura 6.78 Caso de uso Añadir sublínea de presupuesto -Desde la ventana Líneas de presupuesto el empleado en el icono de Nuevo -El sistema muestra una nueva ventana de Líneas de presupuesto (Detalles) donde el empleado podrá insertar los datos que desee 73

6.2.8.2 Interfaz 6.2.8.3 Diagrama de secuencia Figura 6.79 Interfaz caso de uso Añadir sublínea de presupuesto Figura 6.80 Diagrama de secuencia caso de uso Añadir sublínea de presupuesto 74

6.2.9 Caso de uso: Modificar datos de costes 6.2.9.1 Flujo de eventos Figura 6.81 Caso de uso Modificar datos de costes -Desde la ventana Líneas de presupuesto el empleado modifica cualquier dato relativo a los costes(cantidad, Coste unitario, Porcentaje o Precio de venta unitario). - El sistema calcula los nuevos valores y los muestra. Hasta el momento en que el usuario pulse el botón Guardar o Cerrar los nuevos datos no serán guardados en la base de datos y podrán ser recuperados pulsando el botón Actualizar 6.2.9.2 Interfaz Figura 6.82 Interfaz caso de uso Modificar datos de costes 75

6.2.9.3 Diagrama de secuencia IULíneasdePresupuesto L2I_ppmm L2D_ppmm BD Cambiar dato HandleBudgetLineUnitPrice() Empleado [condicion 1] HandleLineValuesAfterQuantityChange() [condicion 2] HandleLineValuesAfterUCostChange() Guardar [condicion 3] HandleLineValuesAfterUnitSalePriceChange() [condicion 4] HandleLineValuesAfterPercentChange HandleBudgetLineTotalPrice() new() [condicion 1] : Ha cambiado la cantidad [condicion 2] : Ha cambiado el coste unitario [condicion 3] : Ha cambiado el precio unitario de venta [condicion 4] : Ha cambiado el porcentaje execupdate() destroy() Figura 6.83 Diagrama caso de uso Modificar datos de costes 6.2.10 Caso de uso: Asignar actividad a línea de presupuesto 6.2.10.1 Flujo de eventos Figura 6.84 Caso de uso Asignar actividad a línea de presupuesto -Desde la ventana de Líneas de presupuesto el empleado pincha en la flecha situada al lado del nombre. -El sistema muestra una pantalla con las actividades disponibles para que elija el empleado -El empleado elige la que desea y pulsa sobre Selección -El sistema actualiza la línea con los datos y los muestra 76

6.2.10.2 Interfaz Figura 6.85 Interfaz caso de uso Asignar actividad a línea de presupuesto I Figura 6.86 Interfaz caso de uso Asignar actividad a línea de presupuesto II 77

Figura 6.87 Interfaz caso de uso Asignar actividad a línea de presupuesto III 6.2.10.3 Diagrama de secuencia Figura 6.88 Diagrama de secuencia caso de uso Asignar actividad a línea de presupuesto 78

6.3 Aclaraciones modelo casos de uso Gestión de ofertas Al estar esta parte solo diseñada no se dispone de la interfaz. Sin embargo a partir de la interfaz actual se ha dejado bien definido como va a ser la futura interfaz. Figura 6.89 Nuevas pestañas En el primer cuadrado rojo habrá otra pestaña Ofertas donde la ingeniería podrá ver las ofertas recibidas y las empresas que presenten ofertas rellenarán las mismas. Dentro de esta pestaña, la interfaz será casi igual que la de Presupuestos ya que realmente las ofertas son presupuestos. La ingeniería también tendrá otra pestaña llamada Petición de ofertas desde la cual creara las peticiones para los ofertantes. La empresa ofertante tendrá otra pestaña llamada Ofertas enviadas donde podrá ver las ofertas que ya ha realizado por ese proyecto y el estado de las mismas. La empresa ofertante sólo dispondrá de estas dos pestañas en la parte de abajo y en la de arriba solo podrá ver la pestaña General y con los datos reducidos a lo estrictamente necesario como puede ser el nombre del proyecto, el propietario y las fechas deseadas. En la tabla de presupuestos se creara un nuevo campo llamado Bidder que se usará para saber a quien va dirigida la petición de oferta. Este campo solo lo verá ingeniería. 79

También se modificará el campo Estado añadiendo los valores enviado y recibido para saber cuando se ha enviado y recibido la petición. 6.4 Gestión de ofertas recibidas 6.4.1 Caso de uso: Ver ofertas Figura 6.90 Modelo casos de uso Gestión de ofertas recibidas 6.4.1.1 Flujo de eventos Figura 6.91 Caso de uso Ver ofertas -Una vez seleccionado el proyecto deseado el empleado pincha en la pestaña Ofertas. -El sistema muestra las ofertas recibidas para ese proyecto en la parte de abajo de la pantalla. 80

6.4.1.2 Diagrama de secuencia IUOfertas L2D_ppmm BD Pulsar "Ofertas" sawoffers() Empleado new() execquery() destroy() 6.4.2 Caso de uso: Comparar ofertas Figura 6.92 Diagrama de secuencia caso de uso Ver ofertas 6.4.2.1 Flujo de eventos Figura 6.93 Caso de uso Comparar ofertas -Desde la ventana Ofertas el empleado selecciona las ofertas que desee comparar(dos ofertas) y elige la opción Comparar ofertas -El sistema muestra un informe con las ofertas comparadas 81

6.4.2.2 Diagrama de secuencia 6.4.3 Caso de uso: Rechazar oferta Figura 6.94 Diagrama de secuencia caso de uso Comparar ofertas 6.4.3.1 Flujo de eventos Figura 6.95 Caso de uso Rechazar oferta -Desde la ventana de Ofertas el empleado selecciona la oferta que desee y cambia su estado a Rechazada y pulsa en Guardar 82

6.4.3.2 Diagrama de secuencia Seleccionar oferta y cambiar estado a rechazado IUOfertas L2D_ppmm BD Empleado setoffersstatus() new() execupdate() destroy() 6.4.4 Caso de uso: Adjudicar oferta Figura 6.96 Diagrama de secuencia caso de uso Rechazar oferta Gestionar ofertas recibidas «extends» Adjudicar oferta «uses» «uses» {Rechazar todas la demás ofertas} Empleado Ver ofertas Rechazar oferta Figura 6.97 Caso de uso Adjudicar oferta 6.4.4.1 Flujo de eventos -Desde la ventana de Ofertas el empleado selecciona la oferta que desee y cambia su estado a Aceptado y pulsa en Guardar -El sistema se encarga de rechazar todas las demás ofertas recibidas por ese proyecto 83

6.4.4.2 Diagrama de secuencia Figura 6.98 Diagrama de secuencia caso de uso Adjudicar oferta 6.5 Modelo de casos de uso Gestión de petición de ofertas Figura 6.99 Modelo caso de uso Gestión de petición de ofertas 6.5.1 Caso de uso: Crear petición de oferta Figura 6.100 Caso de uso Crear petición de oferta 84

6.5.1.1 Flujo de eventos -Desde la ventana de Proyectos(Detalles) el empleado accede a la pestaña de Petición de ofertas. Ahí bien hace click derecho y elige nuevo. -El sistema muestra la ventana de Petición de ofertas(detalles) con todos los datos a cero -Será obligatorio que el empleado ponga a quien va dirigida la petición 6.5.1.2 Diagrama de secuencia Figura 6.101 Diagrama de secuencia caso de uso Crear petición de oferta 6.5.2 Caso de uso: Añadir línea de presupuesto 6.5.2.1 Flujo de eventos Figura 6.102 Caso de uso Añadir línea de presupuesto -Desde la ventana de Petición de ofertas (Detalles) el empleado hace click derecho y elige nuevo. -El sistema muestra una ventana de selección de líneas de presupuesto donde aparecen todas la líneas de presupuesto pertenecientes al proyecto -El empleado elige la que desee -El sistema crea una copia de esa línea con los datos de coste todos a cero y se la asigna a esa petición de oferta 85

6.5.2.2 Diagrama de secuencia Figura 6.103 Diagrama de secuencia caso de uso Añadir línea de presupuesto 6.5.3 Caso de uso: Borrar línea de presupuesto 6.5.3.1 Flujo de eventos Figura 6.104 Caso de uso Borrar línea de presupuesto -Desde la ventana Líneas de Presupuesto (Detalles) (después de elegir la línea desde la ventana Petición de ofertas ) el empleado selecciona la línea deseada y pulsa el icono y le da a guardar. -El sistema elimina la línea seleccionada y todas las líneas de presupuesto que tenga por debajo. Es decir, a sus hijos, los hijos de sus hijos, etc. 86

6.5.3.2 Diagrama de secuencia Figura 6.105 Diagrama de secuencia caso de uso Borrar línea de presupuesto 6.5.4 Caso de uso: Borrar petición de oferta Figura 6.106 Caso de uso Borrar petición de oferta 6.5.4.1 Flujo de eventos -Desde la ventana Petición de oferta (Detalles) el empleado pulsa el icono y le da a guardar. -El sistema elimina la petición de oferta y todas las líneas de presupuesto pertenecientes al mismo 87

6.5.4.2 Diagrama de secuencia Figura 6.107 Diagrama de secuencia caso de uso Borrar petición de oferta 6.6 Modelo casos de uso Ofertante Identificarse Ver peticiones de oferta Ver ofertas enviadas Modificar datos de costes Ofertante Modificar descuento Modificar impuesto Desconectarse Figura 6.108 Modelo casos de uso Ofertante 88

6.6.1 Caso de uso: Ver ofertas enviadas Ver ofertas enviadas 6.6.1.1 Flujo de eventos Ofertante Figura 6.109 Caso de uso Ver ofertas enviadas -Una vez seleccionado el proyecto deseado el ofertante pincha en la pestaña Ofertas enviadas. -El sistema muestra las ofertas enviadas para ese proyecto en la parte de abajo de la pantalla. 6.6.1.2 Diagrama de secuencia Figura 6.110 Diagrama de secuencia caso de uso Ver ofertas enviadas 6.6.2 Caso de uso: Ver peticiones de oferta Figura 6.111 Caso de uso Ver peticiones de oferta 89

6.6.2.1 Flujo de eventos -Una vez seleccionado el proyecto deseado el ofertante pincha sobre la pestaña Ofertas -El sistema muestra las peticiones de oferta recibidas que todavía no han sido enviadas 6.6.2.2 Diagrama de secuencia Resto casos de uso Figura 6.112 Diagrama de secuencia caso de uso Ver peticiones de oferta Los casos de uso Modificar datos de costes, Modificar impuesto y Modificar descuento son iguales a los descritos anteriormente solo que lanzados por otro actor y desde otra interfaz pero el funcionamiento interno es el mismo. Por eso no se vuelven a escribir en este apartado 90

7. SOFTWARE UTILIZADO 7.1 Microsoft Visual Studio 6.0 sp6 Visual Basic es uno de los tantos lenguajes de programación que podemos encontrar hoy en día. Dicho lenguaje nace del BASIC (Beginner s All-purpose Symbolic Instruction Code) que fue creado en su versión original en el Dartmouth College, con el propósito de servir a aquellas personas que estaban interesadas en iniciarse en algún lenguaje de programación. Luego de sufrir varias modificaciones, en el año 1978 se estableció el BASIC estándar. La sencillez del lenguaje ganó el desprecio de los programadores avanzados por considerarlo "un lenguaje para principiantes". Primero fue GW-BASIC, luego se transformó en QuickBASIC y actualmente se lo conoce como Visual Basic y la usada es la 6 que se incluye en el paquete Visual Studio 6 de Microsoft. Esta versión combina la sencillez del BASIC con un poderoso lenguaje de programación Visual que juntos permiten desarrollar robustos programas de 32 bits para Windows. Esta fusión de sencillez y la estética permitió ampliar mucho más el monopolio de Microsoft, ya que el lenguaje sólo es compatible con Windows, un sistema operativo de la misma empresa. Es un lenguaje de fácil aprendizaje pensado tanto para programadores principiantes como expertos, guiado por eventos, y centrado en un motor de formularios que facilita el rápido desarrollo de aplicaciones gráficas. Su sintaxis, derivada del antiguo BASIC, ha sido ampliada con el tiempo al agregarse las características típicas de los lenguajes estructurados modernos. Se ha agregado una implementación limitada de la programación orientada a objetos (los propios formularios y controles son objetos), aunque sí admite el polimorfismo mediante el uso de los Interfaces, no admite la herencia. No requiere de manejo de punteros y posee un manejo muy sencillo de cadenas de caracteres. Posee varias bibliotecas para manejo de bases de datos, pudiendo conectar con cualquier base de datos a través de ODBC (Informix, DBase, Access, MySQL, SQL Server, PostgreSQL,etc.) a través de ADO. Es utilizado principalmente para aplicaciones de gestión de empresas, debido a la rapidez con la que puede hacerse un programa que utilice una base de datos sencilla, además de la abundancia de programadores en este lenguaje. 7.2 Microsoft SQL Server 2000 sp3 SQL Server 2000 es un potente motor de bases de datos de alto rendimiento capaz de soportar millones de registros por tabla con un interface intuitivo y con herramientas de desarrollo integradas como Visual Studio 6.0 o.net, además incorpora un modelo de objetos totalmente programable (SQL-DMO) con el que podemos desarrollar cualquier aplicación que manipule componentes de SQL Server, es decir, hacer aplicación para crear bases de datos, tablas, DTS, backups, etc., todo lo que se puede hacer desde el 91

administrador del SQL Server y podemos hacerlo no sólo en Visual C++ sino también en Visual Basic, ASP y por supuesto, en.net. La instalación y administración es muy intuitiva pero esto no significa que sea fácil, una mala instalación, una base de datos mal creada o diseñada o una mala administración nos puede hacer la vida imposible y nuestras aplicaciones pueden tener un rendimiento malo, debemos tener cuidado y aprender a usarlo correctamente, como también es importante el hardware, lejos de los 64 MB mínimos que requiere el sistema es recomendable que tenga 256 o 512 para su buen funcionamiento y una cantidad suficiente de espacio en disco para que pueda trabajar con las bases de datos. 7.3 Elección de las herramientas de desarrollo El motivo de la elección de Microsoft Visual Basic 6.0 y Microsoft SQL Server ha sido que no ha habido elección puesto que al modificar un módulo de un ERP existente ha habido que adecuarse a las herramientas de desarrollo usadas por la empresa. 92

8. INFORME SOBRE LA GESTIÓN DEL PROYECTO Cómo ya se ha comentado anteriormente se produjo un replanificación del alcance del proyecto y de los objetivos del mismo. El diagrama Gantt resultante después de estos cambios quedaría de la siguiente manera: 93

Figura 8.1 Diagrama de Gantt replanificado 94

El E.D.T quedó de la siguiente manera: Proyecto Introducción Planificación Figura 8.2 Estructura descomposición del trabajo versión modificada Ahora vamos a comparar lo planificado con lo que ha pasado realmente. Lo haremos fase a fase: Fase 1: Definición y alcance del proyecto Definición y alcance del proyecto Investigación previa Análisis de especificaciones Estudio herramientas utilizadas Diseño del módulo Implementación Testeo Investigación proceso licitación Investigación software existente Captura de requisitos Estudio software de gestión Estudio software de desarrollo Diagramas de datos Diagrama de casos de uso Diagrama de secuencia Diagrama de actividad Diagrama de pseudocódigo Estudio código existente Implementación Esta fase se planificó con duración dos días y duró dos días. Durante estos dos días el alumno primeramente se familiarizó con el ERP a modificar, especialmente con el módulo de gestión de proyectos. Después de esto se mantuvo una reunión con Nuria 95

Amescoa (Directora del proyecto en la empresa) y Juan Luis Larrañaga (Gerente de Lantek) para definir el alcance del proyecto. Fase 2: Investigación previa Esta fase que estaba planificada para 10 se acabó realizando en 14 días. De esos 4 días de más 2 fueron en la investigación sobre el proceso de licitación. Esto se debió a que encontrar información sobre el tema fue más complicado de lo creído en un principio y a que la información encontrada fue en muchas ocasiones contradictoria. Los otros dos días fueron en la fase de análisis del software existente. Esto fue debido a que el software analizado resulto ser de gran complicación, especialmente el programa de gestión de presupuestos de la construcción PRESTO. Fase3 : Análisis de especificaciones Esta fase inicialmente planeada para durar 5 días se acabó en sólo 4 días. Fase 4: Estudio de herramientas utilizadas en Lantek Esta fase planificada para 5 días fue acabada en sólo 3 días. Esto fue debido a que la mayoría de herramientas usadas en Lantek ya habían sido usadas alguna vez por el alumno, bien en la universidad o en los ratos libres. Fase 5: Diseño del módulo Esta fase planificada inicialmente en 30 días se realizó en 27 principalmente porque al alumno le resultó más fácil de lo esperado aprender a realizar diagramas de actividad y diagramas de pseudocódigo y se debieron realizar menos de los esperados. Fase 6: Implementación Esta fase tuvo un retraso de 13 días de los cuales 2 fueron en el estudio del código existente, subfase en la que la planificación fue excesivamente optimista. También fue optimista en la otra subfase pero en esta tiene más sentido el error ya que al ser la primera vez que el alumno realiza un proyecto de esta índole es normal que fallen ciertas fases y la esta es una de ellas. Fase 7: Testeo En esta fase se sufrió otro retraso. En este caso fueron 3 los días. Se debió a diversos errores de diversa índole que al alumno le costó descubrir. 96

En total se ha sufrido un total de 14 días de retraso. Estos retrasos han sido en gran medida debidos a la inexperiencia del alumno a la hora de planificar proyectos. No obstante se piensa que la planificación no ha sido desastrosa sino más bien la palabra que lo definiría es optimista El resto de días de retraso que quedan por justificar se deben a las siguientes razones: 9 días de vacaciones en exámenes para preparar los mismos (este era uno de los riegos identificados a principio del proyecto) 1 día perdido por cierre de empresa debido a temporal de nieve 1 día perdido por examen en diciembre Estos casos se trataron de manera diferente. En el primer caso al ser ya un riesgo identificado se procedió a realizar lo estipulado en el plan de contingencia y se desplazaron las actividades pendientes 9 días. En el segundo y tercer caso se decidió no cambiar nada ya que se pensó que la repercusión de perder un día no iba a ser importante como así fue. Excluyendo la elaboración de la memoria estos 23 días de retraso son los que han hecho que el proyecto finalice el día 19 de marzo en vez del 16 de febrero como estaba planificado. 45 40 35 30 25 20 15 10 5 0 Fase 1 Fase 2 Fase 3 Fase 4 Fase 5 Fase 6 Fase 7 Planificado Real Figura 8.3 Planificado vs Real (Días) 97

98

9. CONCLUSIONES En este aparatado se van a describir las conclusiones a las que he llegado con la finalización de este proyecto. Durante el desarrollo de este proyecto, se han obtenido muchas conclusiones que son parte de los objetivos de éste y además, han servido para la toma de decisiones en el desarrollo del mismo. A continuación se comentan las conclusiones más importantes. Analizando los resultados, estimo que este proyecto se ha llevado a cabo de una forma razonable, se ha conseguido modificar el módulo de gestión de proyectos orientándolo a la construcción y aunque no se han implementado algunas de las cosas planeadas en un principio se ha dejado la puerta abierta a realizar estas sin que esto suponga un gran trabajo ya que aunque no se ha implementado si que se ha hecho un diseño completo de ellas. Además se han recogido ideas en vista a desarrollar nuevas funcionalidades del módulo en un futuro lo que deja abiertas las puertas de una mejora del mismo. 9.1 Plano personal El poder realizar el proyecto en una empresa grande e internacional como es Lantek Automatización S.A. posibilita una visión general y distinta de la informática. El tener necesidades informáticas tan grandes requiere de muchas personas trabajando en ello, de especialistas y sobre todo requiere de mucho trabajo en equipo. Asimismo la realización de este proyecto me ha servido como base para la comprensión y familiarización del mundo laboral: la distinta jerarquía existente, el respeto mutuo entre compañeros, las necesidades y premura de tiempo para realizar los trabajos, la necesidad de cooperación para realizar fines comunes así como la responsabilidad hacia tu trabajo. Al estar encuadrado dentro de un departamento cuyo fin es el desarrollo de un nuevo producto software me ha servido para comprobar cómo es el proceso de lanzamiento de un producto, los contactos con clientes potenciales y la confianza en las posibilidades del nuevo producto en el competitivo mercado actual. Desarrollar un proyecto de esta envergadura trabajando en una empresa es algo que lleva mucho trabajo y mucho cansancio mental. Aunque si ahora estuviera en el momento de elegir si realizar este proyecto o no, lo volvería a hacer ya que la realización de proyectos de esta índole da experiencia futura que se puede aprovechar y puede ser de bastante utilidad para desarrollar y planificar futuros proyectos. Asimismo la realización de este proyecto me ha ayudado a darme cuenta de la importancia de realizar un diseño muy bueno desde el principio para no tener que realizar cambios futuros en él. También me ha parecido de gran importancia para la planificación de proyectos el saber identificar todos los riesgos desde el principio y elaborar un buen plan de contingencia para combatirlos 99

100

10. GLOSARIO Ingeniería: Empresa que realiza la subasta de la construcción de la obra. Es la encargada de enviar las peticiones de oferta y gestionar las ofertas que reciba. Ofertante: Persona o empresa que una vez recibida la petición de oferta la rellena y la envía a la ingeniería Contratante: En nuestro caso el contratante es la ingeniería Contratista: En nuestro caso es el ofertante Pliegos de condiciones: Es un documento contractual. Es un conjunto de artículos o cláusulas que regulan los derechos, las obligaciones y las garantías mutuas entre las partes que intervienen en el desarrollo, la puesta en marcha y ejecución del proyecto. Acto de apertura de ofertas: Acto en el cual la mesa de contratación procede a la apertura de las ofertas económicas. Es en público y pueden acudir todas las empresas que hayan presentado ofertas. Registro de Contratistas: Registro creado para facilitar la presentación de documentos a las empresas, eximiéndolas de tener que entregar reiteradamente aquella documentación que se exige con carácter general y uniforme en la normativa contractual y en los Pliegos de condiciones (sólo la parte administrativa) Certificado digital: es un documento digital mediante el cual un tercero confiable (una autoridad de certificación) garantiza la vinculación entre la identidad de un sujeto o entidad y su clave pública. Firma electrónica: La firma electrónica es un medio que permite garantizar con seguridad la identidad del firmante y la integridad del texto o mensaje enviados. Este procedimiento hace posible la realización de distintas gestiones sin necesidad de desplazarse, obteniendo una respuesta inmediata. Para poder utilizar la firma electrónica es necesario haber obtenido previamente un certificado digital. Cuando se firma electrónicamente un mensaje o fichero para enviar, se aplica una función denominada hash. Esta función genera un dato llamado huella digital, que cambia en cada fichero o mensaje. Así, dos mensajes diferentes generarán huellas radicalmente diferentes. Por su parte, y mediante la aplicación de una segunda función, la huella se cifrará con la clave privada. El resultado será la firma electrónica. El receptor de un mensaje que incluya firma electrónica puede comprobar que el mensaje no ha sido modificado aplicando la función hash sobre el mensaje recibido. El resultado será la huella del mensaje. Sobre la firma electrónica recibida, el receptor aplicará la clave pública del emisor a fin de descifrarla. El resultado será una huella que 101

debe coincidir con la huella del mensaje. Si esto se produce, existe la garantía de que el mensaje no ha sido modificado y de que ha sido emitido por el titular de la firma. Esquema: Un esquema es un fichero que contiene la definición de los siguientes elementos básicos: metadatos, consultas, interfaz, aplicaciones/acciones, informes, filtros, vistas y datos. 102

11. BIBLIOGRAFÍA La bibliografía consultada ha sido toda a través de Internet: Pagina oficial de la MSDN Library de Microsoft. http://msdn.microsoft.com/library/default.asp Página de licitaciones de la Diputación de Valladolid http://www.diputaciondevalladolid.es/concursos/concursos_licitacion.shtml Proyecto Sílice http://www.csi.map.es/csi/silice.htm Departamento de Hacienda y Administración Pública del Gobierno Vasco http://www.ogasun.ejgv.euskadi.net/r51-314/es/ Solo arquitectura. Pagina web sobre el mundo de la construcción http://www.soloarquitectura.com/index.html WordReference. Diccionario online http://www.wordreference.com/ Willydev. Manuales VB6 y SQL http://www.willydev.net Creangel.com. Página con información UML http://www.creangel.com/drupal/ Proyectos fin de carrera. Página con ayudar para realizar un proyecto http://www.proyectosfindecarrera.com/ Página de licitación electrónica de la Xunta de Galicia http://www.xunta.es/licitacion-electronica 103

104

12. ANEXOS 12.1 Anexo I: Manual de instalación del SQL Server Enterprise para la ingeniería Instalar SQL Server es muy sencillo, dispone de un asistente que seguiremos para realizar la instalación proporcionando unos datos que se nos pedirá a lo largo del proceso. El proceso es sencillo y hay que tener en cuenta durante la instalación las opciones que vamos a instalar de SQL Server, la forma de autentificación, etc. Para instalar el SQL Server 2000 Enterprise hay que seguir los pasos como muestran las figuras del 1 al 9. Después de ejecutarse el fichero autorun.exe seleccionaremos de dos ventanas previas a la instalación: Componentes de SQL Server 2000 -> Instalar Servidor de bases de datos. SQL Server 2000 puede instalarse de dos formas diferentes o mejor dicho pueden instalarse varias instancias en una misma maquina, esto es muy útil si por ejemplo tenemos un SQL Server 7.0 y queremos instalar el 2000, podemos hacerlo y además podemos tenerlos ejecutándose en la misma maquina los dos al mismo tiempo. Paso 1: Pide el nombre del equipo y la forma de instalación, si es local o remota, si es remota deberemos informar desde que equipo lo vamos a instalar. Figura 1 Elección nombre equipo y forma de instalación 105

Paso 2: Seleccionar una opción de instalación, instalar una nueva instancia del SQL Server, instalar las partes clientes u opciones avanzadas donde podremos crear instalaciones desatendidas o reconstruir el registro del SQL Server si estuviera dañado. La opción central solo estará activa si ya tenemos un SQL Server instalado y queremos modificar su instalación. Figura 2 Selección tipo de instalación Paso 3: Herramientas que instalaremos, es decir, si instalamos solo las herramientas de cliente para tener acceso a un servidor remoto, herramientas de cliente y servidor como gestor de bases de datos o solo conectividad que instala únicamente el MDAC. Figura 3 Elección herramientas a instalar 106

Paso 4: Nombre de la instancia que vamos a crear, si es nueva instancia (no hay ningún SQL Server instalado) por defecto coge el nombre de la máquina aunque podemos cambiarlo, si es una segunda instalación debemos darle un nuevo nombre. Figura 4 Elección nombre de instancia Paso 5: Tipo de instalación, se recomienda una instalación personalizada por lo comentado anteriormente es importante escoger el juego de caracteres (imagen 9) para no tener problemas en futuras instalaciones y no tener que ir tocando el nivel de intercalación en cada base de datos que creemos, y elegir la ruta de los datos a una unidad con suficiente espacio en disco. Figura 5 Selección tipo de instalación 107

Paso 6: Selección de componentes a instalar, entre ellos ejemplos y ayudas (muy importante la ayuda, es el mejor manual de SQL Server). Figura 6 Selección componentes a instalar Paso 7: Usuario que ejecutará los servicios del SQL Server y de SQL Agent, por defecto lo ejecuta el usuario administrador. Figura 7 Cuentas de usuario 108

Paso 8: Modo de autentificación a SQL Server, se puede elegir entre autentificación Windows (la autentificación se realiza por medio de usuarios pertenecientes al dominio) o modo mixto que la autentificación se realiza por medio de usuarios dados de alta en el SQL Server, si se elige esta segunda opción, no es recomendable dejar el password en blanco. Figura 8 Modo de autenticación Paso 9: Configuración regional, en esta opción es donde vamos a elegir la forma que nuestro SQL Server trabajara con los datos, es decir, elegiremos el nivel de intercalación. Es recomendable no dejarlo por defecto y seleccionar un nivel de intercalación apropiado a nuestro lenguaje como por ejemplo el que muestra la imagen, en la imagen selecciona un SQL Server que no distinguirá entre mayúsculas ni entre acentos, qué significa esto? Que cuando se realicen búsquedas, consultas o transacciones nos dará lo mismo poner Tabla que tabla. 109

Figura 9 Configuración regional Por último nos pedirá el puerto y las bibliotecas de red que utilizará, este paso lo podemos dejar por defecto. A partir de este punto SQL Server instalará las opciones seleccionadas y cuando finalice la instalación tendremos un SQL Server listo para trabajar. 110

12.2 Anexo II: Creación de una base de datos para trabajar con ispace 12.2.1 Bases de datos 12.2.1.1 Introducción Este anexo explica qué tipo de servidores de datos son compatibles con Lantek ispace y cuál les ofrecen mayor rendimiento. Para poder acceder al servidor de base de datos debemos configurar en Lantek ispace que usuario y contraseña utilizar. Veremos cómo hacer este paso. Describiremos, también, cómo crear una nueva base de datos sobre la que comenzar a trabajar. Podemos disponer de una base de datos diseñada para Lantek ispace, como una base de datos antigua o la base de datos de ejemplo, disponible en la instalación. Esta base de datos de ejemplo está situada en la carpeta \Lantek\iSpace\Database. Se trata del archivo Urano.bck. En este caso, si disponemos de SQL Server 2000, veremos cómo preparar la base de datos desde el servidor de base de datos para que Lantek ispace pueda tener acceso a ella. 12.2.1.2 Elegir el tipo de servidor de bases de datos Para poder utilizar Lantek ispace se necesita disponer de un servidor de base de datos. Un servidor de bases de datos en un programa que almacena datos estructurados en forma de tablas relacionales, escucha un puerto TCP/IP a través del cual acepta conexiones de clientes autentificados, admite comandos en lenguaje SQL, y devuelve al cliente a través de la red los datos resultantes del procesamiento de los comandos. Los servidores de bases de datos compatibles con Lantek ispace son Microsoft SQL Server 7.0 y Microsoft SQL Server 2000 con sus distintas versiones. El CD de instalación incorpora MSDE (Microsoft SQL Server 2000 Desktop Engine) que es una versión limitada y gratuita de Microsoft SQL Server 2000. Aplicaciones como Microsoft Access 97 y 2000 no se pueden considerar servidores de bases de datos, ya que no están diseñadas para trabajar en red y las limitaciones que ofrecen son importantes. En realidad, Access no es quien crea y gestiona directamente los archivos con extensión mdb, sino el motor Jet de Microsoft. El motor Jet está formado por una serie de archivos que se instalan con Windows. Access no es más que un visor y gestor de archivos mdb. Por tanto la comparación ha de hacerse entre SQL Server y el motor Jet de Microsoft. Las diferencias son notables: SQL Server es un ejecutable autónomo, y Jet son archivos DLL. De esta forma Jet necesita estar situado en el equipo servidor, por el contrario, SQL Server puede estar instalado en otro equipo distinto, liberando de esta forma la carga de trabajo del equipo servidor. 111

SQL Server escucha un puerto TCP/IP, y Jet no. Esto es, SQL Server puede recibir conexiones (clientes que desean manipular datos) desde cualquier ordenador que tenga acceso por red a ese equipo. Jet no escucha ningún puerto. Aunque es posible trabajar en red con archivos mdb, el uso de la red se refiere únicamente a que el archivo mdb resida en un ordenador distinto a la aplicación. Sin embargo, todo el procesamiento se realiza en un único equipo. La red sólo actúa aquí únicamente como si fuese otro disco duro. SQL Server admite la programación cliente-servidor, y Jet no. La programación cliente-servidor se utiliza cuando queremos realizar aplicaciones, como Lantek ispace, que utilicen redes y que comuniquen entre sí a varios ordenadores. Con este sistema, tratamos de optimizar el tráfico de datos de las redes para evitar ralentizaciones y economizar el ancho de banda. Potencia en el manejo de datos y conexiones simultáneas. El motor Jet es un sistema de bases de datos personal pensado para manejarse desde un único ordenador o a lo sumo una red local pequeña. Para Jet, el acceso simultáneo a los datos es una excepción más que algo habitual. SQL Server está pensado para gestionar tantos clientes simultáneos como admita la potencia del hardware del equipo en el que esté instalado. SQL Server ofrece un acceso directo a los datos. Si utilizamos bases de datos mdb, cada vez que queramos actualizar la base de datos hay que enviarla completa por FTP. Esto, además de ser poco eficaz, puede dar problemas si la base está bloqueada (si en ese momento está recibiendo visitas). Lo que no podremos hacer nunca con los archivos mdb es modificar directamente desde nuestro ordenador el archivo que está en el servidor Nuestra recomendación, por tanto, es el uso de SQL Server 2000. Podemos usar cualquiera de sus versiones (Enterprise, Estándar, Personal, Developer o Desktop Engine). Como hemos dicho anteriormente, el instalador de Lantek ispace incorpora MSDE (Microsoft Desktop Engine), que se instalará únicamente si no encuentra en el sistema una versión superior de SQL Server. Las limitaciones más importantes de MSDE son: No dispone de interfaz gráfico ni de herramientas administrativas El tamaño de la base de datos no puede exceder de 2 GB Limitación de 10 usuarios concurrentes. 12.2.1 3 Clave de acceso al servidor de base de datos Si utilizamos cualquier otra versión de SQL Server distinta a MSDE necesitaremos configurar en Lantek ispace con que usuario y contraseña podemos acceder al servidor de base de datos. El usuario sa con contraseña en blanco es el que Lantek ispace reconoce por defecto. Veamos como modificar estos datos en caso necesario. Lanzamos Lantek ispace y en la ventana de conexión hacemos clic en Administrador. Después: Archivo Clave de acceso al servidor de base de datos 112

Figura 1 Cambio de clave de acceso Seleccionamos donde está el equipo con la aplicación servidor y cliente. Escribimos el nombre o dirección IP en caso de no ser el propio equipo local Figura 2 Selección de ubicación del servidor de datos Elegimos el tipo de servidor de la base de datos. Además, si el servidor de base de datos está en otro equipo, hay que indicar su nombre o dirección IP. 113

Figura 3 Selección tipo de la base de datos Es ahora donde podemos introducir un usuario y contraseña válidos para nuestro servidor de base de datos. Hacemos clic sobre finalizar Figura 4 Clave de acceso al servidor 114

12.2.1.4 Creación de una nueva base de datos Una nueva base de datos se puede crear antes o después de iniciar la conexión. Las dos opciones derivan en el mismo asistente de creación de bases de datos. Veamos como llegar hasta dicho asistente: Desde la ventana de conexión Ejecutamos Lantek ispace y en la ventana de conexión hacemos clic en Administrador. Archivo Nueva base de datos Figura 5 Creación nueva base de datos Esta opción es muy útil la primera vez que ejecutamos Lantek ispace ya que la conexión requiere que la referencia a una base de datos que ya exista. Desde la ventana del sistema: Archivo Servidor de datos a Nueva base de datos Figura 6 Creación nueva base de datos II 115

Las dos opciones llegan al mismo asistente de creación de bases de datos. Seleccionamos donde está el equipo con la aplicación cliente-servidor con el nombre o dirección IP en caso de no ser el propio equipo local. Figura 7 Ubicación servidor de datos Hacemos clic en siguiente y elegimos el tipo de la base de datos que se quiere crear con el usuario y contraseña del servidor de base de datos. En este momento se recomienda elegir la opción SQL Server. Si estuviéramos usando MSDE, que es el servidor de datos que Lantek ispace instala por defecto, escribiríamos el usuario sa y contraseña en blanco. Además, si el servidor de base de datos está en otro equipo, hay que indicar su nombre o dirección IP. Figura 8 Selección tipo de la base de datos 116

Damos un nombre y elegimos el directorio donde alojar la base de datos. El instalador de Lantek ispace crea la carpeta Database en el directorio de instalación que hayamos elegido. Allí encontrará bases de datos de ejemplo. Si en el paso anterior hemos elegido una base de datos de tipo Microsoft Office, tendremos que asegurarnos que la carpeta tiene los permisos de acceso necesarios. Figura 9 Datos de la base de datos Seleccionamos los esquemas que vamos a utilizar en la base de datos. Se muestra una ventana resumen. Figura 10 Elección de esquemas a utilizar 117

Figura 11 Resumen de la nueva base de datos Hacemos clic en siguiente y tras unos minutos se creará la base de datos. Figura 12 Proceso finalizado 118

12.2.1.5 Cargar una base de datos existente Veamos como cargar una base de datos, ya creada, para que el sistema pueda acceder a ella. Para este punto necesitamos disponer del servidor de datos SQL Server y un backup de la base de datos a restaurar (archivo con extensión bck). Existe una base de datos de ejemplo situada en la carpeta \Lantek\iSpace\Database Nos situamos en el equipo que tenga la aplicación cliente-servidor y SQL Server. Durante esta explicación supondremos que la base de datos existente está alojada en la carpeta Database del directorio de instalación de Lantek ispace. Si se decanta por otra ubicación tendrá que tenerlo en cuenta en los pasos siguientes. Abrimos el administrador corporativo del SQL Server. Vamos hasta base de datos y creamos una nueva base de datos. Figura 13 Cargar base datos existente Ponemos el nombre que queramos, por ejemplo BDEjemplo y aceptamos. Este nombre será el que después necesitemos en la aplicación cliente para referirnos a la base de datos. 119

Figura 14 Propiedades de la base de datos Esta base de datos está vacía, vamos a restaurarla con la que tenemos en el directorio database. Hacemos clic con el botón derecho sobre la base de datos creada, después Todas las tareas y luego Restaurar Base de Datos. Figura 15 Restaurar base de datos I En la pestaña general elegimos desde dispositivo 120

Figura 16 Restaurar base de datos II Hacemos clic en dispositivos y agregar. Seleccionamos la base de datos que tenemos en la carpeta database, que es un archivo con extensión bck, y aceptamos. Figura 17 Destino de la restauración En la pestaña opciones marcamos forzar restauración sobre la base de datos existente y nos fijamos bien que la opción mover al nombre del archivo físico de los archivos.mdf y.ldf tengan la ruta correcta. En nuestro caso, siguiendo la instalación por defecto, es: c:\lantek\lantek ispace\database\ 121

Figura 18 Opciones de la restauración Aceptamos y esperamos a que se restaure con éxito. 122

12.3 Anexo III : Manual de usuario del modulo Gestión de proyectos La Gestión de Proyectos tiene como finalidad principal la planificación, el seguimiento y el control de las actividades y recursos (tanto humanos como materiales) que se utilizan para lograr un objetivo concreto. Este capítulo describe como generar, planificar y gestionar un proyecto: Se define la secuencia de actividades del proyecto y asignan los recursos a utilizar en cada una de las ellas. Se define la disponibilidad de los recursos asignados para cada una de las actividades. Posteriormente y teniendo en cuenta todos estos parámetros se realiza la planificación del proyecto y se define lo que será el planning inicial del proyecto. A medida que este se desarrolla se puede ir visualizando su evolución y el porcentaje de proyecto completado frente al inicialmente estimado. Una vez planificado el proyecto y comenzado éste se asignan los diferentes tipos de gastos realizados. Se pueden realizar descargos de horas trabajadas por los diferentes empleados en cada una de las actividades. De la misma forma se generan los movimientos de materiales (entradas y salidas) realizados para cada actividad. Se pueden asignar también otros tipos de gastos asociados a ese proyecto como gastos del empleado (manutención, viajes, etcétera), gastos debidos a subcontrataciones y gastos varios. A través de la pestaña seguimiento de proyecto en la vista de detalle de cada actividad, se puede ir gestionando los costes reales de cada actividad, así como del proyecto frente a los inicialmente estimados. 12.3.1 Creación de un proyecto En este capítulo se describe como crear un proyecto. Se describen ciertos aspectos de interés en el proceso de creación de un proyecto. Los pasos para crear un proyecto nuevo son: Desde el Menú Principal >> Gestión de Proyectos >> Proyectos, pulsar Nuevo. El sistema presentará la vista detalle de proyectos, donde mínimamente (campo obligatorio) se asigna el nombre del proyecto. Se pueden introducir datos adicionales como descripción del proyecto. Una vez creado el proyecto, se procede a asignarle actividades y subactividades. Para crear una actividad ó subactividad, se selecciona la tabla de Proyectos y en ésta el proyecto concreto, se pulsa Navegar a Componentes y se selecciona la tabla de Actividades. 123

Figura 1 Proyectos (lista) Podemos visualizar el proyecto y sus actividades en modo lista, explorador ó detalle. La ventana anterior muestra una vista del proyecto y sus actividades en modo lista. El sistema permite visualizar el proyecto en modo árbol. Para ello, se debe seleccionar la vista en modo explorador, pulsando el botón que activa este modo Explorador. De esta forma, se visualizan todos los proyectos que estén abiertos en cada momento. En la ventana Explorador, se pueden desplegar los Proyectos, para ver las actividades de los mismos. El primer nivel a partir de un proyecto, son las actividades ó fases del proyecto. El siguiente nivel, serán las subactividades. Las actividades pueden ser de dos tipos, Capítulo y Partida. Toda actividad que tenga subactividades será de tipo Capítulo así como toda actividad de último nivel será de tipo Partida. Si seleccionamos una de las líneas del proyecto, y la abrimos, se nos presentará una ventana en modo detalle, con toda la información de esa línea. La siguiente ventana muestra un proyecto en modo explorador y una actividad en modo detalle. 124

Figura 2 Proyectos(Explorador), Actividades(Detalles) Dentro de cada actividad, existen diversos campos considerados clave: - T. Estimado: se define inicialmente y una vez que se ha creado la actividad. Servirá para realizar posteriormente la planificación del proyecto (ver capítulo 7.2 Planificación de Proyecto). - T. Completado: a medida que el proyecto se desarrolla, el usuario anota le porcentaje del total de la actividad realizado. - Estado: al igual que tiempo completado, el usuario rellena este campo, según el estado en el que se encuentre la actividad. - Desviación: el sistema alimenta este campo automáticamente, teniendo en cuenta los valores de los campos t. estimado y t. completado. Nos indica la desviación que llevamos en la realización del proyecto. - T. acumulado: el sistema rellena automáticamente este campo a partir de los descargos de horas de empleados realizados en cada actividad. 125

- Fecha creación/fecha cierre: el sistema rellena automáticamente estos campos en cada una de las actividades al realizar la planificación automática. También se podrán rellenar manualmente (ver capítulo 7.2 Planificación de Proyecto). -Tipo: como ya se ha explicado anteriormente depende de si tiene subactividades o no será de tipo Capítulo o Partida. Esto influirá también en los costes. A las actividades de tipo Capítulo no podremos asignarles costes sino que éstos se calcularán sumando los costes de sus subactividades. Una vez definidas todas las actividades y subactividades, se define la relación entre ellas. Que actividades son sucesoras ó antecesoras de cuales y que tipo de relación poseen. Para ello seleccionamos cada una de las Actividades y desde cada actividad, pulsamos Navegar a Componentes y seleccionamos las tablas Sucesores ó Predecesores según corresponda. Señalar que sólo se pueden enlazar actividades de último nivel. Figura 3 Actividades (Detalles) Para poder decidir el tipo de relación existente entre actividades, se dispone de la opción Tipo de enlace en la cual se puede elegir varias opciones como por ejemplo terminarempezar en la que la actividad se iniciará cuando termine la anterior. 126

12.3.2 Planificación de Proyecto Figura 4 Enlaces de actividades,actividades y Proyectos (Lista) La planificación de un proyecto se basa en la división de éste en diferentes partes: fases, actividades, tareas. Posteriormente se define la fecha inicio ó fin deseada y la duración estimada de las actividades. A continuación se identifica y asigna el personal responsable de cada una de las actividades. Adicionalmente se definen los recursos adicionales necesarios para ejecutar cada una de ellas. Finalmente y para poder disponer de una visión analítica del proyecto, se utilizan herramientas gráficas de visualización como el Diagramas de Gantt. En este capítulo describe los pasos a seguir para planificar un proyecto utilizando Lantek ispace. 12.3.2.1 Gestión de Recursos Para la ejecución de las diferentes actividades del proyecto hay que identificar, planificar y asignar los diferentes recursos necesarios, tanto humanos como materiales. Este capítulo describe los pasos a seguir para la gestión de recursos de un proyecto. 12.3.2.1.1 Definir y Asignar Recursos Definimos los recursos que van a formar parte de las actividades así como su disponibilidad para cada una de las actividades. 127

Figura 5 Actividades (Detalles) Los pasos para crear un recurso nuevo son: Desde el Menú Principal >> Gestión de Proyectos >> Recursos, pulsar Nuevo. El sistema presentará la vista detalle del recurso, donde mínimamente (campos obligatorios) se asignan la referencia y el nombre del recurso. Se pueden introducir datos adicionales. Una vez creados los recursos, asignamos estos a las diferentes actividades y subactividades. Para ello, y una vez seleccionada la Actividad concreta en la tabla de Actividades, pulsamos Navegar a Componentes y seleccionamos la tabla Asignaciones de Recursos. Pulsar Nuevo y asignar el recurso en campo Recurso que se muestra. El sistema crea la asignación de la actividad seleccionada con el recurso registrado. También podemos realizar la asignación navegando desde la tabla de Recursos y asignando la Actividad. 12.3.2.1.2 Planificar disponibilidad del recurso El siguiente paso en la planificación del proyecto es hacer un balanceo de recursos, para estar seguro de que el equipo del proyecto tiene el tamaño adecuado y de que la carga de trabajo de cada recurso es factible. 128

Figura 6 Recursos Para ello disponemos de cuatro acciones, a las cuales accedemos seleccionando la tabla de Recursos y pulsando Lista de Acciones como aparece en la figura 7: 12.3.2.1.3 Actualizar Capacidad del recurso Se puede actualizar todo o seleccionar el periodo de tiempo que se desea actualizar para calcular la capacidad de dicho recurso. Esta actualización se realizará la crear por primera vez un recurso y cuando se desee actualizar dicha capacidad en el caso de que el calendario del recurso haya cambiado Figura 7 Actualizar capacidad recurso 129

12.3.2.1.4 Mostrar Disponibilidad del Recurso Para visualizar gráficamente mediante un calendario la disponibilidad del recurso, seleccionamos Mostrar disponibilidad del recurso. Aparecen de forma gráfica las diferentes jornadas laborables que el recurso tiene disponibles para proyectos. Se van a distinguir tres tipos de jornadas: Días laborables (los que coinciden con el calendario de dicho empleado), días no laborables (días que no se trabaja) y días laborables modificados (son días en los que el calendario laboral de dicho recurso no coincide con las horas de capacidad). Figura 8 Calendario disponibilidad recurso 12.3.2.1.5 Editor de Disponibilidad del Recurso Esta acción permite editar la disponibilidad del recurso cada día (en horas) durante un periodo de tiempo determinado. (El editor de disponibilidad se utilizará cuando la capacidad del recurso para proyectos no coincide con su calendario laboral o bien no se quiere actualizar a partir de él y se quiere editar manualmente). Las horas asignadas al recurso para cada día se pueden ver en el calendario que muestra esta acción deslizando el puntero por encima del día que interese (En la pantalla se puede ver que el 16 de Marzo tiene asignadas 2 horas, ya que está dentro del rango del 14 al 18 de Marzo). 130

Figura 9 Editor disponibilidad recurso 12.3.2.1.6 Mostrar Asignaciones de Recurso Con esta acción se puede ver y diferenciar de forma gráfica las asignaciones de tiempo planificadas para el recurso seleccionado en cada actividad y proyectos de los que forma parte. Figura 10 Asignaciones de recursos Con la opción Parámetros de configuración se puede determinar que color se desea para mostrar que un recurso está en curso o está cerrada. También se puede mostrar si la 131

Asignación al recurso es menor que su Disponibilidad (que en este caso está en amarillo) o si Asignación al recurso es mayor que su Disponibilidad (en rojo), etcétera. 12.3.2.2 Gestión de Planificación Para ello disponemos de tres acciones, a las cuales accedemos seleccionando la tabla de Proyectos y pulsando Lista de Acciones : Figura 11 Proyectos (Lista) 132

12.3.2.2.1 Planificación Automática Limitación de recursos Figura 12 Planificación automática Esta opción permite planificar el proyecto de alguna de las siguientes formas: - Si el campo esta activo, planificamos teniendo en cuenta la limitación de recursos. Es decir respetando las horas/días de trabajo de disponibilidad que poseen los recursos asignados al proyecto. Los recursos según esta planificación nunca tendrán asignadas más horas de las que tienen disponibles. - Si el campo no esta activo, planificamos sin tener en cuenta limitación de recursos. Es decir, la planificación se lleva a cabo sin respetar la disponibilidad de recursos, siguiendo la secuencia entre actividades y los tiempos estimados definidos. Los recursos podrán tener estimadas más horas que las de su propia disponibilidad. Planificar desde la fecha final/desde la fecha de inicio Se puede planificar desde una fecha inicio y el planificador te definirá la fecha fin óptima ó desde una fecha fin y el planificador te define al fecha inicio. Opciones En caso de que una actividad no tenga recursos asignados, el calendario laboral que ésta seguirá será el configurado en esta pantalla. Al ir a planificar un proyecto hay que tener en cuenta una serie de puntos: - La primera vez que se realiza la planificación de un proyecto, es decir una vez que se ha definido toda la estructura, tiempos estimados, relaciones entre las actividades y 133

asignación de recursos y antes de comenzar dicho proyecto la planificación automática nos actualizará la fecha de inicio y fin de dicho proyecto a partir de la fecha que se haya definido como comienzo del proyecto. - Una vez que un proyecto ha comenzado, es decir, hay actividades que están en curso y queremos volver a replanificar el proyecto, lo hará a partir de la fecha actual y todas las actividades que han sido empezadas no cambiarán su fecha de inicio. En cambio la fecha de fin se replanificará en función de los parámetros definidos (interrelaciones, asignación de recursos, etc ) - Cuando una actividad ha sido cerrada y queremos replanificar el proyecto está no se moverá, es decir su fecha de inicio y fin quedará fija puesto que la actividad ya no está en curso. El resto de actividades en curso y sin empezar se replanificarán a partir de la fecha actual en la que se lance el replanificador y según los parámetros definidos. 12.3.2.2.2 Visualizador Gantt El sistema muestra el Diagrama de Gantt del proyecto en cada momento. Para ello y una vez seleccionado el proyecto en cuestión de la tabla de Proyectos, pulsamos en Lista de Acciones, y seleccionamos la acción Planificador. Mediante este diagrama se puede resolver el problema de la programación de actividades, es decir, su distribución conforme a un calendario, de manera tal que se pueda visualizar el periodo de duración de cada actividad, sus fechas de iniciación y terminación e igualmente el tiempo total requerido para la ejecución de un proyecto. Esta acción permite también que se siga el curso de cada actividad, al proporcionar información del porcentaje ejecutado de cada una de ellas, así como el grado de adelanto o atraso con respecto al plazo previsto. Este gráfico consiste simplemente en un sistema de coordenadas en que se indica: - En el eje Horizontal: un calendario, o escala de tiempo definido en términos de la unidad más adecuada al trabajo que se va a ejecutar: día, semana, mes, etc. - En el eje Vertical: Las actividades que constituyen el trabajo a ejecutar. A cada actividad se hace corresponder una línea horizontal cuya longitud es proporcional a su duración en la cual la medición efectúa con relación a la escala definida en el eje horizontal conforme se ilustra. Esta configuración es editable mediante la opción Parámetros de configuración. 134

Figura 13 Visualizador Gantt 12.3.2.2.3 Mostrar Asignaciones de Recursos Con esta acción se puede visualizar todos los recursos asignados a un proyecto determinado y el tiempo asignado para cada actividad. Como se ha explicado anteriormente, ver capítulo 7.2.1. Gestión de Recursos, podremos visualizar de forma gráfica la asignación de tiempo realizada para cada recurso y analizar si ésta es menor, mayor ó igual a su disponibilidad. 12.3.3 Asignación de Costes 12.3.3.1 Costes reales Figura 14 Asignación de recursos A un Proyecto nuevo, le podemos asignar todo tipo de costes asociados, debidos a diferentes conceptos: horas trabajadas, movimientos de materiales, subcontrataciones, gastos del empleado y gastos varios. Los diferentes costes que se pueden asignar a un proyecto y sus actividades: 135

Descargo de horas (1): se realiza a partir del módulo de empleados. Este concepto consiste en asignar los costes de las horas trabajadas por los empleados en un proyecto específico Gastos de empleado (2): en este apartado se engloban los gastos diversos que realiza un empleado tales como: manutención, kilometraje, viajes... Movimientos de materiales en almacén (3): se realiza a partir del módulo de almacenes. Se refiere a asignar los costes debidos a los materiales de almacén consumidos en este proyecto Subcontrataciones u órdenes de compra de materiales que no entran en almacenes (4): se realiza a partir del módulo de órdenes de compra. Consiste en la asignación de órdenes de compra realizadas específicamente para este proyecto Costes varios (5) imputados a una actividad: Es posible asociar un coste a una actividad navegando a partir de la actividad a Detalles de costes varios. Para asignar estos costes a las actividades, estas deben ser de último nivel. La manera de realizarlo es desde la ventana de actividades pulsando en Navegar a componentes y eligiendo la opción deseada. Figura 15 Actividades (Detalles) Una vez asignados estos costes a las actividades, si queremos que queden reflejados en el coste actual de las mismas y del proyecto desde la ventana de proyectos, una vez seleccionado el proyecto en cuestión, pulsamos en Lista de Acciones y seleccionamos Actualizar costes reales 136

12.3.3.2 Costes estimados Figura 16 Proyectos (Detalles) A cada actividad, a parte de asignarle unos costes reales también se le les puede asignar costes estimados que son los costes que la empresa piensa en un principio que va a costar la realización del proyecto. A diferencia de los costes reales para asignar un coste estimado a una actividad basta con abrir dicha actividad y rellenar los campos manualmente. Introduciendo una cantidad y un coste unitario el coste total se calcula automáticamente. Al igual que en los costes reales sólo se pueden asignar costes estimados a actividades de último nivel y a partir de estas se irán calculando los costes de las actividades superiores y del proyecto. 137

Figura 17 Actividades (Detalles) 138

12.4 Anexo IV: Futuro funcionamiento para el ofertante A la hora de conectarse deberá elegir en parametros de conexión la ubicación de la base de datos, que en caso del ofertante será internet. Elegirá la base de datos de la ingeniería y en empresa elegirá su propia empresa. Así la oferta que realice quedará guardada directamente en la base de datos de la ingeniería. Figura 1 Parámetros de conexión Un ofertante solo podrá ver los proyectos a los que pueda presentar oferta y solo podrá hacer eso, presentar oferta y ver el estado de sus ofertas. Le aparecerá en la pestaña Ofertas las peticiones recibidas, que serán un presupuesto con todos los datos a cero y con las líneas que haya decidido la ingeniería. Este presupuesto no contendrá todos los capítulos y partidas del presupuesto total que haya elaborado la ingeniería para sí misma sino que contendrá sólo los capítulos y partidas que haya ofrecido al ofertante que se ha conectado para presentar la oferta. Este presupuesto tendrá de nombre el nombre de la empresa y la fecha de creación. 139

Figura 2 Proyectos (Detalles) Figura 3 Presupuestos (Detalles) 140

Figura 4 Líneas de presupuesto (Detalles) Una vez completados todos los datos de la ofertas enviará esta a la ingeniería. Una vez enviada la oferta ya no aparecerá en la pestaña Ofertas sino que lo hará en la pestaña Ofertas enviadas Si esta oferta es rechazada y la ingeniería quiere que se le presente otra oferta, se encargará de mandar otra petición nueva. Las imágenes mostradas aquí arriba son de la pestaña Presupuestos pero entre esta interfaz y la que mostrará la pestaña Ofertas no habrá casi ninguna diferencia. 141