CP 2.0 - Proyecto Genoma

Unofficial Content

 

Proyecto Genoma (CP 2.0)

Extensión que permitirá implementar herramientas de análisis y procesamiento sobre KB's GeneXus en lenguaje GeneXus.

Objetivos

El objetivo principal del proyecto es implementar la infraestructura necesaria que permite a programadores GeneXus (o programadores de extensiones) desarrollar herramientas de análisis y procesamiento sobre la información contenida en las bases de conocimiento GeneXus.
 

Visión del proyecto

 
El proyecto posee dos visiones diferentes, la visión infraestructura y la visión práctica.
 
Infraestructura
 
A continuación se listarán algunos elementos que serán necesarios para lograr los objetivos principales.
El objetivo a futuro es que los programadores tendrán la infraestructura necesaria para enfocarse en la tarea a realizar (procesamiento o análisis), sin que los mismos tengan que perder tiempo en crear ellos mismos toda la infraestructura necesaria para ejecutar sus desarrollos.
 
La visión de implementación es la siguiente:
 
- Implementar un sitio web (servidor) que brinde el acceso a toda la información resultante del análisis y procesamiento (GenomaServer).
- Implementar servicio de procesamiento (GenomaBrain), en donde ejecutarán los programas de análisis y procesamiento desarrollados en GeneXus.
- Implementar la infraestructura necesario que permita desarrollar programas de procesamiento y análisis, programando en GeneXus (GenomaGX).
- Implementar la infraestructura necesaria que permita a los programas almacenar información para luego ser visualizada en GenomaServer (GenomaRepo)
- Implementar la infraestructura necesaria que permita el deploy de las extensiones desarrolladas con el framework GenomaGX a GenomaBrain (GenomaExtensions)
- Implementar los controles de visualización necesarios para permitir la visualización de la información recabada en GenomaRepo, a ser usados en GenomaServer
 
Casos Prácticos
 
A efectos de darle valor a la infraestructura creada, se implementarán un conjunto de analizadores (análisis estático de código), los cuales se enfocarán principalmente en la detección de complejidad en los programas desarrollados con GeneXus.
 
La complejidad se encuentra fuertemente relacionada a conceptos como usabilidad, mantenimiento y testeabilidad.
Por lo tanto, cuando menos complejidad en los componentes de nuestro sistema lograremos tener un sistema con las siguientes características
 
-  Más simple de mantener
-  Componentes más fáciles de testear
- Procesos más fáciles de usar.
 
Por el momento, solamente se evaluán implementar las siguientes extensiones (intentar cumplir en lo posible con los tiempos para el CP).
 
GenomaExtensions:
 
Métricas de bajo nivel
Líneas de Código : (ver variaciones posibles)
 
Métricas alto nivel (Compuestas por otras métricas)
Índice de Mantenimiento (Mantenibilidad) : http://www.verifysoft.com/en_maintainability.html (Publicación oficial del SEI no encontrada)
 
Métricas a investigar
Complejidad en diseño de formulario (Layout Complexity)
 
Genoma User Controls:
 
GenomaTreeMap
 
Control que permitirá visualizar la información almacenada en GenomaRepo, permitiendo cruzar la información de las diferentes métricas.
 
Información: Genoma - Visualización - User Control TreeMap http://3dgiordano.blogspot.com/2009/11/genoma-visualizacion-usercontrol.html
 
Ejemplos: HTML control Flash: Ver ejemplo GXWiki 3.0 y Ver ejemplo de GXOpen Projects 
 
 
GenomaColorPicker
 
Control que permite de forma visual seleccionar un color desde una paleta de colores. Será utilizado a efectos de permitir configurar los diferentes colores a ser utilizados en los controles de visualización del proyecto (como GenomaTreeMap y otros).
 
Información: Pendiente
 
 
 
GenomaCharts (in development)
 
Control que será utilizado en la implementación del Dashboard para Genoma.
El dashboard mostrará la evolución de las diferentes métricas, intentando permitir visualizar en un único pantallazo el estado de nuestra base de conocimiento (en base a las métricas que creamos que son importantes a controlar)
 

 

 

 

 

 

Futuro de Genoma (Roadmap más allá del CP 2.0)

La idea es que Genoma no muera al finalizar el CP 2.0!!!
 
