universal systems language universal systems language usl is a modeling language and formal method for the specification and design of software and other complex systems it was designed by margaret hamilton based on her experiences writing flight software for the apollo program usl evolved from 001axes which in turn evolved from axes all of which are based on hamiltons axioms of control the 001 tool suite uses the preventative concept of development before the fact dbtf for its lifecycle development process dbtf eliminates errors as early as possible during the development process removing the need to look for errors afterthefact philosophy usl was inspired by hamiltons 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 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 usls developmentbeforethefact 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 providing a mathematical framework within which objects their interactions and their relationships can be captured usl a metalanguage has metamechanisms for defining systems usls 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 userfriendly than other formal systems it is not only a formalism for software but also defines ontologies for common elements of problem domains such as physical space and event timing formalism for a theory of control a systems philosophy formalism for representing the logic of the control of systems usl is based on a set of axioms of a general systems control theory with formal rules for its application at the base of every usl system is a set of six axioms and the assumption of a universal set of objects the axioms provide the formal foundation for a usl hierarchy referred to as a map which is a tree of control that spans networks of relations between objects explicit rules for defining a map have been derived from the axioms where among other things structure behavior and their integration are captured each axiom defines a relation of immediate domination of a parent over its children the union of these relations is control among other things the axioms establish the relationships of an object for invocation in time and space input and output domain and codomain input access rights and output access rights domain access rights and codomain access rights error detection and recovery and ordering during its developmental and operational states every system can ultimately be defined in terms of three primitive control structures each of which is derived from the six axioms resulting in a universal semantics for defining systems all representations of a system are defined in terms of a function map fmap and a type map tmap with usl all functions in a system and their relationships are defined with a set of fmaps similarly all types in a system and their relationships are defined with a set of tmaps fmaps represent the dynamic doing world of action by capturing functional and temporal including priority characteristics tmaps represent the static being world of objects by capturing spatial characteristics for example containment of one object by another or relationships between locations of objects in space fmaps are inherently integrated with tmaps three universal primitive structures derived from the set of axioms and nonprimitive structures derived ultimately in terms of the primitive structures specify each map 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 ie structures types and functions is equivalent to the process of deriving new types in a constructive type theory primitive functions corresponding to primitive operations on types defined in a tmap reside at the bottom nodes of an fmap primitive types each defined by its own set of axioms reside at the bottom nodes of a tmap each primitive function or type can be realized as a top node of a map on a lower more concrete layer of the system resident at every node on a map is the same kind of object for example a function on every node of an fmap and a type on a tmap the object at each node plays multiple roles for example the object can serve as a parent in control of its children or a child being controlled by its parent whereas each function on an fmap has a mapping from its input to output domain to codomain each type on a tmap has a relation between its domain and codomain a structure relates each parent and its children according to the set of rules derived from the axioms of control a primitive structure provides a relationship of the most primitive form finest grain of control all maps are defined ultimately in terms of the primitive structures and therefore abide by the rules associated with each structure a parent controls its children to have a dependent join independent include or decisionmaking relationship or 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 any system can be defined completely using only primitive structures but less primitive structures defined by and derived from the primitive structures and therefore governed by the control axioms accelerate the definition and understanding of a system the defined structure a form of templatelike reuse provides a mechanism to define a map without explicitly defining some of its elements an fmap structure has placeholders for variable functions a tmap structure has placeholders for variable types a universal structure has placeholders for functions or types async is an example of a realtime distributed communicating fmap structure with both asynchronous and synchronous behavior an example of a tmap structure is treeof a collection of the same type of objects ordered using a tree indexing system each tmap structure assumes its own set of possible relations for its parent and children types abstract types decomposed with the same tmap structure inherit the same primitive operations and therefore the same behavior each of which is available to fmaps that have access to members of each of its tmaps types implementation the process of developing a software system with usl together with its automation the 001 tool suite 001 is as follows define the system with usl automatically analyze the definition with 001s analyzer to ensure that usl was used correctly automatically generate much of the design and all of the implementation code with 001s generator systems philosophy idef model driven architecture sysml objectprocess methodology hamilton m zeldin s 1976 higher order software a methodology for defining software ieee transactions on software engineering vol se2 no 1 mar 1976 hamilton m hackler wr 2004 deeply integrated guidance navigation unit dignu common software architecture principles revised dec2904 daaae3002d1020 and daab0798dh5020180 picatinny arsenal nj 20032004 hamilton m and hackler wr 2007 universal systems language for preventative systems engineering proc 5th ann conf systems eng res cser stevens institute of technology mar 2007 paper 36 wikimedia commons has media related to universal systems language hamilton technologies 