Reviews run for a minimum of one week. The outcome of the review is decided on this date. This is the last day to make comments or ask questions about this review.
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.
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
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!).
- 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
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.
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.
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.
Regarding 'SystemFOCUS' no such trademark is currently registered according to the search results of https://register.dpma.de.
Furthermore, all registrations of 'AUTOFOCUS' have expired. Only one application was turned down recently by intervention of the German weekly magazine 'FOCUS' due to likelyhood of confusion: https://register.dpma.de/DPMAregister/marke/registerHABM?AKZ=000332437
Code License (see also initial contribution section below)
Currently, all code has been developed under the Apache License 2.0 (APL2.0). From 2007 until end of 2010 the development was carried out by employees of Technische Univerität München (TUM). From 2011 until now, a reimplementation was carried out by employees of fortiss GmbH (some of them were those former TUM employees). Only very few parts of the source code have been reused, which is legally covered by both the APL2.0, as well as, the cooperation agreement of TUM and fortiss (the latter is owned to a certain portion by the former one), which was signed when the fortiss GmbH was founded.
- 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
- Use of E4
- Use of JavaFX
- Development of the first service layer ("Kernel")
- Development of state automata editors, component editors, functional architecture editors
- 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