DE102008060440A1 - Verfahren und Vorrichtung zum Erstellen von einem anforderungskonformen Quellcode - Google Patents

Verfahren und Vorrichtung zum Erstellen von einem anforderungskonformen Quellcode Download PDF

Info

Publication number
DE102008060440A1
DE102008060440A1 DE200810060440 DE102008060440A DE102008060440A1 DE 102008060440 A1 DE102008060440 A1 DE 102008060440A1 DE 200810060440 DE200810060440 DE 200810060440 DE 102008060440 A DE102008060440 A DE 102008060440A DE 102008060440 A1 DE102008060440 A1 DE 102008060440A1
Authority
DE
Germany
Prior art keywords
source code
requirement
program
code segment
functional
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE200810060440
Other languages
English (en)
Inventor
Jan-Gregor Fischer
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens AG
Original Assignee
Siemens AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens AG filed Critical Siemens AG
Priority to DE200810060440 priority Critical patent/DE102008060440A1/de
Publication of DE102008060440A1 publication Critical patent/DE102008060440A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

Die vorliegende Erfindung schafft ein Verfahren und eine Vorrichtung (1) zum Erstellen von einem anforderungskonformen Quellcode (4a). Hierzu wird eine Gesamtanforderung (1a) spezifiziert, aus der mindestens eine Teilanforderung (2a; 2b; 2c) abgeleitet wird. Es wird mindestens ein Quellcodesegment (3a) ausgewählt, welches mindestens eine Teilanforderung (2a; 2b; 2c) erfüllt. Die ausgewählten Quellcodesegmente (3a) werden derart zusammengefügt, dass sie in ihrem Zusammenwirken die Gesamtanforderung (1a) erfüllen. Besonders vorteilig ist hierbei, dass eine beliebige Anzahl an Gesamtanforderungen (1a) an einen Quellcode (4a) bei der Identifikation von wiederverwendbarem Quellcode berücksichtigt wird. Folglich kann ein anforderungskonformer Quellcode (4a) erstellt werden, welcher bezüglich Laufzeit- und/oder Speicherkomplexität optimiert ist. Die vorliegende Erfindung findet Einsatz bei der Identifikation von wiederverwendbarem Quellcode.

