PDF de programación - Desarrollo basado en conocimiento - Filosofía y fundamentos teóricos de genexus

Imágen de pdf Desarrollo basado en conocimiento - Filosofía y fundamentos teóricos de genexus

Desarrollo basado en conocimiento - Filosofía y fundamentos teóricos de genexusgráfica de visualizaciones

Publicado el 6 de Abril del 2017
1.822 visualizaciones desde el 6 de Abril del 2017
672,7 KB
17 paginas
Creado hace 16a (01/05/2007)
DESARROLLO BASADO EN CONOCIMIENTO

FILOSOFÍA Y FUNDAMENTOS TEÓRICOS DE GENEXUS

por Breogán Gonda y Nicolás Jodal

Copyright © Artech 1988 - 2007, todos los derechos reservados

Mayo de 2007



RESUMEN: SE TRATA DE MOSTRAR, DE UNA MANERA SIMPLE Y SISTEMÁTICA, LA FILOSOFÍA Y LOS
FUNDAMENTOS TEÓRICOS DE GENEXUS. BUENA PARTE DE ESTOS ELEMENTOS SON CONOCIDOS POR LA
COMUNIDAD GENEXUS, PERO ESTÁN RECOGIDOS DE MANERA SÓLO PARCIAL EN UNA SERIE DE
DOCUMENTOS.

INTRODUCCIÓN

El propósito de este documento es ayudar a entender las ideas básicas y los conceptos teóricos que hicieron
posible GeneXus, para que pueda comprenderse mejor su esencia y los nuevos desarrollos que se irán
produciendo en el futuro.

El primer propósito de GeneXus era establecer un robusto modelo de datos. Una vez construido con todo
rigor dicho modelo, se pudo pensar en una ampliación del mismo incorporándole elementos declarativos como
reglas, fórmulas, pantallas, etc., tratando de describir las visiones de datos de los usuarios y, de esta manera,
abarcar todo el conocimiento de los sistemas de negocios.

¿Por qué se trató de abarcar todo el conocimiento de los sistemas de negocios? Porque es una condición necesaria
para poder proyectar, generar y mantener en forma 100% automática los sistemas computacionales de una
empresa cualquiera. Parecía claro que la comunidad informática, en algún momento, optaría por este camino y era
bueno anticiparse en recorrerlo tanto como fuera posible.

Pero, ¿cómo abarcar todo el conocimiento de los sistemas de negocios?, ¿cómo abarcar la casuística que tienen
los sistemas de negocios?

La primera versión de GeneXus (100% declarativa) pretendía resolver el problema de generación y
mantenimiento del 70% de los programas. De ellos se ocupaba el sistema en forma automática. El 30% restante
debía ser programado y mantenido manualmente.

Los “prospects” entendieron que resolver automáticamente el 70% de su problema era muy bueno e, incluso,
tuvieron dudas de que el mantenimiento automático fuera posible: los primeros que adoptaron GeneXus lo
hicieron exclusivamente por el aumento de productividad en el desarrollo. Sin embargo, luego de algunos meses,
esos clientes apreciaron mucho el gran aumento de productividad que obtenían en el desarrollo, pero apreciaron
mucho más aún el mantenimiento automático.

Al año del lanzamiento, el proyecto GeneXus comenzó a sufrir una fuerte presión de sus clientes (el éxito del
mantenimiento automático y las ventajas que ello les proporcionaba los llevó a exigir “mantenimiento automático
para todo” lo que, como precondición exigía “generación automática de todo”).



Página 1

Todo esto no tenía antecedentes en el mercado internacional (realmente, muchos años después, GeneXus sigue
siendo el único producto en el mundo que resuelve estos problemas).

Pero, entonces, ¿Cuál es hoy el objetivo de GeneXus? El objetivo de GeneXus es conseguir un muy buen
tratamiento automático del conocimiento de los sistemas de negocios.

Ésta es la esencia. Cumplido ese objetivo existe un gran conjunto de subproductos como, por ejemplo:

• Proyecto, generación y mantenimiento automáticos de la base de datos y los programas de aplicación

necesarios para la empresa.

• Generación, a partir del mismo conocimiento, para múltiples plataformas.



Integración del conocimiento de diversas fuentes para atender necesidades muy complejas con costos en
tiempo y dinero muy inferiores a los habituales.

Generación para las tecnologías futuras, cuando esas tecnologías estén disponibles, a partir del conocimiento que,
hoy, atesoran los clientes GeneXus en sus Knowledge Bases: GeneXus trabaja con el conocimiento puro, cuya
validez es totalmente independiente de las tecnologías de moda.


Todo el desarrollo ha seguido ciertas líneas maestras. Este documento tiene por propósito explicitar estas líneas
maestras, de una manera simple y conceptual.



Página 2

NUEVO PARADIGMA: DESCRIBIR EN VEZ DE
PROGRAMAR

¿De qué manera pretendemos describir la realidad?

Se pretende "describir" en vez de "programar". Se pretende maximizar las descripciones declarativas y
minimizar las especificaciones procedurales.

¿Por qué “describir” en vez de “programar”?

Esta pretensión constituye un cambio esencial de paradigma e implica un choque cultural. Los cambios de
paradigma tienen el problema de su lenta adopción pero luego, si son correctos (¡y éste sin duda lo es!), en algún
momento se producen hechos que determinan su rápida adopción general.

