1 Aplicación P2P eGorilla Ingeniería del Software - 4º B Curso Académico: 2008/2009 Facultad de Informática Universidad Complutense de Madrid.

1 1 Aplicación P2P eGorilla Ingeniería del Software - 4º ...
Author: Ana María Marín Redondo
0 downloads 0 Views

1 1 Aplicación P2P eGorilla Ingeniería del Software - 4º B Curso Académico: 2008/2009 Facultad de Informática Universidad Complutense de Madrid

2 2 Índice de contenidos Introducción Gestión del Proyecto Funcionamiento Interno Demo – Cliente eGorilla – Servidor eGorilla Aplicación P2P eGorilla Facultad de Informática Universidad Complutense de Madrid Ingeniería del Software - 2008/2009

3 3 Introducción Aplicación P2P desarrollada en java  Multiplataforma Permite: – Compartición de archivos – Descarga de archivos – Previsualización de archivos incompletos – Visualización de archivos completos – Etc. Aplicación P2P eGorilla Facultad de Informática Universidad Complutense de Madrid Ingeniería del Software - 2008/2009

4 4 Gestión del Proyecto – Grupo de Desarrollo Javier Salcedo Gómez Iván Munsuri Ibáñez José Miguel Guerrero Hernández Luis Fernándo Ayuso Pérez Iñaki Goffard Giménez Francisco Javier Sánchez Pardo Víctor Adaíl Ferrer David Fernández Máiquez Mercedes Bernal Pérez Qiang Zhou Ni Pedro Pablo García García Aplicación P2P eGorilla Facultad de Informática Universidad Complutense de Madrid Ingeniería del Software - 2008/2009

5 5 Gestión del Proyecto – Grupo de Desarrollo Estructura Lineal en un principio Posteriormente Jerárquica  Jefe de Proyecto – Mejor coordinación  Mayor Rendimiento Numerosas altas y bajas – Dificultades de Planificación. Retraso en la planificación prevista -> Hitos no cumplidos. – Dificultades de Comunicación. – Dificultades de Integración. – Dificultades de Organización. Aplicación P2P eGorilla Facultad de Informática Universidad Complutense de Madrid Ingeniería del Software - 2008/2009

6 6 Gestión del Proyecto – Consideraciones Generales Modelo Iterativo e Incremental en Espiral Gestión de Calidad  CMM - NIVEL 2 Proceso Unificado de Desarrollo – Casos de uso – Especificación de Requisitos – Arquitectura y Diseño del Proyecto – Plan de Gestión de la Configuración – Plan de Fase y de Iteraciones Planificación del Proyecto – Plan de Gestión de Riesgos – Estimación – Revisión Técnica Formal Aplicación P2P eGorilla Facultad de Informática Universidad Complutense de Madrid Ingeniería del Software - 2008/2009

7 7 Gestión del Proyecto – Casos de uso, Especificación de Requisitos y Diseño Aplicación P2P eGorilla Facultad de Informática Universidad Complutense de Madrid Ingeniería del Software - 2008/2009

8 8 Gestión del Proyecto – Plan de Fase Inicialmente Estructura Lineal Posteriormente Jefe de Proyecto Múltiples altas y bajas – 5 Altas – 3 Bajas Documentación en Microsoft Office 2003 Documentación de UML y Código Fuente  NetBeans 6.1 Aplicación P2P eGorilla Facultad de Informática Universidad Complutense de Madrid Ingeniería del Software - 2008/2009

9 9 Gestión del Proyecto – Plan de Iteraciones 7 Iteraciones en total Final de Iteración  Entrega Planificación – Ejemplo: Hito de Funcionamiento en los Laboratorios pospuesto Subgrupos específicos Aplicación P2P eGorilla Facultad de Informática Universidad Complutense de Madrid Ingeniería del Software - 2008/2009

10 10 Gestión del Proyecto – Plan de Gestión de Configuración Objetivos: – Coordinar el proceso de desarrollo. – Reflejar el estado del proyecto. – Seguimiento de la evolución del proyecto. Duración: – Todo el ciclo de vida del Software: Inicio, desarrollo y mantenimiento. – Nuestro proyecto : Inicio y desarrollo. Aplicación P2P eGorilla Facultad de Informática Universidad Complutense de Madrid Ingeniería del Software - 2008/2009

11 11 Gestión del Proyecto – Plan de Gestión de Configuración Proceso de control de gestión de configuración – Identificación de ECS. Documentos: Arquitectura, Casos de uso, Diseño del sistema…. Codigo fuente: Cliente_eGorilla, Servidor_eGorilla, Comunicaciones Muchos elementos y versiones, se crea el documento Tablas ECS donde recompilar todos los ECS y reflejarlos de manera detallada. Aplicación P2P eGorilla Facultad de Informática Universidad Complutense de Madrid Ingeniería del Software - 2008/2009