Description

  • Die vorliegende Erfindung betrifft ein Verfahren zur Wiederverwendung einzelner Quellcodesegmente, welche in ihrem Zusammenwirken funktionale oder nichtfunktionale Anforderungen erfüllen. Die Erfindung betrifft ferner eine Vorrichtung, welche sich zur Durchführung des Verfahrens eignet, sowie ein Computerprogrammprodukt, welches die Durchführung eines entsprechenden Verfahrens veranlasst.
  • Bei der Entwicklung von softwareimplementierten Systemen ist die Wiederverwendbarkeit von bereits implementierten Quellcodesegmenten nach Möglichkeit zu gewährleisten. Hierzu können Softwaresysteme modular durch wiederverwendbare Softwarekomponenten aufgebaut sein. Softwarekomponenten umfassen hierbei zum Beispiel mehrere Quellcodesegmente. Softwarekomponenten eines Softwaresystems können auch verteilt auf mehreren Rechnern ausgeführt werden. Die einzelnen Softwarekomponenten können ferner auf unterschiedlichen Plattformen implementiert sein. Insbesondere kann es vorkommen, dass mehrere Softwarekomponenten untereinander in unterschiedlichen Programmiersprachen implementiert sind.
  • Der Ansatz Softwarekomponenten nicht zielsystemspezifisch konstruieren zu müssen, hat sich mit der Verbreitung der höheren Programmiersprachen durchgesetzt. Es werden Softwarekomponenten erstellt, welche durch Übersetzer bzw. Compiler von der Hochsprache in die Maschinensprache des jeweiligen Zielsystems übersetzt werden. Zuvor wurden Softwarekomponenten direkt in der Maschinensprache für das jeweilige Zielsystem implementiert. Da Maschinensprachen im Gegensatz zu Hochsprachen für den Menschen weniger intuitiv verständlich sind, war dieses Vorgehen mit einem höheren Aufwand und höherer Fehleranfälligkeit verbunden. Insbesondere konnte der Softwarecode zumeist nicht wiederverwendet werden. Die stets Neu implementierung der Softwarekomponenten führte ebenfalls zu einer erhöhten Fehleranfälligkeit. Aufgrund von Kosteneffizienz und des Wiederverwendungsaspekts sollen Softwarekomponenten nicht genau auf ein Zielsystem und dessen genauen technischen Details konstruiert werden. Man geht bewusst eine Abstraktion ein, um schneller, effizienter und fehlerfreier eine Softwarekomponente zu entwickeln.
  • Bei der Wiederverwendung von Quellcodesegmenten werden Anforderungen gestellt, welche durch einzelne Quellcodesegmente erfüllt werden müssen, oder die das Zusammenwirken mehrerer wiederverwendeter Quellcodesegmente erfüllen muss. So obliegt die Beurteilung der Qualität der wiederzuverwendenden Quellcodesegmente einem Projektverantwortlichen, welcher die Quellcodesegmente in einem Projekt wiederverwendet. Die Qualität der Quellcodesegmente, welche wiederverwendet werden sollen, definiert sich zum Beispiel durch deren Erweiterbarkeit, deren Fehlertoleranz, deren Skalierbarkeit und deren Performanz. Die Evaluation dieser Kriterien ist aufwendig, kompliziert und fehleranfällig. Liegen Quellcodesegmente in verschiedenen Programmiersprachen vor, so sind diese aus technischen Gründen nicht notwendigerweise kompatibel zueinander.
  • Technische Anforderungen an Quellcodesegmente, wie zum Beispiel Performanz, sowie Laufzeit- und Speicherkomplexität werden in herkömmlichen Verfahren empirisch ermittelt. Dies bedeutet einen erheblichen Aufwand und ist fehleranfällig. Bei einer Integration von Quellcodesegmenten in einen bestehenden Quellcode, kann es bei herkömmlichen Verfahren zu Inkonsistenzen kommen, die meist erst bei einem Systemtest erkannt werden. Ein Systemtest prüft hierbei das Zusammenwirken mehrerer Softwarekomponenten unter Verwendung eines hardwarebasierten Systems.
  • Herkömmliche Verfahren zur Wiederverwendung von Quellcodesegmenten berücksichtigen typischerweise keine nichtfunktionalen Anforderungen, wie zum Beispiel Lizenzrechte, Autoreninformationen oder in den Quellcode eingebettete Freitextkommentare.
  • Herkömmliche Verfahren können auf sogenannten Programmbibliotheken basieren, um Quellcodesegmente anforderungskonform wiederzuverwenden.
  • Nachteilig bei herkömmlichen Verfahren ist, dass die Anforderungen, welche an wiederzuverwendende Quellcodesegmente gestellt werden, typischerweise nicht vollständig erfüllt werden. Insbesondere ist es für einen Quellcodeentwickler nicht möglich, einen anforderungskonformen Quellcode aus bereits bestehenden Quellcodesegmenten zu erzeugen, welcher einer Kombination aller Anforderungen entspricht.
  • Folglich ist der durch herkömmliche Verfahren erstellte Quellcode typischerweise nicht vollständig anforderungskonform, was sich erheblich nachteilig zum Beispiel auf Speicher- und Laufzeitkomplexität des Quellcodes auswirkt.
  • Der Erfindung liegt die Aufgabe zugrunde eine verbesserte Vorrichtung zum Erstellen von einem anforderungskonformen Quellcode bereitzustellen.
  • Diese Aufgabe wird durch eine Vorrichtung zum Erstellen von einem anforderungskonformen Quellcode gemäß Patentanspruch 1 gelöst.
  • Demgemäß ist eine Vorrichtung zum Erstellen von einem anforderungskonformen Quellcode vorgesehen. Die Vorrichtung weist eine Anforderungsanalyseeinheit zum Analysieren einer spezifizierten funktionalen oder nichtfunktionalen Gesamtanforderung an den Quellcode und zum Ableiten von mindestens einer Teilanforderung auf. Die mindestens eine abgeleitete Teilanforderung entspricht hierbei der Gesamtanforderung. Ferner weist die Vorrichtung eine Quellcodeanalyseeinheit zum Auswählen von mindestens einem Quellcodesegment aus einem Datenspeicher auf. Das mindestens eine ausgewählte Quellcodesegment erfüllt hierbei mindestens eine abgeleitete Teilanforderung. Ferner weist die Vorrichtung eine Quellcodeintegrationseinheit zum Zusammenfügen der ausgewählten Quellcodeseg mente auf. Die zusammengefügten Quellcodesegmente erfüllen hierbei die Gesamtanforderung.
  • Ein Quellcode weist mindestens ein Quellcodesegment auf. Das Quellcodesegment kann eine Programmbibliothek, eine Programmkomponente, ein Programmmodul, ein Programmpackage, eine Programmklasse, eine Programmroutine, eine Programmfunktion, eine Programmmethode, eine Parameterzuweisung, eine Programmschleife, eine Programmschnittstelle, einen Methodenaufruf, einen Konstruktor und/oder Programmzeilen aufweisen. Vorteilhaft ist hierbei, dass der durch die vorgeschlagene Vorrichtung erstellte anforderungskonforme Quellcode in bereits bestehenden Quellcode eingebettet werden kann.
  • Bei dem anforderungskonformen Quellcode kann es sich um eine funktionale Einheit handeln, wobei die Funktionalität durch ein Zusammenwirkender einzelnen Quellcodesegmente bereitgestellt wird.
  • Gesamtanforderungen an den Quellcode können sich zum Beispiel auf die Wiederverwendbarkeit, die Erweiterbarkeit, die Fehlertoleranz, die Skalierbarkeit, die Performanz, die Korrektheit, die Kompatibilität, die Konsistenz und/oder auf Lizenzbedingungen beziehen. Das Spezifizieren von Gesamtanforderungen kann durch einen menschlichen Nutzer und/oder durch ein computerimplementiertes System erfolgen. Der menschliche Nutzer spezifiziert zum Beispiel eine benötigte Funktionalität und spezifiziert ferner eine Performanzanforderung. Der menschliche Nutzer kann zum Beispiel spezifizieren, dass er eine Datenbankanfrage mit einer bestimmten Funktionalität benötigt. Bezüglich der Performanzanforderung spezifiziert der menschliche Nutzer ferner, dass die Antwortzeit eines bestimmten Datenbanksystems nicht länger als fünf Sekunden betragen darf.
  • Die Anforderungsanalyseeinheit leitet von der spezifizierten funktionalen Gesamtanforderung, nämlich die benötigte Datenbankabfrage, einzelne Teilanforderungen ab. Eine Teilanforderung ist beispielsweise, dass aus der Datenbank bestimmte Da tensätze selektiert werden müssen, und eine weitere Teilanforderung ist es, dass bestimmte selektierte Datensätze mit weiteren Datensätzen verknüpft werden müssen. Weiterhin leitet die Anforderungsanalyseeinheit aus der nichtfunktionalen Gesamtanforderung, nämlich der Performanzanforderung, weitere Teilanforderungen ab. Zum Beispiel leitet die Anforderungsanalyseeinheit ab, dass ein Selektieren bestimmter Datensätze nicht länger als zwei Sekunden dauern darf, und ein Verknüpfen bestimmter Datensätze nicht länger als drei Sekunden dauern darf.
  • Die Quellcodeanalyseeinheit wählt einzelne Quellcodesegmente aus, welche den Teilanforderungen entsprechen. Folglich erfüllt mindestens ein ausgewähltes Quellcodesegment mindestens eine abgeleitete Teilanforderung. Es ist möglich, dass mehrere Quellcodesegmente in ihrem funktionalen Zusammenwirken eine abgeleitete Teilanforderung erfüllen. Alternativ ist es möglich, dass ein ausgewähltes Quellcodesegment mehrere abgeleitete Teilanforderungen erfüllt. Alternativ kann ein ausgewähltes Quellcodesegment eine abgeleitete Teilanforderung erfüllen.
  • Zum Auswählen des mindestens einen Quellcodesegments kommuniziert die Quellcodeanalyseeinheit mit dem Datenspeicher. Der Datenspeicher weist bereits implementierte Quellcodesegmente auf. Außerdem kann in dem Datenspeicher Metainformation bezüglich der einzelnen Quellcodesegmente hinterlegt sein. Bei dem Datenspeicher kann es sich zum Beispiel um ein Quellcoderepository handeln. Das Quellcoderepository speichert somit mehrere Quellcodesegmente und zusätzliche Metainformationen wie zum Beispiel eine Lizenzinformation, eine Autoreninformation, eine Versionsinformation und/oder einen Zeitstempel. Hierbei beschreibt eine Lizenzinformation welche lizenzrechtlichen Rahmenbedingungen mit der Wiederverwendung des Quellcodesegments verbunden sind. Die Autoreninformation beschreibt mindestens einen Autor des Quellcodesegments. Die Versionsinformation beschreibt in welcher Version das Quellcodesegment in dem Quellcoderepository gespeichert wird. Der Zeitstempel gibt einen Hinweis auf den Zeitpunkt einer Akti on, welche auf dem Quellcodesegment durchgeführt wurde. Der Zeitstempel zeigt zum Beispiel den Zeitpunkt eines Änderns, einer Hinzufüge- oder Löschaktion an.
  • Bei dem Datenspeicher kann es sich um einen lokalen, entfernten und/oder einen verteilten Speicher handeln. Zum Beispiel kann der Datenspeicher als Festplatte, Flashdisk, USB-Stick, Floppy-Disk, Diskette, CD, DVD, Blu-Ray-Disk, Magnetband, Band und/oder als Wechseldatenträger vorliegen. Vorzugsweise ist der Datenspeicher als Datenbankserver implementiert. Vorteilhaft ist hierbei, dass die vorgeschlagene Vorrichtung in bereits bestehende Systeme eingebettet werden kann.
  • Die Quellcodeanalyseeinheit prüft, ob mindestens ein in dem Datenspeicher gespeichertes Quellcodesegment mindestens eine Teilanforderung erfüllt. Hierzu liest die Quellcodeanalyseeinheit Metainformationen aus dem Datenspeicher bezüglich der gespeicherten Quellcodesegmente aus. Alternativ ermittelt die Quellcodeanalyseeinheit die Metainformation der gespeicherten Quellcodesegmente empirisch. Zum Beispiel ist in dem Datenspeicher ein Quellcodesegment gespeichert, welche eine spezifizierte Teilanforderung erfüllt. Hierbei handelt es sich zum Beispiel um eine Select-Anweisung, welche die abgeleitete Teilanforderung implementiert und zusätzlich eine Ausführungszeit von einer Sekunde aufweist. Somit erfüllt das gespeicherte Quellcodesegment sowohl die funktionale Teilanforderung, nämlich das Selektieren bestimmter Datensätze, wie auch die nichtfunktionale Teilanforderung, nämlich die Performanzanforderung von einer Antwortzeit von maximal zwei Sekunden. Folglich hat die Quellcodeanalyseeinheit ein Quellcodesegment, welches zwei abgeleiteten Teilanforderungen entspricht.
  • Ferner wählt die Quellcodeanalyseeinheit ein Quellcodesegment aus, welches eine Join-Operation mit der benötigten Funktionalität, welche als funktionale Teilanforderung spezifiziert wurde aus. Die Join-Anweisung erfüllt die Performanzanforderung von einer Antwortzeit von maximal drei Sekunden. Die beiden ausgewählten Quellcodesegmente erfüllen in ihrem Zusammenwirken die spezifizierte Gesamtanforderung.
  • Die Quellcodeintegrationseinheit fügt die ausgewählten Quellcodesegmente derart zusammen, dass durch deren Zusammenwirken die Gesamtanforderung erfüllt ist. Hierzu kann es notwendig sein, ein Quellcodesegment in ein weiteres Quellcodesegment einzubetten, Methodenaufrufe der Quellcodesegmente iterativ und/oder rekursiv zu gestalten, die Quellcodesegmente derart zu kombinieren, dass der Rückgabewert eines ersten Quellcodesegments als Eingabe eines zweiten Quellcodesegments dient und/oder das erste Quellcodesegment und das zweite Quellcodesegment zu kombinieren.
  • Die ausgewählten Quellcodesegmente können in unterschiedlichen Programmier- und/oder Skriptsprachen implementiert sein. Zum Beispiel handelt es sich bei dem ersten Quellcodesegment um eine Java-Klasse und bei dem zweiten Quellcodesegment um ein PHP-Skript. Die Quellcodeintegrationseinheit fügt das erste Quellcodesegment und das zweite Quellcodesegment derart zusammen, dass das erste Quellcodesegment und das zweite Quellcodesegment auf einer Zielplattform ausführbar, sind. Dies geschieht zum Beispiel durch ein Übersetzen des ersten Quellcodesegments und des zweiten Quellcodesegments in eine Zielprogrammier- oder Zielskriptsprache. Vorteilhaft ist hierbei, dass der erstellte anforderungskonforme Quellcode auf genau einer Zielplattform ausgeführt werden kann.
  • Alternativ können das erste Quellcodesegment und das zweite Quellcodesegment durch eine Virtualisierung auf einem physischen Rechnersystem lauffähig gemacht werden. Hierbei wird das erste Quellcodesegment auf einer ersten virtualisierten Umgebung ausgeführt und das zweite Quellcodesegment auf einer zweiten virtualisierten Umgebung ausgeführt. Um das erste Quellcodesegment und das zweite Quellcodesegment auf einer Zielplattform ausführbar zu machen, wird zum Beispiel ein Virtualisierer, ein Emulator und/oder eine Virtual-Machine verwendet.
  • Die ausgewählten Quellcodesegmente erfüllen somit in ihrem Zusammenwirken die Gesamtanforderung. Folglich wird ein anforderungskonformer Quellcode bereitgestellt.
  • Der anforderungskonforme Quellcode kann in einen bereits bestehenden Quellcode eingebettet werden. Hierbei werden die Gesamtanforderungen in Abhängigkeit des bereits bestehenden Quellcodes definiert. Ein Beispiel für eine Teilanforderung ist hierbei eine bestimmte Methodensignatur, sowie bestimmte Eingabe- und/oder Rückgabewerte. Der erstellte anforderungskonforme Quellcode wird durch die Quellcodeintegrationseinheit in den bereits bestehenden Quellcode eingebettet.
  • Zum Spezifizieren der Gesamtanforderung oder der Teilanforderung kann es notwendig sein, ein formales Modell der Gesamtanforderung und/oder der Teilanforderung zu erstellen. Dies erfolgt zum Beispiel unter Verwendung einer Anforderungsspezifikationssprache, einer booleschen Algebra, einer Logik, einer Ontologie und/oder einer grafischen Notation. Außerdem können die Quellcodesegmente als ein formales Modell beschrieben werden. Das Auswählen von dem mindestens einen Quellcodesegment kann in Abhängigkeit eines Vergleichens eines formalen Modells einer abgeleiteten Teilanforderung und eines formalen Modells eines Quellcodesegments erfolgen. Dies ist vorteilig, da formale Modelle, im Gegensatz zu natürlichsprachlichen Aussagen, bezüglich ihrer Konsistenz und Korrektheit überprüft werden können.
  • Die Erfindung betrifft ferner ein Verfahren zum Erstellen von einem anforderungskonformen Quellcode. Hierzu wird eine spezifizierte funktionale oder nichtfunktionale Gesamtanforderung analysiert und daraus Teilanforderungen abgeleitet. Die Teilanforderungen werden von der Gesamtanforderung derart abgeleitet, dass die abgeleiteten Teilanforderungen der Gesamtanforderung entsprechen. Es wird mindestens ein Quellcodesegment aus einem Datenspeicher ausgewählt, welches mindestens eine abgeleitete Teilanforderung erfüllt. Die ausgewählten Quellcodesegmente werden derart zusammengefügt, dass die zu sammengefügten Quellcodesegmente die Gesamtanforderung erfüllen.
  • Um das Verfahren durchzuführen, kann es vorteilig sein, die Schritte Analysieren einer Gesamtanforderung, Auswählen von mindestens einem Quellcodesegment und/oder Zusammenfügen der ausgewählten Quellcodesegmente iterativ und/oder in anderer Reihenfolge auszuführen.
  • Die Erfindung betrifft darüber hinaus ein Computerprogrammprodukt, welches zum Betreiben einer Vorrichtung zum Erstellen von einem anforderungskonformen Quellcode geeignet ist.
  • Somit werden ein Verfahren und eine Vorrichtung zum Erstellen von einem anforderungskonformen Quellcode bereitgestellt. Erfindungsgemäß ist es möglich, einen anforderungskonformen Quellcode zu erstellen, wobei der anforderungskonforme Quellcode zum Beispiel bezüglich Speicher- und Laufzeitkomplexität optimiert ist. Besonders vorteilhaft ist hierbei zum Beispiel, dass ein hardwarebasiertes Computersystem weniger Resourcen zum Ausführen des anforderungskonformen Quellcodes bereitstellen muss, als zum Ausführen eines Quellcodes, welcher nach herkömmlichem Verfahren implementiert wurde.
  • Weitere vorteilhafte Ausgestaltungen der Erfindung sind Gegenstand der Unteransprüche sowie der im Folgenden beschriebenen Ausführungsbeispiele. Im Weiteren wird die Erfindung anhand beispielhafter Implementierungen unter Bezugnahme auf die schematischen Figuren näher erläutert.
  • Es zeigt dabei:
  • 1 eine schematische Darstellung einer Rechneranlage zum Erstellen von einem anforderungskonformen Quellcode gemäß der vorliegenden Erfindung;
  • 2 eine weitere schematische Darstellung einer Rechneranlage zum Erstellen von einem anforderungskonformen Quellcode gemäß der vorliegenden Erfindung;
  • 3 eine weitere schematische Darstellung einer Rechneranlage zum Erstellen von einem anforderungskonformen Quellcode gemäß der vorliegenden Erfindung;
  • 4 ein Ablaufdiagramm einer Variante eines Verfahrens zum Erstellen von einem anforderungskonformen Quellcode gemäß der vorliegenden Erfindung;
  • 5 ein detailliertes Ablaufdiagramm einer Variante eines Verfahrens zum Erstellen von einem anforderungskonformen Quellcode gemäß der vorliegenden Erfindung; und
  • 6 eine weitere schematische Darstellung einer Rechneranlage zum Erstellen von einem anforderungskonformen Quellcode gemäß der vorliegenden Erfindung.
  • In den Figuren sind gleiche bzw. funktionsgleiche Elemente mit den gleichen Bezugszeichen versehen worden, sofern nichts anderes angegeben ist.
  • 1 zeigt eine schematische Darstellung einer Rechneranlage 1 zum Erstellen von einem anforderungskonformen Quellcode 4a gemäß der vorliegenden Erfindung. Die Rechneranlage 1 umfasst eine Anforderungsanalyseeinheit 2, eine Quellcodeanalyseeinheit 3 und eine Quellcodeintegrationseinheit 4.
  • Im vorliegenden Ausführungsbeispiel spezifiziert ein menschlicher Nutzer eine Gesamtanforderung 1a. Die spezifizierte Gesamtanforderung 1a dient als Eingabe für die Anforderungsanalyseeinheit 2. Die Anforderungsanalyseeinheit 2 analysiert die spezifizierte Gesamtanforderung 1a und leitet mindestens eine Teilanforderung 2a ab. Die mindestens eine abgeleitete Teilanforderung 2a entspricht der Gesamtanforderung 1a. Die abgeleitete Teilanforderung 2a dient als Eingabe für die Quellcodeanalyseeinheit 3.
  • Die Quellcodeanalyseeinheit 3 vergleicht die eingegebene Teilanforderung 2a mit Quellcodesegmenten, die durch einen Datenspeicher bereitgestellt werden. Die Quellcodeanalyseeinheit 3 wählt diejenigen bereitgestellten Quellcodesegmente aus, welche mindestens eine durch die Anforderungsanalyseeinheit 2 abgeleitete Teilanforderung erfüllen. Das mindestens eine ausgewählte Quellcodesegment dient als Eingabe für die Quellcodeintegrationseinheit 4.
  • Die Quellcodeintegrationseinheit 4 fügt die durch die Quellcodeanalyseeinheit 3 ausgewählten Quellcodesegmente zu einem Quellcode 4a zusammen. Hierbei erfüllen die zusammengefügten Quellcodesegmente in ihrem Zusammenwirken die spezifizierte Gesamtanforderung 1a.
  • 2 zeigt eine weitere schematische Darstellung einer Rechneranlage 1 zum Erstellen von einem anforderungskonformen Quellcode 4a gemäß der vorliegenden Erfindung. Die in 2 gezeigte Rechneranlage 1 unterscheidet sich von der in 2 gezeigten Rechneranlage 1 wie folgt:
    Die Anforderungsanalyseeinheit 2 weist eine Anforderungsschnittstelle 5 auf. Die Quellcodeanalyseeinheit 3 weist eine Quellcodesegmentanfrageeinheit 6, sowie eine Quellcodesegmentanalyseeinheit 7 auf. Die Quellcodeanalyseeinheit 3 kommuniziert mit einem Quellcodesegmentrepository 11 mittels einem Netzwerk 10. Die Quellcodeintegrationseinheit 4 weist eine Quellcodesegmentübersetzungseinheit 8, sowie eine Quellcodesegementkonsolidierungseinheit 9 auf.
  • Im vorliegenden Ausführungsbeispiel spezifiziert ein menschlicher Nutzer eine Gesamtanforderung 1a. Diese gibt er anhand einer natürlichsprachlichen Beschreibung mittels der Anforderungsschnittstelle 5 in die Anforderungsanalyseeinheit 2 ein. Die Anforderungsanalyseeinheit 2 ist geeignet aus der natürlichsprachlichen Eingabe, nämlich der Gesamtanforderung 1a, ein formales Modell zu erstellen. Der menschliche Nutzer spezifiziert zum Beispiel, dass er eine Steuerungseinheit einer technischen Vorrichtung benötigt. Die spezifizierte Gesamtan forderung 1a ist somit eine Funktionalität, welche durch eine Steuerungseinheit einer technischen Vorrichtung implementiert wird.
  • Die Anforderungsanalyseeinheit ist geeignet aus dem formalen Modell, welches die Gesamtanforderung 1a beschreibt, mindestens eine Teilanforderung 2a abzuleiten. Die Anforderungsanalyseeinheit 2 kann aus der Gesamtforderung 1a ableiten, dass die Steuereinheit der technischen Vorrichtung einen bestimmten Präzisionswert erfüllen muss. Diese Teilanforderung wird an die Quellcodesegmentanfrageeinheit 6 übermittelt. Die Quellcodesegmentanfrageeinheit 6 generiert Anfragen an ein Quellcodesegmentrepository 11. Das Quellcodesegmentrepository 11 übergibt daraufhin eine Auswahl an Quelltexten an die Quellcodesegmentanalyseeinheit 7.
  • Die Quellcodesegmentanalyseeinheit 7 überprüft ob die zurückgegebenen Quelltexte Quellcodesegmente enthalten, welche mindestens eine Teilanforderung 2a erfüllen. Weiterhin kann die Quellcodesegmentanalyseeinheit 7 die zurückgegebenen Quelltexte auf Konsistenz und/oder Programmiersprache überprüfen. Ein Überprüfen der zurückgegebenen Quelltexte kann direkt anhand der zurückgegebenen Quelltexte geschehen, die Quellcodesegmentanalyseeinheit 7 kann aber auch zusätzliche Quellcodesegmentinformationen aus dem Quellcodesegmentrepository 11 mittels des Netzwerkes 10 auslesen.
  • Das Quellcodesegmentrepository 11 weist Quellcode, Quellcodesegmente und/oder Quelltexte auf. Im vorliegenden Ausführungsbeispiel ist das Quellcodesegmentrepository 11 als Datenbankserver implementiert. Die Quellcodeanalyseeinheit 3 übermittelt dem Quellcodesegmentrepository 11 Anfragen und erhält als Rückgabewert Quellcodetexte und/oder einen Hinweis, darauf, wo Quellcodetexte abgerufen werden können. Dieser Hinweis kann mittels einer URL und/oder einer URI bereitgestellt werden. Die Quellcodeanalyseeinheit 4 kann aufgrund des Hinweises Quellcodetexte von einem weiteren Datenspeicher abrufen. Alternativ erhält die Quellcodeanalyseeinheit 3 ei nen Hinweis auf einen Web-Service, welcher die Quelltexte bereitstellt.
  • Aus den bereitgestellten Quelltexten wählt die Quellcodesegmentanalyseeinheit 7 diejenigen Quellcodesegmente aus, welche mindestens eine Teilanforderung 2a erfüllen.
  • Das Auswählen des mindestens einen Quellcodesegments kann durch ein Vergleichen eines ersten formalen Modells, welches eine Teilanforderung beschreibt, und eines zweiten formalen Modells, welches ein Quellcodesegment beschreibt, geschehen. Hierzu ist die Quellcodesegmentanalyseeinheit 7 geeignet, aus mindestens einem Quellcodesegment ein formales Modell zu erstellen. Alternativ kann die Quellcodeanalyseeinheit 3 geeignet sein, ein Quellcodesegment direkt mit einem ersten formalen Modell zu vergleichen, wobei das erste formale Modell die Teilanforderung 2a beschreibt.
  • Die ausgewählten Quellcodesegmente 3a werden an die Quellcodeintegrationseinheit 4 übermittelt. Die Quellcodeintegrationseinheit 4 ist geeignet, zu erkennen, ob die übermittelten Quellcodesegmente 3a in einer bestimmten Zielprogrammier- oder Zielskriptsprache implementiert sind. Liegen die übermittelten Quellcodesegmente 3a in unterschiedlichen Programmier- oder Skriptsprachen vor, bzw. stimmt die verwendete Programmier- oder Skriptsprache nicht mit einer bestimmten Programmier- oder Skriptsprache überein, so übersetzt die Quellcodesegmentübersetzungseinheit 8 die übermittelten Quellcodesegmente 3a in eine bestimmte Zielsprache. Die Quellcodesegmentkonsolidierungseinheit 9 fügt die übermittelten Quellcodesegmente 3a derart zusammen, dass die zusammengefügten Quellcodesegmente in ihrem Zusammenwirken die Gesamtanforderung 1a erfüllen. Die zusammengefügten Quellcodesegmente bilden den anforderungskonformen Quellcode 4a.
  • Die Rechneranlage 1 übergibt den anforderungskonformen Quellcode in dem vorliegenden Ausführungsbeispiel mittels eines Monitors an den menschlichen Nutzer.
  • 3 beschreibt eine weitere schematische Darstellung einer Rechneranlage 1 zum Erstellen von einem anforderungskonformen Quellcode 4a gemäß der vorliegenden Erfindung.
  • Im vorliegenden Ausführungsbeispiel ist die Rechneranlage 1 zum Erstellen von einem anforderungskonformen Quellcode 4a softwarebasiert nachgebildet. Das Nachbilden der Rechneranlage 1 kann zum Beispiel durch Virtualisierung ausgeführt werden. Hierbei wird die physische Rechneranlage 1 zum Erstellen von einem anforderungskonformen Quellcode 4a durch eine Softwarekomponente 1 simuliert. Im vorliegenden Ausführungsbeispiel wird somit zum Erstellen von einem anforderungskonformen Quellcode 4a eine nachgebildete Rechneranlage 1 verwendet. Die nachgebildete Rechneranlage 1 ist mittels einer Plug-In-Schnittstelle 21 in eine Quellcodeentwicklungsumgebung 20 eingebunden. Bei der Quellcodeentwicklungsumgebung 20 handelt es sich zum Beispiel um die Quellcodeentwicklungsumgebung Eclipse.
  • Im vorliegenden Ausführungsbeispiel spezifiziert ein menschlicher Nutzer eine Gesamtanforderung 1a mittels der Quellcodeentwicklungsumgebung 20. Die spezifizierte Gesamtanforderung 1a wird mittels der Plug-In-Schnittstelle an die nachgebildete Rechneranlage 1 übermittelt. Die nachgebildete Rechneranlage 1 leitet aus der Gesamtanforderung 1a im vorliegenden Ausführungsbeispiel drei Teilanforderungen 2a, 2b, 2c ab. Die abgeleiteten Teilanforderungen 2a, 2b, 2c entsprechen der spezifizierten Gesamtanforderung 1a.
  • Die Teilanforderungen 2a, 2b, 2c werden an einen Datenspeicher übermittelt. Der Datenspeicher weist eine Datenbank 22, Quellcodedokumente 23 und einen Web-Service 24 auf. Die Datenbank 22 speichert Quellcodesegmente mit jeweils zugehöriger Quellcodesegmentinformation. Die Quellcodesegmentinformation weist hierbei eine Lizenzinformation, eine Autoreninformation, eine Versionsinformation und/oder einen Zeitstempel auf. Die Quellcodedokumente 23 weisen ebenso Quellcodesegmente auf, und weisen außerdem Quellcodesegmentinformationen auf, welche zum Beispiel in einem Header umfasst sind und/oder mittels Kommentare in die Quellcodesegmente eingestreut sind. Der Web-Service 24 ist geeignet, Quellcodesegmente, welche mindestens eine der Teilanforderungen 2a, 2b, 2c erfüllen, der nachgebildeten Rechneranlage 1 bereitzustellen.
  • Die nachgebildete Rechneranlage 1 fügt mittels der Quellcodeintegrationseinheit 4 die ausgewählten Quellcodesegmente derart zusammen, dass die zusammengefügten Quellcodesegmente die Gesamtanforderung 1a erfüllen. Die zusammengefügten Quellcodesegmente entsprechen somit dem anforderungskonformen Quellcode 4a. Der anforderungskonforme Quellcode 4a kann zum Beispiel durch die Quellcodeentwicklungsumgebung 20 in einen bereits vorhandenen Quellcode eingebettet werden.
  • In einem weiteren Ausführungsbeispiel erstellt die Quellcodeentwicklungsumgebung 20 die Gesamtanforderung 1a. Im vorliegenden Ausführungsbeispiel liegt bereits ein erster Quellcode vor, in den ein weiterer anforderungskonformer Quellcode 4a eingebettet werden soll. Dies geschieht mittels der nachgebildeten Rechneranlage zum Erstellen von einem anforderungskonformen Quellcode 1, mittels der Plug-In-Schnittstelle 21.
  • 4 zeigt ein Ablaufdiagramm einer Variante eines Verfahrens zum Erstellen von einem anforderungskonformen Quellcode 4a gemäß der vorliegenden Erfindung.
  • In einem ersten Schritt 100 wird eine spezifizierte funktionale oder nichtfunktionale Gesamtanforderung an einen Quellcode analysiert. Es wird in Schritt 100 mindestens eine Teilanforderung aus der spezifizierten Gesamtanforderung abgeleitet, wobei die mindestens eine abgeleitete Teilanforderung der Gesamtanforderung entspricht.
  • In einem zweiten Schritt 101 wird mindestens ein Quellcodesegment aus einem Datenspeicher ausgewählt. Das mindestens eine ausgewählte Quellcodesegment erfüllt hierbei mindestens eine in Schritt 100 abgeleitete Teilanforderung.
  • In einem weiteren Schritt 102 werden die ausgewählten Quellcodesegmente derart zusammengefügt, dass sie die Gesamtanforderung erfüllen.
  • 5 zeigt ein detailliertes Ablaufdiagramm einer Variante eines Verfahrens zum Erstellen von einem anforderungskonformen Quellcode. In einem ersten Verfahrensschritt 200 spezifiziert ein menschlicher Nutzer eine Gesamtanforderung. In einem weiteren Schritt 201 wird die spezifizierte Gesamtanforderung in ein formales Modell übersetzt. Das formale Modell weist beispielsweise Aussagen auf, welche durch logische Operatoren verknüpft sind. In einem optionalen Schritt 202 wird das formale Modell auf Konsistenz geprüft. In einem weiteren Schritt 203 wird die spezifizierte Gesamtanforderung in einzelne Teilanforderungen unterteilt. Das heißt es werden aus der Gesamtanforderung mehrere Teilanforderungen abgeleitet, welche der Gesamtanforderung entsprechen. In einem weiteren Schritt 204 wird mindestens eine Anfrage an einen Datenspeicher übermittelt. Die Anfragen können zum Beispiel die abgeleiteten Teilanforderungen enthalten. In einem weiteren Schritt 205 übermittelt der Datenspeicher einen Übergabewert. Der übermittelte Übergabewert enthält Quellcodesegmente oder einen Hinweis auf Quellcodesegmente, zum Beispiel mittels einer URL und/oder einer URI.
  • In einem weiteren optionalen Schritt 206 werden die Quellcodesegmente unter der im vorherigen Schritt übermittelten URL abgerufen. In einem weiteren Schritt 207 werden diejenigen Quellcodesegmente ausgewählt, die mindestens eine Teilanforderung erfüllen. Hierbei ist es möglich, dass mehrere Quellcodesegmente genau eine Teilanforderung erfüllen, ein Quellcodesegment mehrere Teilanforderungen erfüllt oder, dass genau ein Quellcodesegment genau eine Teilanforderung erfüllt.
  • Für den Fall, dass die ausgewählten Quellcodesegmente nicht in einer gemeinsamen Programmier- oder Skriptsprache verfasst sind, oder die verwendete Programmier- oder Skriptsprache nicht einer bestimmten Zielsprache entspricht, werden die ausgewählten Quellcodesegmente in einem optionalen Schritt 208 eine gemeinsame Zielsprache übersetzt. In einem weiteren Verfahrensschritt 209 werden die ausgewählten Quellcodesegmente derart zusammengefügt, dass sie in ihrem Zusammenwirken die spezifizierte Gesamtanforderung erfüllen.
  • 6 zeigt eine weitere schematische Darstellung einer Rechneranlage 1 zum Erstellen von einem anforderungskonformen Quellcode 4a. Die in 6 gezeigte Rechneranlage 1 unterscheidet sich von der in 2 gezeigten Rechneranlage wie folgt:
    Im vorliegenden Ausführungsbeispiel dient die Anforderungsspezifikationsschnittstelle 5 sowohl der Spezifikation der Gesamtanforderung 1a, als auch der Ausgabe des anforderungskonformen Quellcodes 4a. Somit ist in der Rechneranlage 1 zum Erstellen von einem anforderungskonformen Quellcode 4a eine einheitliche Schnittstelle vorgesehen, welche eine Einbettung der Rechneranlage 1 in ein bereits bestehendes Rechnersystem ermöglicht. Bei der Anforderungsanalyseeinheit 2, der Quellcodeanalyseeinheit 3, der Quellcodeintegrationseinheit 4, sowie der Quellcodesegmentanfrageeinheit 6, der Quellcodesegmentanalyseeinheit 7, der Quellcodesegmentübersetzungseinheit 8 und/oder der Quellcodesegmentkonsolidierungseinheit 9 kann es sich zum Beispiel jeweils um einen Mikroprozessor, einen Computer, eine elektronische Datenverarbeitungsanlage und/oder eine Workstation handeln.