La idea detrás de Genoma es que toda la comunidad pueda dar su aporte y se vea beneficiada con el uso de Genoma y los aportes realizados por otros.
Finalizado el proyecto, se seguirá con el desarrollo del proyecto hasta lograr llegar a brindar a la comunidad las siguientes herramientas:
 
GenomaBrain y GenomaServer para GeneXusSever público.
 
Todas las KB's hosteadas en el GeneXusServer público se verán beneficiadas a todas la información de análisis proporcionada por el proyecto Genoma.
Se podrán gestionar cuales GenomaExtensions correrán en GenomaBrain para cada KB hosteada, teniendo a disposición todas las GenomaExtensions implementadas para el proyecto Genoma y todas aquellas implementadas por la propia comunidad.
 
KB de GenomaExtensions hosteada en GeneXus Server público
 
En la misma se tendrá acceso a una KB, la cual tendrá todas las GenomaExtensions implementadas para uso público.
 
Controles de Usuario implementados para uso público
 
La comunidad tendrá acceso al uso de los user control creados, así como todos los código fuentes con los cuales fueron constituidos (Actionscript, javascript, etc...)
La idea es que la comunidad siga ampliando el funcionamiento de los mismos, creando nuevas variantes o extendiendo su funcionalidad inicial.
Podrán ser utilizados en proyectos de terceros (tipo de licenciamiento aún no definido).
Posiblemente se trabaje en un futuro en la implementación de mecanismos que permitan a terceros incorporar dentro de Genoma sus propios controles de visualización (CP 3.0?)
 
Deploy de GenomaExtensions a GenomaBrain hosteadas en GeneXusServer
 
Desde GenomaServer será posible hacer deploy de las GenomaExtensions a GenomaBrain.
En principio esta característica será de uso exclusivo para unos pocos, ya que cada extensión debe de ser evaluada (evaluar problemas de performance o seguridad, a futuro una GenomaExtension podría hacer el trabajo automáticamente).
Desde GenomaServer se publicarán las GenomaExtensiones, luego GenomaBrain se encargará de generar, compilar y realizar el deploy de esas extensiones a su propio repositorio de GenomaBrain.
 
GenomaServer como extensión dentro de GeneXusServer
 
La idea es que todo se encuentre integrado a futuro, cuando GenexusServer brinde las herramientas necesarias para permitir integración, se verá de implementar una extensión GeneXusServer para que sea posible instalar GenomaServer en GeneXusServer (Para GeneXusServer público y privado).
 
Todos los fuentes y binarios del proyecto Genoma a disposición de toda la comunidad
 
