Component architectures abound, in and among computing systems – whether as fine-grained as of individual component models defined in any single hardware definition language (HDL) such as VHDL, Verilog, and SystemC, or as abstract as any single logical platform model such that may be defined with MARTE or AADL, or as broad as any single software component model – such as of any single software component model defined in a single programming language, as in reference to Maven Artifacts, Ruby Gems, and PERL Modules, or defined in any single software distribution framework such as with Debian packages, the Redhat Package Manager (RPM), FreeBSD ports, or pkgsrc ports.
Theoretically, a single logical model can be developed as for applications in modeling of component architectures in a context of computing, such that the logical model would be applicable across those domains of application – respectively, (1) hardware definition languages and correspondingly, design verification tools, (2) logical computer platform models, and (3) software component models. In a practical sense, a logical model already exists, such that may be applied in such a context – as in reference to the Metaobject Framework (MOF) as MOF comprising a meta-metamodel, terminologically, and the Unified Modeling Language (UML) metamodel, as well as the Systems Modeling Language (SysML) metamodel, and other formal, normative metamodels principally defined as applications of MOF in individual domains of application. Specifically, the metamodel comprising SysML – including, as it happens to be, including components that are defined of the UML metamodel, and applied in SysML – the SysML metamodel may be extended with UML model profiles, alternate to defining any single “New” metamodel in extension to MOF. Such definition may be developed as proceeding to an application with regards to documentation of component architectures, and presentation of component architectures within platform design tools.
In a manner of semantic sense, as UML and SyML both representing applications of MOF, the relation of the respective UML and SysML metamodels as being orthogonal to the MOF meta-metamodel may be explained – with analogy – as in regards to definitions of classes as objects in a Common Lisp software program. Such explanation may make reference to the Metobject Protocol (MOP) as defined as an extension of ANSI Common Lisp (ANSI CL) – sometimes referred to as Common Lisp the Language, 2nd Edition (CLtL2) as with regards to set of data types, functions, procedures, and portable conventions defined of the numerous items of documentation comprising the effective ANSI Common Lisp standard. In a practical sense: A Common Lisp Standard Class may be defined as an instance of a Common Lisp metaclass, such that the respective metaclass is defined as a Common Lisp Standard Class, in itself. Effectively, if a Common Lisp standard class ‘B’ is defined as the definition of ‘B’ having a metaclass ‘A’, then the class ‘B’ – in a sense of a class definition – represents an instance of a class definition ‘A’. Effectively, this extends of the logical model in Common Lisp, in which class definitions themselves are represented as first class objects.
In a practical manner, the Class-Metaclass relation in ANSI Common Lisp may be denoted as representing a manner of a logical relation, such that provides a manner of consistency – if not portability, moreover – to Common Lisp applications defined in a context of the Common Lisp Object System (CLOS).
The logical relation of the Class-Metaclass relation in ANSI Common Lisp – often denoted as a metacircular relation – it may be addressed to applications, often, in applying a formal extension to the ANSI Common Lisp specification – most often, in application of the extension comprising the Metobject Protocol (MOP). The Common Lisp MOP was described originally in a commercially published text, the Art of the Metaobject Protocol (AMOP). The formal reference sections of the AMOP text have been published by the original authors, and are available as published by the Association of Lisp Users (ALU) in the text, The Common Lisp Object System MetaObject Protocol.
Of course, in a manner logically orthogonal to CLOS and MOP, some alternate object systems have been defined in Common Lisp programming systems – such with a reference to the Knowledge Representation (KR) schema object system developed in Garnet – technically, KR being defined at a “low level” in an application of Common Lisp ‘struct’ classes – and the object system effectively defined of the STELLA language, the latter as representing a manner of a language for Knowledge Interchange Format (KIF) developed in PowerLoom. STELLA, itself, may be transformed to source code in C++, Java, and Common Lisp, the respective source forms compiled in any single , standard toolchain to the respective programming language. The STELLA transformation engine, itself, is developed in Common Lisp.
As a manner of a technical sidebar: the PowerLoom open source codebase has been forked by the author of this article, in a project that may be denoted unambiguously as GraniteLoom. The GraniteLoom fork has begun with developing a manner of a portable system definition for PowerLoom, in application of the ASDF system definition facility as defined also in Common Lisp.
With regards to definitions of logical modeling languages, the MOF meta-metamodel – including, as it does, some “Low level” features of UML – MOF represents essentially a logical baseline for domain-specific metamodels. Each respective metamodel, likewise, represents a manner of a domain-specific logical vocabulary for modeling. Each metamodel may be applied, in turn, in developing any single, essentially application-specific model. Each application-specific model, furthermore, may be applied to an effect of “Instance data.”
In a practical manner, the MOF meta-metamodel in itself is encoded formally in an application of the XML Model Interchange format (XMI). XMI extends logically of the XML Schema Document (XSD) specification, applying some conventions developed in the XSD specification, furthermore logically extending of the set of data types defined in the XSD specification.
XMI likewise is typically applied as an encoding format for models developed in the Eclipse Modeling Framework (EMF) ECore metamodel.
For all of the diversity of kinds of modelling language, simply in applications of system modeling tools – beside the diversity of kinds of object system, as defined in individual software programming languages – certainly it may serve to recall the popular “Turing Completeness” theory. In a logical manner, it may hold true that any single “Turing complete” logical model expressed in a single syntax M may be transformed to a model of a syntax N, if M and N, both, are “Turing Complete” modeling languages. Of course, insofar as that a concept of “Turing Completeness” is defined typically in a context of logical estimates of “Computability,” it might seem like a “Bit of a stretch,” to suggest that the concept could be applied also about concepts of “Computer systems modeling.”
Principally, the question of whether a software program represents simply a model of computing will be left as an exercise for some later application – not to suggest as though it would be an arbitrary thesis, simply that it may seem be more of a philosophical question than a practical matter, in some regards. If a concept of “Turing Completeness” may be denoted, logically, as it being a concept applicable about any single modeling language – likewise, perhaps more of a philosophical concept than a practical thesis, per se.
Inasmuch as that the set of MOF and UML data type definitions, regarded together, may represent a manner of a comprehensive modeling framework, it is not necessarily to say whether MOF and UML are or are not “Turing Complete,” as modeling languages. Certainly, neither of MOF nor UML is expressly a functional language – rather more like a description language, in each.
In a broadest sense: If a software definition model may be defined as for an application in modeling of software ports, it may or may not be defined, simultaneously, for a purpose of marketing – whether socially or commercially.