RISE to Bloome Software
Log In    
r2bsoftware.se r2bsoftware.se
Click to hide navigation tree
Philosophy of RISE
RISE is about being efficient and purpose focused when it comes to information system engineering. The name, RISE, should be read as "the RISE of Information System Engineering". It's a statement saying that RISE helps information system engineering to rise to new and greater heights. It's also an acknowledgement of the fact that good systems evolve, they gradually rise, as the result of a continuous development process; as opposed to being the result of a deterministic process. 
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, i.e. it's a managed information model. Using code generators such a managed information model is automatically turned 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. 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 graphically created using diagrams. This provides a space efficient, unambiguous way, to represent an information model, without introducing any constructs or abstractions that aren't native in the world of information modeling. This allows for rapid understanding of a solution and it promotes direct communication with non-developer stakeholders. 
  • The model contains a complete record of how the information model has evolved. This allows for databases to be incrementally updated, preserving any current data, simply by running the changes. With RISE, there's simply no effort keeping databases in constant sync with the modeling project.
  • Programming interface modeling is based on the fact that methods operate on information model elements. This allows for automated creation and maintenance of basic methods and it turns business logics programming into a matter of drag-and-drop. This means a considerable part of the overall solution is auto-generated, consistent, maintainable and error free.
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 et c. - decreases clarity and predictability of a system. Redundancy always pose 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.
It seems that perfection is reached not when there is nothing left to add, but when there is nothing left to take away [Antoine de Saint Exupéry]
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 and its code generators cascades that change throughout your solution, updating anything and everything that depends on the source. 

All in all, RISE is about boosting development throughput!