UNIVERSIDAD NACIONAL DE SAN AGUSTIN
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS
TECNOLOGIA DE OBJETOS
FRAMEWORK JAVA ANALIZER
CODE
Alexander Ocsa Mamani
[email protected]
Christian Portugal Zambrano
[email protected]
Jonathan Miranda Campos
[email protected]
Alexander Machaca Huancco
[email protected]
Claudia Luque Ventura
[email protected]
Ernesto Suarez López
[email protected]
Gustavo Bravo Esquivias
[email protected]
Enero, 2009
AGENDA

Resumen

Introducción

Objetivos y restricciones de la arquitectura

Representación de la Arquitectura
 Vista de Casos de Uso
 Vista Lógica
 Vista de Despliegue
 Arquitectura del Proyecto
 Arquitectura del Proyecto
 Diseño del framework OO
 Diagrama de clases
 Diseño de código fuente

Preguntas de Discusión

Conclusiones

Referencias
RESUMEN
Se propone realizar un framework el cual nos ayudara a corregir errores
de un programa en Java, para lo cual si tienen en cuenta algunas reglas
las cuales serán implementadas y estas se dividen en el análisis de POO
y análisis de excepciones El cual esta siendo desarrollado en la
plataforma Java. El resultado esperado del proyecto será un Framework
para desarrolladores y un Plug-in para eclipse.
Palabras clave: Framework JAC, Java Analizer Code,
Plugin
INTRODUCCIÓN (...1)
Propósito
 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.
INTRODUCCIÓN (...1)
Alcance
 La descripción del documento se encuentra basado
en la vista lógica 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 programación.
REPRESENTACIÓN DE LA ARQUITECTURA
El modelo propuesto
conjunto de vistas
 Vista
utiliza el siguiente
de Casos de Uso
 Vista Lógica
 Vista de Procesos
 Vista de Deployment
 Vista de Implementación
 Vista de Datos
OBJETIVOS DE LA ARQUITECTURA
 El
objetivo principal del desarrollo del Java
Analizer Code es revisar código java sin
ejecutar el código.
 Identificar errores y mostrar la forma
correcta de la implementación.
 Componentes altamente reutilizables.
 Implementación de reglas.
 Visualizar análisis de los resultados
RESTRICCIONES DE LA ARQUITECTURA
El analizador solo analiza Código 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.

VISTA DE CASOS DE USO
Identificación de casos de uso
Iniciar Java Analizer Code
Este caso de Uso inicia el funcionamiento del Java Analizer Code aquí
ingresamos el código 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 información ya
sea errores o mensajes de advertencias
Analizar Reglas
Este caso de Uso funcionara cuando se desee limpiar desea analizar con el
código java con una determinada regla. Se analizará:
Analizar POO
Analizar Excepciones
Visualizar Resultados del análisis
Este caso de uso es el resultado del análisis del código, si el código esta errado
JAC nos corregirá, y si el código es correcto nos mostrará el siguiente
mensaje “Código listo para ser utilizado”.
VISTA DE CASOS DE USO (cont …)
Iniciar JAC
Detener JAC
Usuario
Limpiar JAC
<<extend>>
Analizar POO
Analizar Reglas
<<extend>>
Visualizar Resultados
del analisis
Analizar
Excepciones
Casos de Uso
Arquitectura

Relevantes
para
la
Iniciar JAC La realización del caso se uso queda a cargo del
subsistema Interfaz y el subsistema analizador de codigo.
Subsistema Analizador Reglas
iniciar JAC
Subsistema Plug in
Casos de Uso Relevantes para la
Arquitectura (cont …)

Detener JAC
Subsistema Analizador Reglas
Detener JAC
Subsistema Plug in

Limpiar JAC
Subsistema Analizador Reglas
Limpiar JAC
Subsistema Plug in
Casos de Uso Relevantes para la
Arquitectura (cont …)

Analizar Reglas
Subsistema Analizador Reglas
Analizar Reglas
Subsistema Plug in

Visualizar resultados de análisis.
Subsistema Analizador Reglas
Visualizar resultados de analisis
Subsistema Plug in
VISTA LÓGICA
Descripción de los subsistemas

Subsistema analizador
de código.- Este subsistema es el
analizador de código propiamente dicho que contiene un tree para
recorrer el código
y contiene las reglas implementadas que
analizaran dicho código.


