UMLViewer: Inicio de subproyecto - segonzal/jEdit-CC4401 GitHub Wiki
Tabla de contenidos
- :busts_in_silhouette: Subgrupo
- :dart: Objetivo
- :pencil: Requisitos
- :books: Concept location
- :mag_right: Impact analysis
Subgrupo
Compuesto por:
- Américo Jerez (@ajerezg)
- Matías Rodríguez (@matias-rodriguez)
Objetivo
Change request
"Agregar a jEdit un plugin que permita generar un gráfico UML a partir de los contenidos de una carpeta"
Bosquejo del resultado buscado
Requisitos
Listado de requisitos
- Se debe poder seleccionar la carpeta a analizar.
- La imagen debe verse en un panel anclado, dentro de jEdit.
- Se deben poder exportar los datos en formato XML.
- Plugin debe funcionar tanto en Windows como en Linux.
Clasificación de requisitos
- Requisito de Usuario.
- Requisito de Sistema. Requisito Funcional.
- Requisito de Sistema. Requisito Funcional.
- Requisito de Sistema. Requisito No funcional: de confiabilidad (debe funcionar bien en los dos ambientes indicados).
Concept location
Los términos más relevantes del change request son: plugin , UML y XML.
El primero es una funcionalidad disponible de jEdit jEdit Users guide.
A continuación se muestran algunas citas útiles, y algunos comentarios.
jEdit also provides a dockable window API, which allows plugin windows derived from the JComponent class to be docked into views or shown in top-level frames, at the user's request (véase Chapter 17).
El generar un gráfico con UML es una funcionalidad nueva, por lo que no se encuentra nada dentro de las clases de jEdit.
Para XML se encuentran tres clases, las cuales están destinadas al manejo interno de propiedades de jEdit especificadas en distintos archivos xml, con lo que no se toman en cuenta.
Para una interfaz anclada se debe utilizar la clase JComponent
.
Such a class is known as a plugin core class and must extend jEdit's abstract EditPlugin class (véase Chapter 18).
El core de un plugin de jEdit debe descender de la clase abstracta EditPlugin
. En particular, examinando el código de algunos plugins, también pueden extender a la clase EBPlugin
(véase jEdit API Documentation),la cual permite el manejo de mensajes enviados desde jEdit por el EditBus. Es subclase directa de EditPlugin
.
Impact analysis
El impacto - en cuanto a modificación de código - es virtualmente nulo, porque los plugins justamente apuntan a la posibilidad de agregar nuevas funcionalidades sin necesidad de hacerle una "cirugía" a jEdit.
El principal cambio que habría en la jerarquía de clases, es la adhesión de una clase (un nuevo provider) que ofrecerá un nuevo servicio a jEdit. Éste proveedor, descenderá directa o indirectamente de EditPlugin
(comportamiento polimórfico).