You are on page 1of 18

JAVA ANALIZER CODE DESTROYER

Java Analizer Code Documento de Arquitectura de Software


Versin 2.0

Curso: Tecnologa de Objetos Java Analizer Code Documento de Arquitectura de Software

Versin: 2.0 Fecha: 03/01/2009

Historial de Revisiones
Fecha 28/11/11 Versin 1.0 Descripcin Versin inicial Autor Jonathan Miranda Alexander Ocsa Alexander Machca Ernesto Suarez Gustavo Bravo Christian Portugal Claudia Luque Jonathan Miranda Alexander Ocsa Alexander Machca Ernesto Suarez Gustavo Bravo Christian Portugal Claudia Luque Revisado Nota

03/01/2009

Historial de Observaciones
Fecha --/--/---Versin 1.0 Observaciones

(*) Los campos marcados en color plomo son llenados slo por el profesor del curso.

DAISI-EPIS

Prof. R. Arisaca TO-UNSA, 2012

2 of 18

Curso: Tecnologa de Objetos Java Analizer Code Documento de Arquitectura de Software

Versin: 2.0 Fecha: 03/01/2009

Tabla de Contenido
1. Introduccin 1.1 1.2 1.3 1.4 1.5 2. 3. 4. Propsito Alcance Definiciones, Acrnimos y Abreviaciones Organizacin del Documento Referencias 5 5 5 5 5 6 6 6 7 7 7 8 8 8 8 9 9 9 9 9 10 10 10 11 11 11 12 12 12 13 13 13 14 14 14 15 15 15 15 15 16 16 Prof. R. Arisaca TO-UNSA, 2012 3 of 18

Representacin de la Arquitectura Objetivos y restricciones de la arquitectura Vista de Casos de Uso 4.1 4.2 4.3 Introduccin Identificacin de los Casos de Uso relevantes para la arquitectura Descripcin de los Casos de Uso relevantes para la arquitectura 4.3.1 Iniciar Java Analizer Code 4.3.2 Detener Java Analizer Code 4.3.3 Limpiar Java Analizer Code 4.3.4 Analizar Reglas 4.3.5 Visualizar Resultados del anlisis

5.

Vista Lgica 5.1 5.2 5.3 5.4 Introduccin Descomposicin en Subsistemas Descripcin de los Subsistemas Diseo de Subsistemas 5.4.1 Definicin de Procesos 5.5 Realizacin de los Casos de Uso Relevantes para la Arquitectura 5.5.1 Iniciar JAC 5.5.2 Detener JAC 5.5.3 Limpiar JAC 5.5.4 Analizar cdigo 5.5.5 Visualizar resultados de anlisis

6.

Vista de Despliegue 6.1 6.2 Introduccin Distribucin y Deployment

7.

Arquitectura del Proyecto 7.1 7.2 Introduccin Vista Lgica 7.2.1 API AST 7.2.2 REGLAS 7.2.3 WIEW 7.2.4 MENU 7.2.5 IDE ECLIPSE 7.2.6 INTERFAZ 7.2.7 CDIGO JAVA

DAISI-EPIS

Curso: Tecnologa de Objetos Java Analizer Code Documento de Arquitectura de Software 7.3 7.4 Vista de Deployment Vista de Implementacin 7.4.1 Estructura del Framework 7.4.2 Arquitectura de la Implementacin

Versin: 2.0 Fecha: 03/01/2009

16 16 17 17 17

8.

Referencias

DAISI-EPIS

Prof. R. Arisaca TO-UNSA, 2012

4 of 18

Curso: Tecnologa de Objetos Java Analizer Code Documento de Arquitectura de Software

Versin: 2.0 Fecha: 03/01/2009

Documento de Arquitectura de Software


1.
1.1

Introduccin
Propsito El presente documento de arquitectura, tiene como finalidad presentar la arquitectura del framework JAC, el cual se detalle en diferentes vistas que tienen como fin describir el comportamiento del framework desde diferentes contextos.

1.2