Claims (16)

  1. Vorrichtung (1) zum Erstellen von einem anforderungskonformen Quellcode (4a) mit: a) einer Anforderungsanalyseeinheit (2) zum Analysieren einer spezifizierten funktionalen oder nichtfunktionalen Gesamtanforderung (1a) an den Quellcode (4a) und zum Ableiten von mindestens einer Teilanforderung (2a; 2b; 2c), wobei die mindestens eine abgeleitete Teilanforderung der Gesamtanforderung entspricht; b) einer Quellcodeanalyseeinheit (3) zum Auswählen von mindestens einem Quellcodesegment (3a) aus einem Datenspeicher (11), wobei das mindestens eine ausgewählte Quellcodesegment (3a) mindestens eine abgeleitete Teilanforderung (2a; 2b; 2c) erfüllt; und mit c) einer Quellcodeintegrationseinheit (4) zum Zusammenfügen der ausgewählten Quellcodesegmente (3a), derart, dass die zusammengefügten Quellcodesegmente (3a) die Gesamtanforderung (1a) erfüllen.
  2. Vorrichtung nach Anspruch 1, wobei eine Quellcodesegmentübersetzungseinheit (8) mehrere durch die Quellcodeanalyseeinheit (3) ausgewählte Quellcodesegmente (3a), welche in unterschiedlichen Programmiersprachen verfasst sind, in eine Zielprogrammiersprache übersetzt.
  3. Vorrichtung nach einem der Ansprüche 1 oder 2, wobei die funktionale Gesamtanforderung (1a) in Abhängigkeit einer Fehlerfreiheit, Ein- und Ausgabeparametern, einer Methodensignatur und/oder einer Quellcodesemantik des anforderungskonformen Quellcodes spezifiziert ist.
  4. Vorrichtung nach einem der Ansprüche 1 oder 2, wobei die nichtfunktionale Gesamtanforderung (1a) in Abhängigkeit einer Laufzeitkomplexität, einer Speicherkom plexität und/oder einer Quellcodesegmentinformation des anforderungskonformen Quellcodes (4a) spezifiziert ist.
  5. Vorrichtung nach Anspruch 4, wobei die Quellcodesegmentinformation eine Lizenzinformation, eine Autoreninformation, eine Versionsinformation und/oder einen Zeitstempel aufweist.
  6. Vorrichtung nach einem der Ansprüche 1 bis 5, wobei die Anforderungsanalyseeinheit (2) die Gesamtanforderung (1a) in Abhängigkeit eines vorhandenen Quellcodes spezifiziert.
  7. Vorrichtung nach einem der Ansprüche 1 bis 6, wobei die Gesamtanforderung (1a) in ein erstes formales Modell übersetzt wird.
  8. Vorrichtung nach einem der Ansprüche 1 bis 7, wobei ein zweites formales Modell in Abhängigkeit von dem mindestens einen Quellcodesegment (3a) aus dem Datenspeicher (11) erstellt wird.
  9. Vorrichtung nach den Ansprüchen 7 und 8, wobei das Auswählen des mindestens einen Quellcodesegments (3a) aus dem Datenspeicher (11) in Abhängigkeit eines Vergleichens des ersten formalen Modells und des zweiten formalen Modells geschieht.
  10. Vorrichtung nach einem der Ansprüche 1 bis 9, wobei die auszuwählenden Quellcodesegmente (3a) in mindestens einem verteilten Datenspeicher (11) gespeichert sind.
  11. Vorrichtung nach einem der Ansprüche 1 bis 10, wobei das Auswählen des Quellcodesegments (3a) in Abhängigkeit eines Überprüfens, ob das Quellcodesegment (3a) die Teilanforderung (2a; 2b; 2c) erfüllt, ausgeführt wird.
  12. Vorrichtung nach einem der Ansprüche 1 bis 11, wobei der Quellcode (4a) und/oder das Quellcodesegment (3a) eine Programmbibliothek, eine Programmkomponente, ein Programmmodul, ein Programmpackage, eine Programmklasse, eine Programmroutine, eine Programmfunktion, eine Programmmethode, eine Parameterzuweisung, eine Programmschleife, eine Programmschnittstelle, einen Methodenaufruf, einen Konstruktor und/oder Programmzeilen aufweist.
  13. Vorrichtung nach einem der Ansprüche 4 bis 12, wobei der Datenspeicher (11) mindestens ein Quellcoderepository aufweist, welches die Quellcodesegmente (3a) und die Quellcodesegmentinformation speichert.
  14. Verfahren zum Erstellen von einem anforderungskonformen Quellcode, mit den Schritten: a) Analysieren einer spezifizierten funktionalen oder nichtfunktionalen Gesamtanforderung (1a) an den Quellcode (4a) und Ableiten von mindestens einer Teilanforderung (2a; 2b; 2c), wobei die mindestens eine abgeleitete Teilanforderung (2a; 2b; 2c) der Gesamtanforderung (1a) entspricht; b) Auswählen von mindestens einem Quellcodesegment (3a) aus einem Datenspeicher (11), wobei mindestens eine das ausgewählte Quellcodesegment (3a) mindestens eine abgeleitete Teilanforderung (2a; 2b; 2c) erfüllt; und c) Zusammenfügen der ausgewählten Quellcodesegmente (3a), derart, dass die zusammengefügten Quellcodesegmente (3a) die Gesamtanforderung (1a) erfüllen.
  15. Computerprogramm mit Programmbefehlen zur Durchführung des Verfahrens nach Anspruch 14.
  16. Datenträger, der das Computerprogramm nach Anspruch 15 speichert.
