dms(documento de mantenimiento de software)

15
XTREME MP DOCUMENTO DE MANTENIMIENTO DE SOFTWARE ANIBAL GUILLERMO MARTINEZ AGUAS , ROGER ARTURO MARQUEZ CARCAMO Y MANUEL ENRIQUE CANTILLO PAREJA 7 DE DICIEMBRE DE 2015

Upload: manuel-enrique-cantillo

Post on 16-Feb-2016

228 views

Category:

Documents


1 download

DESCRIPTION

DMS(Documento de Mantenimiento de Software)

TRANSCRIPT

Page 1: DMS(Documento de Mantenimiento de Software)

XTREME MPDOCUMENTO DE MANTENIMIENTO DE SOFTWARE

Anibal Guillermo Martinez Aguas , roger arturo marquez carcamo y manuel enrique cantillo pareja

7 DE DICIEMBRE DE 2015

Page 2: DMS(Documento de Mantenimiento de Software)

Tabla de contenido................................................................................................................................... 01. DESCRIPCIÓN DEL SOFTWARE XTREME MP..........................................................22. VISTAS RECUPERADAS.........................................................................................2

2.1. Vista Lógica...................................................................................................22.2. Vista de Desarrollo.........................................................................................2

3. ANALISIS DEL SISTEMA.........................................................................................23.1. Identificación de Clones.................................................................................33.2. Identificación de Patrones..............................................................................3

3.2.1. Patrones Arquitectónicos.........................................................................33.2.2. Patrones de Diseño..................................................................................3

4. CONCLUSIONES....................................................................................................35. BIBLIOGRAFIA.......................................................................................................3

Page 3: DMS(Documento de Mantenimiento de Software)

1. DESCRIPCIÓN DEL SOFTWARE XTREME MP

Xtreme MP es un reproductor multimedia y visualizador de código abierto multiplataforma. Se encuentra escrito 100% en java. Xtreme MP proporciona al usuario una interfaz gráfica para la elección de los archivos de música y listas de reproducción, soportando muchos formatos de archivos de audio, como : .spx, .snd, .aifc,.aif,.wav, .au, mp1, .mp2 , .mp3, .ogg, .aac y .m4a.Una característica clave de Xtreme MP es la capacidad de ver visualizaciones. Estas representan algunas propiedades del audio como el osciloscopio, spectrum, estereograma y espectrograma.También soporta múltiples lenguajes como el inglés, francés, italiano, español y portugués.

Page 4: DMS(Documento de Mantenimiento de Software)

2. VISTAS RECUPERADAS2.1. Diagrama de Casos de Uso2.1.1. Diagrama

2.1.2. Análisis

Hay muchos acciones que puede realizar el autor(usuario) ya sea desde el menú principal o desde una opción dentro de otra, por lo que en el diagrama el caso de uso que representa esa acción se puede mostrar como una conexión directa al usuario o como una relación extends de otro caso de uso.

Page 5: DMS(Documento de Mantenimiento de Software)

2.2. Vista Lógica (Diagrama de Componentes)2.2.1. Diagrama

2.2.2. Análisis

El componente principal que corresponde al de la aplicación Xtreme MP hace uso de las clases internas del componente org, el cual es un paquete o directorio que contiene clases para la decodificación de sonido, procesadores PCM entre otros. La manera en cómo se relacionan estos componentes no es por medio de interfaces sino por medio de la importación de paquetes. Además existen varios archivos .jar de la carpeta lib de los cuales depende también Xtreme MP. El software no depende de un

Page 6: DMS(Documento de Mantenimiento de Software)

equipo servidor, toda la aplicación se ejecuta en una maquina cliente y todos sus componentes se encuentran en una sola máquina.

2.3. Vista de Desarrollo (Diagrama de Paquetes)2.3.1. Diagrama

2.3.2. Análisis

3. ANALISIS DEL SISTEMA

3.1. Identificación de Clones

