Introduction to Concepts assembly
Regular followers of this blog may have noticed a low posting rate. This is not because this blog is dead: not at all. But I am working since a long time on the ll model and meta-model. This is an accurate, hard and also time consuming work. Moreover, I am also far from working at full time on this blog…
This said, as the model begins to be more and more consolidated, I decided to post an introduction post for each assembly which I consider to be stable enough to be shared.
The Concepts Assembly is the first in this case. I will not introduce the ISA Assembly nor the LL Assembly because these forms the root of the current architecture. ISA is the single root by definition. ll is the branch of the architecture dedicated to the “Last Language”.
The Ideal Software Architecture is built on the Concepts Assembly where are stated some base concepts. It act as a meta-meta-model.
From Type and Module to Objects
First of all is the notion of Type. This concept refers to the Type theory. This means every “term” has a “type” and operations are restricted to terms of a certain type. Type theory is a very large field of mathematics, and it is out of the scope of this blog to go deep into it. However, some important notion like universe and universal type derives of Type theory even if is not directly.
The second important concept is the Module. A module is a built artifact done in a way that promote block reuse and assemblage. Like Type, modular building is not a computer science notion. But It is of the engineering domain. This link to Modular building illustrates it. This in particular means that a module has a life cycle where: it is designed, implemented, tested, delivered and finally exploited. The design phase is crucial. It is where the functionality of a program are separated into independent, interchangeable modules, such that each contains everything necessary to execute only one aspect of the desired functionality (see this Modular programming).
More precisely than the Wikipedia references above, the use in ISA of concepts of Type and Module aims to rely, before all, on the way Bertrand Muller defines them in Object-Oriented Software Construction. In this book, and very synthetically, the object Orientation is defined as an engineering way that consists in merging the concepts of Type and of Module in an object.
That's the way followed and generalized in ISA (plus some pragmaticism…).
Valuable
A “Valuable” is something to which a value can be assigned.
It is often spoken about continuous and discrete values, which are certainly familiar to most of readers. In the previous sentence the “Valuable” is the concept behind the word “values”.
Here in ISA, Valuable is restricted to simple values. It is mainly a facility to group together Ordinal, Nominal and Numeral. Theses concepts are here to ensure the consistency and completeness of the ll type system.