Reactive Blocks

Last updated
Reactive Blocks
Developer(s) Bitreactive AS
Initial release2011
Stable release
2.7.0 / 2016-09-16
Operating system Windows, OS X, Linux
Platform Eclipse / Java
Licence Commercial, Free Community Edition
Website http://www.bitreactive.com/

Reactive Blocks [1] is a visual model-driven development environment based on Activity Diagrams supporting formal model analysis, automated code generation, hierarchical modelling, and an extensive library of ready-to-use components for the Java platform.

Contents

Concept

The core technology originated from research at the Norwegian University of Science and Technology and the Institute for Telematics. [2] Reactive Blocks is a visual model-driven development environment supporting formal model analysis, automated code generation, hierarchical modelling, and an extensive library of ready-to-use components for the Java platform. By combining re-usable blocks, a developer can create complex applications graphically.

These building blocks are defined by a combination of graphical models and Java code. The graphical model is based on UML activity diagrams and state machines. The existing library can be extended by user-implemented custom blocks which can include the full abilities of the Java platform. Each block has an extended interface description in the form of input and output pins and a contract. The contract indicates which states a block has, and which pins can be interacted with during which state.

Reactive Blocks uses the graphical model together with the information from the contracts to formally analyse the application to discover common problems such as deadlocks or incorrect terminations. If the analysis finds a problem, the according state of the application can be highlighted to identify the cause. The development environment offers a step-by-step animation of the chain of state transitions leading up to the problem.

An application which passed validation can then be automatically converted into Java code. Since a building block´s application is a correct formal definition, the builder can transform its logic into code. The generated code is packaged in a standard Eclipse Java project and can thus be treated as any other code; exporting runnable JARs, debugging, and profiling work the same.

Supported Platforms

Literature

Related Research Articles

An integrated development environment (IDE) is a software application that provides comprehensive facilities for software development. An IDE normally consists of at least a source-code editor, build automation tools, and a debugger. Some IDEs, such as NetBeans and Eclipse, contain the necessary compiler, interpreter, or both; others, such as SharpDevelop and Lazarus, do not.

<span class="mw-page-title-main">OSGi</span> Open standards organisation

OSGi is an open specification and open source project under the Eclipse Foundation. It is a continuation of the work done by the OSGi Alliance, which was an open standards organization for computer software founded in March 1999. The foundation originally specified and maintained the OSGi standard. The alliance transferred its work to the Eclipse Foundation at the end of 2020. The OSGi specification describes a modular system and a service platform for the Java programming language that implements a complete and dynamic component model, something that does not exist in standalone Java or VM environments. It has a service-oriented architecture based on micro services each implemented as an extended Java class file archive.

<span class="mw-page-title-main">Eclipse (software)</span> Software development environment

Eclipse is an integrated development environment (IDE) used in computer programming. It contains a base workspace and an extensible plug-in system for customizing the environment. It is the second-most-popular IDE for Java development, and, until 2016, was the most popular. Eclipse is written mostly in Java and its primary use is for developing Java applications, but it may also be used to develop applications in other programming languages via plug-ins, including Ada, ABAP, C, C++, C#, Clojure, COBOL, D, Erlang, Fortran, Groovy, Haskell, JavaScript, Julia, Lasso, Lua, NATURAL, Perl, PHP, Prolog, Python, R, Ruby, Rust, Scala, and Scheme. It can also be used to develop documents with LaTeX and packages for the software Mathematica. Development environments include the Eclipse Java development tools (JDT) for Java and Scala, Eclipse CDT for C/C++, and Eclipse PDT for PHP, among others.

Model Driven Architecture (MDA) is a software design approach for the development of software systems. It provides a set of guidelines for the structuring of specifications, which are expressed as models. Model Driven Architecture is a kind of domain engineering, and supports model-driven engineering of software systems. It was launched by the Object Management Group (OMG) in 2001.

Domain-specific modeling (DSM) is a software engineering methodology for designing and developing systems, such as computer software. It involves systematic use of a domain-specific language to represent the various facets of a system.

