Artificial Intelligence in Software Engineering

Summary of Most Relevant Topic Papers

Our resarch on artificial intelligence divides into modeling deep learning and applying artificial intelligence to different application domains. We developed

  • MontiAnna, a family of domain specific languages for describing the architectures of neural networks, their training, and their training data.
  • different variants of semantic differencing operators that can be used for non-trivial model evolution analyses that focus on detecting the semantic differences between model versions.
  • MontiBelle, which uses Isabelle and its logic-based intelligence to support semi-automated formal verification of software architectures.
  • a methodology to automatically test system requirements in automotive software engineering via test case generation.
  • frameworks exploiting machine learning to analyse the data generated, e.g., by modern buildings and cards in operation and production systems.

MontiAnna - A Modeling Framework for Deep Learning

Deep learning is gaining a more and more important role in today’s software systems. Developing such systems requires appropriate methodologies and tools taking learning into account at all stages of a development process and at runtime. At our chair we have developed MontiAnna, a family of domain specific languages for the consice description of the architecture of (1) a neural network, (2) its training, and (3) the training data [KNP+19]. What’s more, using MontiCore language composition we have developed a technique to integrate neural networks into larger software architectures [KRRW17] as standardized machine learning components [KPRS19]. This enables the compiler to support the systems engineer by automating the lifecycle of such components. Thereby, we support multiple learning approaches such as supervised learning, reinforcement learning, generative adversarial networks, etc. The core structure of MontiAnna is shown in the following figure:

To facilitate the analysis and enable MLOps (short for “DevOps based on Machine Learning”) in an agile development of machine learning-based systems we derived a software 2.0 artifact model and use it as a basis for a modular build system, distinguishing between different kinds of artifacts such as training/test data, software model, machine learning model, trained machine learning model, etc. [AKK+21].

Semantic Differencing

The semantic difference between two models m and m’ is the set of elements in the semantics of the model m that are not elements in the semantics of the model m’. Each element in a semantic difference is called a diff witness. Diff witnesses can be presented to developers. The developers can review the diff witnesses to increase their understandings of the semantic differences between the models. A semantic differencing operator is an automatic procedure for computing diff witnesses for two given models. As the semantics of models is usually an infinite set, detecting whether the semantic difference is empty and effectively computing a diff witnesses are no trivial tasks.

  • [MRR11d] describes a semantic differencing operator for activity diagrams.
  • [MRR11b] presents a semantic differencing operator for class diagrams.
  • [DKMR19] describes a semantic differencing operator for feature diagrams.
  • [DEKR19] discusses a semantic differencing operator for statecharts.
  • [BKRW17] and [BKRW19] present semantic differencing operators for automaton variants describing the behavior of interactive systems.
  • [MRR11g] describes a method for summarizing semantic model differences to condensate and increase the amount of information provided by semantic differencing operators.

We further developed a modeling language-independent method for determining syntactic changes that are responsible for the existence of semantic differences in [KR18a]. The method relies on a search in a tree where the nodes of the tree represent possible changes to models. As an example for semantic differencing, the given class diagram depicts the two class diagrams cd1 and cd2 and the object structures os1 and os2. The object structure os1 is an element of the semantics of cd2 and no element of the semantics of cd1. It is thus a diff witness in the semantic difference from cd2 to cd1. Similarly, the object structure os2 is a diff witness in the semantic difference from cd1 to cd2.

Intelligent Verification

We apply logic, knowledge representation and intelligent reasoning to software engineering to perform correctness proofs, execute symbolic tests or find counterexamples. The theorem prover Isabelle is a mature and fundamental tool, which allows representing knowledge as a collection of definitions and theorems and reason about systems. To increase the usability we provide a high-level API encapsulating the low-level logic engine as well as a domain-specific modeling language as front end coupled with an Isabelle code generator.

These and the rapid increase of computation capabilities suggest that a prominent application for reducing certification costs of critical systems such as intelligent flight control systems or assistance systems for air or road traffic management is not far in the future [KMP+21] [KRRS19] [HRR12]. For this purpose we have realized the Focus theory, a detailed and well defined theory on distributed interacting connector and component systems, in Isabelle [BKR+20].

The following figure overviews the most important constituents of the verification framework.

Test Case Generation

Efficient testing is essential to engineer reliable automotive software. However, deriving test cases from ambiguous textual requirements is often a costly and error-prone endeavor. Model-based software engineering uses models as the primary artifacts during the engineering process. Therefore, requirements are captured by structured, comprehensible, formal models. This enables early consistency checking and verification as well as model-based testing. Crucial for the latter is automated test case derivation. For automotive software engineering, [EJK+19], [DGH+19], [DGH+18], [KMS+18] describe a methodology to test system requirements automatically. Our method is realized for a variant of SysML activity diagrams and state charts. The modeling languages are tailored towards testing automotive software and automatic test case derivation and applying a model transformation to automatically derive executable test cases.

Customer requirements in combination with customer requirement models are the input for the specification of the functional behavior of the system under development. The output of specifying the functional behavior are activity diagrams and state charts. These diagrams contain additional trace links to functional requirements. Our test case generator uses the diagrams as well as the linked functional requirements during the process of test case creation to generate test sets for each functionality modeled by the diagrams. During the generation process traceability between test cases and functional requirements is ensured. Next, these test sets are the input to verify the system under development using a suitable test environment.

