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!).
Trademark
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.
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
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
- 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
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
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.
- Log in to post comments