GenomaServer y GenomaBrain en sus propios servidores.
Acceso a todas las GenomaExtensions implementadas como uso público en GXServer público de la comunidad.
Acceso a framework GenomaGX para implementarse sus propias GenomaExtensions
NOTA: Aún no existe aprobación por parte de Artech, con respecto a permitir correr GenomaServer y GenomaBrain en los servidores públicos de Artech (con acceso a KB's públicas), el texto anteriormente mencionado representa una intención, éstos temas están siendo tratados con Artech a efectos de ver "la forma" o "la posibilidad" de que los mismos sean posibles de implementación.
 
 

Miembros

Como podrán ver, se requiere de mucha colaboración para poder lograr este proyecto colaborativo.
Se acepta todo tipo de colaboración, programadores GX, Artech, desarrolladores de extensiones y user controls.
 
El mail principal del proyecto es genoma-gx@googlegroups.com
 
Lista de miembros
 
- David Giordano (3dgiordano@gmail.com)
- Marcos Begerez (mbegerez@dlya.com.uy)
 
            Si quieres unírtenos o dar una mano con lo que sea http://groups.google.com/group/genoma-gx/ 

Links
 
    Blog de David Giordano
                 Análisis estático de código http://3dgiordano.blogspot.com/2009/10/genexus-analisis-estatico-de-codigo.html
                 Estilos de codificación y refactorización del código fuente http://3dgiordano.blogspot.com/2009/11/genexus-estilo-de-codificacion-y.html
   Genoma - Visualización - User Control TreeMap http://3dgiordano.blogspot.com/2009/11/genoma-visualizacion-usercontrol.html
 
    Wiki de proyecto Genoma en Assembla
    Temas relacionados en Wiki GXTechnical
    Grupo de Discusión para Miembros y colaboradores http://groups.google.com/group/genoma-gx/  
    Cuenta Twitter - http://twitter.com/GenomaProject  
    Menciones y novedades en cuenta de David Giordano - Twitter: http://twitter.com/3dgiordano Facebook: http://bit.ly/aCQt1m
    Ideas para el proyecto (Sugerencias para el futuro, nuevas extensiones, nuevas funcionalidades) - http://genoma.ideascale.com/
   
 

 

Historia

    13/04/2010 - Se encuentra público la versión de los programas de la KB de ejemplo en Samples.GeneXus.com
                             http://samples.genexus.com/genomaucsample/samplecolorpickerandtreemap.aspx
    13/04/2010 - Se publica KB con ejemplo de uso de GenomaColorPicker y GenomaTreeMap
    13/04/2010 - Se liberan arreglos menores para GenomaTreeMap y GenomaColorPicker
 
    12/04/2010 - Trabajando en KB para publicar en GXServer Public, para luego publicar la misma en samples.genexus.com. Ejemplos de GenomaColorPicker y GenomaTreeMap
 
    11/04/2010 - Se corrigen algunos Issues en GenomaTreeMap, se comienza a trabajar en nueva versión.
    11/04/2010 - Se libera primera versión del User Control GenomaColorPicker!!! - A unirse al betatesting!!! Download GenomacolorPicker!!
 
    10/04/2010 - Se mejora implementaciónde GenomaColorPicker, terminando de construir User Control GeneXus
 
    09/04/2010 - David crea página personal en Facebook para tratar temas relacionados con el proyecto Genoma - Página en Facebook http://bit.ly/aCQt1m
 
    08/04/2010 - Primera implementación de User Control en Genexus, GenomaColorPicker (comming soon!!) 
                            Vean una imagen de ejemplo en donde se ven los dos User Control juntos http://twitter.com/3dgiordano/status/11864358575
 
    07/04/2010 - Primer implementación de GenomaColorPicker (Javascript)  http://twitter.com/3dgiordano/status/11803882432
 
    30/03/2010 - Se Libera la primer versión del User Control GenomaTreeMap!!! - A unirse al betatesting!!! Download GenomaTreeMap!!
                            Se publican ejemplo actualizado de GXWiki 3.0 Ver ejemplo GXWiki 3.0
                            Se incorpora un nuevo ejemplo, GXOpen Projects - Ver ejemplo de GXOpen Projects
                            Se incorporan estos mismos de forma de ejemplos dentro del export proporcionado en el User Control
                            El ejemplo de GXWiki 3.0 como archivo JSON y el ejemplo de GXOpen Projects mediante DataProvider con salida a JSON.
 
    20/03/2010 - Se mejora estética, carga dinámica (fps) y pasaje de parámetros, se incorpora el concepto de Watermark y Label's  Ver ejemplo GXWiki 3.0 - 20/03/2010
    08/03/2010 - Creación de sitio de votación de ideas para el proyecto - http://genoma.ideascale.com/
    08/03/2010 - Creación de cuenta en Twitter http://twitter.com/GenomaProject
    Dic 09 / Ene 10 - Mejoras internas a GenomaTreeMap (Soporte de alta carga, pantalla completa, doble escala...)
    30/11/2009 - Primeras pruebas con GenomaTreeMap (Implementación ActionScript/Flash)
    02/11/2009 - Creación del grupo de discucción en GoogleGroups
    01/11/2009 - Se publica información del proyecto en Wiki de Artech   
    29/10/2009 - Creación del documento presentación de GenomaGX
 

Ficha

 

 

 

Proyecto: Genoma
Breve Descripción Extensión que permitirá implementar herramientas de análisis y procesamiento sobre KB's GeneXus en lenguaje GeneXus.
Documentación CP 2.0 - Proyecto Genoma
Source KB showing usage of User Controls: GenomaUCSample
Source of Core: Comming soon
Pruébalo! (Beta) Genoma TreeMap User Control : http://marketplace.genexus.com/viewproduct.aspx?115  
Genoma ColorPicker User Control: http://marketplace.genexus.com/viewproduct.aspx?118 
Genoma UC Sample: http://samples.genexus.com/genomaucsample 
Genoma Core: Comming soon
Miembros David Giordano (dgiordano@dlya.com.uy), Marcos Begerez (mbegerez@dlya.com.uy), <abierto a aceptar más colaboradores>