Noticias

Modelos de datos, repositorios y aplicaciones

En el blog de Enrique Almeida.

Modelos de datos, repositorios y aplicaciones 

Estoy leyendo el libro The Data Model Resource Book: Universal Patterns for Data Modeling (Volumen 3) .

El mismo autor, tiene dos libros anteriores de referencia donde en el primero muestra modelos de datos que se adaptan y combinan para diferentes problemas, y en el volumen 2, adapta los mismos para diferentes industrias.

Son libros pesados pero que sirven para referencias cuando hay que modelar alguna realidad no demasiado conocida.

En este tercer libro, intenta explicar los patrones generales que aparecen en el modelado de datos y también cuando conviene aplicarlos. Muestra además diversas opciones de implementación y niveles de detalle. Parecen ideales para la implementación de GeneXus Patterns con los mismos. Algunos de los patrones que están descritos en el libro son las Jerarquías, Categorías, Clarificación, Estado, etc. Aun no lo terminé de leer, por lo que no es de esto que quiero escribir.

Mientras leía este libro, mirá que linda la rueda que inventé.

Hoy me levanté con la sensación que el desarrollo de software se podía hacer más rápido, si aplicábamos patrones ya probados por otros. Mi idea (que no es mía) es que podríamos aplicar patrones a muchas más cosas que las que hoy hacemos, o que ya hacemos sin que yo lo tenga tan claro.

Cuales serian los pasos para el desarrollo de una aplicación?

1) Elegir las entidades que participan en mi aplicación.
2) Elegir que atributos forman parte de cada entidad.
3) Elegir patrones de categorías, jerarquías, etc.
3) Elegir/ajustar los dominios que existen.
4) Elegir los patrones de diseño que hay que aplicar.
  • WorkWith
  • SummBy
  • ExportToExcel
  • ReportesPDF
  • CrossTable
  • ... muchos más..
5) Elegir el patrón de diseño gráfico (Theme).
6) Cargar datos (programa que genera datos de prueba).
7) Programar los objetos que falten.
8) Borrar todo lo no utilizado (KBDoctor!).
9) Prototipar y ajustes de parámetros de los patrones.
10) Declarar seguridad y Auditoría.
11) Testeo funcional de la aplicación.
12) Testeo de aceptación y carga.
13) Instalación de la aplicación (Deployment).
14) Ajustes a la aplicación y a la base de datos.

Qué nos falta

a) Repositorio de Entidades.

Es necesario tener un repositorio donde yo pueda bajarme "estructuras" de CLIENTES, PAISES, EMPRESAS, etc. Lo que me imagino seria que tener un Wizard donde se elige el nombre de la entidad de primer nivel, mostrándome ahí las entidades que se relacionan con las mismas.

Ahí muestra los atributos de cada una de las entidades. Se eligen los que se necesitan y con esto se "crean" las transacciones necesarias y también los objetos necesarios para que estas entidades funcionen correctamente. Se marcarían como público los objetos que puedan usarse desde afuera y los demás quedarían marcados como privados (esto necesita el manejo de módulos).

b) Generación de datos de pruebas.

Todos las Entidades deberían tener los programas para la generación de datos en forma automática.

c) Repositorio de themes.

Seria bueno tener varios temas para poder elegir y una forma fácil de ver nuestra aplicación funcionando con diferentes themes.

d) Seguridad y Auditoría declarativa en las aplicaciones.

e) Herramientas de Testeo Unitario.

f) Herramientas de Testeo Funcional y Carga.

g) Herramientas de Ayuda de Deployment.

h) Herramientas de Tunning de Aplicaciones y Base de datos.

i) Ayuda para la integración entre diferentes patrones.

Por ejemplo el WorkWith debería poder comunicarle al patrón de diseño gráfico (Theme) que le falta determinada class.

Los patrones deberían poder comunicarse bien entre ellos, de forma que tengan una API, de forma que todos otros patrones puedan comunicarse.

Creo que deberíamos empezar por tener un repositorio de entidades, dominios y atributos. Con esto ya seria un paso muy importante, para poder desarrollar más rápido.

* Publicado en el blog Desarrollando desde la trinchera.