Universelle Systemsprache

Universelle Systemsprache (USL) ist ein System Modellierungssprache und Formale Methode Für die Spezifikation und das Design von Software und anderen komplexen Systemen. Es wurde von entworfen von Margaret Hamilton Basierend auf ihren Erfahrungen beim Schreiben von Flugsoftware für die Apollo -Programm.[1] Die Sprache wird durch die 001 Tool Suite -Software von Hamilton Technologies, Inc. implementiert.[2] USL entwickelte sich aus 001axen, was sich wiederum aus Achsen entwickelte, die alle auf Hamilton -Kontrollaxiomen basieren. Die 001 Tool Suite verwendet das vorbeugende Entwicklungskonzept (DBTF) für ihren Lebenszyklusentwicklungsprozess. DBTF beseitigt Fehler so früh wie möglich während des Entwicklungsprozesses, um die Notwendigkeit zu beseitigen, nach Fehlern nach dem Fakt zu suchen.

Philosophie

USL wurde von Hamiltons Erkennung von Mustern oder Kategorien von Fehlern inspiriert, die während der Entwicklung von Apollo -Software auftraten. Fehler an den Schnittstellen zwischen Subsystemgrenzen machten die Mehrheit der Fehler aus und waren oft die subtilsten und am schwierigsten zu finden. Jeder Schnittstellenfehler wurde in eine Kategorie eingereicht, in der die Mittel zur Verhinderung der Systemdefinition identifiziert wurden. Dieser Prozess führte zu einem Satz von sechs Axiomen, was die Grundlage für eine mathematische konstruktive logische Kontrolltheorie für das Entwerfen von Systemen bildete, die ganze Klassen von Fehlern durch die Definition eines Systems beseitigen.[3][4]

Bestimmte Richtigkeitsgarantien sind in die USL -Grammatik eingebettet. Im Gegensatz zu reaktiven Ansätzen zur Programmüberprüfung ist das Testen auf Fehler spät in den Lebenszyklus. Die Entwicklung der USL-Entwicklung vor der faktischen Philosophie ist vorbeugend und lässt überhaupt keine Fehler zu. Eine USL -Definition modelliert sowohl ihre Anwendung (z. B. ein Avionik- oder Bankensystem) als auch die Eigenschaften der Kontrolle in ihren eigenen Lebenszyklus.[5] Die USL - eine Metalsprachigkeit - bietet einen mathematischen Rahmen, in dem Objekte, ihre Interaktionen und ihre Beziehungen erfasst werden können, "Metamechanismen" zur Definition von Systemen. USLs Philosophie ist, dass alle Objekte rekursiv wiederverwendbar und zuverlässig sind. Zuverlässige Systeme werden als zuverlässige Systeme definiert. Es werden nur zuverlässige Systeme als Bausteine ​​verwendet. und nur zuverlässige Systeme werden als Mechanismen verwendet, um diese Bausteine ​​zur Bildung eines neuen Systems zu integrieren. Designer können dann das neue System zusammen mit primitiveren verwenden, um umfassendere zuverlässige Systeme zu definieren (und zu bauen). Wenn ein System zuverlässig ist, sind alle Objekte in allen Ebenen und Schichten zuverlässig.

USL wird von einigen Benutzern als mehr angesehen benutzerfreundlich als andere formale Systeme.[6] Es ist nicht nur ein Formalismus für Software, sondern definiert auch Ontologien Für gemeinsame Elemente von Problemdomänen wie physischem Raum und Ereigniszeitpunkt.

Formalismus für eine Kontrolltheorie

A Systemphilosophie Der Formalismus für die Darstellung der Logik der Kontrolle von Systemen basiert auf einer Reihe von Axiomen einer allgemeinen Systemsteuerungstheorie mit formalen Regeln für ihre Anwendung. An der Basis jedes USL -Systems befindet sich ein Satz von sechs Axiomen und die Annahme eines universellen Satzes von Objekten.[7][8] Die Axiome bilden die formale Grundlage für eine USL -Hierarchie, die als Karte bezeichnet wird und ein Steuerungsbaum ist, der Netzwerke von Beziehungen zwischen Objekten umfasst.
Explizite Regeln für die Definition einer Karte wurden aus den Axiomen abgeleitet, in denen unter anderem Struktur, Verhalten und ihre Integration erfasst werden.
Jedes Axiom definiert eine Beziehung der sofortigen Herrschaft eines Elternteils über seine Kinder.
Die Vereinigung dieser Beziehungen ist die Kontrolle. Unter anderem stellen die Axiome die Beziehungen eines Objekts für Aufruf in Zeit und Raum, Eingabe und Ausgabe (Domäne und Codomäne), Eingabezugriffsrechte und Ausgangszugriffsrechte (Domänenzugriffsrechte und Codomänenzugriffsrechte), Fehlererkennung und Wiederherstellung. und Bestellung während seiner Entwicklungs- und Betriebszustände. Jedes System kann letztendlich in drei primitiven Kontrollstrukturen definiert werden, von denen jedes aus den sechs Axiomen abgeleitet wird, was zu einer universellen Semantik zur Definition von Systemen führt.