12 12 Gestión del Proyecto – Plan de Gestión de Configuración Enumeración de las líneas bases: – Los hitos fueron establecidos coincidiendo con las entregas parciales fijadas por el profesor. Un total de 6 entregas incluida la actual. Aplicación P2P eGorilla Facultad de Informática Universidad Complutense de Madrid Ingeniería del Software - 2008/2009

13 13 Gestión del Proyecto – Plan de Gestión de Configuración Control de la Configuración – Uso del sistema de control de versiones Subversion estando alojado el repositorio en el servicio ofrecido por Google Code. URL: https://egorilla.googlecode.com/svn/trunk/doc – Documento Plan de gestion de configuración. Aplicación P2P eGorilla Facultad de Informática Universidad Complutense de Madrid Ingeniería del Software - 2008/2009

14 14 Gestión del Proyecto – Plan de Gestión de Riesgos Objetivos básicos: – Identificar posibles riesgos en el proyecto. – Elaborar planes para evitar o minimizar el efecto de dichos riesgos. Aplicación P2P eGorilla Facultad de Informática Universidad Complutense de Madrid Ingeniería del Software - 2008/2009

15 15 Gestión del Proyecto – Plan de Gestión de Riesgos Proceso de gestión de riesgos – Identificación de riesgos. Riesgos de Proyecto (calendario/recursos): Altas/bajas grupo, organización del grupo, cambios en requisitos iniciales, restricciones SW/HW en laboratorios… Riesgos de Producto (calidad/rendimiento): mal diseño protocolo eGorilla, dificultad en la definición de una arquitectura estable, … Riesgos de Negocio (viabilidad del SW): problemas legales, poca fiabilidad que desmotive para su uso, … Aplicación P2P eGorilla Facultad de Informática Universidad Complutense de Madrid Ingeniería del Software - 2008/2009

16 16 Gestión del Proyecto – Plan de Gestión de Riesgos – Análisis de riesgos: Evaluar la probabilidad de cada riesgo (muy baja, baja, moderada, alta o muy alta). Evaluar las consecuencias de cada riesgo (Insignificantes, serias, tolerables o catastróficas). En función de lo anterior priorizar los riesgos. Aplicación P2P eGorilla Facultad de Informática Universidad Complutense de Madrid Ingeniería del Software - 2008/2009

17 17 Gestión del Proyecto – Plan de Gestión de Riesgos – Planificación de riesgos: Valorar cada riesgo y establecer una estrategia para resolverlo. Estrategias orientadas a: – Evitar el riesgo – Minimizar sus consecuencias – Plan para afrontarlo. Aplicación P2P eGorilla Facultad de Informática Universidad Complutense de Madrid Ingeniería del Software - 2008/2009

18 18 Gestión del Proyecto – Plan de Gestión de Riesgos – Seguimiento de riesgos: Evaluación periódica de los riesgos, de su probabilidad y consecuencias. Realizado en cada iteración que se ha llevado a cabo en el proyecto (7 en total), actualizándose en cada una de ellas el documento del Plan de Gestión de Riesgos. Aplicación P2P eGorilla Facultad de Informática Universidad Complutense de Madrid Ingeniería del Software - 2008/2009

19 19 Gestión del Proyecto – Estimación – Estimación de Costes Motivación – Obtener coste del proyecto. – Obtener tiempo de desarrollo del proyecto. – Realizar una planificación para la obtención del producto final. – Uso eficiente de los recursos. Metodología – COCOMO II POST-ARQUITECTURA. Aplicación P2P eGorilla Facultad de Informática Universidad Complutense de Madrid Ingeniería del Software - 2008/2009

20 20 Gestión del Proyecto – Estimación – Estimación de Costes Desarrollo – Obtención de Puntos de Función. Se obtiene Medida del tamaño de un sistema desde el punto de vista de la funcionalidad ofrecida al usuario. No mide el esfuerzo – Parámetros medidos DET (DATA ELEMENT TYPE) RET (RECORD ELEMENT TYPE) FTR (FILE TYPE REFERENCED) Aplicación P2P eGorilla Facultad de Informática Universidad Complutense de Madrid Ingeniería del Software - 2008/2009

21 21 Gestión del Proyecto – Estimación – Estimación de Costes Tipos de función de datos – ILF (Ficheros lógicos internos) datos relacionados o información de control. Total 49. – EIF (Ficheros de interfaz interno) grupos de datos o información de control. Total 5. – EI (Entradas externas). Total 10. – EO (Salidas externas). Total 8. – EQ (Consultas externas). Total 6. Aplicación P2P eGorilla Facultad de Informática Universidad Complutense de Madrid Ingeniería del Software - 2008/2009