Alcance La descripcin del documento se encuentra basado en la vista lgica del framework, por tal motivo se incluye aspectos relevantes de cada una de la vistas. Por el contrario no se detalla aspectos relacionados con el lenguaje de programacin. Definiciones, Acrnimos y Abreviaciones Eclipse.- Eclipse es un entorno de desarrollo integrado de cdigo abierto multiplataforma para desarrollar lo que el proyecto llama "Aplicaciones de Cliente Enriquecido", opuesto a las aplicaciones "Cliente-liviano" basadas en navegadores. Esta plataforma, tpicamente ha sido usada para desarrollar entornos de desarrollo integrados (del ingls IDE), como el IDE de Java llamado Java Development Toolkit (JDT) y el compilador (ECJ) que se entrega como parte de Eclipse (y que son usados tambin para desarrollar el mismo Eclipse). Framework.- Un framework, en el desarrollo de software es una estructura de soporte definida en la cual otro proyecto de software puede ser organizado y desarrollado. Tpicamente, puede incluir soporte de programas, bibliotecas y un lenguaje interpretado entre otros software para ayudar a desarrollar y unir los diferentes componentes de un proyecto. Plugin.- Un Complemento (o plug-in en ingls) es una aplicacin que se relaciona con otra para aportarle una funcin nueva y generalmente muy especifica. Esta aplicacin adicional es ejecutada por la aplicacin principal e interactan por medio de la API. Jface.- JFace es un conjunto de widgets para realizar interfaces de usuario construido sobre SWT. Fue desarrollado por IBM para facilitar la construccin del entorno de desarrollo Eclipse, pero su uso no est limitado a ste. UCDetector.- Patrones de Diseo.- Un patrn de diseo es una solucin a un problema de diseo. Para que una solucin sea considerada un patrn debe poseer ciertas caractersticas. Una de ellas es que debe haber comprobado su efectividad resolviendo problemas similaresen ocasiones anteriores. Otra es que debe ser reusable, lo que significa que es aplicable a diferentes problemas de diseo en distintas circunstancias.

1.3

Patrones de Diseo.- Los patrones de diseo (design patterns) son la base para la bsqueda de soluciones a problemas comunes en el desarrollo de software y otros mbitos referentes al diseo de interaccin o interfaces. Un patrn de diseo es una solucin a un problema de diseo. 1.4 Organizacin del Documento El documento se desarrolla y organiza en base a la plantilla elaborada para el artefacto Software Architecture Document del proceso de desarrollo de software elaborado por RUP, adaptada a Prof. R. Arisaca TO-UNSA, 2012

las

DAISI-EPIS

5 of 18

Curso: Tecnologa de Objetos Java Analizer Code Documento de Arquitectura de Software

Versin: 2.0 Fecha: 03/01/2009

caractersticas particulares del tipo de proyecto en desarrollo. La seccin 2 realiza una introduccin a la representacin utilizada de la arquitectura de forma de asegurar una comprensin cabal del documento en tal sentido. Las siguientes secciones se abocan a la descripcin de la arquitectura del Framework JAC. Luego de una descripcin inicial de los objetivos y restricciones influyentes, se desarrolla cada una de las vistas. En las secciones finales, y sobre la base de lo desarrollado anteriormente, se incluye la descripcin de la arquitectura del framework JAC. 1.5 Referencias api.design.confessions.of.a.java.framework.architect http://www.apress.com/book/view/1430209739 http://wiki.apidesign.org/wiki/TheAPIBook http://www.way2books.com/2008/10/practical-api-design-confessions-of.html http://hudson.apidesign.org/job/samples/lastSuccessfulBuild/artifact/samples/build/ http://www.ibm.com/developerworks/rational/library/08/0429_gutz3/index.html http://mantrid.wordpress.com/projects/master-thesis/ Eclipse: Building Commercial-Quality Plug-ins, 2nd Edition

2.

Representacin de la Arquitectura
El modelo propuesto utiliza el siguiente conjunto de vistas Vista de Casos de Uso: lista los casos de uso o escenarios del modelo de casos de uso que representen funcionalidades centrales del sistema final, que requieran una gran cobertura arquitectnica o aquellos que impliquen algn punto especialmente delicado de la arquitectura. Vista Lgica: Describe las partes arquitectnicamente significativas del modelo de diseo, como ser la descomposicin en capas, subsistemas o paquetes. Una vez presentadas estas unidades lgicas principales, se profundiza en ellas hasta el nivel que se considere adecuado. Vista de Procesos: describe la descomposicin del sistema en threads y procesos pesados. Indica que procesos o grupos de procesos se comunican o interactan entres s y los modos en que estos se comunican. Vista de Deployment: describe uno o ms escenarios de distribucin fsica del sistema sobre los cuales se ejecutar y har el deploy del mismo. Muestra la comunicacin entre los diferentes nodos que componen los escenarios antes mencionados, as como el mapeo de los elementos de la Vista de Procesos en dichos nodos. Vista de Implementacin: Describe la estructura general del Modelo de Implementacin y el mapeo de los subsistemas, paquetes y clases de la Vista Lgica a subsistemas y componentes de implementacin. Vista de Datos: Describe los elementos principales del Modelo de Datos, brindando un panorama general de dicho modelo en trminos de tablas, vistas, ndices, etc.

