'''Universal Systems Language''' ('''USL''') is a systems [[modeling language]] and [[formal method]] for the specification and design of software and other complex systems. It was designed by [[Margaret Hamilton (scientist)|Margaret Hamilton]] based on her experiences writing flight software for the [[Apollo program]].<ref name="USL">[[Margaret Hamilton (scientist)|M. Hamilton]] and W. R. Hackler, "[http://www.htius.com/Articles/r12ham.pdf Universal Systems Language: Lessons Learned from Apollo]", IEEE Computer, Dec. 2008.</ref> The language is implemented through the 001 Tool Suite software by Hamilton Technologies, Inc.<ref>[http://www.htius.com 001 Tool Suite (1986-20162020)]</ref> USL evolved from 001AXES which in turn evolved from AXES all of which are based on Hamilton's axioms of control. The 001 Tool Suite uses the preventive concept of Development Before the Fact (DBTF) for its life-cycle development process. DBTF eliminates errors as early as possible during the development process removing the need to look for errors after-the-fact.
←==Philosophy==→
USL was inspired by Hamilton's recognition of patterns or categories of errors occurring during Apollo software development. Errors at the interfaces between subsystem boundaries accounted for the majority of errors and were often the most subtle and most difficult to find. Each interface error was placed into a category identifying the means to prevent it by way of system definition. This process led to a set of six axioms, forming the basis for a mathematical constructive logical theory of control for designing systems that would eliminate entire classes of errors just by the way a system is defined.<ref>{{cite web|title="Universal Systems Language and its Automation, the 001 Tool Suite, for Designing and Building Systems and Software" Lockheed Martin/IEEE Computer Society Webinar Series|author= Margaret H. Hamilton, Hamilton Technologies|date=September 27, 2012|url=https://media.computer.org/sponsored/podcast/lmco/lmco-089-p.mp4?_kip_ipx=966916323-1480349712}}</ref><ref name="Hamilton2018">{{cite journal |last=Hamilton |first=Margaret H. |title=What the Errors Tell Us |journal=[[IEEE Software]] |volume=35 |issue=5 |year=2018 |pages=32–37 |issn=0740-7459 |doi=10.1109/MS.2018.290110447|s2cid=52896962 |doi-access=free }}</ref>
Certain correctness guarantees are embedded in the USL grammar.<ref>Dolha, Steve, Chiste, Dave, "A Remote Query System for the Web: Managing the Development of Distributed Systems.", Chapter 32, Internet Management, Editor Jessica Keyes, Auerbach, 2000.</ref>
Certain correctness guarantees are embedded in the USL grammar. In contrast to reactive approaches to program verification, testing for errors late into the life cycle, USL's development-before-the-fact philosophy is preventive, not allowing errors in the first place. A USL definition models both its application (for example, an avionics or banking system) and properties of control into its own life cycle.<ref>Dolha, Steve, Chiste, Dave, "A Remote Query System for the Web: Managing the Development of Distributed Systems.", Chapter 32, Internet Management, Editor Jessica Keyes, Auerbach, 2000.</ref> Providing a mathematical framework within which objects, their interactions, and their relationships can be captured, USL – a metalanguage – has "metamechanisms" for defining systems. USL's philosophy is that all objects are recursively reusable and reliable; reliable systems are defined in terms of reliable systems; only reliable systems are used as building blocks; and only reliable systems are used as mechanisms to integrate these building blocks to form a new system. Designers can then use the new system, along with more primitive ones, to define (and build) more comprehensive reliable systems. If a system is reliable, all the objects in all its levels and layers are reliable.
USL is regarded by some users as more [[usability|user-friendly]] than other formal systems.<ref>Krut, Jr., B., "[httphttps://wwwapps.dtic.mil/cgi-binsti/pdfs/GetTRDoc?AD=ADA293427.pdf 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.</ref> It is not only a formalism for software, but also defines [[ontology (information science)|ontologies]] for common elements of problem domains, such as physical space and event timing.
==Formalism for a theory of control==
==Philosophy==
<ref>[[Margaret Hamilton (scientist)|Hamilton, M.]], "[http://www.htius.com/Articles/ELECTRONIC_DESIGN/INSIDE_DBTF.pdf Inside Development Before the Fact"], cover story, Special Editorial Supplement, 8ES-24ES. Electronic Design, Apr. 1994.</ref><ref>[[Margaret Hamilton (scientist)|Hamilton, M.]], "[http://www.htius.com/Articles/ELECTRONIC_DESIGN/001_A_FULL_LIFE_CYCLE.pdf 001: A FULL LIFE CYCLE SYSTEMS ENGINEERING AND SOFTWARE DEVELOPMENT ENVIRONMENT Development Before The Fact In Action"], cover story, Special Editorial Supplement, 8ES-24ES. Electronic Design, Apr. 1994.</ref>
USL was inspired by Hamilton's recognition of patterns or categories of errors occurring during Apollo software development. Errors at the interfaces between subsystem boundaries accounted for the majority of errors and were often the most subtle and most difficult to find. Each interface error was placed into a category identifying the means to prevent it by way of system definition. This process led to a set of six axioms, forming the basis for a mathematical constructive logical theory of control for designing systems that would eliminate entire classes of errors just by the way a system is defined.<ref>{{cite web|title="Universal Systems Language and its Automation, the 001 Tool Suite, for Designing and Building Systems and Software" Lockheed Martin/IEEE Computer Society Webinar Series|author= Margaret H. Hamilton, Hamilton Technologies|date=September 27, 2012|url=https://media.computer.org/sponsored/podcast/lmco/lmco-089-p.mp4?_kip_ipx=966916323-1480349712}}</ref>
Primitive structures are universal in that they are able to be used to derive new abstract universal structures, functions or types. The process of deriving new objects (i.e., structures, types and functions) is equivalent to the process of deriving new types in a constructive type theory.
Certain correctness guarantees are embedded in the USL grammar. In contrast to reactive approaches to program verification, testing for errors late into the life cycle, USL's development-before-the-fact philosophy is preventive, not allowing errors in the first place. A USL definition models both its application (for example, an avionics or banking system) and properties of control into its own life cycle.<ref>Dolha, Steve, Chiste, Dave, "A Remote Query System for the Web: Managing the Development of Distributed Systems.", Chapter 32, Internet Management, Editor Jessica Keyes, Auerbach, 2000.</ref> Providing a mathematical framework within which objects, their interactions, and their relationships can be captured, USL – a metalanguage – has "metamechanisms" for defining systems. USL's philosophy is that all objects are recursively reusable and reliable; reliable systems are defined in terms of reliable systems; only reliable systems are used as building blocks; and only reliable systems are used as mechanisms to integrate these building blocks to form a new system. Designers can then use the new system, along with more primitive ones, to define (and build) more comprehensive reliable systems. If a system is reliable, all the objects in all its levels and layers are reliable.
[[Image:ucs rules.png|center|frame|Figure. 1 The three primitive control structures and their rules form a universal foundation for constructing maps in the domains of time and space as FMaps and TMaps.]]
USL is regarded by some users as more [[usability|user-friendly]] than other formal systems.<ref>Krut, Jr., B., "[http://www.dtic.mil/cgi-bin/GetTRDoc?AD=ADA293427 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.</ref> It is not only a formalism for software, but also defines [[ontology (information science)|ontologies]] for common elements of problem domains, such as physical space and event timing.
==Implementation==
==See also==
* [[Systems Philosophyphilosophy]]
* [[IDEF]]
* [[Model-driven Driven Architecturearchitecture]]
* [[Systems modeling language]]
* [[SysML]]
* [[Object Processprocess Methodologymethodology]]
==References==
== Further reading ==
* [[Margaret Hamilton (scientist)|Hamilton, M.]], Zeldin, S. (1976), "Higher Order Software — A Methodology for Defining Software," IEEE Transactions on Software Engineering, vol. SE-2, no. 1, Mar. 1976.
*Hamilton, M. (April 1994). [http://www.htius.com/Articles/Inside_DBTF.pdf "Inside Development Before the Fact"]. (Cover story). Special Editorial Supplement. 8ES-24ES. ''Electronic Design''.
* [[Margaret Hamilton (scientist)|Hamilton, M.]], Hackler, W.R.. (2004), Deeply Integrated Guidance Navigation Unit (DI-GNU) Common Software Architecture Principles (revised dec-29-04), DAAAE30-02-D-1020 and DAAB07-98-D-H502/0180, Picatinny Arsenal, NJ, 2003–2004. ▼
* [[Margaret Hamilton (scientist)|Hamilton, M.]] and(June Hackler, W.R1994). (2007), "[http://www.htius.com/Articles/36001_A_Full_Life_Cycle.pdf Universal"001: SystemsA LanguageFull forLife PreventativeCycle Systems Engineering]," ''Proc.and 5thSoftware Ann.Development ConfEnvironment"]. Systems(Cover Engstory). Res.''Special (CSER),Editorial StevensSupplement. Institute of Technology, Mar22ES-30ES. 2007,''Electronic paper #36Design''.
▲* [[Margaret Hamilton (scientist)|Hamilton, M. ]], Hackler, W.R.. (2004), Deeply Integrated Guidance Navigation Unit (DI-GNU) Common Software Architecture Principles (revised dec-29-04), DAAAE30-02-D-1020 and DAAB07-98-D-H502/0180, Picatinny Arsenal, NJ, 2003–2004.
* Hamilton, M. and Hackler, W.R. (2007), "[http://www.htius.com/Articles/36.pdf Universal Systems Language for Preventative Systems Engineering]," ''Proc. 5th Ann. Conf. Systems Eng. Res.'' (CSER), Stevens Institute of Technology, Mar. 2007, paper #36.
* Hamilton, M.; Hackler, W. R. (2007). "[http://www.htius.com/Articles/INCOSE.pdf A Formal Universal Systems Semantics for SysML]". 17th Annual International Symposium, INCOSE 2007, San Diego, CA, Jun. 2007.
==External links==
|