22 22 Gestión del Proyecto – Estimación – Métricas Productividad – 12 personas X 8 meses, lo que equivale a 96 personas X mes. – Productividad = 4134 LOC/ 96 personas X mes = 43,06 LOC / persona X mes. Fiabilidad – A día de hoy es alta ya que hemos resuelto muchos errores en las tandas de pruebas. Número de páginas de documentación/líneas de código – Nº de paginas / 100 LOC = 358 páginas/41,34 = 8,6 páginas por cada 100 líneas de código Aplicación P2P eGorilla Facultad de Informática Universidad Complutense de Madrid Ingeniería del Software - 2008/2009

23 23 Gestión del Proyecto – Estimación – Métricas Número de errores detectados en las pruebas previas a la entrega – Primera tanda -> 15 errores – Segunda tanda ->7 errores Número de líneas de código con factor de ajuste – PFP = 1.16 * 78=90,48. – Número de líneas de código = PFP * 53 (java) = 4795 LOC Aplicación P2P eGorilla Facultad de Informática Universidad Complutense de Madrid Ingeniería del Software - 2008/2009

24 24 Gestión del Proyecto – Estimación – Conclusiones Desfase de 4 personas del número de integrantes reales, con respecto a la estimación. Periodos de desarrollo paralizados por épocas de examenes. Gran cantidad de líneas de código programadas pero que no han formado parte de la aplicación final Aplicación P2P eGorilla Facultad de Informática Universidad Complutense de Madrid Ingeniería del Software - 2008/2009

25 25 Funcionamiento Interno - Cliente GestorDeConfiguracion GestorDeFicheros GestorDeErrores GestorDeEstadisticas PeerToPeer – Descargador – GestorEgorilla – GestorDeSubidas Aplicación P2P eGorilla Facultad de Informática Universidad Complutense de Madrid Ingeniería del Software - 2008/2009

26 26 Funcionamiento Interno - GestorDeConfiguración Motivación – Gestión de la información de configuración de la aplicación cliente – Gestión de la información de los servidores registrados en la aplicación cliente Metodología – Uso de ficheros de “properties” para la información de configuración – Uso de serialización de objetos para la información de servidores Aplicación P2P eGorilla Facultad de Informática Universidad Complutense de Madrid Ingeniería del Software - 2008/2009

27 27 Funcionamiento Interno - GestorDeConfiguración Diseño – Uso de patrones: Patrón Singleton: objeto único y accesible globalmente Patrón Observador: actualización de objetos dependientes con mínimo acoplamiento. – Empleo de ficheros: De texto, para las “properties” Binarios, para la información de servidores – Relaciones Usado por el Gestor de Ficheros y el módulo PeerToPeer Aplicación P2P eGorilla Facultad de Informática Universidad Complutense de Madrid Ingeniería del Software - 2008/2009

28 28 Funcionamiento Interno - GestorDeFicheros Motivación – Descargar ficheros. – Compartir ficheros completos. – Compartir ficheros incompletos. – Uso eficiente del disco. Metodología – Uso de buffer’s de memoria. – Ficheros de indexado para los archivos. Aplicación P2P eGorilla Facultad de Informática Universidad Complutense de Madrid Ingeniería del Software - 2008/2009

29 29 Funcionamiento Interno - GestorDeFicheros Diseño – Simple. 2 operaciones básicas. Un solo tipo de indexado. Influencias de diferentes patrones de diseño. – Relaciones Es la interfaz que abstrae al resto de la aplicación de la utilización de los archivos en el disco. Aplicación P2P eGorilla Facultad de Informática Universidad Complutense de Madrid Ingeniería del Software - 2008/2009

30 30 Funcionamiento Interno - GestorDeErrores Motivación – Localización de los errores. – Registro de los errores. – Notificación de los errores. Metodología – Registro de los errores en archivo de log. Aplicación P2P eGorilla Facultad de Informática Universidad Complutense de Madrid Ingeniería del Software - 2008/2009

31 31 Funcionamiento Interno - GestorDeEstadisticas Motivación – Información sobre el volumen de datos descargados/enviados. – Información sobre el numero de archivos descargados. – Información sobre la velocidad de descarga/envio. Metodología – Registro de la información de manera persistente para su disponibilidad en cualquier momemento. Aplicación P2P eGorilla Facultad de Informática Universidad Complutense de Madrid Ingeniería del Software - 2008/2009