DE200810060440 2008-12-04 2008-12-04 Verfahren und Vorrichtung zum Erstellen von einem anforderungskonformen Quellcode Withdrawn DE102008060440A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE200810060440 DE102008060440A1 (de) 2008-12-04 2008-12-04 Verfahren und Vorrichtung zum Erstellen von einem anforderungskonformen Quellcode

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE200810060440 DE102008060440A1 (de) 2008-12-04 2008-12-04 Verfahren und Vorrichtung zum Erstellen von einem anforderungskonformen Quellcode

Publications (1)

Publication Number Publication Date
DE102008060440A1 true DE102008060440A1 (de) 2010-06-17

Family

ID=42168426

Family Applications (1)

Application Number Title Priority Date Filing Date
DE200810060440 Withdrawn DE102008060440A1 (de) 2008-12-04 2008-12-04 Verfahren und Vorrichtung zum Erstellen von einem anforderungskonformen Quellcode

Country Status (1)

Country Link
DE (1) DE102008060440A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2693334A1 (de) 2012-07-31 2014-02-05 Heavenize Verfahren zum Erzeugen einer Software-Anwendung implementiert durch eine generische Engine

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060271920A1 (en) * 2005-05-24 2006-11-30 Wael Abouelsaadat Multilingual compiler system and method
US20080256516A1 (en) * 2007-04-13 2008-10-16 Chaar Jarir K Software Factory

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060271920A1 (en) * 2005-05-24 2006-11-30 Wael Abouelsaadat Multilingual compiler system and method
US20080256516A1 (en) * 2007-04-13 2008-10-16 Chaar Jarir K Software Factory

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2693334A1 (de) 2012-07-31 2014-02-05 Heavenize Verfahren zum Erzeugen einer Software-Anwendung implementiert durch eine generische Engine
FR2994295A1 (fr) * 2012-07-31 2014-02-07 Heavenize Procede de creation d'une application logicielle mis en oeuvre par un moteur