Alle Darstellungen eines Systems sind in Bezug auf eine Funktionskarte (FMAP) und eine Typkarte (TMAP) definiert. Bei USL werden alle Funktionen in einem System und ihre Beziehungen mit einer Reihe von FMAPs definiert. In ähnlicher Weise werden alle Typen in einem System und ihre Beziehungen mit einer Reihe von TMAPs definiert. FMAPs repräsentieren die dynamische (Tätigkeit) Welt der Aktion, indem funktionale und zeitliche (einschließlich Prioritäts-) Eigenschaften erfasst werden. TMAPs repräsentieren die statische (Sein) Welt der Objekte, indem sie räumliche Eigenschaften erfassen - beispielsweise die Eindämmung eines Objekts durch ein anderes oder Beziehungen zwischen Positionen von Objekten im Raum. FMAPs sind von Natur aus in TMAPs integriert. Drei universelle primitive Strukturen, die aus dem Satz von Axiomen und nicht primitiven Strukturen abgeleitet sind, die letztendlich in Bezug auf die primitiven Strukturen abgeleitet wurden, geben jede Karte an. Primitive Strukturen sind insofern universell, als sie verwendet werden können, um neue abstrakte universelle Strukturen, Funktionen oder Typen abzuleiten. Der Prozess der Ableitung neuer Objekte (d. H. Strukturen, Typen und Funktionen) entspricht dem Prozess, neue Typen in einer konstruktiven Typtheorie abzuleiten. Primitive Funktionen, die primitive Operationen auf in einem TMAP definierten Typen entsprechen, befinden sich an den unteren Knoten eines FMAP. Primitive Typen, die jeweils durch ihre eigenen Axiome definiert sind, befinden sich an den unteren Knoten eines TMAP. Jede primitive Funktion (oder Typ) kann als oberen Knoten einer Karte auf einer niedrigeren (konkreten) Schicht des Systems realisiert werden. An jedem Knoten auf einer Karte lebt die gleiche Art von Objekt (z. B. eine Funktion auf jedem Knoten eines FMAP und einem Typ auf einem TMAP). Das Objekt an jedem Knoten spielt mehrere Rollen. Zum Beispiel kann das Objekt als Elternteil (zur Kontrolle seiner Kinder) oder als Kind (von seinem Elternteil kontrolliert) dienen. Während jede Funktion auf einem FMAP a hat Kartierung Von seiner Eingabe zur Ausgabe (Domäne zu Codomäne) hat jeder Typ auf einem TMAP a Beziehung zwischen seiner Domäne und seiner Codomäne. Eine Struktur bezieht jeden Elternteil und seine Kinder nach den von den Kontrollaxiomen abgeleiteten Regeln. Eine primitive Struktur bietet eine Beziehung der primitivsten Form (feinstes Getreide) der Kontrolle. Alle Karten werden letztendlich in Bezug auf die primitiven Strukturen definiert und halten daher die mit jeder Struktur verbundenen Regeln ein: Ein Elternteil kontrolliert seine Kinder auf eine abhängige (Join), unabhängige (inklusive) oder Entscheidungsbeziehung (OR).

Figur. 1 Die drei primitiven Kontrollstrukturen und ihre Regeln bilden eine universelle Grundlage, um Karten in den Bereichen Zeit und Raum als FMAPs und TMAPs zu konstruieren

Jedes System kann nur unter Verwendung von primitiven Strukturen definiert werden, aber weniger primitive Strukturen, die durch die primitiven Strukturen definiert und abgeleitet werden - und daher durch die Kontroll -Axiome bestimmt - beschleunigen die Definition und das Verständnis eines Systems. Die definierte Struktur, eine Form der vorlagenartigen Wiederverwendung, bietet einen Mechanismus, um eine Karte zu definieren, ohne einige ihrer Elemente explizit zu definieren. Eine FMAP -Struktur hat Platzhalter für variable Funktionen. Eine TMAP -Struktur hat Platzhalter für variable Typen. Eine universelle Struktur hat Platzhalter für Funktionen oder Typen. Async ist ein Beispiel für eine verteilte, verteilte, verteilte FMAP-Struktur mit asynchronem und synchronem Verhalten. Ein Beispiel für eine TMAP -Struktur ist Treeof, eine Sammlung derselben Art von Objekten, die unter Verwendung eines Baumindexierungssystems geordnet sind. Jede TMAP -Struktur übernimmt ihre eigenen möglichen Beziehungen für ihre Eltern- und Kindertypen. Abstrakte Typen, die mit derselben TMAP -Struktur zersetzt werden, erben die gleichen primitiven Operationen und damit das gleiche Verhalten (von denen jeder FMAPs zur Verfügung steht, die Zugang zu den Mitgliedern der einzelnen TMAP -Typen haben).

Implementierung