3.

Objetivos y restricciones de la arquitectura


Objetivo Principal El objetivo principal del desarrollo del Java Analizer Code es revisar cdigo java sin ejecutar el cdigo. Identificar errores y mostrar la forma correcta de la implementacin. Componentes altamente reutilizables. Implementacin de reglas.

DAISI-EPIS

Prof. R. Arisaca TO-UNSA, 2012

6 of 18

Curso: Tecnologa de Objetos Java Analizer Code Documento de Arquitectura de Software Visualizar anlisis de los resultados

Versin: 2.0 Fecha: 03/01/2009

Restricciones: El analizador solo analiza Cdigo Java IDE de uso Eclipse, ya que ser integrado a este como un Plugin Solo son implementadas 15 reglas. Est basado en las implementaciones de jdk 1.6.

4.
4.1

Vista de Casos de Uso


Introduccin

La Vista de Casos de Uso presenta un subconjunto del Modelo de Caos de Uso. Describe los casos de uso o escenarios que representen funcionalidades centrales del sistema final, que requieran una gran cobertura arquitectnica o aquellos que impliquen algn punto especialmente delicado de la arquitectura. Estos casos de uso, en conjunto con los requerimientos no funcionales, permiten descubrir y disear la arquitectura del sistema. 4.2 Identificacin de los Casos de Uso relevantes para la arquitectura

Para el diseo del Framework Batuta, se identifican como los casos de uso relevantes desde el punto de vista de la arquitectura, los abajo mencionados: 1. Iniciar Java Analizer Code Este caso de Uso inicia el funcionamiento del Java Analizer Code aqu ingresamos el cdigo fuente en java que ser analizado. Detener Java Analizer Code Este caso de Uso detiene el funcionamiento del Java Analizer Code. Limpiar Java Analizer Code Este caso de Uso funcionara cuando se desee limpiar cualquier informacin ya sea errores o mensajes de advertencias Analizar Reglas Este caso de Uso funcionara cuando se desee limpiar desea analizar con el cdigo java con una determinada regla.

2.

3.

4.

4.1 Analizar POO Ac solo nos mostrara las reglas de programacin orientada a objetos, implementadas que podemos seleccionar para q pueda analizar. 4.2 Analizar Excepciones Ac solo nos mostrara las reglas que detecte tan las excepciones, implementadas que podemos seleccionar para q pueda analizar. 5. Visualizar Resultados del anlisis Este caso de uso es el resultado del anlisis del cdigo, si el cdigo esta errado JAC nos corregir, y si el cdigo es correcto nos mostrar el siguiente mensaje Cdigo listo para ser utilizado.

DAISI-EPIS

Prof. R. Arisaca TO-UNSA, 2012

7 of 18

Curso: Tecnologa de Objetos Java Analizer Code Documento de Arquitectura de Software 4.3

Versin: 2.0 Fecha: 03/01/2009

Descripcin de los Casos de Uso relevantes para la arquitectura

Iniciar JAC

Detener JAC

Usuario Limpiar JAC <<extend>> Analizar Reglas <<extend>> Analizar Excepciones Analizar POO

Visualizar Resultados del analisis

4.3.1 Iniciar Java Analizer Code Nombre Actores Sinopsis Iniciar JAC Usuario El sistema deber comportarse tal como se describe en el siguiente caso de uso cuando el usuario elije la opcin "Iniciar JAC" de "Herramientas JAC" del men principal del Eclipse.

4.3.2 Detener Java Analizer Code Nombre Actores Sinopsis Detener JAC Usuario El sistema deber comportarse tal como se describe en el siguiente caso de uso cuando el usuario elije la opcin "Detener JAC" de "Herramientas JAC" del men principal del Eclipse.