32 32 Funcionamiento Interno - GestorDeEstadisticas Diseño – Arquitectura de datos compartidos donde el componente hace función de repositorio. – Mantiene los datos de una manera persistente y siempre estan disponible para cualquier modulo que lo solicite. – Patrón Observador para captar los datos de los productores. – Ofrece una fachada para servir de los datos disponibles. Aplicación P2P eGorilla Facultad de Informática Universidad Complutense de Madrid Ingeniería del Software - 2008/2009

33 33 Funcionamiento Interno - PeerToPeer Descargador GestorEgorilla GestorDeSubidas Aplicación P2P eGorilla Facultad de Informática Universidad Complutense de Madrid Ingeniería del Software - 2008/2009

34 34 Funcionamiento Interno – PeerToPeer - Descargador Motivación – Almacenar las descargas. – Rotar las descargas. – Eficiente y equitativo. Metodología – Round-Robin. – Aleatoriedad. – Thread demonio. – Estado. Aplicación P2P eGorilla Facultad de Informática Universidad Complutense de Madrid Ingeniería del Software - 2008/2009

35 35 Funcionamiento Interno – PeerToPeer - Descargador Diseño – Simple. Operaciones básicas. Aleatoriedad. Estado. Cola circular. – Relaciones Es el GestorEGorilla el encargado de su manejo, insertar/actualizar/eliminar las descargas. Aplicación P2P eGorilla Facultad de Informática Universidad Complutense de Madrid Ingeniería del Software - 2008/2009

36 36 Funcionamiento Interno – PeerToPeer - GestorEgorilla Motivación – Fachada para acceder al motor de la aplicación. – Enviar los mensajes a través de la red. – Control de la conexión del cliente. Metodología – Thread para el envío de mensajes – Thread para vigilar la conexión del cliente – Reparto de funciones en tres conjuntos Aplicación P2P eGorilla Facultad de Informática Universidad Complutense de Madrid Ingeniería del Software - 2008/2009

37 37 Funcionamiento Interno – PeerToPeer - GestorEgorilla Diseño – Tres clases: GestorMensajes. VigilanteConexion. GestorEgorilla. Implementación de la Interfaz GestorP2P. – Relaciones Con el resto de la aplicación : Servidor y Comunicaciones. Aplicación P2P eGorilla Facultad de Informática Universidad Complutense de Madrid Ingeniería del Software - 2008/2009

38 38 Funcionamiento Interno – PeerToPeer - GestorDeSubidas Motivación – Aumentar la eficiencia (velocidad) al enviar fragmentos – Descongestionar la red Metodología – Thread – Cola de mensajes independiente de la red Aplicación P2P eGorilla Facultad de Informática Universidad Complutense de Madrid Ingeniería del Software - 2008/2009

39 39 Funcionamiento Interno – PeerToPeer - GestorDeSubidas Diseño – Más simple que Descargas – Clase AlmacenSubidas (hilo y cola de mensajes) Relaciones – Con GestorEgorilla : Envía los mensajes almacenados en la cola de subidas, a través de la red Aplicación P2P eGorilla Facultad de Informática Universidad Complutense de Madrid Ingeniería del Software - 2008/2009

40 40 Funcionamiento Interno - Servidor Motivación – Bajo peso – Concurrente – Eficiente – Demonio Metodología – Una tarea -> una línea de trabajo – Un modelo de datos thread-safe Aplicación P2P eGorilla Facultad de Informática Universidad Complutense de Madrid Ingeniería del Software - 2008/2009

41 41 Funcionamiento Interno - Servidor Diseño – ¿MVC? En realidad carece de vista. – Usa Comunicaciones NO sabe como es el módulo de comunicaciones, mientras se mantenga la interface, y el cliente use la misma version, es independiente de este. Aplicación P2P eGorilla Facultad de Informática Universidad Complutense de Madrid Ingeniería del Software - 2008/2009

42 42 Funcionamiento Interno - Comunicaciones Mensajes: – Entre clientes – Con servidor Aplicación P2P eGorilla Facultad de Informática Universidad Complutense de Madrid Ingeniería del Software - 2008/2009

43 43 Funcionamiento Interno - Comunicaciones Modulo de red – Servicio fiable NO orientado a conexión – Diseñado independientemente de TCP o UDP – Implentado con TCP por riesgos tecnológicos – Con UDP se mejoraría el rendimiento y se podrian aplicar tecnicas de NAT transversal – Comunicación Asíncrona – Patron Fachada y observadores. Aplicación P2P eGorilla Facultad de Informática Universidad Complutense de Madrid Ingeniería del Software - 2008/2009

44 44 Demo Aplicación P2P eGorilla Facultad de Informática Universidad Complutense de Madrid Ingeniería del Software - 2008/2009