Top Banner

of 25

Introduccion Teorica - Curso GeneXus X

Jul 14, 2015

Download

Documents

Briana Varela
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript

Introduccin Terica

1

Herramientas y Metodologas

Nuestra tarea como profesionales de la informtica consiste en desarrollar y mantener aplicaciones para apoyar al usuario en su actividad. Para realizar esta tarea existen diferentes herramientas y metodologas. GeneXus es una herramienta para el desarrollo de aplicaciones sobre bases de datos. Su objetivo es permitir la implantacin de aplicaciones en el menor tiempo y con la mejor calidad posible. A grandes rasgos, el desarrollo de una aplicacin implica tareas de anlisis, diseo e implementacin. La va de GeneXus para alcanzar el objetivo anterior es liberar a las personas de las tareas automatizables (como el diseo de la base de datos), permitindoles as concentrarse en las tareas realmente difciles y no automatizables (como comprender los problemas del usuario). GeneXus emplea una metodologa que tiene un enfoque muy diferente al de las metodologas ms comnmente utilizadas. Por tanto, aprender a utilizar GeneXus adecuadamente va ms all de conocer un nuevo lenguaje: lo ms importante es aprender su metodologa.

2

Modelado de la realidad

A partir de las visiones de los usuarios

MODELO DE LA REALIDAD

Satisface Ingeniera Inversa

BASE DE DATOS

PROGRAMAS

VISIONES DE USUARIOS

El primer problema al que nos enfrentamos en el desarrollo de aplicaciones es la obtencin del conocimiento de la realidad. Nadie dentro de la empresa conoce los requerimientos y el alcance de la aplicacin a desarrollar como un todo. Entonces, cmo logramos obtener el conocimiento de la realidad de una forma lo suficientemente objetiva y detallada al mismo tiempo, que nos permita construir un modelo corporativo? Este conocimiento se encuentra en cada una de las visiones de los usuarios. Cada usuario conoce bien los objetos con los que trabaja cotidianamente, la informacin que se maneja en ellos, las reglas que deben seguirse, los clculos que deben realizarse. Por lo tanto, el punto de partida de la metodologa GeneXus es: describir las visiones de los usuarios para modelar el sistema; y a partir del modelo de la realidad definido, GeneXus construye el soporte computacional -base de datos y programas- en forma totalmente automtica.

3

Desarrollo con GeneXus

REALIDADDESCRIPCIN DE OBJETOS

Utilizando GeneXus, la tarea bsica del analista es la descripcin de la realidad. Slo el ser humano puede desarrollar esta tarea ya que slo l puede entender el problema del usuario. El analista GeneXus trabaja en alto nivel, en vez de realizar tareas de bajo nivel como: disear archivos, normalizar, disear programas, programar, buscar y eliminar los errores de los programas. Para comenzar el desarrollo de una aplicacin con GeneXus, el primer paso consiste en crear un nuevo proyecto o base de conocimiento. Una vez creada una nueva base de conocimiento (en ingls: knowledge base; abreviado: KB), el siguiente paso es describir las visiones de los usuarios. Para ello se deben identificar los objetos de la realidad (prestando atencin a los sustantivos que los usuarios mencionan en sus descripciones, como por ejemplo: clientes, productos, facturas) y pasar a definirlos mediante objetos GeneXus. Con la definicin de estos objetos, GeneXus puede extraer el conocimiento y disear la base de datos y los programas de la aplicacin en forma automtica.

4

Desarrollo con GeneXus

REALIDADDESCRIPCIN DE OBJETOS

BASE DE CONOCIMIENTO

Utilizando GeneXus, la tarea bsica del analista es la descripcin de la realidad. Slo el ser humano puede desarrollar esta tarea ya que slo l puede entender el problema del usuario. El analista GeneXus trabaja en alto nivel, en vez de realizar tareas de bajo nivel como: disear archivos, normalizar, disear programas, programar, buscar y eliminar los errores de los programas. Para comenzar el desarrollo de una aplicacin con GeneXus, el primer paso consiste en crear un nuevo proyecto o base de conocimiento. Una vez creada una nueva base de conocimiento (en ingls: knowledge base; abreviado: KB), el siguiente paso es describir las visiones de los usuarios. Para ello se deben identificar los objetos de la realidad (prestando atencin a los sustantivos que los usuarios mencionan en sus descripciones, como por ejemplo: clientes, productos, facturas) y pasar a definirlos mediante objetos GeneXus. Con la definicin de estos objetos, GeneXus puede extraer el conocimiento y disear la base de datos y los programas de la aplicacin en forma automtica.

5

Desarrollo con GeneXusREALIDAD

DESCRIPCIN DE OBJETOS

BASE DE DATOS

BASE DE CONOCIMIENTO

PROGRAMAS

A partir de los objetos definidos en la base de conocimiento, GeneXus genera automticamente tanto los programas de creacin / reorganizacin de la base de datos como los programas de la aplicacin. Luego, si un objeto de la realidad cambia, si se identifican nuevas o diferentes caractersticas del mismo, o si se encuentran objetos an no modelados, el analista GeneXus debe reflejar dichos cambios en los objetos GeneXus que correspondan, y la herramienta se encargar automticamente de realizar las modificaciones necesarias tanto en la base de datos como en los programas asociados. La metodologa GeneXus es una metodologa incremental, pues parte de la base de que la construccin de un sistema se realiza mediante aproximaciones sucesivas. En cada momento el analista GeneXus define el conocimiento que tiene y luego cuando pasa a tener ms conocimiento (o simplemente diferente) lo refleja en la base de conocimiento y GeneXus se ocupar de hacer automticamente todas las adaptaciones en la base de datos y programas. Si GeneXus no fuera capaz de realizar automticamente las modificaciones en la base de datos y programas conforme se realicen cambios que as lo requieran, el desarrollo incremental sera inviable.

6

Algunos objetos GeneXus

Transacciones(Trns)

Procedimientos(Procs)

Data Providers(DP)

Web Panels(Wbps)

y hay ms, que veremos...

Una vez creada una base de conocimiento, el siguiente paso consiste en comenzar a describir los objetos de la realidad mediante objetos GeneXus. Los objetos GeneXus ms importantes son: Transacciones Permiten definir los objetos de la realidad que el usuario manipula (ej: clientes, productos, proveedores, facturas, etc.). Son los primeros objetos en definirse, ya que a travs de las transacciones, GeneXus infiere el diseo de la base de datos. Adems de tener por objetivo la definicin de la realidad y la consecuente creacin de la base de datos normalizada, cada transaccin tiene asociada una pantalla para ambiente windows y otra para ambiente Web, para permitir al usuario dar altas, bajas y modificaciones en forma interactiva a la base de datos. El analista GeneXus decidir si trabajar en ambiente windows, Web, o ambos, y GeneXus generar los programas para ello. Procedimientos Permiten recuperar informacin de la base de datos, y desplegarla ya sea en la pantalla, en un archivo o impresa en papel. Son los tpicos listados o informes. Adems, permiten la actualizacin de la informacin de la base de datos. Data Providers Permiten cargar y devolver datos jerrquicos para intercambio de informacin entre objetos de la misma aplicacin o de otras aplicaciones. Web Panels Permiten al usuario realizar interactivamente consultas a la base de datos, a travs de una pantalla. Ejemplo: un web panel permite al usuario ingresar un rango de caracteres, y muestra a continuacin todos los clientes cuyos nombres se encuentran dentro del rango. Son objetos web muy flexibles que se prestan para mltiples usos. No permiten la actualizacin de la base de datos, sino solo su consulta.

7

Proceso de desarrollo de una aplicacin con GeneXusTransacciones(Trns)

Procedimientos(Procs)

Data Providers(DP)

Web Panels(Wbps)

Base de Conocimiento Base de Conocimiento

Base de Datos

Los primeros objetos que se definen son las transacciones, ya que es a partir de ellas que GeneXus extrae el conocimiento necesario para disear el modelo de datos normalizado (en 3era. forma normal). Luego se van definiendo los dems objetos que correspondan.

8

Creacin de la Base de DatosTransacciones(Trns)

Procedimientos(Procs)

Data Providers(DP)

Web Panels(Wbps)

Base de Conocimiento Base de Conocimiento

Base de Datos

Programas Creacin BD

GeneXus genera automticamente los programas necesarios para crear la base de datos y los ejecuta. De esta manera obtenemos la base de datos creada por GeneXus en forma automtica.

9

Generacin de los Programas de la aplicacinTransacciones(Trns)

Procedimientos(Procs)

Data Providers(DP)

Web Panels(Wbps)

Base de Conocimiento Base de Conocimiento

Base de Datos

Programas de Aplicacin(Trns, Procs, Wbps, DPs, etc.)

Luego, GeneXus genera programas de aplicacin para interactuar con la base de datos previamente creada.

10

Resultado final en la Etapa de DesarrolloTransacciones(Trns)

Procedimientos(Procs)

Data Providers(DP)

Web Panels(Wbps)

Base de Conocimiento Base de Conocimiento

Base de Datos

Programas de Aplicacin(Trns, Procs, Wbps, DPs, etc.)

Una vez creada la base de datos y generados los programas, contamos con una aplicacin pronta para ejecutar.

11

Las visiones de los usuarios cambianNuevas Transacciones Nuevos Procedimientos Nuevos Data Providers Nuevos Web Panels

Base de Conocimiento Base de Conocimiento

Base de Datos

Nueva Nueva Base Base de de Datos Datos

Programas de Aplicacin(Trns, Procs, Wbps, DPs, etc.)

Durante el ciclo de vida de la aplicacin, surgir repetidamente la necesidad de hacer modificaciones en la base de conocimiento, ya sea porque las visiones de los usuarios cambian, porque se deben hacer correcciones, o simplemente agregar nuevo conocimiento. Las modificaciones que se realicen sobre la base de conocimiento sern analizadas por GeneXus para evaluar si es necesario efectuar cambios en la base de datos (por ejemplo: modificacin/creacin de tablas/ndices), o no. En caso de detectar cambios para efectuar en la base datos, GeneXus detallar los mismos en un reporte de anlisis de impacto (IAR: Impact Analisis Report), que es un reporte que explicita todos los cambios sobre tablas, ndices, datos, etc. que habra que realizar para reflejar la nueva realidad. Asimismo, en el reporte de anlisis de impacto se informan los eventuales problemas que los cambios en cuestin podran ocasionar, como inconsistencias o redundancias.

12

Anlisis de Impacto AutomticoNuevas Transacciones Nuevos Procedimientos Nuevos Data Providers Nuevos Web Panels

Anlisis de impacto

Base de Conocimiento Base de Conocimiento

Base de Datos

Nueva Nueva Base Base de de Datos Datos

Programas de Aplicacin(Trns, Procs, Wbps, DPs, etc.)

Algunas veces la nueva base de datos coincide con la anterior. Otras veces esto no ocurre, y la base de datos debe sufrir alguna modificacin para representar la nueva realidad. El analista debe estudiar el reporte de anlisis de impacto y resolver si desea realizar efectivamente los cambios en la base de datos, o renunciar a ello dejando la base de datos como estaba.

13

Generacin de Programas de Reorganizacin de la Base de DatosNuevas Transacciones Nuevos Procedimientos Nuevos Data Providers Nuevos Web Panels

Programas de Reorganiz.

Base de Conocimiento Base de Conocimiento

Base de Datos

Nueva Nueva Base Base de de Datos Datos

Programas de Aplicacin(Trns, Procs, Wbps, DPs, etc.)

Si el analista opta por aplicar los cambios propuestos, decimos que opt por reorganizar la base de datos. Utilizamos este trmino para referirnos a la accin de aplicar cambios fsicos sobre la base de datos. GeneXus generar los programas que implementan las modificaciones sobre las estructuras fsicas de la base de datos, y mediante su ejecucin nos brindar la nueva versin de la base de datos con los cambios efectuados.

14

Anlisis automtico del impacto de los cambios sobre los programasNuevas Transacciones Nuevos Procedimientos Nuevos Data Providers Nuevos Web Panels

Base de Conocimiento Base de Conocimiento

Anlisis de Impacto sobre los programas

Nueva Base de Datos

Nuevos Programas de Aplicacin(Trns, Procs, Wbps, DPs, etc.)

Ya sea que se requiera reorganizar la base de datos o no, considerando las nuevas definiciones introducidas, GeneXus estudiar el impacto de los cambios sobre los programas actuales.

15

Generacin automtica de nuevos programasNuevas Transacciones Nuevos Procedimientos Nuevos Data Providers Nuevos Web Panels

Base de Conocimiento Base de Conocimiento

Generacin de programas

Nueva Base de Datos

Nuevos Programas de Aplicacin(Trns, Procs, Wbps, DPs, etc.)

Por ltimo, GeneXus proseguir con la generacin/regeneracin de los programas de aplicacin que sean necesarios, obteniendo as una nueva versin de la aplicacin.

16

Nueva realidad, con los cambios en la aplicacinNuevas Transacciones Nuevos Procedimientos Nuevos Data Providers Nuevos Web Panels

Base de Conocimiento Base de Conocimiento

Nueva Base de Datos

Nuevos Programas de Aplicacin

De modo que nuevamente contaremos con una aplicacin pronta para ejecutar, con los cambios aplicados.

17

Environments Ellugardondesealmacenalainformacinparagenerarla aplicacinenciertaplataformadeejecucinsellamaEnvironment.Environments:Implementation #1C# & SQL ServerC# Application SQL

Implementation #2 GeneXus ProjectC# & MySQLC# Application MySQL

Implementation #3Java Application

Java & MySQL

MySQL

Knowledge Base

ElusodevariosEnvironmentspermitedistintasimplementaciones delamismaaplicacin.

18

Environments Cuandosecreaunabasedeconocimiento(KB),GeneXuspideal usuarioqueseleccioneelEnvironmentconelquevaatrabajar:

Conestosdatos,secreaautomticamenteunEnvironment.

Para crear una base de conocimiento, se debe seleccionar en la barra de men de GeneXus, el tem File / New Knowledge Base. A continuacin aparecer un dilogo como el siguiente:

Se deber indicar; Nombre de la Knowledge Base: en nuestro caso ser BillingSystem. Directorio donde se crear. El Environment por defecto: vea como se muestran lenguajes de programacin. GeneXus los utilizar para crear los programas asociados a la base de datos. Target: Su aplicacin final ser Web, Win, o Win & Web? Language: Idioma en el que aparecern los botones, mensajes, etc. Al momento de crear la KB se comienza a definir el ambiente de implementacin (Environment) cuyas definiciones sern luego completadas al momento de ejecutar la aplicacin (nombre de la base de datos, servidor, forma de conexin, etc).

19

Environments ParaverelEnvironment creado,seleccionamoslaventanade Preferences delKnowledgeBaseNavigator:

Default Environment

20

Environments Paratenerimplementacionesendistintasplataformas,creamos variosEnvironments.

21

Environments VemoslosEnvironments creados:Environments:

C# & SQL Server

GeneXus ProjectJava & MySQL

Knowledge Base

El environment activo est sealado en negrita y tiene el cono de Play

22

Metodologa IncrementalConstruir una aplicacin mediante aproximaciones sucesivas.

DEFINICION INICIAL

La construccin automtica de la base de datos y programas, permite a GeneXus aplicar esta metodologa de desarrollo, conocida como metodologa incremental. Como ya hemos explicado, este proceso se realiza mediante aproximaciones sucesivas.

23

Metodologa IncrementalParaaplicarundesarrolloincremental,puedomanejardistintas versiones delaaplicacin.

Versinparaprototipacin. Versinparaponerenproduccin.

Sobre el versionado (de qu se trata, cmo realizarlo, etc.) volveremos al final. Por ahora alcanza con saber que al crear la base de conocimiento, los programas que estaremos ejecutando, programas reales, sern una versin de la aplicacin, de prueba. Una vez que decidamos que esa versin est lista para ser puesta en produccin, alcanzar con hacer otra versin de la aplicacin, y listo!.

24

Ventajas de la Prototipacin Permiteverresultadosenformatemprana. Permiteelseguimientodelosrequerimientosdelusuario. Deteccindeerroresenformatemprana. Lograelcompromisodelosusuariosconeldesarrollo. Sistemasdemejorcalidad.

Toda comunicacin es susceptible de errores: El usuario olvida ciertos detalles El analista no toma nota de algunos elementos El usuario se equivoca en algunas apreciaciones El analista malinterpreta algunas explicaciones del usuario

Como la implementacin de sistemas es habitualmente una tarea que insume bastante tiempo, y muchos de estos problemas slo son detectados en las pruebas finales del sistema, el costo en tiempo y dinero de solucionarlos se torna muy grande. Sabido es que la realidad no permanece esttica, por lo que no es razonable suponer que se pueden mantener congeladas las especificaciones mientras se implementa el sistema. Sin embargo, debido al tiempo que suele insumir la implementacin, muchas veces esto se hace y se acaba implementando una solucin relativamente insatisfactoria. El impacto de estos problemas disminuira mucho si se consiguiera probar cada especificacin inmediatamente y saber cul es la repercusin de cada cambio sobre el resto del sistema. Una primera aproximacin a esto, ofrecida por diversos sistemas, es la posibilidad de mostrar al usuario formatos de pantallas, informes, etc., animados por mens. Esto permite ayudar al usuario a tener una idea de qu sistema se le construir, pero al final siempre se presentan sorpresas. Una situacin bastante diferente sera la de poner a disposicin del usuario para su ejecucin, una aplicacin funcionalmente equivalente a la deseada hasta en los mnimos detalles. Y esto es lo que ofrece GeneXus! Un prototipo GeneXus es una aplicacin pronta funcionalmente equivalente a la aplicacin de produccin. As es que la aplicacin puede ser totalmente probada antes de ponerse en produccin; y durante las pruebas, el usuario final puede probar de una forma natural no solamente formatos de pantallas, informes, etc., sino tambin frmulas, reglas del negocio, estructuras de datos, etc., y trabajar con datos reales. Esto solo es posible gracias a la construccin automtica que realiza GeneXus del soporte computacional (base de datos y programas).

25