4.3.3 Limpiar Java Analizer Code Nombre Actores DAISI-EPIS Limpiar JAC Usuario Prof. R. Arisaca TO-UNSA, 2012 8 of 18

Curso: Tecnologa de Objetos Java Analizer Code Documento de Arquitectura de Software Sinopsis

Versin: 2.0 Fecha: 03/01/2009

El sistema deber comportarse tal como se describe en el siguiente caso de uso cuando el usuario elije la opcin "Limpiar JAC" de "Herramientas JAC" del men principal del Eclipse.

4.3.4 Analizar Reglas Nombre Actores Sinopsis Analizar Reglas Usuario El sistema deber comportarse tal como se describe en el siguiente caso de uso cuando el usuario elije la opcin "Analizar Reglas" de "Herramientas JAC" del men principal del Eclipse.

4.3.5 Visualizar Resultados del anlisis Nombre Actores Sinopsis Analizar Cdigo Usuario Este caso de uso es el resultado del anlisis del cdigo, si el cdigo esta errado JAC nos corregir, y si el cdigo es correcto nos mostrar el siguiente mensaje Cdigo listo para ser utilizado.

5.
5.1

Vista Lgica
Introduccin Se presentan en este punto los sucesivos refinamientos que definen las diferentes unidades lgicas que componen la arquitectura del Framework. El primer refinamiento realizado consiste en la descomposicin en subsistemas. Los subsistemas representan cortes verticales al diseo del sistema. Cada subsistema consiste en el agrupamiento de diferentes funcionalidades relacionadas entre s y posee la capacidad de funcionar como un sistema en s mismo. Posteriormente se explora la composicin de cada uno de los subsistemas. Finalmente se incluye la realizacin de los casos de uso descriptos en la seccin anterior mediante los componentes arquitectnicos definidos. Descomposicin en Subsistemas

5.2

Subsistema Analizador Reglas

Subsistema Plug in

DAISI-EPIS

Prof. R. Arisaca TO-UNSA, 2012

9 of 18

Curso: Tecnologa de Objetos Java Analizer Code Documento de Arquitectura de Software 5.3

Versin: 2.0 Fecha: 03/01/2009

Descripcin de los Subsistemas Subsistema analizador de cdigo.- Este subsistema es el analizador de cdigo propiamente dicho que contiene un tree para recorrer el cdigo y contiene las reglas implementadas que analizaran dicho cdigo. Este subsistema est formado por Api-AST y las reglas que analizaran el cdigo. Subsistema Plug-in.- Este subsistema es el plug in desarrollado, que ser integrado al analizador y ambos conformaran el plug in final, que podr ser incorporado a eclipse. Este subsistema est formado por View y Menu. Diseo de Subsistemas Diseo detallado de cada subsistema Subsistema Analizador de cdigo

5.4

Subsistema Analizador Reglas

API- AST

Reglas

Subsistema Plug-in

Subsistema Plug in

View

Menu

5.4.1 Definicin de Procesos

DAISI-EPIS

Prof. R. Arisaca TO-UNSA, 2012

10 of 18

Curso: Tecnologa de Objetos Java Analizer Code Documento de Arquitectura de Software

Versin: 2.0 Fecha: 03/01/2009

El componente API-AST requiere de los servicios de las reglas, para analizar de reglas, la accin que realiza
Reglas Java Compiler API

El componente View requiere de los servicios de Menu.

Menu

View

5.5

Realizacin de los Casos de Uso Relevantes para la Arquitectura

5.5.1 Iniciar JAC La realizacin del caso se uso queda a cargo del subsistema plug in y el subsistema analizador de reglas.

Subsistema Analizador Reglas

iniciar JAC

Subsistema Plug in

5.5.2 Detener JAC

DAISI-EPIS

Prof. R. Arisaca TO-UNSA, 2012

11 of 18

Curso: Tecnologa de Objetos Java Analizer Code Documento de Arquitectura de Software

Versin: 2.0 Fecha: 03/01/2009

Subsistema Analizador Reglas

Detener JAC

Subsistema Plug in

5.5.3 Limpiar JAC

Subsistema Analizador Reglas

Limpiar JAC

Subsistema Plug in

5.5.4 Analizar cdigo

Subsistema Analizador Reglas

Analizar Reglas Subsistema Plug in