Este subsistema está formado por Api-AST y las reglas que analizaran el
código.
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.
VISTA LÓGICA (cont …)
Subsistema Analizador Reglas
Subsistema Plug in
Subsistema Analizador Reglas
Subsistema Plug in
API- AST
View
Reglas
Subsistema
Analizador de Reglas
Menu
Subsistema Plug-in
VISTA
DE
DESPLIEGUE
La siguiente figura presenta el escenario de distribución esperado para la
instalación del framework. El mismo se ubica en el contexto de una
organización, sobre una LAN privada y se prevé el acceso vía Internet a
un repositorio de servicios
Usuario del analisis estatica de
codigo
Subsistema analizador de reglas
IDE Eclipse
Subsistema Plug-in
ARQUITECTURA DEL PROYECTO
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.
Codigo Java
Interfaz
Sistema Java Analizer Code
Subsistema analizador de reglas
API AST
Subsistema Plug-in
VIEW
IDE Eclipse
REGLAS
MENU
Vista de Deployment

La siguiente figura ilustra el deployment del Sistema JAC
sobre la base del escenario de distribución 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
Vista de Implementación

En esta sección se presentan los ejecutables y
artefactos construidos para la implementación del
Sistema JAC. El sistema aquí planteado es una
implementación del framework descrito en las
secciones
anteriores
que
cumple
con
la
especificación 1.4 de J2EE.
JACImp.jar
JavacAPI.jar
Subsistema Plug-in
Sistema Java Analizer Code
Mapeo de subsistemas
Estructura del Framework


La implementación del framework se empaquetó en
dos JARs independientes, uno para el subsistema
Ejecución de Procesos y otro para el subsistema
Resolución de Servicios tal como se muestra en la
siguiente figura.
La implementación del Sistema JAC se enmarca en
la tecnología JAVA, más precisamente el subsistema
Plug-in está implementado por un conjunto de
clases que utilizan los del IDE Eclipse que realizan
las tareas concretas de creación del vista y menús en
el mismo IDE eclipse.
Arquitectura de la Implementación

Se presenta a continuación un diagrama que
muestra las dependencias entre los JARs que
contienen la definición de las interfaces y la
implementación concreta del framework.
JAC.jar
JACImp.jar
JavacAPI.jar
tools.jar
Dependencia de JARs del sistema
DISEÑO DEL FRAMEWORK

OO
Eclipse es un poderoso y extensible IDE para
propósito general de construcción de aplicaciones.
Eclipse tiene una extensa arquitectura permitiendo
extenderse a si mismo por medio de plug-in, puede
decirse así mismo que eclipse es un IDE hecho de
plug-in que extienden su funcionalidad de acuerdo a
las necesidades del usuario. También Eclipse PDE
(Plugin Development Environment ) posee
herramientas de ayuda al desarrollador
para
personalizar el comportamiento del plug-in y un
framework de desarrollo extensible que permite a
los
desarrolladores
reutilizar
los
varios
componentes del workbench de eclipse.
DISEÑO DEL FRAMEWORK
OO
DIAGRAMA DE CLASES(API AST)
DIAGRAMA DE CLASES(PLUGIN)
DISEÑO DE CÓDIGO FUENTE
PREGUNTAS
CONCLUSIONES






El Java Analizer Code revisara el código java sin ejecutar el
código.
Se podrá detectar los errores y mostrar la forma correcta de la
implementación.
Con el JAC es posible visualizar el análisis de los resultados
que se obtengan a partir de la detección de errores.
JAC solo analizará Código Java.
Se realizo un Plugin el cual se integrara al IDE de uso Eclipse
Se puede ver que se implementaron 15 reglas las cuales nos
ayudaran a corregir los errores en Código Java.
REFERENCIAS





[1] Proyecto de Grado Batuta – Generador de Aplicaciones Orquestadoras.
Glosario. Facultad de Ingeniería, Universidad de la República, Uruguay,2005.
http://www.fing.edu.uy/~pgsoasem/documentos/PG-P2005_0026-Glosario.pdf
[2] Rational Unified Process. Rational Software, IBM, 2003. http://www306.ibm.com/software/awdtools/rup/
[3] Proyecto de Grado Batuta – Generador de Aplicaciones Orquestadoras.
Descripción del Modelo Batuta. Facultad de Ingeniería, Universidad de la
República, 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 Ingeniería, Universidad de la República,
Uruguay,
2005.
http://www.fing.edu.uy/~pgsoasem/documentos/PGP2005_0026-EstadoDelArte.pdf
[5] Proyecto de Grado Batuta – Generador de Aplicaciones Orquestadoras.
Especificación Complementaria del Modelo Batuta. Facultad de Ingeniería,
Universidad
de
la
República,
Uruguay,
2005.
http://www.fing.edu.uy/~pgsoasem/documentos/PG-P2005_0026EspecificacionComplementaria.pdf
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-apidesign-confessions-of.html
 http://hudson.apidesign.org/job/samples/lastSucce
ssfulBuild/artifact/samples/build/
 http://www.ibm.com/developerworks/rational/libr
ary/08/0429_gutz3/index.html
 http://mantrid.wordpress.com/projects/masterthesis/
 Eclipse: Building Commercial-Quality Plug-ins,
2nd Edition

Descargar

Formato Lectura