×

Status message

This proposal has been approved and the Eclipse SystemFOCUS project has been created.

Eclipse SystemFOCUS

Basics
This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process) and is written to declare its intent and scope. We solicit additional participation and input from the community. Please login and add your feedback in the comments section.
Parent Project: 
Background: 

AutoFOCUS is a mature research project, but we think it would bring more to the scientific (and innovation in general) community if it was not hosted by fortiss GmbH (http://www.fortiss.org), but by the Eclipse foundation.

Furthermore, having the goal of bringing well-understood research into industrial practice, we think that open source is the most expedient way.  

Scope: 

The scope of Eclipse SystemFOCUS is:

  • Model-based development / systems engineering
  • Distributed, reactive and/or embedded systems ("cyber-physical systems")
  • Which seamlessly integrates all development phases (requirements, logical design, technical design, verification, code generation)

Outside of the scope:

  • UML design
  • Model-based development which does not integrate semantics
  • Web-based, Android/iOS applications
  • Office software and alike
Description: 

Software embedded in cars, planes, or industrial robots (so-called "cyber-physical" systems) is very different than desktop or web applications: they intrinsically have tight interactions with the physical world and with humans. Consequently, bugs can have dramatic consequences and it is, therefore, essential for such software to be extremely reliable. At the same time, this software is in charge of many different functions, is generally distributed across the physical system, and has strong real-time constraints. This makes development very complex. These two aspects combined (reliability and complexity) entail that the development has to be done very meticulously. Still, for obvious competitive reasons, development has to be done as fast as possible.

For these reasons, Eclipse ​SystemFOCUS is an IDE which targets fast and meticulous development of embedded software.

This is uniquely addressed as follows:

  • Meticulous development: a bug in a software does not arise only from programming mistakes: it starts from requirements (misunderstanding, imprecision) and goes till the hardware (programming assumptions not fulfilled by the hardware, e.g., regarding scheduling or latency). Therefore, AutoFOCUS4 allows not only to develop the software itself but also, in the same IDE, the requirements and the hardware, as well as explicit connections between them: this helps the developer ensuring that the software under development does not diverge from the requirements and that the hardware is indeed capable of running this software.
  • Fast development: whether embedded or not, software development intrinsically takes time: it is necessary to explore various directions before finding the good implementation. However, it is often the case that wrong directions could be detected earlier, but developers are so much focused on implementation details that they miss the hindsight to analyze the overall direction they are going into, and therefore cannot observe that a direction is the wrong one until they actually hit the wall. AutoFOCUS4 targets this issue by abstracting the software away through modeling: the developer actually develops models which represent the software in an abstract manner and therefore can better see the big picture. This enables AutoFOCUS4 to provide many analyses on these abstractions, which allow detecting wrong development directions earlier ("front-loading") and even to synthesize parts of the software ("correct-by-construction").

An essential aspect of SystemFOCUS is to be a playground for innovation, especially coming from academia (integrating for instance techniques like formal verification, SMT-solving, model checking), but still maintaining a very good software quality in order to be a great showcase for members of the embedded software community (industrial, academic, or just curious!).

Why Here?: 

We expect:

  • broaden the community: users and contributors
  • the insurance that the accumulated knowledge is hosted by a durable, reliable institution
  • contribute back to the Eclipse ecosystem since we already use Eclipse technologies
Project Scheduling: 
  • January 2017: initial contribution on the provision that the license change questions have been solved by then
  • September 2017: first build - in order to be in line with the Oxygen SR1
  • February 2018: first release - in order to match Oxygen SR2
Future Work: 

Functionality:

  • Use of E4
  • Use of JavaFX
  • Development of the first service layer ("Kernel")
  • Development of state automata editors, component editors, functional architecture editors

Community growth:

  • EclipseCon participation
  • Involvement of external institutions and individuals (e.g., scientific institutes developing solvers)
  • Evaluation through industrial partners (e.g., automotive, avionic)
  • MODELS Conference participation
People
Mentors: 
Interested Parties: 

Industrial: Continental, Liebherr Aerospace, Airbus Defense & Space, BMW Group, Ericsson, Diehl Aerospace,  ETAS

Academic: Fundazione Bruno Kessler, TU Munich, TU Berlin, University of Ulm, Budapest University of Technology and Economics

 

Source Code
Initial Contribution: 

Contributions

Over the years, about 50 people have contributed both code and code reviews (directly contributed to the source file under review) under the Apache License 2.0. Those people were employed by fortiss GmbH, so the current code ownership and copyright rests at fortiss GmbH.

The current code base has a size of 360 KLoCs in about 2700 Java files. However, not all of this code will be part of the initial contribution. We are currently porting AutoFOCUS to the E4 platform with a JavaFX and e(fx)clipse user interface , which means that large parts of the GUI code (which is still based on SWT) will be thrown away. Furthermore, not all current features will be available in the initial contribution. Both measures will also shorten the list of initial contributors.

Currently, we are unsure what steps have still to be taken, under the described circumstances, in order to transfer the code base to the Eclipse Public License 1.0.

Community

While the code contributions are primarily done by fortiss GmbH, the AutoFOCUS tool is used by several research projects and outside institutions (as detailed in the interested parties section below). It is our hope to strengthen both the user and the contributor community by becoming an Eclipse project.

Third-party libraries

We will not include any features relying on third-party libraries in the initial contribution. Currently, only third-party libraries available in the Eclipse Orbit are used.

 

 

Source Repository Type: 
Thomas Schindl's picture

As the project lead of e(fx)clipse I'm pleased to see you've chose our platform to built your tool on! I read that you've chose to rewrite the large codebase from SWT to JavaFX.

A tool that might help in this transition process is our SWTonJavaFX who is not complete in the sense that you can run the Eclipse IDE on but it is complete enough to eg render forms. I the long term a rewrite is certainly the right thing to do but you could migrate step by step.

Florian Hoelzl's picture

We will migrate step-by-step, but only JavaFX-based code will be accepted into the Eclipse code base.

Moving to JavaFX and abandoning SWT was one of the main arguments, which forces us to revisit our

codebase and only transfer parts we consider fully mature, redoing and improving their UI feeling.