¿Cuáles son los hechos a que nos referimos?: hoy la enorme mayoría de los sistemas se desarrollan y mantienen
con programación manual pero, ¿cuál ha sido la evolución del mercado en los últimos 40 años (datos al año
2006)?

La complejidad de los sistemas ha aumentado en un 2000%

La productividad de los lenguajes de programación ha aumentado en un 150%

Esta situación es inmantenible para los negocios. Los costos crecen de una manera desmesurada.

Podemos separar esos costos en dos dimensiones: Dinero y Tiempo.

Las empresas han descubierto, gracias a la disponibilidad de comunicaciones rápidas y baratas, que puede actuar
sobre la dimensión Dinero, contratando el desarrollo y mantenimiento de sus sistemas en países de bajos salarios
y lo ha hecho intensamente en los últimos años.

En realidad no se ha resuelto el problema del costo, sino que se cambió la unidad de medida: son básicamente las
mismas horas de trabajo (es sustancialmente el mismo trabajo), pero el precio de la hora-hombre es mucho menor.
Si medimos el costo en dinero, se ha producido un fuerte abaratamiento.

¿Qué ocurre con la dimensión Tiempo? Lo anterior no se aplica a los tiempos.

Los sistemas de negocios necesitan responder a nuevas necesidades: nuevos dispositivos, nuevos usuarios,
nuevas modalidades de uso, nuevas posibilidades de integración y, por ello, se hacen cada día más y más
complejos y los negocios están sujetos a un “time to market” cada vez más crítico y que no pueden cambiar.
Como consecuencia, cada día más negocios se están perjudicando por los tiempos inadecuados de desarrollo de
las nuevas soluciones y de mantenimiento de las actuales. Y hoy (pero sobre todo en un futuro próximo) nadie
puede hacer buenos negocios sin los sistemas adecuados.

Esta situación no puede seguir así durante mucho tiempo, y primero lentamente, hoy más rápidamente, van
apareciendo ejemplos de ello como:



Página 3

Muchas empresas en casi todos los países más desarrollados están recurriendo más y más al “outsourcing”,
generalmente acompañado por “offshoring” hacia países de bajos salarios, del desarrollo de sus sistemas, pero
simultáneamente hay una corriente creciente de empresas que siguen el camino inverso, porque no han obtenido
resultados convenientes con dicho “outsourcing”.

Cada vez más existen empresas que experimentan una gran violencia al despedir a sus técnicos y traspasar su
trabajo a técnicos desconocidos de países lejanos. Para evitarlo necesitan que sus costos “in house” sean similares
a los del “outsourcing”. Sólo la adopción de tecnologías de muy alto nivel lo permitirá.

Es necesario un dramático aumento de la productividad pero la productividad de los lenguajes de programación
ha llegado hace ya bastante tiempo a una estabilización.

¿Cómo se resuelve el problema?, ¿con mejores lenguajes de programación?: ¡los hechos muestran que no! El
problema no está en los lenguajes de programación, sino en la propia programación.

¿Cómo lograr, entonces, el aumento de productividad que se necesita? Haciendo desarrollo basado en
conocimiento y no en programación: ¡la solución es describir en vez de programar!

En Artech estamos convencidos de ello y nos preparamos para esa explosión del mercado del desarrollo basado en
conocimiento que se producirá en los próximos años.

MODELO DE DATOS

Históricamente la comunidad informática comenzó trabajando sólo con un modelo físico, que tenía muchas
rigideces. Luego fue introduciendo otros modelos a los efectos de tener más flexibilidad y obtener cierta
permanencia de las descripciones. El trabajo más importante sobre el tema lo ha sido el informe de 1978 del grupo
ANSI SPARC [1] que introduce tres modelos:

Modelo Externo donde se representan las visiones externas.

Modelo Lógico o Conceptual: Es otro modelo (generalmente un modelo E-R) que se pretendía obtener por
abstracción de la realidad.

Modelo Físico: Se refería fundamentalmente al esquema de la base de datos.

La idea era desarrollar paralelamente los tres modelos para que los programas sólo interactuaran con el Modelo
Externo y, a partir del Modelo Lógico se hiciera un "mapping" entre esos programas y la base de datos (Modelo
Físico) y que ello hiciera independientes a los programas de la base de datos.

El informe fue muy elogiado en su momento y, luego, casi olvidado. Sólo un fabricante a inicios de los 80 trató de
implementar este esquema de tres modelos. Lo fue Cincom Systems para su producto SUPRA y para diferentes
lenguajes accediendo a bases de datos SUPRA.

Más allá de todo esto, el informe ANSI SPARC sigue siendo válido hoy. La mayor diferencia es la tecnología
disponible. En los años transcurridos, los cambios tecnológicos han sido muy importantes.



Página 4

Analizando el asunto a la luz de la tecnología actual, concluimos que pueden existir varios modelos, pero el
modelo realmente importante para los usuarios y los desarrolladores, es el Modelo Externo: en él recogemos
el
  • Links de descarga
http://lwp-l.com/pdf2678

Comentarios de: Desarrollo basado en conocimiento - Filosofía y fundamentos teóricos de genexus (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad