This action might not be possible to undo. Are you sure you want to continue?
Distribute in Italy by
TABLE OF CONTENTS Introduction The theoretical problem Traditional Development Methodologies and Related Problems Incremental Methodology GeneXus: An implementation of incremental development Design Transactions Reports Procedures Work Panels Web Panels Themes Menu Data Views GeneXus works with pure knowledge Multiple Platforms / Multitier Architectures Prototype Implementation Maintenance Impact of database changes Impact analysis Generation of conversion programs Execution of conversion programs Impact of program changes 4 5 5 6 7 8 8 9 9 9 9 9 9 10 10 10 10 11 12 12 12 12 12 12 .
Impact analysis Generation of new programs Documentation Consolidation of several applications and knowledge reusability GeneXus'Unique features GeneXus Users WorldWide 12 12 13 13 14 15 .
whose goal is to assist analysts and users during the whole applications' life cycle. In this way we relieve the analyst from getting involved with tedious and boring tasks. the database and application programs are generated and maintained in a fully automatic way and thus. developed by Artech. The design and prototype models are developed and tested on a PC either in a Windows. The basic idea of GeneXus is to automate all that can be made automatic: data normalization and design.Introduction GeneXus is an intelligent tool. The purpose of this document is to inform the reader about GeneXus features and the problems it solves. give rise to the production environment. database and application programs generation and maintenance. Once the prototype has been totally approved by its users. allowing him/her to put all his/her attention on something a programming tool will never be able to do: understanding user problems. Windows NT/2000/XP environment. incremental development is presented. • • • An implementation of incremental development: GeneXus Unique features of GeneXus GeneXus users worldwide . It consists of the following sections: • The theoretical problem in this section a comparative description of traditional methodologies for system development vs. A subproduct of the design process is the fact that GeneXus builds the system's documentation selfsufficiently and it permanently updates it.
is to implement the rd th functions where there are traditionally several options to use for this last task (3 or 4 generation languages. However. obtain a functional specification in terms of database files (or more precisely of data model entities that is equivalent on a primary basis). it is impossible to draw up a detailed data model of the company in an abstract way. generators. A data model is quite easily reflected by a database once its information is passed on to it. it is common practice to add redundant files. Now if big applications are concerned then the situation is even worse: its maintenance begins a lot before the actual implementation of new components. All this would have no importance if functional specifications and database requirements are totally independent. Since it is very difficult to determine and propagate all changes made to the database in such a way that all processes affected by these changes respond accordingly. . interpreters). several workers ranging from employees to employers (let us consider them as users in general) will need to be interviewed and queried on their work in order to achieve a complete view of the company’s operations. a great fall in system quality and a notorious maintenance cost rise. however. However. Most methodologies. nor is it viewed with the required level of objectivity and detail because nobody on their own right has complete knowledge of the company. Even if we consider an ideal situation where the analyst incharge knows exactly what needs to be done and an optimum database is created. Given this assumption the first task involves a thorough data analysis where an abstract investigation of the company’s reality is performed and the final result is a data model of the company. So.The theoretical problem Traditional Development Methodologies and Related Problems The traditional way of application development is based on the following statement: it is possible to build a stable data model of the company. It would be desirable that the study of reality in terms of its functions returns a functional specification of ‘the’ reality. Once a data model has captured the total essence of the reality. the implementation options mentioned above have a common problem: they are based on a false premise: it is possible to build a stable data model of the company. the next major step is to analyze the company in its functional aspects. So. Actually. the model cannot remain static since it must accompany the evolution of the enterprise. This frequently spells out very high maintenance costs. It is generally accepted that 80% of the resources ‘theoretically’ destined to development are actually consumed by the maintenance of implemented applications. This solution can only bring along as a consequence. it is inevitable that a change to the latter implies the corresponding (handmade/manual) changes to functional specifications. The second task is design the database so as to best absorb the knowledge of the data model. The next and final step after having obtained the database and the functional specification. During the whole application life cycle it is clear that model changes are incorporated as a consequence of user necessities. meaning development costs grow exponentially when compared against the actual size of the project. functional specifications are based entirely on the database’s structure.
To do it. listings. then a rigorous self standing specification of the problem taking the form of a mathematical representation gives rise to a wide range of resources to help solve it automatically. but every user is completely aware of the data views he/she handles on a daily basis. An interesting thought is: a complete knowledge of the database makes possible the designation of required views to all users. perceived as external aspects of the application. In other words. In other words each user one has his/her own view of reality. So. an automatic procedure. In other words. everything that is tangibly perceptible to the user.Incremental Methodology An alternative solution to ‘the problem’ consists of replacing the basic premise seen above with: there is no such thing as a stable data model of the company and really provide a successful solution by taking this one step further by suggesting an incremental philosophy as well. . However. by means of exclusive investigations. simplify the analyst's task. meaning they are: • • Automatically generated. Data views take on many formats: screens. etc. The main difference between a knowledge base and traditional data dictionaries is the fact that it has the capacity to infer: the incorporation of certain elements acts as an inference trigger to determine other values. we need to solve it to determine the database. The new versions of the Application Programs affected by those changes. Based on that knowledge it designs and automatically generates the data model. the database must satisfy all user views. Artech has developed. It can be demonstrated that given a set of data user views always gives rise to a minimum normalized database. and thus. If a knowledge base is achieved then the database and application programs are deterministic. the following can be noticed: The entire database structure is not known. Deploying those changes involves the generation of: • • The necessary Data Conversion Programs. once it is clear that the problem does have mathematical characteristics. But how can one implement this theory? By capturing the knowledge that resides in user views and transferring it to a knowledge base. How can the information from these views help construct a data model? How can we view the above issue as a mathematical problem? If this can be achieved. And since changes in user views is a natural event: The impact of those changes over data and processes is totally measurable and thus determined. An incremental philosophy seems like a very natural solution as big problems will no longer exist since they are broken down into smaller ones and are resolved as such. which also happens to be unique. What impact does this philosophy have on maintenance costs? If the methodologies reviewed above are used then the impact of changes must be considerable because this approach implies constant changes to the data model and a much greater increase in maintenance costs than initially suggested. the database and the application programs.
Another consequence of working with the pure knowledge is the possibility of generating applications for multiple platforms and multiple architectures and. and operating automatically with that knowledge (integrating it with another from other sources. The second step is Prototype the application. based on this feedback will return to the design phase. which allows performing several things: generating programs (traditional software). From its knowledge base it’s capable of designing. GeneXus generates the database and programs for prototype environments. spreading it. The first step to take into account when developing an application with GeneXus. although when they were developed nobody could think in something so different from the environment with which they were working. generating and maintaining 100% automatically the database schema and the application programs (the necessary programs in order that the users operate with their visions). now may take advantage of the knowledge about those applications development that GeneXus saved to develop . Which is the main strength behind GeneXus? A very good automatic administration of the business systems knowledge. the Prototype is executed and tested by analysts and end users. GeneXus is built over a very strong mathematical foundation. certain type of “insurance” at the technology changes: for example. is to Design the application from the user’s prospective (from which the system captures and systemize the knowledge). . it allows the "knowledge business” as a step higher than the “software business”. This is when GeneXus actually generates the database and programs for the production environment. the following stage is the actual Implementation. understanding that knowledge by human beings (it doesn’t need additional documentation – which would never be updated). Summing up. The purpose of a prototype is to provide a way to interact with the user with a live application. licensing it to others so they integrate it in their applications). an application is first Designed then Prototyped and finally Implemented. it captures their knowledge and systematizes them within a knowledge base. Once the Prototype is entirely approved. so improvements can be suggested and errors detected. Therefore.NET applications easily. very specially. The designer has complete freedom to finetune any of the stages based on constant feedback from the users.GeneXus: An implementation of incremental development GeneXus makes the implementation of this theory possible. GeneXus is a tool that starts from “user’s visions”. GeneXus works with the pure knowledge. Once generated. perform the corresponding modifications and offer another operational Prototype. The designer. This cycle is commonly referred to as the Design/Prototype cycle. those GeneXus users who developed applications 8 or 10 years before for iSeries with text screens and rather primitive technologies.
Data Views. referential integrity rules. where a low level of abstraction can be achieved using terms and concepts that are well known by endusers. and Data Warehousing Transactions. This type of joint participation has a very important and positive effect on the user. Work Panels. The actual work can be done either on or off the user's site. etc. This Knowledge Base is a unique repository of all design information from which GeneXus creates the physical data model (tables. Reports. the Knowledge Base. we will describe the more important types of GeneXus objects in detail: Transactions A transaction is an interactive process used by users to create. redundancies. indexes. modify or delete database data. Given these descriptions GeneXus automatically systematizes the captured knowledge and builds. . They are commonly known by users as 'screens' (Win or Web). This knowledge is captured via GeneXus objects: Transactions. So. attributes. Menus. he/she (there can be more than one user involved) becomes an enthusiastic participant in the development.Figure 1: Cycles: Design–Prototype and DesignProduction Each of the above stages are explained in detail: Design This phase is performed by both the analyst and the user and it consists of identifying and describing user objects and associating data views. GeneXus is able to capture knowledge based on the views the user has of the objects from his/her reality. Procedures. The system results from a joint effort where the user permanently follows its evolution guaranteeing more quality than what is commonly achieved. the first phase denominated design consists of identifying and describing the mentioned objects.) and application programs. Now. Application analysis and design are based on the description of GeneXus objects. incrementally. Themes. Web Panels.
We also provide a tool GXquery to make dynamics queries on the database. Web Panels Are similar to the set of Work Panels but they require an application browser to run on Internet/Intranet/Extranet environments. this theme is associated to the GeneXus object forms. they make Web applications more dynamic and customizable. GeneralPurposeSubroutines: For example. if desired by the user. • Work Panels A Work Panel is a screen allowing users to perform interactive database queries. and so on. However. such as fonts.Examples: • • Screen to create. For example: a Work Panel that displays a customer list and that allows.g. The Themes Editor is the graphic designer that defines all the visual elements of the application. Then. the more necessary sophisticated dialogs become since they provide users with the elements they need to take decisions. it returns a text value that represents that quantity using letters instead of numbers (e. modify or delete Customer entries in a Corporate database. Reports A report is used to query the database. Since these CSSbased theme values can be changed in runtime. This object can return reports that range from very simple (list customer data) to complex listings (several control breaks and multiple database accesses with parameterization). a Report cannot update a database (it has not been assigned the properties to do so). given an amount of money. A single screen can offer a high level of flexibility to users since they can perform different actions such as insert. Themes Themes are created and updated through the Themes Editor. Procedures are commonly used by three types of processes: • • BatchProcesses: For example. printer (conventional listing) or file. ApplicationServerProcesses: processes (generally written with C/SQL or Java) for a MultiTier Architecture. . buttons. a routine that returns an amount in words. delete all invoices with date prior to a given one and that have already been paid. that is. delete or print information without having to go back to the main menu. Work panels are used to define complete user dialogs. Menu A menu displays a list of fixed items that a user may choose to execute.: 1010 => 'One thousand and ten'). The output returned by a report can be sent to the screen. tables. update. Invoice screen: process where users can create invoices and print them. the display of a particular client’s registered invoices or debts. The more use users give their computers while working. Procedures This object offers all report features plus the ability to update the database.
The user conveys wrong approaches. However. and the most appropriate language is used to generate the programs for each one of them. Also. the user can run his/her application on a Client/Server environment without having to modify the original objects. Developing applications with GeneXus gives you the opportunity to divide an application in such a way that each part may be executed on different platforms. thus giving rise to multitier architectures which in turn improves the use of available resources. For example. However. a banking system application could run on an iSeries at the bank’s head office and on a PC network in bank branches. for instance. The consequence of freezing specifications is that the design team ends up implementing a relatively unsatisfactory solution. so it is not reasonable to think that specifications can be frozen while the system is being implemented. with the progressive use of Client/Server and Internet/Intranet/Extranet environments. system implementation is commonly a task that takes a lot of time. they do not depend on the environment. run the same application in several environments. Prototype In design tasks all the difficulties of human communication are implicit: • • • • The user forgets certain details. Quite recently there has been a need to generate multiplatform applications. This means that a single repository can be generated where functionally equivalent applications for different environments can interact with it. Reality changes. The analyst misinterprets some of the user's explanations. The analyst doesn't notice some elements. meaning: • • • Many of these problems are only detected at the end of system testing and the cost (time and money) of solving them is very large. on the other hand. GeneXus works with pure knowledge The physical data model is designed according to the Theory of Relational Databases applying third normal form (with no redundancy) database normalization criterion. . that is. the analyst can define redundancies and can be sure that GeneXus will also automatically manage them. Multiple Platforms / Multitier Architectures As a consequence it is possible that. This normalization is automatically performed and maintained by GeneXus. a new need has arisen: the same application must have some of its parts running on a certain platform and others running on other platforms where a correct intercommunication between those parts becomes a necessity. GeneXus' information repository stores design specifications in an abstract form. only after all transaction objects have been defined. a centralized iSeries application (100% developed with GeneXus). that is.Data Views Are used to establish a map between components or external files and GeneXus tables and treats them as if they were GeneXus objects.
is that generally the first one is intended to run on a PC. meaning he/she will be able to execute tests that represent real activities that occur on a daily and not just test screen formats. but also formulas.). This means that the same model can run off the different execution platforms it has been generated for and each one of those different generated versions can be optimized according to the environment it will run on. Implementation GeneXus automatically generates the necessary code to: • • Create and maintain the database schema. this means that the designer. Therefore. However. A GeneXus prototype is a "readytorun" application. ASP. a GeneXus prototype given the characteristics above can be totally tested before entering the final production phase. The enduser can work with real data during the test phase. Windows NT/2000/XP/CE Internet JAVA. WebServices . This helps the user to have a better idea of what the system will consist of but afterwards surprises are always unavoidable.NET. after a need for change has been detected. GeneXus’ philosophy is centered around the concept known as incremental development. The environments and languages currently supported are (see the date in the firs page): Platforms Execution Platforms JAVA. The difference between the prototype and the production model. UNIX. Windows NT/2000/2003 Servers. functionally equivalent to the final production application. can quickly come up with the successive prototype in a ready “test state” for the enduser without any additional costs. and so on. reports. etc. Client/Server. business rules.NET Compact Framework Operating Systems IBM OS/400. and Microsoft . Visual Basic (ASP). It is very common for traditional working environments to consider all project changes required during the actual implementation phase and particularly those essential system changes that arise after the implementation has taken place as being really very expensive. A very different situation is where a user can test an application that is functionally equivalent to what was desired even to the finest detail and that can actually be executed. but the second model is generated to run on the user's target environment (iSeries. data structures. Different systems have taken a step forward to achieve this by offering the possibility of viewing user screen formats.The impact of these problems would decrease a lot if every specification could be tested immediately.NET. LANs. HTML. C/SQL. Microsoft . Specification is totally independent of the target environment but the generation is not. animated by menus.. GeneXus has taken this initiative even further since the user can execute the application that is functionally equivalent to the final one. Generate and maintain programs to handle the objects described by users. GeneXus develops an application respecting a methodology that overcomes this problem because it realizes that all development must be done in an incremental and successive fashion. The generation process can be viewed as two stages: SPECIFICATION and GENERATION. reports. etc. etc. LINUX.
. C#. MySQL.Net.Database Management Systems IBM DB2 UDB. a database navigation diagram where you can choose between two optional levels of detail. etc. then the programs that convert the old database to the new one are automatically generated. Web based. client/server production. etc. Centralized (iSeries) Maintenance This may be the single most important feature GeneXus has and that puts it ahead of all its competitors: totally automatic maintenance of both the database (structure and contents) and programs. RPG. WebSphere. Generation of new programs GeneXus automatically generates the necessary programs. Execution of conversion programs The following step is to move to the corresponding execution environment (prototype. we explain how the maintenance process works once the description of any GeneXus object changes (user view): Impact of database changes Impact analysis GeneXus automatically analyses the impact of any changes on the database and produces a report where it explains how the conversion of data must be done. .). You can decide if you want to go ahead or not with the database update. Impact of program changes Impact analysis GeneXus analyses the impact of any change on the programs. Informix. this term is called refactoring.) and execute conversion programs. Client/Server. C/SQL. and if it corresponds what potential problems that conversion may have (inconsistencies produced by old data given new rules. Apache. Microsoft SQL Server. and PostgreSQL Languages . JAVA. Oracle. Below. iSeries production. Multiple architectures Multitier architecture. It also produces. Visual Basic and Visual FoxPro Web Servers Microsoft IIS. etc. Generation of conversion programs Once possible problems have been solved or the decision to go along with the conversion has been accepted. for each new program.Net Mobile. and provides a diagnosis reporting which programs must be generated or regenerated. COBOL.
. the new characteristic “Adapt From” lets you define a mapping for names conversion so as to adapt to the target. Verify the consistency between an application's knowledge base and the corporate one. This schema lets you reuse. These teams can exchange design specifications by means of a module called the KNOWLEDGE MANAGER. Domains. Consolidate two applications (it is particularly useful to consolidate the knowledge from a given application to the corporate one). and only when his/her application is ready from the user’s point of view will he/she start to consider integrating the small knowledge base to the corporate one. knowledge bases licensed from third parties. GeneXus' knowledge base not only lets you access the knowledge it stores whenever desired but it also lets you access all logically inferred information that it stores (a referential integrity rule. The impacting a new application or modifying one will have on the corporate model is analyzed and if appropriate. for example.. in order to allow the automatic use of it but without exposing the sources. Consolidation of several applications and knowledge reusability Several applications can be designed and prototyped simultaneously by different teams when GeneXus is used. Software Patterns. Documentation includes the description of specified objects. Additionally.Documentation All information provided by the analyst or inferred by GeneXus is stored in an active repository that constitutes a very complete online documentation that is kept permanently up to date. now an object can be declared as public or private. ER diagrams inferred from the stored knowledge). cross references. information on the resulting knowledge base and of the designed database. This offers ideal flexibility: the analyst works with entire freedom in a prototyping environment interacting with a small knowledge base. Distribute knowledge from the corporate knowledge base to any other application's knowledge base. All can be automatically used by GeneXus but in the case of private objects only the owner can view and/or modify GeneXus’ highlevel source. However. Attributes and/or Styles of a public domain. changes are made to assure consistency. In the beginning it is necessary to make use of a common nomenclature between different knowledge bases involved in the consolidation. Powerful automatic tools are available for use when the decision comes to integrate two knowledge bases. a database navigation map. an impact analysis of changes. This module lets you automatically: • • • • Start the design of a new application based on Business Objects. It is also important to point out that it is now possible for the software house that licenses the GeneXus knowledge base to maintain private parts of it.
This fact achieves total data independence when the object is defined. Each object’s description is totally independent of other object descriptions. There is a simple and efficient use of files or external databases to GeneXus. because of their daily activities they are the ones who know how things work or should work. created and maintained. The learning curve is short. The database is automatically designed.). WORK PANELS and WEB OBJECTS. administrative. All sectors of the economy can benefit from this (commercial. • • • • • • • • • • • • • .). freeing the production computer from design load. GeneXus runs on PCs. This means that if an object needs to be modified it will not require the manual modification of other objects. Design made simple: GeneXus uses the most advanced resources of artificial intelligence allowing system analysts and users to use it with great ease. Platform and architecture independence. Easy distribution of corporate knowledge facilitates the easy development of new applications. None of these objects require any specific reference of files since they are automatically inferred when object processes are generated. -.GeneXus' Unique features GeneXus has several characteristics of its own that distinguish it from its competitors. 100% automatic maintenance: This means that GeneXus generates and maintains automatically 100% of its programs. Here are a few of them that really make the difference: • The design starts after end users have provided sufficient knowledge of the objects they interact with each day (TRANSACTIONS. As a consequence. Simple and powerful Reporting and Data Warehousing solutions.The database is always at its optimum. REPORTS. etc. GeneXus' high level object specifications will not need to experience changes when modifications are made to database structures. etc. This exclusive GeneXus feature enables full automatic applications maintenance.Programs are not modified: when they are no longer appropriate others are generated to substitute those that are considered obsolete. The application (database and programs) is of the best quality regardless of the changes it has been put through: . financial or industrial. Automatic verification of consistency and consolidation between applications developed as separate modules. Powerful and very high level languages are supplied to define PROCEDURES.
R. and large software companies that build their products and solutions using GeneXus. This document may not be reproduced in any form without the express permission of ARTech Consultores S.500 customers worldwide use GeneXus products to create and integrate mission critical applications that adapt easily to relentless business change. All rights reserved. Our ISV (Independent Software Vendors) customers are small.R. The information contained herein is intended for personal use only. Copyright ARTech Consultores S.L. Our corporate customers range from middle to very large corporations in a wide variety of industries and today account for 70% of the company revenues.GeneXus Users World-Wide More than 4.L. This segment accounts for 30% of the company revenues but is growing rapidly. The GeneXus technology enables our customers to use their unique knowhow on the leading technology platforms. medium. L. All other trademarks mentioned herein are property of their respective owners. .R. TRADEMARKS ARTech GeneXus are trademarks or registered trademarks of ARTech Consultores S. 19882005.
This action might not be possible to undo. Are you sure you want to continue?
We've moved you to where you read on your other device.
Get the full title to continue listening from where you left off, or restart the preview.