Diferencia entre revisiones de «Desarrollo de frameworks»
De Wiki de EGC
(→Ejercicio) |
|||
Línea 11: | Línea 11: | ||
En esta práctica recrearemos un desarrollo de un framework para el analisis de modelos de variabilidad. | En esta práctica recrearemos un desarrollo de un framework para el analisis de modelos de variabilidad. | ||
+ | Podreis encontrar el código en github [aqui] | ||
+ | |||
=Ejercicio= | =Ejercicio= |
Revisión del 11:03 13 ene 2021
Prerrequisitos
Para esta práctica solo será necesario que nos aseguremos de tener instalada una versión igual o mayor a Python 3.8.
Para verificar la versión de Python que tenemos instalada podemos ejecutar:
python -V
Preparación para práctica sobre creación de frameworks
En esta práctica recrearemos un desarrollo de un framework para el analisis de modelos de variabilidad. Podreis encontrar el código en github [aqui]
Ejercicio
Iteración 1
- Análisis: Identificamos los frozen points de nuestro framework
- Clases del dominio: El dominio sobre el que desarrollaremos nuestro framework es el del analisis de modelos de características. Para ello, comenzaremos por conocer los elementos básicos de los mismos según lo visto en teoría.
- Gestión de plugins: También analizaremos que partes del framework permitirán extensivilidad basandonos en plugins.
- Diseño: En este apartado crearemos una clase Feature y una clase Relación para definir los conceptos con los que trabajará el framework
Aqui aparecerá el código
También implementamos un primer plugin y el sistema dentro del core para la carga de pluggins
Aqui aparecerá el código
- Instanciación: Finalmente implementaremos una aplicación que consuma tanto nuestros módulos del core como el plugin creado.
Aqui aparecerá el código
Iteración 2
- Análisis: Identificamos los frozen points de nuestro framework al solicitarnos la implementación de un sistema de lectura de los modelos en json.
- Clases del dominio: Añadiremos las clases necesarias para implementar distintos tipos de serializadores de ficheros.
- Diseño: En este apartado crearemos una clase Reader en el core
Aqui aparecerá el código
También implementamos extenderemos el soporte para añadir readers mediante plugins
Aqui aparecerá el código
- Instanciación: Finalmente implementaremos una aplicación que consuma tanto nuestros módulos del core como el nuevo plugin creado.
Aqui aparecerá el código