5.5.5 Visualizar resultados de anlisis

DAISI-EPIS

Prof. R. Arisaca TO-UNSA, 2012

12 of 18

Curso: Tecnologa de Objetos Java Analizer Code Documento de Arquitectura de Software

Versin: 2.0 Fecha: 03/01/2009

Subsistema Analizador Reglas

Visualizar resultados de analisis Subsistema Plug in

6.

Vista de Despliegue

6.1 Introduccin Est seccin describe una o ms configuraciones fsicas sobre las cuales se realiza el deploy del software y es ejecutado, as como la infraestructura necesaria para su instalacin. Para el caso del Framework Batuta se describe el escenario general de distribucin esperado para los componentes de software antes descritos, las caractersticas de los nodos presentados y la comunicacin entre los mismos. 6.2 Distribucin y Deployment La siguiente figura presenta el escenario de distribucin esperado para la instalacin del framework. El mismo se ubica en el contexto de una organizacin, sobre una LAN privada y se prev el acceso va Internet a un repositorio de servicios.

Usuario del analisis estatica de codigo

Subsistema analizador de reglas IDE Eclipse

Subsistema Plug-in

Escenario del entorno A continuacin se describen los nodos presentes en la figura: PC anlisis esttico de cdigo: representa la estacin de trabajo de un usuario. En este nodo correr el el sistema. Solo consta de una PC que tenga instalado el IDE Eclipse, la comunicacin es va de la interfaz Prof. R. Arisaca TO-UNSA, 2012 13 of 18

DAISI-EPIS

Curso: Tecnologa de Objetos Java Analizer Code Documento de Arquitectura de Software IDE Eclipse.

Versin: 2.0 Fecha: 03/01/2009

Usuario del anlisis esttico de cdigo: representa el equipo donde corre una aplicacin cliente que desea ejecutar el anlisis de cdigo esttico. El componente del framework esta corriendo en este nodo. IDE Eclipse: representa la comunicacin que es va de la interfaz IDE Eclipse.

7.

Arquitectura del Proyecto

7.1 Introduccin Sobre la base arquitectnica presentada, se describe a continuacin la arquitectura del Sistema JAC realizado como prototipo. Dicho sistema puede verse como una realizacin particular del framework general desarrollado y fue construido a partir de la integracin de diferentes tecnologas y herramientas presentes en el rea de investigacin abarcada. La descripcin se organiza repasando las vistas presentadas anteriormente, detallando en cada una de ellas como se resolvi la realizacin de los componentes definidos, que componentes de infraestructura, tecnologas, herramientas y lenguajes se utilizaron. La vista de casos de uso claramente no aplica en esta descripcin puesto que no hay nada que haya debido adaptarse respecto a los requerimientos en la solucin desarrollada. El Sistema JAC es una solucin particular al problema general planteado y fue construido sobre la arquitectura del framework la cual fue guiada por los casos de uso presentados. 7.2 Vista Lgica En la siguiente figura presenta una vista global de los subsistemas del framework y las herramientas externas que se utilizaron para lograr cumplir los cometidos definidos para cada subsistema.

DAISI-EPIS

Prof. R. Arisaca TO-UNSA, 2012

14 of 18

Curso: Tecnologa de Objetos Java Analizer Code Documento de Arquitectura de Software

Versin: 2.0 Fecha: 03/01/2009

Codigo Java

Interfaz

Sistema Java Analizer Code Subsistema analizador de reglas Java Compiler API

Subsistema Plug-in VIEW IDE Eclipse

REGLAS

MENU

Vista lgica general de la realizacin del framework Sistema analizado consta de los siguientes componentes: 7.2.1 API AST Dentro del componente API AST contiene las funcionalidades que se necesitan para hacer el anlisis del cdigo: desde la generacin del rbol sintctico Abstracto, arboles que contienen cada etiqueta del cdigo analizado, etc. 7.2.2 REGLAS Dentro del componente REGLAS este componente contiene todas las reglas implementadas en el framework. 7.2.3 WIEW Este es parte del desarrollo del plug-in. Se encarga de mostrar los resultados despus del anlisis. 7.2.4 MENU Este es parte del desarrollo del plug-in. Se encarga de mostrar todas las posibles opciones que se tienen para hacer el anlisis desde iniciar el anlisis, limpiar el anlisis, analizar reglas y limpiar anlisis. 7.2.5 IDE ECLIPSE Representa la comunicacin para el desarrollo del plug-in IDE Eclipse. Prof. R. Arisaca TO-UNSA, 2012