Para la identificación de clones se utilizo una herramienta de código abierto llamada PMD. PMD es un analizador de código fuente. Su principales funciones son encontrar defectos comunes de programación como variables que no se son utilizadas, bloques catch vacíos, la creación de objetos innecesario entre otras. Los lenguajes compatibles con dichas funcionalidades son Java, JavaScript, PLSQL, Apache Velocity, XML, XSL.Una de las funcionalidades extras que tiene PMD es CPD es decir copy-paste-detector en español detector copiado y pegado. El CPD encuentra duplicación o clonación de código en Java, C, C ++, C #, PHP, Ruby, Fortran, JavaScript, PLSQL, Apache Velocity, Ruby, Scala, Objective C, Matlab, Python. Para utilizar esta herramienta se nesecito el IDE eclipse y el respectivo plugin de PMD. Se procedió a la intalacion del plugin siguiendo los pasos de del sitio oficial http://pmd.sourceforge.net/pmd-4.3.0/integrations.html#eclipse. Luego se creo el

Page 7: DMS(Documento de Mantenimiento de Software)

proyecto en eclipse con el código fuente y se ejecuto el plugin y logro la detección de clones .

A continuación se muestra dos casos que se encontraron, el primer caso la clonación de código se encontró en el mismo archivo en líneas diferentes:

Page 8: DMS(Documento de Mantenimiento de Software)

El segundo caso detecto clones en diferentes archivos .java:

Page 9: DMS(Documento de Mantenimiento de Software)

Como adicional PMD tiene opciones para exportar reportes en texto plano , xml o cvs.

Page 10: DMS(Documento de Mantenimiento de Software)

3.2. Identificación de Patrones3.2.1. Patrones Arquitectónicos

De acuerdo a la observación de los componentes, paquetes, clases obtenidas del código fuente de xtrememp se podría decir que este software debido a su distribución, tiene un estilo de descomposición modular orientado a objetos, donde vemos que hay muchos componentes de módulos pequeños que contienen internamente un numero de clases.

3.2.2. Patrones de Diseño

Para la identificación de patrones de diseño también se utilizo una herramienta de código abierto llamada Design Pattern Recognizer (DPRecognizer) este es un plugin de eclipse que permite la detección de patrones en códigos fuentes java en este link están los detalles de instalación http://lubes.yweb.sk/projects/dprecognizer/ . Al instalar el plugin se activara la consola y lo primero que debemos que hacer es indicar el proyecto java que al cual vamos identificar los patrones de diseños lo elegimos y damos ok:

Automáticamente y de forma rápida identificara los posibles patrones de que se fueron implementados en el código:

Page 11: DMS(Documento de Mantenimiento de Software)

En las estadísticas se puede observar cuantas implementaciones de patrones de diseño fueron completas e incompletas como se ve el patrón mas se implemento de forma completa fue el singleton con 7 tuvo igual numero state or strategy pero con 5 implementaciones completas y tan solo 2 completas. En pestana de posibles instancias podemos ver en detalle en que línea de código se está implementando un patrón de diseño:

Page 12: DMS(Documento de Mantenimiento de Software)
Page 13: DMS(Documento de Mantenimiento de Software)

Como se vio en las imágenes se mostro en detalle la implementación del patrón singleton.

4. CONCLUSIONESPara la realización del mantenimiento del software es necesario conocer su arquitectura y su diseño. En muchos de los casos, como es el caso de xtrememp no se cuenta con la documentación, por lo que es necesario realizar ingeniería inversa del software. Para llevar a cabo esta operación de manera correcta y completa se hace necesario el uso de herramientas que faciliten este trabajo, como: Editores de texto que te permita realizar búsquedas avanzadas, programas que traduzcan código a un lenguaje de más alto nivel o vistas de diseño o arquitectónicas, herramientas que permitan identificar patrones, entre otras.Conocer las funciones del software, que es lo que hace, para que se usa, antes de iniciar el proceso de ingeniería inversa facilita el entendimiento de este.Si el ingeniero de mantenimiento de software tiene conocimientos en diseño, arquitectura, también es otro elemento facilitador para este proceso. El reconocimiento de los componentes de distribución, de trabajo y de ejecución como programas ejecutables, dlls, bases de datos, etc. por ejemplo, ayudaría al ingeniero en contemplar todos los elementos que interactúan con el sistema.

5. BIBLIOGRAFIA

Page 14: DMS(Documento de Mantenimiento de Software)

http://sourceforge.net/projects/xtrememp/http://xtrememp.sourceforge.net/http://pmd.sourceforge.net/pmd-4.3.0/integrations.html#eclipsehttp://lubes.yweb.sk/projects/dprecognizer/Ingeniera del Software, 7ma Edicion, IAN SOMMERVILLE