The purpose of RISE is to make information system engineering a more manageable process. Technically speaking, RISE is a model-driven engineering tool with semantics and functionality that is specialized for the application-domain of information systems. The model in RISE is more than an information model, it's an information model complete with the methods needed to govern the use of the information in the model. Such a model is referred to as a MIM, or managed information model. Using code generators a managed information model is automatically transformed into a system. All in all, this is what's commonly referred to as a model-driven architecture. A domain is a suitable candidate for model-driven engineering if different solutions for the domain show noticeable similarities. A good MDE tool is one that focuses on and addresses these similarities whereas a bad MDE tool is one that diverts attentions from the problem domain. The domain of RISE, information systems in the sense of database-centric systems managing business information, is an obvious candidate for MDE. Below are some examples on how RISE boosts efficiency and simplicity in the engineering process simply by adhering to the specifics of the domain.
Information models are drawn in and shown using Entity Relationship Diagrams. This is a space efficient and unambiguous way to represent an information model. ER doesn't introduce any constructs or abstractions that aren't native in the world of information modeling.
Method modeling is based on the fact that methods operate on an information model, i.e. ER, elements. This allows the creation and maintenance of basic methods to be automated and it reduces the construction of higher level methods to sheer drag-and-drop.
Databases are incrementally updated during code generation, assuring sync with the modeling project while preserving the current data. Actually, this could be seen as a requirement for efficient model-driven engineering in the information system domain.
The DRY principle states that "every piece of knowledge must have a single, unambiguous, authoritative representation within a system". In essence, unnecessary duplication of information - such as business logics, rules, configuration, etc. - decreases clarity and predictability of a system. Redundancy always poses a risk of causing inconsistencies and contradictions. This said, DRY is actually one of those principles that all skilled developers adhere to even though some might be unfamiliar with the term itself. RISE is currently used at e.g. Bundeswehr University Munich, Universität Zürich, and Università di Bologna.
Code Generation
The RISE suit provides a range of code generators for transforming RISE models into software. A RISE code generator is a separate software application that operates on a RISE model and produces some kind of output. There are two main categories of code generators: database script generators and application source code generators. RISE code generators can be launched in several different ways:
Database script generators The database code generators write incremental scripts for creating, and updating, relational database models based on the RISE model. A RISE model contains - unless it's been refactored - the entire life-cycle of the data model. The code generator translates this life-cycle into an incremental database specific script. Currently, code generators for SQL Server, MySQL and PostgreSQL are available. Application source code generators The application source code generators render code, in a particular programming language, for working with databases based on the same RISE model. The generated code includes classes for managing database access and for publishing the access layer as web services. Both SOAP and JSON style web services are supported. Currently, two languages are supported C# and PHP. The C# for ODBC code generator outputs code handling three databases. For PHP there are two different code generators, PHP for MySQL and PHP for PostgreSQL, creating source code using the respective database native driver. There is also an AJAX code generator for RISE. It renders JavaScript source code, that uses jQuery, for accessing JSON enabled web services in Rich Internet Applications or AJAX applications. The generated code is compliant with any JSON enabled web service,.NET as well as PHP, generated from the same RISE model.
Major features
Graphical modeling using:
* Entity Relationship Diagrams in Information Engineering notation
* Data manager for embedding configuration data in models
* Embedded SQL utility tool for browsing and analyzing SQL databases directly from within RISE.
1) The utility tool and import functionality works with most ODBC compliant databases. Note, this includes databases for which there are, currently, no code generators.