Die Universal Systems Language ( USL ) ist eine Systemmodellierungssprache und formale Methode zur Spezifikation und zum Entwurf von Software und anderen komplexen Systemen. Sie wurde von Margaret Hamilton auf Grundlage ihrer Erfahrungen mit der Entwicklung von Flugsoftware für das Apollo-Programm entwickelt . [ 1 ] Die Sprache ist in der Software 001 Tool Suite von Hamilton Technologies, Inc. implementiert. [ 2 ] USL entwickelte sich aus 001AXES, welches wiederum aus AXES hervorging. Alle drei basieren auf Hamiltons Kontrollaxiomen. Die 001 Tool Suite nutzt das präventive Konzept der Entwicklung vor der Implementierung (Development Before the Fact, DBTF) für ihren Entwicklungsprozess. DBTF beseitigt Fehler so früh wie möglich im Entwicklungsprozess und macht die nachträgliche Fehlersuche überflüssig.

Philosophie

USL wurde durch Hamiltons Erkenntnis von Fehlermustern oder -kategorien inspiriert, die während der Softwareentwicklung von Apollo auftraten . [ 3 ] [ 4 ]

Bestimmte Korrektheitsgarantien sind in der USL-Grammatik verankert. [ 5 ]

USL wird von einigen Anwendern als benutzerfreundlicher als andere formale Systeme angesehen. [ 6 ] Es ist nicht nur ein Formalismus für Software, sondern definiert auch Ontologien für gemeinsame Elemente von Problembereichen, wie beispielsweise den physikalischen Raum und die Ereigniszeit.

Formalismus für eine Kontrolltheorie

[ 7 ] [ 8 ]

Primitive Strukturen sind universell, da sie zur Ableitung neuer abstrakter universeller Strukturen, Funktionen oder Typen verwendet werden können. Der Prozess der Ableitung neuer Objekte (d. h. Strukturen, Typen und Funktionen) ist äquivalent zum Prozess der Ableitung neuer Typen in einer konstruktiven Typentheorie.

Abbildung 1 Die drei primitiven Kontrollstrukturen und ihre Regeln bilden eine universelle Grundlage für die Konstruktion von Abbildungen in den Bereichen Zeit und Raum als FMaps und TMaps.

Durchführung

Die Entwicklung eines Softwaresystems mit USL und der zugehörigen Automatisierungslösung 001 Tool Suite (001) verläuft wie folgt: Zunächst wird das System mit USL definiert. Anschließend wird die Definition automatisch mit dem Analysator von 001 analysiert, um die korrekte Verwendung von USL sicherzustellen. Abschließend werden ein Großteil des Designs und der gesamte Implementierungscode automatisch mit dem Generator von 001 generiert. [ 9 ] [ 10 ] [ 11 ] [ 12 ] USL kann auch anderen Sprachen formale Unterstützung bieten. [ 13 ]

Siehe auch

Referenzen

  1. ^ M. Hamilton und W. R. Hackler, " Universal Systems Language: Lessons Learned from Apollo ", IEEE Computer, Dez. 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, für die Entwicklung und den Aufbau von Systemen und Software“ Webinar-Reihe von Lockheed Martin/IEEE Computer Society .
  4. ^ Hamilton, Margaret H. (2018). „Was uns die Fehler verraten“ . IEEE Software . 35 (5): 32–37 . doi : 10.1109/MS.2018.290110447 . ISSN 0740-7459 . S2CID 52896962 .  
  5. ^ Dolha, Steve, Chiste, Dave, "Ein Remote-Abfragesystem für das Web: Die Entwicklung verteilter Systeme managen.", Kapitel 32, Internet Management, Herausgeberin Jessica Keyes, Auerbach, 2000.
  6. ^ Krut, Jr., B., " Integrating 001 Tool Support in the Feature-Oriented Domain Analysis Methodology " (CMU/SEI-93-TR-11, ESC-TR-93-188), Pittsburgh, SEI, Carnegie Mellon University, 1993.
  7. ^ Hamilton, M. , " Inside Development Before the Fact" , Titelgeschichte, Sonderbeilage, 8ES-24ES. Electronic Design, April 1994.
  8. ^ Hamilton, M. , " 001: EIN VOLLSTÄNDIGES LEBENSZYKLUS-SYSTEMENGINEERING- UND SOFTWAREENTWICKLUNGSUMFELD Entwicklung im Vorfeld In Aktion" , Titelgeschichte, Sonderbeilage, 8ES-24ES. Electronic Design, April 1994.
  9. ^ Ouyang, M., Golay, MW 1995, Ein integrierter formaler Ansatz zur Entwicklung hochwertiger Software für sicherheitskritische Systeme , Massachusetts Institute of Technology, Cambridge, Massachusetts, Bericht Nr. MIT-ANP-TR-035.
  10. ^ Software Productivity Consortium (SPC) (1998), Object-Oriented Methods and Tools Survey , Herndon, VA.SPC-98022-MC, Version 02.00.02, Dezember 1998.
  11. ^ Max Schindler (1990) Computer Aided Software Design , John Wiley & Sons, 1990.
  12. * Verteidigungsministerium (1992). Experiment zu Software-Engineering-Werkzeugen – Abschlussbericht , Band 1, Zusammenfassung des Experiments, Tabelle 1, S. 9. Strategische Verteidigungsinitiative, Washington, DC
  13. ^ Hamilton, M. Hackler, WR, " Eine formale universelle Systemsemantik für SysML , 17. jährliches internationales Symposium, INCOSE 2007, San Diego, CA, Juni 2007.

Weiterführende Literatur