Similar Documents

Publication Publication Date Title
DE10121790B4 (de) Softwarekonfigurationsverfahren zur Verwendung in einem Computersystem
DE19836381C2 (de) Vorrichtung zur Installierung von Software auf einem Computersystem
DE102018003142A1 (de) Automatische Einstellung von Multitasking-Konfigurationen für ein Codeprüfsystem
DE102014215621A1 (de) Vorlagensystem zum Generieren von benutzerangepassten Dokumenten
WO2008040664A1 (de) Verfahren zur rechnergestützten bewertung von softwarequellcode
DE19836333A1 (de) Software Installation und Testen für ein gemäß einer Bestellung gebautes Computersystem
Chiappini et al. Formalization and validation of a subset of the European Train Control System
Langhammer Automated Coevolution of Source Code and Software Architecture Models
DE102017106023A1 (de) Verfahren und System zum automatisierten Benutzerschnittstellentesten über modellgetriebene Techniken
EP3047341B1 (de) System zum rechnergestützten erstellen von regeln zur überwachung und/oder diagnose einer technischen anlage
DE102010033861A1 (de) Auf einer formellen Analyse basierte Entwicklung von Anforderungsspezifikationen
DE102021116315A1 (de) Verfahren zum Zusammenführen von Architekturinformationen
DE102011012068A1 (de) Begriffsverwaltungssystem (tms)
Hillemacher et al. Artifact-Based Analysis for the Development of Collaborative Embedded Systems
WO2009010338A1 (de) Verfahren zur rechnergestützten obfuskierung eines softwareprogramms und computerprogrammprodukt
DE102008060440A1 (de) Verfahren und Vorrichtung zum Erstellen von einem anforderungskonformen Quellcode
Rotschke et al. Architecture analysis tools to support evolution of large industrial systems
DE102010047954A1 (de) Formelle offline-Verifikation ausführbarer Modelle
DE102021207872A1 (de) Kompositionelle verifikation von eingebetteten softwaresystemen
DE112020003888T5 (de) De-identifizierungscode für organisationsübergreifendes fehlerbehebungswissen
DE102011012071A1 (de) Anforderungseinbringungs-/-auslesewerkzeug, genannt r2db
DE102008048862A1 (de) Testmodul und Verfahren zum Testen einer O/R-Abbildungs-Middleware
DE102022208030A1 (de) Verfahren zum kollaborativen Erstellen eines Softwareprodukts und Verfahren zur Reaktion auf einen Fehler
Haidrar et al. On the use of model transformation for requirements trace models generation
Gutleder Model-driven methods for developing ISO-certified safety-critical systems

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20120703