Technology

The Intentional technology is different from traditional software technologies in the following ways:

1. Business user and software engineer sit at the same side of the table

Using traditional software technology the business user articulates the requirements and the software engineer implements those requirements. The problems with this approach are well known. With Intentional technology the business user directly contributes to the software by creating the business domain code using a business domain language they are familiar with. The software engineer supports this process by building the business domain language with its semantics, whether interpreted or compiled.

The benefit is correct software is created much faster and with higher quality. Furthermore, maintenance becomes much more efficient of both domain knowledge and software.

2. Business domain is separated from software domain

Using traditional software technology the business knowledge ends up being interspersed into the software code and cannot be maintained separately. Even with rules engines and other “high-level” languages, the code needed for execution cannot be maintained by business users. With Intentional technology, the business knowledge is maintained separately from the technology domain using different languages. When a new version of software is needed, the business domain is merged into the technology domain through a transformation process. The knowledge domain can be expressed in a suitable notation not limited to traditional software languages, but can use any combination of graphical, textual or table notations. The domain code does not need to be computable nor even parsable per se, but a transformation will transform it into an executable form.

The benefit is that knowledge experts participate directly in the design and maintenance of accurate and detailed knowledge. Furthermore, from the same domain knowledge it is possible to not only create software application, but also create multiple other accurate work products like check lists, training material and documentation.

3. Mix multiple domains

Using traditional software technologies the combination of knowledge from multiple domains must be done using generic languages. Even when domain-specific languages are used, multiple arbitrary domains cannot be combined. With Intentional technology, multiple arbitrary domains can be seamlessly combined. Not only multiple business domains can be combined, but also multiple technology domains can be combined.

The benefit is that real world problems are multi domains, and therefore the inherent limitations of single domain technology is removed.

The key underlying technologies are:

  • Intentional Tree – provides a uniform representation of languages (schema) and knowledge (domain code), with resolution using identities rather than names. Also provides versioned storage of nodes in the tree.
  • Reversible Transformation – provides semantics to languages through a chain of bi-directional transformations between nodes in Intentional Trees.
  • Projectional editor – a special reversible transformation to project domain onto display allowing flexible syntax separated from the underlying representation. Works in two directions: display and editing.