This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages)(Learn how and when to remove this template message)
|Developer(s)||R2B Software AB|
126.96.36.199 / March 8, 2012
|Operating system||Microsoft Windows|
|Type||Information System Development|
The RISE Editor is a free information modeling tool for information system development based on model driven development. Functionality includes automatic interface composition, database generation and updates, data insertion, programming interface publishing and web service generation. The modeling takes place in Entity Relationship Diagrams (ERD). The layout for these diagrams can be changed to Relational Database or Unified Modeling Language (UML), the functionality stays the same though.
Philosophy of RISE
The purpose of RISE is to make information system engineering a more manageable process. Technically speaking, RISE is a model-driven engineering (MDE) 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 (Don't Repeat Yourself) 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 can be envisioned as a modeling tool implementing the DRY principle for information system engineering. For sure, in a RISE model everything has a single, unambiguous, authoritative representation. But it doesn't stop there, RISE unleashes the positive effects of not repeating oneself: guaranteed consistency and automated changes. When an authoritative information source is changed in your model, RISE automatically cascades that change throughout the model, updating anything and everything that depends on the source.
This combination of a theoretically sound foundation and simple pragmatism together with its being freeware is probably the reason for its increased popularity in higher education within the domains of system development and information modeling. It is today used at e.g. Bundeswehr University Munich, Universität Zürich, and Università di Bologna.
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 (XML file) 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:
- As an integrated part of the RISE Editor.
- As a standalone application.
- Using a script or from command line.
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# (.NET) and PHP. The C# for ODBC code generator outputs code handling three databases (SQL Server, MySQL and PostgreSQL). For PHP there are two different code generators, PHP for MySQL and PHP for PostgreSQL, creating source code using the respective database native driver.
- Graphical modeling using:
- Collaborative features such as:
- Deployment directly in database
- Deployment directly on web site
- Multiple developers using a centralized server
- Relational database generators for creating and incrementally updating of:
- Application code generators for persistent layer, programming interface, web services:
- Model consistency
- Automatic model documentation
- web service test utility
- Drag-n-drop to aggregate methods
- Custom code method support
- Modeling and code generation convention handling
- Database schema import
- Data manager for embedding configuration data in models
- Embedded SQL utility tool for browsing and analyzing SQL databases(1) directly from within RISE.
- Dave Thomas, interviewed by Bill Venners (2003-10-10). "Orthogonality and the DRY Principle". Retrieved 2010-10-11.