Building, Car, and Production System Analysis using Machine Learning

Nowadays modern systems generate a massive amount of observable data. This data can be used to optimize the operation efficiency and prevent unneeded CO2 emission or reduce costs. [FLP+11], [GLPR15]. E.g. a building’s ventilation system consists of multiple sensors and actors measuring observable data over time (time series data). Each operation mode of a ventilation system can be clearly assigned to a combination of specific sensor and actor behavior within a system [KLPR12]. This creates a structural and behavioural system theoretical view on buildings as cyber-physical systems (digital twin) [RW18] [BDH+20].

The digital modeling of buildings and their facilities as well as the availability of sensor and actor data enables the implementation of Big Data analyses. For instance, machine and deep learning approaches are used to automate anomaly detection. Furthermore, machine learning can be applied on sensor data to automatically detect different system operation modes. Based on this, classification models can be utilised to autonomously detect fault situations. The application of neural networks also allows to classify unknown sensor and actor information (e.g. type of sensor/actor). The following figure illustrates these circumstances.

Key Statements

  1. MontiAnna is a model-driven framework for the design and training of deep neural networks.
  2. Semantic differencing is a non-trivial task that facilitates developers in understanding the semantic differences between two model versions.
  3. If knowledge is represented by logic, theorem proving is reasoning, and the use of an underlying compositional verification methodology can be leveraged to reduce certification costs.
  4. Automated test case generation for SysML activity diagrams and statecharts facilitates the essential element of testing when engineering reliable automotive software.
  5. A good building analysis is a prerequisite for every optimization. Machine learning supports the analysis with various methods.

