DE19837871A1 - Verfahren zum automatischen Erzeugen eines Programms - Google Patents
Verfahren zum automatischen Erzeugen eines ProgrammsInfo
- Publication number
- DE19837871A1 DE19837871A1 DE19837871A DE19837871A DE19837871A1 DE 19837871 A1 DE19837871 A1 DE 19837871A1 DE 19837871 A DE19837871 A DE 19837871A DE 19837871 A DE19837871 A DE 19837871A DE 19837871 A1 DE19837871 A1 DE 19837871A1
- Authority
- DE
- Germany
- Prior art keywords
- component
- state
- program
- condition
- iss
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/10—Requirements analysis; Specification techniques
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
Ein Verfahren zum automatischen Erzeugen eines zustandsbasierten Programms (14A, 14B, 14C) für eine Komponente (A, B, C) eines aus mehreren miteinander kommunizierenden Komponenten (A, B, C) bestehenden Systems (S) weist die Schritte auf, alle durch die Spezifikation (10) des Systems (S) definierten Ablaufbeschreibungen der Komponente (A, B, C) zu bestimmen, die Ablaufbeschreibungen zu normalisieren, eine zustandsbasierten Spezifikation der Komponente (A, B, C) zu bestimmen, und das zustandsbasierte Programm (14A, 14B, 14C) zu bestimmen. Durch die Erfindung wird der Programmentwicklungsprozeß verkürzt, der erforderliche Aufwand verringert, und mögliche Fehlerquellen werden vermieden.
Description
Die Erfindung betrifft ein Verfahren zum automatischen Er
zeugen eines zustandsbasierten Programms. Das Programm ist
für eine Komponente eines aus mehreren miteinander kommuni
zierenden Komponenten bestehenden Systems vorgesehen. Eine
interaktionsbasierte Spezifikation des Systems bildet die
Grundlage für die automatische Programmerzeugung. Die Erfin
dung dient zum automatischen Erzeugen aller Arten von Pro
grammen. Insbesondere ist ein Einsatz der Erfindung bei kom
plexen, interagierenden Programmen, zum Beispiel für Tele
kommunikationsanwendungen, vorgesehen.
Die Programmentwicklung erfolgt heute im allgemeinen in ei
nem mehrphasigen Prozeß. Zunächst werden die Anforderungen
an das zu entwickelnde System gesammelt und erste Lösungsan
sätze erstellt. Später werden diese Lösungsansätze schritt
weise ausgearbeitet, bis schließlich eine ausführbare Imple
mentierung in Form eines Programms vorliegt.
Zur Spezifikation eines Systems kommunizierender Komponenten
in den frühen Entwurfsphasen sind insbesondere interaktions
basierte Formalismen bekannt. Eine Spezifikation in einem
solchen Formalismus enthält Beschreibungen von möglichen Ab
läufen des Systems, wobei die Kommunikation (Interaktion)
zwischen den Systemkomponenten im Vordergrund steht. Bei
spiele für interaktionsbasierte Ablaufbeschreibungen sind
Message Sequence Charts (MSCs) nach der Empfehlung Z.120 der
ITU (International Telecommunication Union) sowie Sequenz
diagramme in der UML (Unified Modeling Language) der OMG
(Object Management Group).
Wenn aus einer derartigen interaktionsbasierten Spezifika
tion des Systems ohne maschinelle Unterstützung ein lauffä
higes Programm entwickelt werden soll, ist ein sehr hoher
Einsatz an menschlicher Arbeitszeit erforderlich. Problema
tisch sind hierbei sowohl die entstehenden Kosten als auch
die lange Entwicklungsdauer, die sich auch durch eine Erhö
hung der Mitarbeiterzahl nicht beliebig verkürzen läßt. Ins
besondere bei komplexen, interagierenden Anwendungen, wie
sie beispielsweise auf dem Telekommunikationssektor üblich
sind, ist der Entwicklungsprozeß ferner sehr fehleranfällig.
Ein Großteil der Gesamtkosten entfällt in der Regel auf die
Fehlersuche und -beseitigung.
Die Erfindung hat demgemäß die Aufgabe, den Programmentwick
lungsprozeß zu verkürzen, den erforderlichen Aufwand zu ver
ringern und mögliche Fehlerquellen zu vermeiden. Insbesonde
re sollen durch die Erfindung die Phasen der Programment
wicklung von der interaktionsbasierten Systemspezifikation
zum ausführbaren Programm ganz oder zum Teil automatisiert
werden.
Erfindungsgemäß wird diese Aufgabe durch ein Verfahren mit
den Merkmalen des Anspruchs 1 gelöst. Die abhängigen An
sprüche betreffen bevorzugte Ausgestaltungen der Erfindung.
Durch die Aufzählung der Verfahrensschritte in Anspruch 1
soll keine festgelegte Reihenfolge definiert werden; viel
mehr können die einzelnen Schritte auch in anderer Reihen
folge oder (quasi-)parallel oder ineinander oder mit Schrit
ten anderer Verfahren verzahnt ausgeführt werden. Die Ver
wendung des unbestimmten Artikels im Ausdruck "Verfahren zum
automatischen Erzeugen eines zustandsbasierten Programms"
soll den Ball einschließen, daß in einem einzigen Verfah
rensablauf gemeinsam mehrere zustandsbasierte Programme für
je eine Komponente des Systems erzeugt werden.
Die Erfindung geht von der Grundidee aus, durch eine Reihe
geeigneter Umsetzungsschritte automatisch ein zustandsba
siertes Programm aus der Spezifikation des Systems zu erzeu
gen. Damit erleichtert die Erfindung den Entwurfsprozeß ganz
wesentlich, weil die aufwendige, manuelle Umsetzung ent
fällt. Die Programmierarbeit wird auf das Erstellen der Spe
zifikation des Systems verlagert. Mit anderen Worten erwei
tert die Erfindung die Funktionalität bekannter Compiler,
weil die automatische Programmgenerierung nicht mehr einen
Sourcecode in einer Programmiersprache erfordert, sondern
eine bloße Systemspezifikation ausreicht.
Die Erfindung geht von einer Spezifikation eines aus mehre
ren miteinander kommunizierenden Komponenten bestehenden Sy
stems aus. Die Komponenten können insbesondere räumlich von
einander getrennte Datenverarbeitungseinrichtungen sein, wie
dies zum Beispiel bei Telekommunikationsanwendungen häufig
der Fall ist. Die Komponenten können jedoch auch lediglich
logisch voneinander getrennt sein, um beispielsweise das Sy
stem zu gliedern oder die Komponenten untereinander abzu
schotten. Die Komponenten können in diesem Fall nebenläufige
Prozesse in einer Datenverarbeitungsanlage oder sogar ein
zelne Module eines größeren Programms sein. Auch Mischformen
zwischen den beiden Extremen einer räumlichen und logischen
Trennung sind vorgesehen.
Die Kommunikation zwischen den Komponenten ist auf alle Ar
ten möglich, zum Beispiel über uni- oder bidirektionale Kom
munikationskanäle oder synchronisierende Kommunikationsme
chanismen. Die Kommunikation kann über beliebige Protokolle
abgewickelt werden. Insbesondere können die Komponenten
durch Netzwerke oder geeignete Betriebssystemdienste mitein
ander verbunden sein. Auch eine Kommunikation über gemeinsa
me Register oder Speicherbereiche ist möglich.
Die Spezifikation des Systems enthält erfindungsgemäß inter
aktionsbasierte Ablaufbeschreibungen. Solche Ablaufbeschrei
bungen sind zum Beispiel die eingangs bereits erwähnten
Message Sequence Charts (MSCs) oder UML-Sequenzdiagramme.
Für das erfindungsgemäße Verfahren ist nur der Informations
gehalt dieser Beschreibungen hinsichtlich möglicher System
abläufe von Bedeutung; die konkrete textuelle und/oder gra
fische Repräsentation ist unerheblich. Daher können als Sy
stemspezifikationen alle Beschreibungstechniken eingesetzt
werden, in denen Systemkomponenten und deren Interaktion
darstellbar sind.
Als Ergebnis des erfindungsgemäßen Verfahrens wird ein zu
standsbasiertes Programm für je eine Komponente des Systems
generiert. Dieses Programm kann ebenfalls eine beliebige
textuelle und/oder grafische Repräsentation aufweisen. We
sentlich ist nur, daß durch das Programm Zustände und Zu
standsübergänge sowie Kommunikationsaktionen beschrieben
werden.
In bevorzugten Ausführungsformen wird das zustandsbasierte
Programm durch einen endlichen Automaten (gerichteter Graph
mit Anfangszustand und akzeptierenden Endzuständen) oder
einen Büchi-Automaten (gerichteter Graph mit Anfangszustand
und Akzeptanzkriterium) oder eine SDL-Darstellung (SDL =
Specification and Description Language der ITU) oder einen
Statechart-Automaten oder einen ROOM-Automaten (ROOM = Real-
Time Object-Orientated-Modeling) repräsentiert.
Hinsichtlich endlicher Automaten wird allgemein auf das Buch
"Einführung in die Automatentheorie, Formale Sprachen und
Komplexitätstheorie" von J. E. Hopcroft und J. D. Ullman,
Addison Wesley, 2. korrigierter Nachdruck, 1993, verwiesen.
Insbesondere sind auf den Seiten 47ff dieses Buches Verfah
ren zur Ableitung ausführbarer Programme aus Automatenbe
schreibungen gezeigt. Das Buch "Real-Time Object-Orientated
Modeling" von B. Selic, G. Gullekson und P. T. Ward, Wiley,
1994, enthält eine Beschreibung von ROOM-Automaten sowie von
Werkzeugen wie z. B. ObjecTime (http://www.objectime.com),
die Automatenbeschreibungen auszuführen und in andere Pro
gramme umzuformen vermögen. Die an diesen Fundstellen ent
haltenen Erläuterungen werden hiermit in die vorliegende Be
schreibung aufgenommen.
In anderen bevorzugten Ausführungsformen sind beliebige an
dere zustandsorientierte Formalismen und Sprachen für das
zustandsbasierte Programm möglich. Das zustandsbasierte Pro
gramm ist vorzugsweise ein ausführbares Programm. Es kann
unmittelbar auf einem Rechner lauffähig sein, oder es kann
mittels eines geeigneten Interpreters ausführbar oder mit
tels eines geeigneten Compilers in einen ausführbaren Kode
übersetzbar sein. In Ausführungsalternativen können zusätz
liche manuelle Verfeinerungsschritte erforderlich sein, um
ein ausführbares Programm zu erhalten.
Bevorzugte Anwendungsgebiete der Erfindung finden sich auf
den Gebieten der Telekommunikation und der Computernetzwer
ke, insbesondere bei der Implementierung komplexer Protokol
le für alle Arten von Vermittlungsanlagen, Zwischenstationen
und Endgeräten, um einen flexiblen und gegen Fehlfunktionen
abgesicherten Daten- und Nachrichtenaustausch bereitzustel
len. Ferner ist die Erfindung zum Erzeugen von Programmen
für reaktive Systeme, insbesondere Regelungs- und Steue
rungssysteme als Bestandteile technischer Geräte (etwa im
Anlagenbau, in der Automatisierungstechnik, in der Avionik,
im KFZ-Bereich, in der Telematik und/oder in der Konsumelek
tronik) einsetzbar. Weitere Anwendungsgebiete sind die Gene
rierung von Benutzerschnittstellen, insbesondere für Geräte
der genannten technischen Bereiche, sowie die Erzeugung von
Datenbankabfrageschemata.
Mehrere Ausführungsbeispiele und -alternativen der Erfindung
werden nun unter Hinweis auf die Zeichnungen genauer be
schrieben. Es stellen dar:
Fig. 1 eine schematische Darstellung der automatischen Pro
grammerzeugung durch das erfindungsgemäße Verfahren,
Fig. 2a bis Fig. 2d Beispiele für interaktionsbasierte Ab
laufbeschreibungen,
Fig. 3 ein Beispiel für eine Spezifikation eines Systems,
Fig. 4 ein Flußdiagramm eines Ausführungsbeispiels der Er
findung,
Fig. 5 eine Ablaufbeschreibung einer Komponente A,
Fig. 6 eine Ablaufbeschreibung der Komponente A mit einge
fügter Start- und Endbedingung,
Fig. 7a und Fig. 7b je eine normalisierte Ablaufbeschreibung
der Komponente A,
Fig. 8 eine zustandsbasierte Spezifikation der Komponente A,
Fig. 9 ein nichtdeterministisches, zustandsbasiertes Pro
gramm für die Komponente A,
Fig. 10 ein deterministisches, zustandsbasiertes Programm
für die Komponente A, und
Fig. 11a und Fig. 11b Darstellungen von optimierbaren bzw.
optimierten Zustandsübergängen.
Das in Fig. 1 veranschaulichte Verfahren betrifft ein System
S, das drei als eigenständige Computer ausgestaltete Kompo
nenten A, B, C aufweist. Die Komponenten A, B, C kommunizie
ren miteinander über unidirektionale Kanäle (in Fig. 1 als
durchgezogene Pfeile gezeigt), die durch geeignete Netzwerk
dienste bereitgestellt werden. Eine Spezifikation 10 des Sy
stems S beschreibt die möglichen Kommunikationsabläufe (In
teraktionen) zwischen den Komponenten A, B, C.
Die Spezifikation 10 dient als Eingabe (gepunkteter Pfeil in
Fig. 1) für einen Rechner 12, beispielsweise einen üblichen
Arbeitsplatzrechner, der das hier beschriebene Verfahren
automatisch ausführt. Als Ausgaben (gestrichelte Pfeile in
Fig. 1) erzeugt der Rechner 12 je ein zustandsbasiertes Pro
gramm 14A, 14B, 14C für die drei Komponenten A, B, C. Die
Programme 14A, 14B, 14C sind auf den mit einem geeigneten
Interpreter ausgestatteten Komponenten A, B, C unmittelbar
ablauffähig. Je nach einer Auswahl des Benutzers können in
jedem Durchlauf Programme 14A, 14B, 14C für alle Komponenten
A, B, C des Systems S oder für nur eine oder einige dieser
Komponenten A, B, C erzeugt werden.
Die Spezifikation 10 des Systems S weist mehrere inter
aktionsbasierte Ablaufbeschreibungen auf, die in dem hier
gezeigten Ausführungsbeispiel als Message Sequence Charts
(MSCs) nach der Empfehlung Z.120 der ITU ausgestaltet sind.
Der Inhalt dieser Empfehlung wird hiermit in die vorliegende
Beschreibung aufgenommen. Vier MSCs für die Komponenten A
und B sind beispielhaft in Fig. 2a bis Fig. 2d gezeigt und
dort mit den Namen ISS, A_ISF, A_TC bzw. A_TE bezeichnet.
Bei den MSCs A_ISF, A_TC bzw. A_TE sind die jeweiligen Kom
munikationspartner der Komponente A der Einfachheit halber
weggelassen worden.
Jede Komponente in einer Ablaufbeschreibung ist durch eine
senkrechte Achse repräsentiert, die von einem offenen Balken
als Startpunkt zu einem geschlossenen Balken als Endpunkt
verläuft. Kommunikationsaktionen zwischen den Komponenten
sind durch beschriftete Pfeile vom Sender zum Empfänger dar
gestellt. Die Beschriftung kennzeichnet die Art der Nach
richt. Beispielsweise sendet in Fig. 2a die Komponente A die
Nachricht SREQ an die Komponente B, die nach dem Empfang ih
rerseits die Nachricht SACK an die Komponente A schickt.
Ferner können mit den Komponenten Bedingungen assoziiert
sein. Eine Bedingung kennzeichnet den Zustand der entspre
chenden Komponente zu dem durch die Position der Bedingung
auf der Komponentenachse angegebenen Zeitpunkt vor oder nach
dem Senden bzw. Empfangen einer Nachricht. So gilt in
Fig. 2a für die Komponente A vor dem Senden der Nachricht
SREQ die Bedingung IDLE als Anfangsbedingung und nach dem
Empfang der Nachricht SACK die Bedingung SENDING als End
bedingung.
In Fig. 3 ist die Spezifikation 10 des Systems S veranschau
licht. Im hier beschriebenen Ausführungsbeispiel enthält die
Spezifikation 10 insgesamt vier Ablaufbeschreibungen 16 des
Systems S, nämlich die MSCs ISS, A_ISF, A_TC und A_TE (wie
in Fig. 2a bis Fig. 2d gezeigt). Ferner sind in der Spezifi
kation 10 Daten 18 über den Anfangszustand und Daten 20 über
die möglichen Endzustände jeder Komponente enthalten, die in
mindestens einer der Ablaufbeschreibungen 16 auftritt. Die
Daten 18 legen den Startzustand des zu erzeugenden zustands
basierten Programms für die Komponente fest, und die Daten
20 bestimmen die zulässigen (akzeptierenden) Endzustände. In
Ausführungsalternativen kann die Spezifikation 10 weitere
Daten aufweisen, die für die Programmgenerierung herangezo
gen werden.
Anhand des im Flußdiagramm von Fig. 4 gezeigten Verfahrens
wird nun die Erzeugung eines zustandsbasierten Programms für
die Komponente A erläutert. In einem ersten Schritt 22 wird
für jede Ablaufbeschreibung 16 des Systems S, in der die
Komponente A enthalten ist, eine auf diese Komponente be
schränkte Ablaufbeschreibung erzeugt. Mit anderen Worten
stellt die erzeugte Komponenten-Ablaufbeschreibung die Pro
jektion der System-Ablaufbeschreibung 16 auf die Komponente
A dar. Diese Projektion entsteht durch Entfernen aller von A
verschiedenen Komponentenachsen zusammen mit den daran be
findlichen Bedingungen, soweit diese Bedingungen nicht auch
Bedingungen der Komponente A sind. Ferner werden alle Pfeile
(Kommunikationsvorgänge) entfernt, die weder ihren Ursprung
noch ihr Ziel bei der Komponente A haben.
Fig. 5 zeigt als Beispiel für den Verfahrensschritt 22 das
MSC A_ISS, das eine aus der System-Ablaufbeschreibung ISS
(Fig. 2a) gewonnene Ablaufbeschreibung der Komponente A dar
stellt. Das MSC A_ISS wurde durch Projektion des MSC ISS auf
die Komponente A gewonnen, indem die Komponentenachse B ent
fernt wurde. Die MSCs von Fig. 2b bis Fig. 2d haben bereits
die Form einer Ablaufbeschreibung der Komponente A, so daß
insoweit keine Umwandlungsschritte mehr erforderlich sind.
In einem zweiten Schritt 24 (Fig. 4) wird jede nun vorlie
gende Ablaufbeschreibung der Komponente A normalisiert. Eine
normalisierte Ablaufbeschreibung weist genau eine Anfangs-
und genau eine Endbedingung auf und enthält zwischen diesen
beiden Bedingungen ausschließlich Kommunikationsaktionen.
Als Anfangsbedingung wird hierbei eine unmittelbar auf den
Startpunkt (offener Balken) einer Komponentenachse folgende
Bedingung verstanden, und als Endbedingung eine dem Endpunkt
(geschlossener Balken) unmittelbar vorhergehende Bedingung.
Der Normalisierungsschritt 24 wird in drei Teilschritten
ausgeführt. In einem ersten Teilschritt 26 wird in jede Ab
laufbeschreibung der Komponente A, die nicht mit einer Be
dingung beginnt, eine Startbedingung eingefügt. Die Start
bedingung entspricht dem durch die Daten 18 vorgegebenen
Anfangszustand für die Komponente A.
Daraufhin wird in einem zweiten Teilschritt 28 in jede Ab
laufbeschreibung, die nicht mit einer Bedingung endet, eine
geeignete Endbedingung eingefügt. Im hier beschriebenen Aus
führungsbeispiel ist die eingefügte Endbedingung identisch
mit der (bereits ursprünglich vorhandenen oder in Teil
schritt 26 eingefügten) Startbedingung der Ablaufbeschrei
bung. In Ausführungsalternativen sind andere Endbedingungen
möglich. In weiteren Ausführungsalternativen können in den
Teilschritten 26 und 28 aus einer einzigen Ablaufbeschrei
bung mehrere Ablaufbeschreibungen generiert werden, die sich
nur durch die eingefügten Anfangs- und/oder Endbedingung(en)
unterscheiden.
Fig. 6 zeigt als Beispiel ein aus dem MSC A_ISF (Fig. 2b)
durch Ausführen der ersten beiden Teilschritte 26, 28 er
haltenes MSC A_ISF1. Die durch die Daten 18 (Fig. 3) für die
Komponente A definierte Bedingung IDLE wurde als Start- und
als Endbedingung eingefügt. Die MSCs A_ISS (Fig. 5) und A_TC
(Fig. 2c) und A_TE (Fig. 2d) weisen bereits je eine Start-
und Endbedingung auf, so daß insoweit keine Umformung erfor
derlich ist.
Als dritter Teilschritt 30 des Normalisierungsschritts 24
werden Ablaufbeschreibungen aufgespalten- die außer der
Start- und der Endbedingung weitere Bedingungen aufweisen.
Jeder Ausschnitt einer solchen Ablaufbeschreibung, der von
je zwei Bedingungen begrenzt wird, bildet eine neue Ablauf
beschreibung mit diesen beiden Bedingungen als Start- bzw.
Endbedingung. In den so erhaltenen normalisierten Ablaufbe
schreibungen tritt somit jede ursprünglich interne Bedingung
je einmal als Start- und einmal als Endbedingung auf.
Das Ergebnis der im dritten Teilschritt 30 vorgenommenen
Aufspaltung am Beispiel des MSC A_ISF1 (Fig. 6) ist in
Fig. 7a und Fig. 7b gezeigt. Das MSC A_ISF2 entspricht dem
Ausschnitt des MSC A_ISF1 von der Startbedingung IDLE zur
internen Bedingung (und neuen Endbedingung) CONFL. Der Aus
schnitt des MSC A_ISF1 von CONFL zur Endbedingung IDLE bil
det das MSC A_ISF3. Die MSCs A_ISF2 und A_ISF3 sind somit
aus dem MSC A_ISF durch Normalisierung entstanden. Die MSCs
A_ISS, A_TC und A_TE liegen bereits in Normalform vor, so
daß in Teilschritt 30 keine Aufspaltung erfolgt.
Als dritter Verfahrensschritt 32 wird aus den normalisierten
Ablaufbeschreibungen der Komponente A eine zustandsbasierte
Spezifikation bestimmt. Eine solche Spezifikation ist eine
Mischform aus Ablaufbeschreibungen und zustandsbasierten
Programmen. Das heißt, daß bereits ein Zustandsbegriff exi
stiert, während Zustandsübergänge noch durch Ablaufbeschrei
bungen repräsentiert werden.
Um die Zustandsmenge der zustandsbasierten Spezifikation der
Komponente A zu erhalten, wird im hier beschriebenen Ausfüh
rungsbeispiel die Menge der normalisierten Ablaufbeschrei
bungen von A so partitioniert, daß alle Ablaufbeschreibungen
einer Partition dieselbe Anfangsbedingung aufweisen. Jede
solche Partition, die im folgenden einfach mit der entspre
chenden Anfangsbedingung identifiziert wird, stellt einen
Zustand der zustandsbasierten Spezifikation dar. Ferner bil
det jede in einer normalisierten Ablaufbeschreibung von A
auftretende Endbedingung einen Zustand, sofern nicht bereits
ein entsprechender Zustand vorhanden ist. Mit anderen Worten
kann somit die Zustandsmenge als Menge aller Anfangs- und
Endbedingungen in den normalisierten Ablaufbeschreibungen
von A angesehen werden, wobei gleiche Bedingungen je einen
gemeinsamen Zustand bilden.
Als Zustandsübergänge (Transitionen) in der zustandsbasier
ten Spezifikation dienen alle normalisierten Ablaufbeschrei
bungen von A. Jede solche Ablaufbeschreibung definiert eine
mögliche Transition von dem der Startbedingung entsprechen
den Zustand zu demjenigen Zustand, der der Endbedingung zu
geordnet ist. Der Anfangszustand der zustandsbasierten Spe
zifikation der Komponente A ist der durch die Daten 18
(Fig. 3) angegebene Anfangszustand, und die durch die Daten
20 definierten Endzustände entsprechen den Endzuständen der
zustandsbasierten Spezifikation.
Eine aus den MSCs A_ISS, A_ISF2, A_ISF3, A_TC und A_TE in
Schritt 32 abgeleitete zustandsbasierte Spezifikation ist
beispielhaft in Fig. 8 gezeigt. Die Partition für die An
fangsbedingung IDLE enthält die MSCs A_ISS und A_ISF2, die
Partition für die Anfangsbedingung SENDING enthält die MSCs
A_TC und A_TE, und die Partition für die Anfangsbedingung
CONFL enthält das MSC A_ISF3. Entsprechend werden drei Zu
stände gebildet, die mit den Anfangsbedingungen IDLE,
SENDING und CONFL identifiziert werden. Die in Fig. 8 durch
Pfeile dargestellten Transitionen sind mit den entsprechen
den MSCs beschriftet. Als Anfangszustand ist der Zustand
IDLE durch einen von einem ausgefüllten Kreis ausgehenden
Pfeil angegeben. Der (einzige) Endzustand ist ebenfalls der
Zustand IDLE, was in Fig. 8 durch eine doppelte Umrahmung
angezeigt ist. Der Endzustand zeigt akzeptierende (erfolg
reich abgeschlossene) Berechnungen an.
In einem vierten Schritt 34 des in Fig. 4 gezeigten Verfah
rens wird schließlich ein zustandsbasiertes Programm für die
Komponente A bestimmt. Dieses Programm wird im hier be
schriebenen Ausführungsbeispiel in Form eines endlichen Au
tomaten erzeugt. Die Zustandsmenge des Automaten sowie der
Anfangszustand und die Endzustände stimmen mit denen der zu
standsbasierten Spezifikation überein. Die Zustandsübergänge
des Automaten werden aus den Transitionen der zustandsba
sierten Spezifikation abgeleitet, indem jede eine Transition
bildende Ablaufbeschreibung durch eine entsprechende Folge
von (neuen) Zuständen und Übergängen ersetzt wird.
Genauer gesagt, werden zunächst alle Ablaufbeschreibungen,
in denen kein Nachrichtenaustausch stattfindet, durch ε-
Transitionen ersetzt, um die Möglichkeit eines spontanen
Zustandsübergangs anzugeben. Jede andere Ablaufbeschreibung
definiert insgesamt k (k < 0) Kommunikationsaktionen, die
mit (d1, n1, c1), . . ., (dk, nk, ck) bezeichnet werden sollen.
Hierbei geben, für 1 ≦ i ≦ k, jeweils di die Richtung des
Nachrichtenaustauschs, ni die Nachricht und ci den Namen der
jeweiligen Quell- bzw. Zielkomponente an. Für eine empfange
ne Nachricht gilt di = "?", und für eine gesendete Nachricht
gilt di = "!".
Für k = 1 wird im Automaten die Ablaufbeschreibung durch
eine Transition ersetzt, die mit der Kommunikationsaktion
(d1, n1, c1) gekennzeichnet ist.
Für k < 1 werden dem Automaten k-1 neue Zustände s1, . . .,
sk-1 sowie k Transitionen hinzugefügt. Die erste Transition
verläuft vom Startzustand der zugrundeliegenden Ablaufbe
schreibung zum neuen Zustand s1 und ist mit der Kommunika
tionsaktion (d1, n1, c1) gekennzeichnet. Die k-te Transition
verläuft vom neuen Zustand sk-1 zum Endzustand der zugrunde
liegenden Ablaufbeschreibung und ist mit (dk, nk, ck) gekenn
zeichnet. Alle anderen Transitionen verlaufen vom Zustand
si-1 zum Zustand si (für 1 < i < k) und sind mit (di, ni, ci)
gekennzeichnet.
Nachdem alle Ablaufbeschreibungen der zustandsbasierten Spe
zifikation auf diese Weise umgewandelt wurden, liegt das
zustandsbasierte Programm in Form eines nichtdeterministi
schen Automaten mit Ein- und Ausgabeaktionen vor. Für die
Spezifikation von Fig. 8 ist dieser Automat beispielhaft in
Fig. 9 gezeigt. Der Automat ist in Form eines gerichteten
Graphen angegeben, bei dem die Knoten Zustände und die Kan
ten des Graphen erlaubte Zustandswechsel anzeigen. Anfangs-
und Endzustände sind ebenso wie in Fig. 8 gekennzeichnet.
Die Kanten des Automaten von Fig. 9 sind mit Kommunikations
aktionen beschriftet, wobei der Einfachheit halber die
Quell- bzw. Zielkomponenten weggelassen sind. Dies bedeutet,
daß beliebige Quell- und Zielkomponenten zulässig sind.
Beispielsweise wurde beim Übergang von der zustandsorien
tierten Spezifikation zum zustandsorientierten Programm die
mit dem MSC A_ISF2 beschriftete Transition (Fig. 8) in zwei
Transitionen umgewandelt, die vom Zustand IDLE über einen
neuen Zwischenzustand IC0 und von dort zum Zustand CONFL
verlaufen (Fig. 9). Die erste dieser beiden Transitionen ist
mit der (vereinfachten) Kommunikationsaktion (!,SREQ) be
schriftet. Dies zeigt an, daß der Automat seinen Zustand von
IDLE nach IC0 verändern kann, wenn er dabei die Nachricht
SREQ an eine beliebige Komponente schickt. Entsprechend kann
der Automat beim Empfang einer Nachricht SREQ seinen Zustand
von IC0 nach CONFL verändern.
Der in Fig. 9 dargestellte, nichtdeterministische Automat
kann bereits das Ergebnis des automatischen Programmerzeu
gungsverfahrens darstellen. In Ausführungsalternativen
werden jedoch weitere Transformationsschritte durchgeführt.
So kann vorgesehen sein, eventuell in dem Automaten ent
haltene ε-Transitionen durch ein Verfahren zu entfernen, das
beispielsweise aus dem Buch "Einführung in die Automaten
theorie, Formale Sprachen und Komplexitätstheorie" von J. E.
Hopcroft und J. D. Ullman, Addison Wesley, 2. korrigierter
Nachdruck, 1993, an sich bekannt ist.
Ferner kann der (ε-freie) Automat in einen deterministischen
Automaten umgewandelt werden. Ein geeignetes Teilmengen-Kon
struktionsverfahren ist auf den Seiten 22 bis 24 des gerade
genannten Buches beschrieben. Schließlich ist eine Minimali
sierung des Zustandsraumes des deterministischen Automaten
sinnvoll. Auch dies kann mittels eines an sich bekannten
Verfahrens, etwa der Myhill-Nerode-Konstruktion gemäß Seiten
72 bis 76 des gerade genannten Buches, geschehen.
Fig. 10 zeigt beispielhaft einen deterministischen Automa
ten, der durch die genannte Teilmengen-Konstruktion aus dem
in Fig. 9 dargestellten Automaten abgeleitet ist. Dieser
Automat ist bereits in Minimalform, so daß ein weiterer Mi
nimalisierungsschritt nicht mehr erforderlich ist.
Insgesamt wird durch die Verfahrensschritte 32 und 34
(Fig. 4) und die oben angegebenen weiteren Schritte für eine
Komponente, zu der mindestens eine Ablaufbeschreibung in
Normalform vorliegt, ein minimaler, bezüglich der Eingabe
nachrichten deterministischer Automat mit Ein- und Ausgabe
erzeugt.
In manchen Fällen beschränkt in Schritt 22 (Fig. 4) die
Projektion nichtlokaler Bedingungen (das sind Bedingungen,
deren Geltungsbereich mehr als eine Komponente umfaßt) auf
eine einzelne Komponente den entstehenden Automaten dahin
gehend, daß er stark von Zuständen der Umgebung abhängt. So
kann beispielsweise die Funktion einer Vermittlungskomponen
te, die Nachrichten von mehreren Sendern weiterleiten soll,
von der Verzahnung der Nachrichten der Sender abhängen. In
Ausführungsalternativen wird diese Einschränkung dadurch ge
lockert, daß die Spezifikation 10 ferner je eine surjektive
Abbildung von nichtlokalen auf lokale Bedingungen für alle
Komponenten aufweist, die in wenigstens einer Ablaufbe
schreibung vorkommen. Bei der Projektion in Schritt 22 wird
die für die jeweilige Komponente vorgesehene Abbildung ver
wendet, um nicht lokale Bedingungen durch lokale Bedingungen
zu ersetzen.
In weiteren Ausführungsalternativen können andere Formalis
men für das zustandsbasierte Programm verwendet werden. So
können die Knoten und/oder die Kanten des Transitionsgraphen
mit Ein- und/oder Ausgabeereignissen beschriftet sein.
In anderen Ausführungsalternativen wird das zustandsbasierte
Programm durch weitere Umformungsschritte in den Formalismen
SDL oder Statecharts oder ROOM ausgedrückt. Diese Umfor
mungsschritte können von einem Automaten wie in Fig. 10 aus
gehen. Als mögliche Optimierung werden Zustandsübergänge
nach dem in Fig. 11a gezeigten Schema gesucht und durch
Übergänge gemäß Fig. 11b ersetzt. Genauer gesagt, werden Zu
stände T des Automaten identifiziert, deren eingehende Kan
ten höchstens mit Nachrichten der Form (?,A), ausgehend bei
spielsweise von einem Zustand S, beschriftet sind. Ferner
sollen von dem Zustand T genau N (für N < 0) Transitionen
(!,Bi) mit Zielzustand Ui (für 1 ≦ i ≦ N) ihren Ursprung ha
ben. Hier läßt sich der Zustand T entfernen, indem jede von
T ausgehende Transition (!,Bi) mit Zielzustand Ui durch eine
Transition von S nach Ui ersetzt wird, die mit (?,A)/(!,Bi)
beschriftet ist.
In Ausführungsvarianten können die durch das bisher be
schriebene Verfahren erzeugten Automaten weiter vereinfacht
werden, wenn der Zustandsraum einen Kontroll- und einen
Datenzustand aufweist und erweiterte Zustandsmaschinen mit
bewachten Zustandsübergängen und Aktionen zur Änderung des
Datenzustands verwendet werden. Die Bedingungen der Ablauf
beschreibungen sind dann Paare aus Kontroll- und Datenzu
stand. Geeignete Konzepte für solche erweiterte Zustands
maschinen sind beispielsweise aus den Statecharts- und ROOM-
Formalismen an sich bekannt.
In den bisher beschriebenen Ausführungsbeispielen bestanden -
die Ablaufbeschreibungen lediglich aus Kommunikationsaktio
nen und Bedingungen. In Ausführungsalternativen ist das Ver
fahren jedoch auf mächtigere Formalismen zur Ablauf- und
Interaktionsbeschreibung erweitert. Beispielsweise lassen
sich Ablaufbeschreibungen, die Auswahl- oder Wiederholungs
operatoren enthalten, durch schematische Umformungen in die
einfacheren Ablaufbeschreibungen umwandeln, für die das Ver
fahren bisher beschrieben wurde.
Nach den bisher beschriebenen Ausführungsbeispielen wurden
in den Teilschritten 26 und 28 (Fig. 4) bei der Normalisie
rung einer Komponenten-Ablaufbeschreibung fehlende Anfangs-
und Endbedingungen jeweils durch die in der Spezifikation 10
(Daten 18) angegebenen Anfangszustände der Komponenten er
setzt. In Ausführungsvarianten wird jede solche Komponenten-
Ablaufbeschreibung durch eine Menge von Ablaufbeschreibungen
ersetzt, in denen je eine beliebige in der Komponente vor
kommende Bedingung an Stelle der fehlenden Bedingung einge
setzt wird.
Claims (15)
1. Verfahren zum automatischen Erzeugen eines zustands
basierten Programms (14A, 14B, 14C) für eine Komponente (A,
B, C) eines aus mehreren miteinander kommunizierenden Kompo
nenten (A, B, C) bestehenden Systems (S), wobei das Programm
(14A, 14B, 14C) aus einer Spezifikation (10) des Systems (S)
erzeugt wird, die interaktionsbasierte Ablaufbeschreibungen
(16; SS, A_ISF, A_TC, A_TE) des Systems (S) enthält, mit
den Schritten:
- a) Bestimmen (22) aller durch die Spezifikation (10) des Systems (S) definierten Ablaufbeschreibungen (A_ISS, A_ISF, A_TC, A_TE) der Komponente (A, B, C),
- b) Normalisieren (24) der Ablaufbeschreibungen der Kompo nente (A, B, C), so daß eine normalisierte Ablaufbeschrei bung (A_ISS, A_ISF2, A_ISF3, A_TC, A_TE) genau eine Anfangs- und genau eine Endbedingung aufweist und zwischen der An fangs- und der Endbedingung ausschließlich Kommunikations aktionen enthält,
- c) Bestimmen (32) einer zustandsbasierten Spezifikation (Fig. 8) der Komponente (A, B, C), indem alle gleichen An fangs- und Endbedingungen der normalisierten Ablaufbeschrei bungen (A_ISS, A_ISF2, A_ISF3, A_TC, A_TE) der Komponente (A, B, C) in je einem einzigen Zustand identifiziert werden, und
- d) Bestimmen (34) des zustandsbasierten Programms (14A, 14B, 14C) für die Komponente (A, B, C), wobei jede in der zustandsbasierten Spezifikation (Fig. 8) der Komponente (A, B, C) enthaltene Ablaufbeschreibung (A_ISS, A_ISF2, A_ISF3, A_TC, A_TE) durch eine Folge der Kommunikationsaktionen die ser Ablaufbeschreibung, getrennt durch zusätzlich eingefügte Zustände (CI0, IC0, IS0, SI0, SS0), ersetzt wird.
2. Verfahren nach Anspruch 1,
dadurch gekennzeichnet, daß in Schritt a) jede die Kompo
nente (A, B, C) betreffende Ablaufbeschreibung (16; ISS,
A_ISF, A_TC, A_TE) des Systems (S) auf eine entsprechende
Ablaufbeschreibung (A_ISS, A_ISF, A_TC, A_TE) der Komponente
(A, B, C) beschränkt wird.
3. Verfahren nach Anspruch 1 oder 2,
dadurch gekennzeichnet, daß in Schritt b) die folgenden
Teilschritte ausgeführt werden:
b1) Einfügen (26) einer in der Spezifikation (10) des Sy
stems (S) vorgegebenen Bedingung als Anfangsbedingung in je
de mit einer Kommunikationsaktion beginnende Ablaufbeschrei
bung (A_ISF) der Komponente (A, B, C),
b2) Einfügen (28) einer in der Spezifikation (10) des Sy
stems (S) vorgegebenen Bedingung als Endbedingung in jede
mit einer Kommunikationsaktion endende Ablaufbeschreibung
(A_ISF) der Komponente (A, B, C), und
b3) Aufspalten (30) aller Ablaufbeschreibungen (A_ISF1) der
Komponente (A, B, C), die mehr als zwei Bedingungen aufwei
sen, in mehrere Ablaufbeschreibungen (A_ISF2, A_ISF3) der
Komponente (A, B, C) mit jeweils genau zwei Bedingungen.
4. Verfahren nach Anspruch 3,
dadurch gekennzeichnet, daß Teilschritt b1) und/oder Teil
schritt b2) für jede von mehreren einzufügenden Bedingung/en
wiederholt werden/wird, um entsprechend viele Ablaufbe
schreibungen (A_ISF1) der Komponente (A, B, C) zu erhalten.
5. Verfahren nach einem der Ansprüche 1 bis 4,
dadurch gekennzeichnet, daß die interaktionsbasierten Ab
laufbeschreibungen (16; ISS, A_ISF, A_TC, A_TE) des Systems
(S) durch Message Sequence Charts oder UML-Sequenzdiagramme
repräsentierbar sind.
6. Verfahren nach einem der Ansprüche 1 bis 5,
dadurch gekennzeichnet, daß das zustandsbasierte Programm
(14A, 14B, 14C) für die Komponente (A, B, C) als Automat,
insbesondere als SDL- oder Statechart- oder ROOM-Automat
repräsentierbar ist.
7. Verfahren nach einem der Ansprüche 1 bis 6,
dadurch gekennzeichnet, daß das zustandsbasierte Programm
(14A, 14B, 14C) auf einem erweiterten Zustandsautomaten be
ruht, dessen Zustandsraum einen Kontroll- und einen Datenzu
stand aufweist, und daß Zustandsübergänge in Abhängigkeit
von dem jeweils aktuellen Datenzustand ausgeführt werden und
diesen Datenzustand zu ändern vermögen.
8. Verfahren nach einem der Ansprüche 1 bis 7,
dadurch gekennzeichnet, daß in Schritt d) ferner ε-Transi
tionen aus dem zustandsbasierten Programm (14A, 14B, 14C)
entfernt werden.
9. Verfahren nach einem der Ansprüche 1 bis 8,
dadurch gekennzeichnet, daß in Schritt d) ein deterministi
sches zustandsbasiertes Programm (14A, 14B, 14C) erzeugt
wird.
10. Verfahren nach einem der Ansprüche 1 bis 9,
dadurch gekennzeichnet, daß das in Schritt d) erzeugte zu
standsbasierte Programm (14A, 14B, 14C) insbesondere hin
sichtlich der Anzahl der Zustände optimiert wird.
11. Verfahren nach einem der Ansprüche 1 bis 10,
dadurch gekennzeichnet, daß in Schritt a) nichtlokale Bedin
gungen in den Ablaufbeschreibungen (16; ISS, A_ISF, A_TC,
A_TE) des Systems (S) gemäß einer vorgegebenen surjektiven
Abbildung durch lokale Bedingungen ersetzt werden.
12. Verfahren nach einem der Ansprüche 1 bis 11,
dadurch gekennzeichnet, daß das Verfahren zum Erzeugen eines
zustandsbasierten Programms für Telekommunikationsanwendun
gen, insbesondere zum Bereitstellen eines fehlertoleranten
Daten- und Nachrichtenaustauschs, und/oder zum Erzeugen
eines Programms für ein reaktives System, insbesondere ein
Regelungs- und Steuerungssystem, und/oder zum Erzeugen eines
Benutzerschnittstellen-Programms und/oder zum Erzeugen eines
Datenbankabfrageschema-Programms dient.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19837871A DE19837871C2 (de) | 1998-08-20 | 1998-08-20 | Verfahren zum automatischen Erzeugen eines Programms |
US09/378,204 US6405361B1 (en) | 1998-08-20 | 1999-08-19 | Automatically generating a program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19837871A DE19837871C2 (de) | 1998-08-20 | 1998-08-20 | Verfahren zum automatischen Erzeugen eines Programms |
Publications (2)
Publication Number | Publication Date |
---|---|
DE19837871A1 true DE19837871A1 (de) | 2000-03-02 |
DE19837871C2 DE19837871C2 (de) | 2000-06-08 |
Family
ID=7878195
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19837871A Expired - Lifetime DE19837871C2 (de) | 1998-08-20 | 1998-08-20 | Verfahren zum automatischen Erzeugen eines Programms |
Country Status (2)
Country | Link |
---|---|
US (1) | US6405361B1 (de) |
DE (1) | DE19837871C2 (de) |
Families Citing this family (57)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7210117B2 (en) * | 1999-08-19 | 2007-04-24 | National Instruments Corporation | System and method for programmatically generating a graphical program in response to program information |
US6964037B1 (en) * | 1999-09-19 | 2005-11-08 | Kestrel Institute | Method and apparatus for determining colimits of hereditary diagrams |
US6550052B1 (en) * | 1999-11-09 | 2003-04-15 | Daimlerchrysler Corporation | Software development framework for constructing embedded vehicle controller software |
US6499136B1 (en) * | 1999-11-10 | 2002-12-24 | Lucent Technologies Inc. | Single-shot entry code for software state transition |
US6973639B2 (en) * | 2000-01-25 | 2005-12-06 | Fujitsu Limited | Automatic program generation technology using data structure resolution unit |
AU2001261029A1 (en) * | 2000-04-16 | 2001-10-30 | Kestrel Institute | Method and apparatus for method and apparatus for self-adaptive code |
US6681264B1 (en) * | 2000-05-26 | 2004-01-20 | Lucent Technologies Inc. | Implied message sequence charts |
US6880147B1 (en) * | 2000-09-07 | 2005-04-12 | Rockwell Collins | System and method for developing software utilizing determinative representations |
US6704564B1 (en) * | 2000-09-22 | 2004-03-09 | Motorola, Inc. | Method and system for controlling message transmission and acceptance by a telecommunications device |
US7200838B2 (en) * | 2000-12-20 | 2007-04-03 | National Instruments Corporation | System and method for automatically generating a graphical program in response to a state diagram |
US7360205B2 (en) * | 2001-02-09 | 2008-04-15 | International Business Machines Corporation | Minimizing interaction costs among components of computer programs |
US7406432B1 (en) | 2001-06-13 | 2008-07-29 | Ricoh Company, Ltd. | Project management over a network with automated task schedule update |
US7191141B2 (en) * | 2001-06-13 | 2007-03-13 | Ricoh Company, Ltd. | Automated management of development project files over a network |
US20030088665A1 (en) * | 2001-11-02 | 2003-05-08 | Juergen Sauermann | Presentation of network traffic as message sequence charts in network analyzers |
US20030153998A1 (en) * | 2002-02-13 | 2003-08-14 | Micron Technology, Inc. | Feature modeling application |
US8832178B2 (en) | 2002-11-06 | 2014-09-09 | Noel William Lovisa | Service implementation |
EP2385463B1 (de) | 2002-11-06 | 2020-04-29 | Code Valley Corp Pty Ltd | Codeerzeugung dank Komponenten |
US8589861B2 (en) * | 2002-11-06 | 2013-11-19 | Code Valley Corp Pty Ltd | Code generation |
US9521209B2 (en) | 2002-11-06 | 2016-12-13 | Code Valley Corp Pty Ltd | Code generation |
US7171652B2 (en) * | 2002-12-06 | 2007-01-30 | Ricoh Company, Ltd. | Software development environment with design specification verification tool |
US7793257B2 (en) * | 2003-08-28 | 2010-09-07 | Ricoh Company, Ltd. | Technique for automating code generation in developing software systems |
US7308675B2 (en) * | 2003-08-28 | 2007-12-11 | Ricoh Company, Ltd. | Data structure used for directory structure navigation in a skeleton code creation tool |
US7237224B1 (en) | 2003-08-28 | 2007-06-26 | Ricoh Company Ltd. | Data structure used for skeleton function of a class in a skeleton code creation tool |
US7437707B2 (en) * | 2003-12-12 | 2008-10-14 | International Business Machines Corporation | Systems and methods for generating applications that are automatically optimized for network performance |
US20050137839A1 (en) * | 2003-12-19 | 2005-06-23 | Nikolai Mansurov | Methods, apparatus and programs for system development |
US7533365B1 (en) | 2004-02-03 | 2009-05-12 | Borland Software Corporation | Development system with methodology for run-time restoration of UML model from program code |
WO2005114387A1 (en) * | 2004-05-20 | 2005-12-01 | Code Valley Pty Limited | Code generation techniques |
AU2005245983B2 (en) * | 2004-05-20 | 2011-07-07 | Code Valley Corp Pty Ltd | Code generation techniques |
US7882317B2 (en) * | 2004-12-06 | 2011-02-01 | Microsoft Corporation | Process isolation using protection domains |
US8020141B2 (en) | 2004-12-06 | 2011-09-13 | Microsoft Corporation | Operating-system process construction |
US7600232B2 (en) * | 2004-12-07 | 2009-10-06 | Microsoft Corporation | Inter-process communications employing bi-directional message conduits |
US7451435B2 (en) * | 2004-12-07 | 2008-11-11 | Microsoft Corporation | Self-describing artifacts and application abstractions |
US8849968B2 (en) * | 2005-06-20 | 2014-09-30 | Microsoft Corporation | Secure and stable hosting of third-party extensions to web services |
US8201140B2 (en) | 2005-08-30 | 2012-06-12 | The Mathworks, Inc. | System and method for creating and using graphical object instances in a statechart environment |
US20070094495A1 (en) * | 2005-10-26 | 2007-04-26 | Microsoft Corporation | Statically Verifiable Inter-Process-Communicative Isolated Processes |
US8074231B2 (en) | 2005-10-26 | 2011-12-06 | Microsoft Corporation | Configuration of isolated extensions and device drivers |
US20070288288A1 (en) * | 2006-06-07 | 2007-12-13 | Tetsuro Motoyama | Use of schedule editors in a network-based project schedule management system |
US8050953B2 (en) * | 2006-06-07 | 2011-11-01 | Ricoh Company, Ltd. | Use of a database in a network-based project schedule management system |
US8799043B2 (en) * | 2006-06-07 | 2014-08-05 | Ricoh Company, Ltd. | Consolidation of member schedules with a project schedule in a network-based management system |
US8032898B2 (en) | 2006-06-30 | 2011-10-04 | Microsoft Corporation | Kernel interface with categorized kernel objects |
US9021375B2 (en) * | 2006-08-15 | 2015-04-28 | International Business Machines Corporation | Notification of state transition of an out-of-focus application |
US20080155455A1 (en) * | 2006-08-15 | 2008-06-26 | Swaminathan Balasubramanian | Notification of state transition of an out-of-focus application with clustering |
US20080163258A1 (en) * | 2006-08-15 | 2008-07-03 | Swaminathan Balasubramanian | Notification of state transition of an out-of-focus application with notification precedence |
US8140993B2 (en) * | 2006-08-15 | 2012-03-20 | International Business Machines Corporation | Notification of state transition of an out-of-focus application with state and notification priority filtering |
US20080046832A1 (en) * | 2006-08-15 | 2008-02-21 | International Business Machines Corporation | Notification of state transition of an out-of-focus application |
US20080244507A1 (en) * | 2007-03-30 | 2008-10-02 | Microsoft Corporation | Homogeneous Programming For Heterogeneous Multiprocessor Systems |
US8789063B2 (en) * | 2007-03-30 | 2014-07-22 | Microsoft Corporation | Master and subordinate operating system kernels for heterogeneous multiprocessor systems |
US8640100B2 (en) * | 2007-04-20 | 2014-01-28 | National Instruments Corporation | Debugging a statechart using a graphical program |
US8387002B2 (en) * | 2007-04-20 | 2013-02-26 | National Instruments Corporation | Statechart development environment with embedded graphical data flow code editor |
DE102007031643A1 (de) * | 2007-07-06 | 2009-01-08 | Dirnstorfer, Stefan, Dr. | Verfahren zur Ableitung eines Zustandsraumes |
EP2183690A1 (de) * | 2007-09-07 | 2010-05-12 | ABB Technology AG | Konfiguration einer intelligenten elektronischen einrichtung |
US8458667B2 (en) * | 2008-01-30 | 2013-06-04 | National Instruments Corporation | Debugging a statechart for a real time target |
US8640084B2 (en) * | 2009-03-31 | 2014-01-28 | Fujitsu Limited | Generating validation test suites |
US8495580B2 (en) | 2010-04-07 | 2013-07-23 | International Business Machines Corporation | Facilitating use of model transformations |
US8745594B1 (en) * | 2013-05-10 | 2014-06-03 | Technobasics Software Inc. | Program flow specification language and system |
EP3189418B1 (de) | 2014-09-02 | 2022-02-23 | AB Initio Technology LLC | Visuelles spezifizieren von komponentenuntermengen in graphbasierenden programmen mittels benutzerinteraktionen |
JP6698656B2 (ja) | 2014-09-02 | 2020-05-27 | アビニシオ テクノロジー エルエルシー | グラフに基づくプログラムの仕様のコンパイル |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0049176A1 (de) * | 1980-09-26 | 1982-04-07 | The Bendix Corporation | Programmentwicklungsverfahren |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NZ218742A (en) * | 1986-06-03 | 1990-09-26 | Fisher & Paykel | Programmed logic controller |
JP2914664B2 (ja) | 1988-05-27 | 1999-07-05 | 三菱電機株式会社 | 自動プログラミング装置 |
US5721926A (en) * | 1993-01-12 | 1998-02-24 | Kabushiki Kaisha Toshiba | Correspondence-oriented state-transition-model-based programming systems |
JPH08212106A (ja) * | 1995-02-01 | 1996-08-20 | Toshiba Corp | システム試験支援装置及びシステム試験支援方法 |
US6282681B1 (en) * | 1995-03-06 | 2001-08-28 | Motorola, Inc. | Method and apparatus for testing finite state machine (FSM) conformance utilizing unique input/output sequence (UIO) sets |
US6029002A (en) * | 1995-10-31 | 2000-02-22 | Peritus Software Services, Inc. | Method and apparatus for analyzing computer code using weakest precondition |
US5842125A (en) * | 1995-11-30 | 1998-11-24 | Amsc Subsidiary Corporation | Network control center for satellite communication system |
US5946490A (en) * | 1996-03-22 | 1999-08-31 | Northeastern University | Automata-theoretic approach compiler for adaptive software |
US6002869A (en) * | 1997-02-26 | 1999-12-14 | Novell, Inc. | System and method for automatically testing software programs |
US6289502B1 (en) * | 1997-09-26 | 2001-09-11 | Massachusetts Institute Of Technology | Model-based software design and validation |
US6260186B1 (en) * | 1997-11-13 | 2001-07-10 | Nortel Networks Limited | Universal state machine for use with a concurrent state machine space in a telecommunications network |
US6163692A (en) * | 1998-05-28 | 2000-12-19 | Lucent Technologies, Inc. | Telecommunication network with mobile voice conferencing system and method |
US6260188B1 (en) * | 1998-12-31 | 2001-07-10 | Kimberly-Clark Worldwide, Inc. | Control model |
-
1998
- 1998-08-20 DE DE19837871A patent/DE19837871C2/de not_active Expired - Lifetime
-
1999
- 1999-08-19 US US09/378,204 patent/US6405361B1/en not_active Expired - Lifetime
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0049176A1 (de) * | 1980-09-26 | 1982-04-07 | The Bendix Corporation | Programmentwicklungsverfahren |
Non-Patent Citations (2)
Title |
---|
HOPCROFT, J.E., ULLMAN, J.D.: "Einführung in die Automatentheorie Formale Sprachen und Komplexitätstheorie", Addison Wesley, 2.korr. Nachdruck, 1993 * |
SELIC, B., GULLEKSON, G., WARD, P.T.: "Real-Time Object-Orientated Modeling", Wiley 1994 * |
Also Published As
Publication number | Publication date |
---|---|
US6405361B1 (en) | 2002-06-11 |
DE19837871C2 (de) | 2000-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE19837871C2 (de) | Verfahren zum automatischen Erzeugen eines Programms | |
DE69319103T2 (de) | Netzwerkverwaltungssystem | |
DE69731614T2 (de) | Netzübergreifende einrichtung und verfahren zur herstellung einer solchen einrichtung | |
DE69625948T2 (de) | Kompiler mit generischem Front-End und dynamisch ladbaren Back-Ends | |
DE69225101T2 (de) | Verwaltungsverfahren von strukturierten Objekten | |
EP1430369B1 (de) | Dynamischer zugriff auf automatisierungsressourcen | |
DE19810807A1 (de) | Gerät und Verfahren zum Umsetzen von Meldungen | |
DE112019007400T5 (de) | Verfahren zur Verifizierung eines Interrupt-Antriebssystems basierend auf einem Interrupt-Sequenzdiagramm | |
EP2648094B1 (de) | Verfahren und system zum erzeugen eines quellcodes für ein computerprogramm zur ausführung und simulation eines prozesses | |
EP1005215B1 (de) | Verfahren und Vorrichtung zum Editieren von Konfigurationsdaten für Telekommunikationssysteme | |
EP1005216B1 (de) | Verfahren und Vorrichtung zur Validierung von Konfigurationsdaten für Telekommunikationssysteme | |
DE4104568A1 (de) | Verfahren und vorrichtung zur programmverarbeitung | |
EP3441919A1 (de) | Verfahren zum austausch von daten zwischen engineering-tools eines engineering-systems sowie engineering-system zur durchführung des verfahrens | |
EP4104422A1 (de) | Integrieren einer maschine in ein bestehendes distributed ledger netzwerk | |
DE10033812A1 (de) | Verfahren zum Erzeugen von Informationsmodellen | |
DE69617931T2 (de) | Konfiguration eines telekommunikationsschalters | |
EP2194457B1 (de) | Vorrichtung zum Erzeugen eines markierten Referenzdatenstroms | |
EP0825525B1 (de) | Verfahren zur Unterstützung des Erzeugens eines Objektes | |
EP1533940A1 (de) | Transformation Function eines TMN Systems | |
DE102015121486B4 (de) | Verfahren und Vorrichtung zum Betrieb eines Steuerungs-/Regelungssystems eines Fahrzeuges | |
DE102004023634B4 (de) | Verfahren zur Vollständigkeits- und Konsistenzprüfung einer Informationsbibliothek | |
DE4324665C2 (de) | Verfahren zur Verarbeitung von zwischen mindestens zwei Datenübertragungssystemen zu übertragenden Datensätzen sowie eine Anwendung | |
EP0679004A2 (de) | Verfahren zum Testen von Fernmeldeanlagen oder Teilen davon und eine Vorrichtung zur Durchführung des Verfahrens | |
EP1074090B1 (de) | Verfahren zur konvertierung baumstrukturierter daten | |
DE19648432A1 (de) | Verfahren zur inkrementellen Synthese eines diskreten technischen Systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
R084 | Declaration of willingness to licence | ||
8320 | Willingness to grant licences declared (paragraph 23) | ||
R071 | Expiry of right |