Der Prozess der Entwicklung eines Softwaresystems mit USL zusammen mit seiner Automatisierung, der 001 Tool Suite (001), lautet wie folgt: Definieren Sie das System mit USL, analysieren Sie die Definition automatisch mit dem Analysator von 001, um sicherzustellen, dass USL korrekt verwendet wurde, automatisch viel generiert wurde des Designs und des gesamten Implementierungscodes mit dem Generator von 001.[9][10][11][12] USL kann verwendet werden, um anderen Sprachen ihre formelle Unterstützung zu verleihen.[13]

Siehe auch

Verweise

  1. ^ M. Hamilton und W. R. Hackler ","Universal Systems Sprache: Lehren aus Apollo gelernt", IEEE Computer, Dezember 2008.
  2. ^ 001 Tool Suite (1986-2020)
  3. ^ Margaret H. Hamilton, Hamilton Technologies (27. September 2012). ""Universal Systems Language und ihre Automatisierung, die 001 Tool Suite, zum Entwerfen und Bau von Systemen und Software" Lockheed Martin/IEEE Computer Society Webinar -Serie ".
  4. ^ Hamilton, Margaret H. (2018). "Was die Fehler uns sagen". IEEE -Software. 35 (5): 32–37. doi:10.1109/ms.2018.290110447. ISSN 0740-7459. S2CID 52896962.
  5. ^ Dolha, Steve, Chiste, Dave, "Ein Remote -Query -System für das Web: Verwaltung der Entwicklung verteilter Systeme", Kapitel 32, Internetverwaltung, Herausgeber Jessica Keyes, Auerbach, 2000.
  6. ^ Krut, Jr., B. ","Integration von 001-Tool-Unterstützung in die merkenorientierte Domänenanalysemethode"(CMU/SEI-93-TR-11, ESC-TR-93-188), Pittsburgh, SEI, Carnegie Mellon University, 1993.
  7. ^ Hamilton, M., "Innenentwicklung vor der Tatsache ", Titelgeschichte, spezielle Redaktionsergänzung, 8es-24es. Electronic Design, Apr. 1994.
  8. ^ Hamilton, M., "001: Ein vollständiges Lebenszyklus -Systemtechnik und Softwareentwicklungsumfeldentwicklung vor der Tatsache in Aktion. ", Titelgeschichte, spezielle Redaktionsergänzung, 8es-24es. Electronic Design, Apr. 1994.
  9. ^ Ouyang, M., Golay, M. W. 1995, Ein integrierter formaler Ansatz zur Entwicklung von hochwertiger Software für sicherheitskritische Systeme, Massachusetts Institute of Technology, Cambridge, Massachusetts, Bericht Nr. MIT-ANP-TR-035.
  10. ^ Softwareproduktivitätskonsortium (SPC) (1998), Objektorientierte Methoden und Tools Umfrage, Herndon, VA.SPC-98022-MC, Version 02.00.02, Dezember 1998.
  11. ^ Max Schindler (1990) Computergesteuerter Softwaredesign, John Wiley & Sons, 1990.
  12. ^ * Verteidigungsministerium (1992). Experiment-Finale-Bericht von Software Engineering Tools, Vol. 1, Experimentszusammenfassung, Tabelle 1, p. 9. Strategische Verteidigungsinitiative, Washington, D.C.
  13. ^ Hamilton, M. Hackler, W. R., "Eine formale Universalsystemsemantik für SYSML, 17. jährliches internationales Symposium, Incose 2007, San Diego, CA, Juni 2007.

Weitere Lektüre

  • Hamilton, M., Zeldin, S. (1976), "Software höherer Ordnung - Eine Methodik zur Definition von Software", IEEE Transactions on Software Engineering, Vol. SE-2, Nr. 1, März 1976.
  • Hamilton, M. (April 1994). "Inside Entwicklung vorher".(Titelstory).Spezielle Redaktionsergänzung.8es-24es. Elektronisches Design.
  • Hamilton, M. (Juni 1994). "001: Eine umfassende Umgebung für Lebenszyklus -Systeme und Softwareentwicklung".(Titelstory).Spezielle Redaktionsergänzung.22es-30es. Elektronisches Design.
  • Hamilton, M., Hackler, W. R. (2004), Tief integrierte Leitfaden-Navigationseinheit (DI-GNU) Common Software Architecture Prinzipien (überarbeitet Dez.-29-04), DAAAE30-02-D-1020 und DAAB07-98-D-H502/0180, Picatinny Arsenal, NJ, 2003–2004.
  • Hamilton, M. und Hackler, W. R. (2007), ","Universal Systems Sprache für vorbeugende Systemtechnik, " Proc.5. Ann.Conf.Systeme Eng.Res. (CSER), Stevens Institute of Technology, März 2007, Papier Nr. 36.
  • Hamilton, M.;Hackler, W. R. (2007)."Eine formale Universalsystemsemantik für SYSML"17. jährliches internationales Symposium, Incose 2007, San Diego, CA, Juni 2007.

Externe Links