Specification and Description Language (SDL) is a specification language targeted at the unambiguous specification and description of the behaviour of reactive and distributed systems.

<span class="mw-page-title-main">Component-based software engineering</span> Branch of software engineering

Component-based software engineering (CBSE), also called component-based development (CBD), is a branch of software engineering that emphasizes the separation of concerns with respect to the wide-ranging functionality available throughout a given software system. It is a reuse-based approach to defining, implementing and composing loosely coupled independent components into systems. This practice aims to bring about an equally wide-ranging degree of benefits in both the short-term and the long-term for the software itself and for organizations that sponsor such software.

VIATRA is an open-source model transformation framework based on the Eclipse Modeling Framework (EMF) and hosted by the Eclipse Foundation.

Model-driven engineering (MDE) is a software development methodology that focuses on creating and exploiting domain models, which are conceptual models of all the topics related to a specific problem. Hence, it highlights and aims at abstract representations of the knowledge and activities that govern a particular application domain, rather than the computing concepts.

<span class="mw-page-title-main">Eclipse Modeling Framework</span> Project of Eclipse Foundation

Eclipse Modeling Framework (EMF) is an Eclipse-based modeling framework and code generation facility for building tools and other applications based on a structured data model.

Functional reactive programming (FRP) is a programming paradigm for reactive programming using the building blocks of functional programming. FRP has been used for programming graphical user interfaces (GUIs), robotics, games, and music, aiming to simplify these problems by explicitly modeling time.

<span class="mw-page-title-main">Rational Software Modeler</span> Unified Modeling Language design tool

Rational Software Modeler (RSM), made by IBM's Rational Software division, is a Unified Modeling Language (UML) 2.0-based visual modeling and design tool. Rational Software Modeler is based on the Eclipse open-source software framework and is used for visual modeling and model-driven development (MDD) with UML for creating applications and web services. IBM ceased marketing Rational Software Modeler in 2010 and ended support for it in 2015. Much of the same functionality is now available through Rational Software Architect.

<span class="mw-page-title-main">QP (framework)</span>

QP is a family of open source real-time embedded frameworks (RTEFs) and runtime environments based on active objects (actors) and hierarchical state machines. The QP family consists of the lightweight QP/C and QP/C++ frameworks, written in C (C99) and C++ (C++11), respectively.

<span class="mw-page-title-main">YAKINDU Statechart Tools</span>

YAKINDU Statechart Tools (YAKINDU SCT) is a tool for the specification and development of reactive, event-driven systems with the help of finite-state machines. It comprises a tool for the graphical editing of statecharts and provides validation, simulation, and source code generators for various target platforms and programming languages. YAKINDU Statechart Tools are available with standard and professional editions, with no-cost licenses for non-commercial resp. academic usage. Users are coming from both industry and academia.

<span class="mw-page-title-main">Interaction Flow Modeling Language</span>

The Interaction Flow Modeling Language (IFML) is a standardized modeling language in the field of software engineering. IFML includes a set of graphic notations to create visual models of user interactions and front-end behavior in software systems.

<span class="mw-page-title-main">Enterprise Architect (software)</span> Visual modeling and design tool

Sparx Systems Enterprise Architect is a visual modeling and design tool based on the OMG UML. The platform supports: the design and construction of software systems; modeling business processes; and modeling industry based domains. It is used by businesses and organizations to not only model the architecture of their systems, but to process the implementation of these models across the full application development life-cycle.

References

  1. Homepage
  2. Kraemer, Frank Alexander (2008). Engineering Reactive Systems: A Compositional and Model-Driven Method Based on Collaborative Building Blocks (PhD). Fakultet for informasjonsteknologi, matematikk og elektroteknikk. hdl:11250/261480.
  3. "Huawei, Bitreactive and Eurotech join OSGi Alliance" (PDF) (Press release). USA: OSGi Alliance. Inventures. 2015-11-03. Retrieved 2016-09-26.
  4. "Kura - Open Source framework for IoT". Eclipse Foundation. Retrieved 2016-09-25.
  5. "Everyware™ Software Framework ( ESF )". Eurotech. Retrieved 2016-09-25.