Software:RISE Editor

From HandWiki
RISE Editor
Developer(s)R2B Software AB
Stable release
4.5.0.9 / March 8, 2012; 12 years ago (2012-03-08)
Operating systemMicrosoft Windows
Available inEnglish
TypeInformation System Development
LicenseFreeware
Websitewww.r2bsoftware.com www.r2bsoftware.se

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) with the functionality staying the same.

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 model-driven engineering tool is one that focuses on and addresses these similarities whereas a bad model-driven engineering 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 model-driven engineering. 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)[1] 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 a principle that most 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 (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.

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 (crow’s foot)
    • UML (unified modeling language)-style class diagram
    • Relational database Diagrams
  • 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:
    • SQL Server
    • PostgreSQL
    • MySQL
  • Application code generators for persistent layer, programming interface, web services:
    • C# for ODBC supporting Microsofts JSON-mechanism
    • PHP for MySQL
    • PHP for PostgreSQL
    • AJAX
  • Miscellaneous
    • Refactoring
    • 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

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.

See also

References

  1. Dave Thomas, interviewed by Bill Venners (2003-10-10). "Orthogonality and the DRY Principle". http://www.artima.com/intv/dry.html. 

External links