El conocimiento, es solo texto?

GeneXus a demostrado a lo largo de los años que lleva en el mercado, que es una herramienta excelente para la captura de conocimiento.
Con la misma, se pueden crear grandes aplicaciones con muchos objetos y tablas y los mismos pueden generarse en forma coherente y operativa.

Esto se logra capturando conocimiento que fundamentalmente es texto:
  • Atributos
  • Estructuras (listas, jerarquías, arboles)
  • Textos (descripciones de atributos y objetos, titulos de columna y fila, etc)
  • Paginas web (wiki, ayuda, documentación)
  • Reglas
  • Propiedades (de objetos, de modelo)
  • Instancia de Patterns.
  • un montonazo de etceteras mas...

Todo este conocimiento es ingresado una vez y luego es utilizado muchas veces para regenerar la aplicación a medida que transcurre el tiempo.

También es utilizado para se consultado muchas veces para la realización de cambios en los mismos.

Dado el tamaño que tienen las aplicaciones actuales, resulta muy difícil poder deducir el impacto de un cambio determinado, porque la cantidad de objetos que pueden verse afectados, pueden ser enormes.

Por ejemplo:
Cuantos y cuales objetos se van a regenerar al cambiar tal atributo?
Que objetos se van cambiar al cambiar una propiedad del modelo?
Si reorganizo una tabla, que programas van a necesitar instalarse?
Si pongo/saco un commit en un objeto, que UTLs puedo afectar?
Que objetos llaman a este objeto y a quien llama mi objeto?

La pregunta que me hago entonces es: No seria bueno tener alguna forma de poder contar con herramientas que nos den estas respuestas?

La respuesta es obvia, y es un SI ROTUNDO. Contar con ellas, nos va a facilitar y hacer mas agil el desarrollo por lo que el desarrollo de las mismas van a ser redituables.

Seguramente lo hará Artech o algunos de sus asociados.

Ademas de la captura de conocimiento (que creo que hoy esta bastante bien resuelto), se necesitan herramientas para eliminar lo que no se usa mas (conocimiento obsoleto) y poder entender el conocimiento almacenado, lo cual es indispensable para la realización de mantenimiento y ajustes de la aplicación.

Entonces lo que me gustaría tener es algo que permita:
1) Borrar cosas que no se usen mas, de forma fácil
2) Poder tener análisis de impacto a nivel de objetos
3) Navegadores de la estructura de base de datos con diagramas dinamicos
4) Poder agrupar objetos para crear con ellos módulos y poder hacer diagramas de mas alto nivel de abstracción.


Navegacion de la KB. Profundizo solo un poco mas en este punto, pues creo que es el mas critico, pues veo que las personas que hacen mantenimiento (o sea TODOS), nos pasamos mucho rato encontrando código a través de la navegación en KB grandes.

Si bien la navegación de la KB que hoy se tiene, permite llegar a (casi) todos los lugares alcanzados, no es consistentente en la forma de realizarlo.
En algunos casos, tenemos links (hipervinculos) como los que que se usan en la web, otras veces hay que dar click derecho sobre un texto para poder acceder a su definición o a quienes lo llaman o son llamados y otras veces hay que elegir la opción de un menú superior.

Seria bueno poder "navegar" la KB en forma gráfica (cada objetos es representado por un icono) con grafos de referencias y poder ver con ellos:
  • arboles de llamadas
  • integridad referencial
  • referencias de objetos a tablas y tablas a objetos
  • UTL
Seria bueno que estos diagramas no fueran estáticos (como son hoy) sino que se crearan en el momento que yo quiero verlos, y fueran cambiando de aspecto a medida que voy cambiando el foco de atención.

Se que el área de visualizar proyectos complejos de software (llamado por alguno software visualization), no es un tema que me resulte sencillo, pero me da la sensación que la empresa que logre herramientas que permitan visualizacion de grandes proyectos de forma que se pueda entender por los usuarios, va a tener una ventaja enorme en el mercado.

Comentarios

Entradas más populares de este blog

La nefasta influencia del golero de Cacho Bochinche en el fútbol uruguayo

Aplicación monolítica o distribuida?

Funcionalidades de GeneXus que vale la pena conocer: DATE Constants.