Selected Topic-Specific Publications

  1. [KMP+21]
    H. Kausch, J. Michael, M. Pfeiffer, D. Raco, B. Rumpe, A. Schweiger:
    In: Aerospace Europe Conference 2021 (AEC 2021), Council of European Aerospace Societies (CEAS), Nov. 2021.
  2. [AKK+21]
    A. Atouani, J. C. Kirchhof, E. Kusmenko, B. Rumpe:
    In: Proceedings of the 20th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences (GPCE 21), E. Tilevich, C. De Roover (Eds.), pp. 55-68, ACM SIGPLAN, Oct. 2021.
  3. [BDH+20]
    P. Bibow, M. Dalibor, C. Hopmann, B. Mainz, B. Rumpe, D. Schmalzing, M. Schmitz, A. Wortmann:
    In: International Conference on Advanced Information Systems Engineering (CAiSE’20), S. Dustdar, E. Yu, C. Salinesi, D. Rieu, V. Pant (Eds.), Volume 12127, pp. 85-100, Lecture Notes in Computer Science, Springer International Publishing, Jun. 2020.
  4. [BKR+20]
    J. C. Bürger, H. Kausch, D. Raco, J. O. Ringert, B. Rumpe, S. Stüber, M. Wiartalla:
    Aachener Informatik Berichte, Software Engineering, Band 45, Shaker Verlag, Mar. 2020.
  5. [KPRS19]
    E. Kusmenko, S. Pavlitskaya, B. Rumpe, S. Stüber:
    In: ASE19. Software Engineering Intelligence Workshop (SEI19), L. O’Conner (Eds.), pp. 126-133, IEEE, Nov. 2019.
  6. [KNP+19]
    E. Kusmenko, S. Nickels, S. Pavlitskaya, B. Rumpe, T. Timmermanns:
    In: Conference on Model Driven Engineering Languages and Systems (MODELS’19), M. Kessentini, T. Yue, A. Pretschner, S. Voss, L. Burgueño (Eds.), pp. 283-293, IEEE, Sep. 2019.
  7. [DKMR19]
    I. Drave, O. Kautz, J. Michael, B. Rumpe:
    In: International Systems and Software Product Line Conference (SPLC’19), T. Berger, P. Collet, L. Duchien, T. Fogdal, P. Heymans, T. Kehrer, J. Martinez, R. Mazo, L. Montalvillo, C. Salinesi, X. Tërnava, T. Thüm, T. Ziadi (Eds.), pp. 245-255, ACM, Sep. 2019.
  8. [EJK+19]
    R. Ebert, J. Jolianis, S. Kriebel, M. Markthaler, B. Pruenster, B. Rumpe, K. S. Salman:
    In: International Systems and Software Product Line Conference (SPLC’19), T. Berger, P. Collet, L. Duchien, T. Fogdal, P. Heymans, T. Kehrer, J. Martinez, R. Mazo, L. Montalvillo, C. Salinesi, X. Tërnava, T. Thüm, T. Ziadi (Eds.), pp. 14-24, ACM, Sep. 2019.
  9. [BKRW19]
    A. Butting, O. Kautz, B. Rumpe, A. Wortmann:
    In: Journal of Systems and Software, P. Pelliccione, J. Bosch, M. Marija (Eds.), Volume 149, pp. 437-461, Elsevier, Mar. 2019.
  10. [KRRS19]
    S. Kriebel, D. Raco, B. Rumpe, S. Stüber:
    In: Proceedings of the Workshops of the Software Engineering Conference. Workshop on Avionics Systems and Software Engineering (AvioSE’19), S. Krusche, K. Schneider, M. Kuhrmann, R. Heinrich, R. Jung, M. Konersmann, E. Schmieders, S. Helke, I. Schaefer, A. Vogelsang, B. Annighöfer, A. Schweiger, M. Reich, A. van Hoorn (Eds.), Volume 2308, pp. 87-94, CEUR Workshop Proceedings, CEUR Workshop Proceedings, Feb. 2019.
  11. [DEKR19]
    I. Drave, R. Eikermann, O. Kautz, B. Rumpe:
    In: Proceedings of the 7th International Conference on Model-Driven Engineering and Software Development (MODELSWARD’19), S. Hammoudi, L. F. Pires, B. Selić (Eds.), pp. 274-282, SciTePress, Feb. 2019.
  12. [DGH+19]
    I. Drave, T. Greifenberg, S. Hillemacher, S. Kriebel, E. Kusmenko, M. Markthaler, P. Orth, K. S. Salman, J. Richenhagen, B. Rumpe, C. Schulze, M. Wenckstern, A. Wortmann:
    In: Software: Practice and Experience, R. Buyya, J. Bishop, K. Cooper, R. Jonas, A. Poggi, S. Srirama (Eds.), Volume 49(2), pp. 301-328, Wiley Online Library, Feb. 2019.
  13. [KR18a]
    O. Kautz, B. Rumpe:
    In: Conference on Model Driven Engineering Languages and Systems (MODELS’18), pp. 289-299, ACM, Oct. 2018.
  14. [DGH+18]
    I. Drave, T. Greifenberg, S. Hillemacher, S. Kriebel, M. Markthaler, B. Rumpe, A. Wortmann:
    In: Conference on Software Engineering and Advanced Applications (SEAA’18), pp. 146-153, Aug. 2018.
  15. [KMS+18]
    S. Kriebel, M. Markthaler, K. S. Salman, T. Greifenberg, S. Hillemacher, B. Rumpe, C. Schulze, A. Wortmann, P. Orth, J. Richenhagen:
    In: International Conference on Software Engineering: Software Engineering in Practice (ICSE’18), pp. 172-180, ACM, Jun. 2018.
  16. [RW18]
    B. Rumpe, A. Wortmann:
    In: Principles of Modeling: Essays Dedicated to Edward A. Lee on the Occasion of His 60th Birthday, Lohstroh, Marten and Derler, Patricia Sirjani, Marjan (Eds.), pp. 383-406, LNCS 10760, ISBN 978-3-319-95246-8, Springer, 2018.
  17. [KRRW17]
    E. Kusmenko, A. Roth, B. Rumpe, M. von Wenckstern:
    In: European Conference on Modelling Foundations and Applications (ECMFA’17), pp. 34-50, LNCS 10376, Springer, Jul. 2017.
  18. [BKRW17]
    A. Butting, O. Kautz, B. Rumpe, A. Wortmann:
    In: International Conference on Software Architecture (ICSA’17), pp. 145-154, IEEE, Apr. 2017.
  19. [GLPR15]
    T. Greifenberg, M. Look, C. Pinkernell, B. Rumpe:
    In: Marktplätze im Umbruch: Digitale Strategien für Services im Mobilen Internet, Linnhoff-Popien, Claudia and Zaddach, Michael and Grahl, Andreas (Eds.), ch. 56, pp. 511-520, Xpert.press, ISBN 978-3662437810, Springer Berlin Heidelberg, Apr. 2015.
  20. [KLPR12]
    T. Kurpick, M. Look, C. Pinkernell, B. Rumpe:
    In: Modelling of the Physical World Workshop (MOTPW’12), pp. 2:1-2:6, ACM, Oct. 2012.
  21. [HRR12]
    A. Haber, J. O. Ringert, B. Rumpe:
    RWTH Aachen University, AIB-2012-03, Technical Report, Feb. 2012.
  22. [MRR11g]
    S. Maoz, J. O. Ringert, B. Rumpe:
    In: ME 2011 - Models and Evolution, B. Schätz, D. Deridder, A. Pierantonio, J. Sprinkle, D. Tamzalit (Eds.), Oct. 2011.
  23. [MRR11b]
    S. Maoz, J. O. Ringert, B. Rumpe:
    In: ECOOP 2011 - Object-Oriented Programming, M. Mezini (Eds.), pp. 230-254, Springer Berlin Heidelberg, 2011.
  24. [MRR11d]
    S. Maoz, J. O. Ringert, B. Rumpe:
    In: Conference on Foundations of Software Engineering (ESEC/FSE ’11), pp. 179-189, ACM, 2011.
  25. [FLP+11]
    M. N. Fisch, M. Look, C. Pinkernell, S. Plesser, B. Rumpe:
    In: Technik am Bau (TAB) - Fachzeitschrift für Technische Gebäudeausrüstung, pp. 36-41, bau Verlag, März. 2011.