Cómo afrontar la Ingeniería del Software en un Proyecto Fin de

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!