DAISI-EPIS

15 of 18

Curso: Tecnologa de Objetos Java Analizer Code Documento de Arquitectura de Software 7.2.6 INTERFAZ Representa la comunicacin que es va de la interfaz IDE Eclipse. 7.2.7 CDIGO JAVA Es el cdigo el cual se va analizar que es la entrada para el anlisis.

Versin: 2.0 Fecha: 03/01/2009

7.3 Vista de Deployment La siguiente figura ilustra el deployment del Sistema JAC sobre la base del escenario de distribucin presentado en la figura pasada como parte del desarrollo de la vista de deployment del Framework JAC.

Aplicacion del usuario

Proceso de analisis estatico de codigo

Vista del plug-in

Deployment del Sistema JAC 7.4 Vista de Implementacin En esta seccin se presentan los ejecutables y artefactos construidos para la implementacin del Sistema JAC. El sistema aqu planteado es una implementacin del framework descrito en las secciones anteriores que cumple con la especificacin 1.4 de J2EE.

JACImp.jar

Subsistema Plug-in

JavacAPI.jar

Sistema Java Analizer Code

Mapeo de subsistemas DAISI-EPIS Prof. R. Arisaca TO-UNSA, 2012 16 of 18

Curso: Tecnologa de Objetos Java Analizer Code Documento de Arquitectura de Software

Versin: 2.0 Fecha: 03/01/2009

7.4.1 Estructura del Framework La implementacin del framework se empaquet en dos JARs independientes, uno para el subsistema Ejecucin de Procesos y otro para el subsistema Resolucin de Servicios tal como se muestra en la siguiente figura. La implementacin del Sistema JAC se enmarca en la tecnologa JAVA, ms precisamente el subsistema Plug-in est implementado por un conjunto de clases que utilizan los del IDE Eclipse que realizan las tareas concretas de creacin del vista y menus en el mismo IDE eclipse. 7.4.2 Arquitectura de la Implementacin Se presenta a continuacin un diagrama que muestra las dependencias entre los JARs que contienen la definicin de las interfaces y la implementacin concreta del framework.

JAC.jar

JACImp.jar

JavaCompilerAPI.jar

tools.jar

Dependencia de JARs del sistema Se presenta a continuacin la descripcin detallada de los artefactos ms importantes de los subsistemas Ejecucin de Procesos y Resolucin de Servicios desde el punto de vista de su implementacin.

8.

Referencias

[1] Proyecto de Grado Batuta Generador de Aplicaciones Orquestadoras. Glosario. Facultad de Ingeniera, Universidad de la Repblica, Uruguay,2005. http://www.fing.edu.uy/~pgsoasem/documentos/PG-P2005_0026Glosario.pdf [2] Rational Unified Process. Rational Software, IBM, 2003. http://www-306.ibm.com/software/awdtools/rup/ [3] Proyecto de Grado Batuta Generador de Aplicaciones Orquestadoras. Descripcin del Modelo Batuta. Facultad de Ingeniera, Universidad de la Repblica, Uruguay, 2005. http://www.fing.edu.uy/~pgsoasem/documentos/PGP2005_0026-DescripcionModeloBatuta.pdf [4] Proyecto de Grado Batuta Generador de Aplicaciones Orquestadoras. Estado del Arte. Facultad de Ingeniera, Universidad de la Repblica, Uruguay, 2005. http://www.fing.edu.uy/~pgsoasem/documentos/PG-P2005_0026EstadoDelArte.pdf [5] Proyecto de Grado Batuta Generador de Aplicaciones Orquestadoras. Especificacin Complementaria del Modelo Batuta. Facultad de Ingeniera, Universidad de la Repblica, Uruguay, 2005. DAISI-EPIS Prof. R. Arisaca TO-UNSA, 2012 17 of 18

Curso: Tecnologa de Objetos Java Analizer Code Documento de Arquitectura de Software

Versin: 2.0 Fecha: 03/01/2009

http://www.fing.edu.uy/~pgsoasem/documentos/PG-P2005_0026-EspecificacionComplementaria.pdf

DAISI-EPIS

Prof. R. Arisaca TO-UNSA, 2012

18 of 18