1. Refactoring and detection of refactoring opportunities for data flow-oriented models in a graphical language
- Author
-
Tran Minh, Quang, Jähnichen, Stefan, Technische Universität Berlin, Helke, Steffen, and Spillner, Andreas
- Subjects
ddc:006 - Abstract
Zur Beherrschung der wachsenden Komplexität und zur Verkürzung der Entwicklungszeiten werden Steuer- und Regelsysteme in Fahrzeugen heute zunehmend modellbasiert entwickelt. Dabei werden Algorithmen als Blockdiagramme erstellt, welche aus Blöcken und Linien bestehen. Modelle können simuliert und so validiert werden. Darüber hinaus lassen sich aus den Modellen Programme für Steuergeräte in Fahrzeugen mithilfe von Codegeneratoren automatisch generieren. Hierbei hat sich MATLAB (MATrix LABoratory)/Simulink als De-facto-Standard etabliert. Bei der Erstellung und Überarbeitung von Simulink-Modellen wird die Modellstruktur häufig verändert und erweitert. Während es bereits Refactoring-Ansätze für objektorientierte Programmiersprachen wie Java und C# und für funktionale Programmiersprachen wie Haskell und Scala gibt, fehlt ein vergleichbares, integrales und durchgehendes Verfahren für Simulink-Modelle. Der erste Beitrag dieser Arbeit ist ein automatisiertes Verfahren zum Refactoring von Simulink-Modellen. Ein Bestandteil dieses Verfahrens ist ein Katalog von Operationen, welche für das Refactoring von Simulink-Modellen genutzt werden können. Zur Spezifikation von den Operationen sind sowohl eine Technik zur Analyse als auch eine Technik zur Transformation von Simulink-Modellen in einer einheitlichen Notation erarbeitet. Um Modelle während der Erstellung effizienter nachvollziehen zu können, insbesondere hinsichtlich der Signalflüsse und Schnittstellen, dienen in dieser Arbeit erweiterte Analyseoperationen. Mithilfe dieser Analyseoperationen ist es dem Modellierer möglich, Einsatzmöglichkeiten für Refactoring besser zu erkennen. Diese erweiterten Analyseoperationen sind der zweite Beitrag dieser Arbeit. Der letzte Beitrag dieser Arbeit ist eine Technik zur Erkennung und Handhabung von Model Smells nach der Modellerstellung. Als Model Smell wird ein Hinweis auf ein strukturelles Defizit bezeichnet, welches die Modellstruktur negativ beeinflusst. Zur Beseitigung von solchen Model Smells dienen die Refactoring-Operationen aus dem ersten Beitrag. Software has become the centerpiece of most control systems in cars. For the development of software for control systems, model-based software engineering (MBSE) has been widely employed, since it promises an increase in efficiency and quality of software development. In particular, the algorithm of a control system is usually modeled as dataflow-oriented block diagrams, called models. The models can be simulated to validate their behavior. Furthermore, software can be generated directly from the models by automated code generators. The tool MATLAB Simulink by The Mathworks has become a de facto standard for MBSE in the automotive domain. The creation and maintenance of a model typically require lots of structural changes to the model. In the world of object-oriented and functional programming languages, refactoring has become an established technique for improving the structural quality of code. With refactoring, the structure of a code body is improved through small restructuring steps without its external behavior being altered. Refactoring Simulink models by restructuring their structure is also a highly frequent activity. Today, due to the lack of tool support, the process of time-consuming and error-prone refactoring of Simulink models must be done manually. As a first contribution, this thesis describes a refactoring approach to automated refactoring of Simulink models. In particular, a catalog of refactoring operations are introduced that can be used to refactoring different aspects of a Simulink model such as structural hierarchy, signal structuring, interface and signal routing. As a second contribution, the thesis introduces several advanced analysis operations for Simulink models. The operations can be used to make signal flow, interface and interaction between parts of a model more explicit. With the help of these operations, the modeler can comprehend a complex model more efficiently and thus has a better of chance of spotting refactoring opportunities. As a last contribution, the thesis introduces a technique for detection and handling of model smells for Simulink models. Model smell is referred to as a indicator for a structural deficit that has a negative impact on the quality of the model structure. Refactoring operations are recommended for eliminating the model smells.
- Published
- 2017