Departamento de Informática y Automática Cómo afrontar la Ingeniería del Software en un Proyecto Fin de Carrera María N. Moreno García Contenidos • El proceso • La memoria L i • Descripción del proyecto p p y • Documentación técnica • Proyectos “especiales” • Conclusiones C l i El proceso El proceso El proceso • Modelo primitivo Codificación Prueba • Modelo en cascada Investigación preliminar Análisis Diseño Codificación Prueba Mantenimiento El proceso • Modelo seguido en “muchos” (¿80%?)proyectos FC Investigación preliminar Codificación Prueba Objetivos y requisitos a alto nivel Planificación y estimación de costes Análisis Diseño Investigación preliminar El proceso • EEn la mayoría de los PFC (¿95%?) se afirma que se ha l í d l PFC ( 95%?) fi h seguido el Proceso Unificado Codificación Prueba Fases Flujos de trabajo Inicio Elaboración Construcción Transición Requisitos Análisis Diseño Implementación Pruebas Iteraciones preliminares iter. iter #1 iter iter. #2 iter. iter #n iter iter. #n+1 Iteraciones ite r. r #n+2 iter. iter #m iter iter. #m+1 El proceso • Consecuencias – Arquitectura equivocada Arquitectura equivocada – Código desestructurado – Inconsistencia entre la implementación, análisis y diseño – Difícil corrección de errores – Propagación de errores – Sistema difícil de mantener Sistema difícil de mantener – etc., etc. etc. La memoria La memoria • Guía de realización García, F.J., Maudes, J.M., Piattini, M.G., García‐Bermejo, J.R. y Moreno, M.N., “Proyecto de Final de Carrera en la Ingeniería Técnica en Informática: Guía de Realización y Documentación”, Departamento de Informática y Automática, Universidad de Salamanca, 2000. http://diaweb.usal.es/diaweb/comun/descargar.jsp?f=10011523pfc.pdf Documentación técnica • Guía de realización Descripción del proyecto Descripción del proyecto • Apartados – – – – – – – Introducción Obj ti Objetivos del proyecto d l t Conceptos teóricos Técnicas y herramientas Técnicas y herramientas Aspectos relevantes del desarrollo Trabajos relacionados Conclusiones y líneas de trabajo futuro Descripción del proyecto • Introducción – Presentación del tema – Descripción del contenido D i ió d l t id y estructura de la memoria Descripción del proyecto • Objetivos del proyecto – Requisitos – Técnicos Té i Descripción del proyecto • Conceptos teóricos – Conceptos sobre una determinada materia o determinado dominio de conocimiento necesarios para la comprensión del proyecto conocimiento necesarios para la comprensión del proyecto RecTour: Sistema de Recomendación de Actividades Turísticas Audioaid: Training Descripción del proyecto • Técnicas y herramientas – Técnicas metodológicas – Herramientas de desarrollo H i t d d ll • Aspectos destacados • Referencias • Estudio de alternativas Descripción del proyecto Descripción del proyecto Descripción del proyecto Aspectos relevantes del desarrollo • Aspectos más interesantes del desarrollo del sistema software objeto del proyecto – Modelo de proceso – Actividades de análisis, diseño e implementación – Justificación de decisiones tomadas en el proyecto … Justificación de decisiones tomadas en el proyecto • NO es otro apartado de conceptos teóricos • Aspectos destacados del proyecto desarrollado Aspectos relevantes del desarrollo El Proceso unificado es un modelo iterativo e incremental guiado por incremental, guiado por los CU, centrado en la arquitectura, BLA, BLA… Aspectos relevantes del desarrollo Aspectos relevantes del desarrollo Otros apartados • Trabajos relacionados – Únicamente para proyectos relacionados con temas de i investigación, experimentales, de aplicación de ti ió i t l d li ió d tecnologías novedosas, etc. • Conclusiones y líneas de trabajo futuras – – – – Resultados del proyecto p y Técnicas Posibles mejoras del proyecto Continuación del trabajo ó d l b Documentación técnica Documentación técnica • Apartados – – – – – Anexo 1 – Plan del proyecto software A Anexo 2 – 2 Especificación de requisitos del software E ifi ió d i it d l ft Anexo 3 – Especificación de diseño Anexo 4 ‐ Documentación técnica de programación Anexo 4 Documentación técnica de programación Anexo 5 ‐ Manuales de usuario Plan del proyecto software • Estimación de costes – Sólo para proyectos de Ingeniería Informática • Planificación temporal El proyecto NO es un trabajo de prácticas Especificación de requisitos del software • Obj Objetivos ti • Requisitos funcionales, no funcionales y de información • Modelo de casos de uso (CU) – Sistema – Paquetes de CU • Descripción de casos de uso – Plantillas • Diagrama de clases (modelo del dominio) – Clases entidad • Paquetes de clases de análisis – Clases entidad, control e interfaz (boundary) • Realización de casos de uso – Diagramas de secuencia, comunicación, actividad, estados… Especificación de requisitos del software Modelo de casos de uso Abstraerse de detalles de implementación p Descripción de casos de uso Especificación de requisitos del software Modelo de dominio • No pueden repetirse clases • Las clases entidad de los paquetes de análisis son las mismas que las del modelos de dominio Paquetes de análisis Especificación de requisitos del software • Realización de casos de uso No sólo existen los diagramas de secuencia Especificación de diseño • Modelo de diseño – Clases con atributos y métodos Clases con atributos y métodos – Realización de casos de uso – Diseño de la interfaz – Subsistemas de diseño – Arquitectura • Modelo de despliegue Modelo de despliegue • Modelo de implementación Especificación de diseño ¿Selección guardar datos? ó Especificación de diseño • Diseño de la interfaz de usuario – Directrices – Plantilla – Prototipo Especificación de diseño • Arquitectura Gestión de facturas de comprador Capa específica de la aplicación Gestión de planificación de pagos Java.applet Gestión de cuentas Java.awt Capa general de la aplicación Java.rmi Capa intermedia Máquina virtual Java Navegador de Internet Capa de software del sistema TCP/IP Especificación de diseño • Despliegue e implementación Documentación técnica de programación • • • • Documentación de bibliotecas Código fuente Manual del programador Pruebas unitarias Información necesaria para modificar y mantener el sistema Manuales de usuario • Documento de instalación y configuración • Manual de usuario Proyectos “especiales” Proyectos especiales • Tipos – – – – – Investigación Ci tífi Científicos Robótica Uso de herramientas y lenguajes no convencionales Uso de herramientas y lenguajes no convencionales … • Recursos – Funcionalidad: Casos de uso – Cálculos complejos: Diagramas de actividad – Sistemas controlados por estímulos externos: Diagramas l d í l de estados Proyectos “especiales” éxito Conclusiones Conclusiones • El proyecto permite poner en práctica los conocimientos adquiridos en el l á l d d l resto de asignaturas de la titulación • El proyecto da acceso al título de “ingeniero” • En el proyecto hay que poner en práctica técnicas y actividades de ingeniería • Programar puede hacerlo cualquiera pero desarrollar un sistema software g p q p de calidad solo pueden hacerlo ingenieros en informática ¡Gracias por vuestra atención!
© Copyright 2024