Faralogics | Genasys
697
page-template,page-template-full_width,page-template-full_width-php,page,page-id-697,qode-core-1.0,ajax_fade,page_not_loaded,,pitch-ver-1.3, vertical_menu_with_scroll,smooth_scroll,grid_1300,blog_installed,wpb-js-composer js-comp-ver-4.9.2,vc_responsive

The uniqueness of the Genasys architecture is its abstraction of the process into three distinct and independent models.

The Genasys Sweetspot

Genasys allows for the generation of 100% of a system’s “code”, where code refers to any artifact that can be expressed in text format including:

  • Java, COBOL, C#, HTML, XML, Word, PowerPoint, Spreadsheet, etc.

 

These artifacts can be used for system execution, documentation, training, operations support, etc. Having said that, the sophistication of the generated artifacts depends on the upfront investment in technology models: templates, aspects, and perspectives.

 

The Technology Models used by Genasys offer full compliance with an organization’s technology standards, and can fit seamlessly into an existing SDLC framework.

The Genasys technology model

Perspectives

Aspects

Templates

Variables

and Conditions

Perspectives

Aspects

Templates

Variables

and Conditions

Perspectives

Aspects

Templates

Variables

and Conditions

Perspectives

Aspects

Templates

Variables

and Conditions

Perspectives

Aspects

Templates

Variables

and Conditions

This abstraction through the DSMM allows business models to be associated with any defined technology models and for technology models to be applied to any business model.

Domain-Specific Meta-Models (DSMM)

The Domain-Specific Meta-Models (DSMM) provide a syntax for expressing business system concepts but do not document the business itself.

Business Models

The Business Models (BM) are expressed in the syntax of the DSMM and describe the scope and functional characteristics of the target business solution.

Technology Models (TM)

The Technology Models (TM) define technology-specific assembly instructions organized by DSMM syntax elements.

 

  • Code generation provides an opportunity to massively automate the work we do manually or through spreadsheets

 

  • Code generation can replace quick, time to market solutions, traditionally developed using “office automation” products such as Excel and Access.

 

  • Reference data management, configuration management, deployment management promise immediate wins

The Genasys Tool

The core of Genasys is an engine that accepts, as input, an identified set of business models and an identified set of technology models.

Engine Output

It produces, as output, the set of artifacts derived from the application of the technology models to the business models. It also produces a set of XML reports that detail the derivation process.

Core generation engine delivered as Eclipse IDE plug-in

There is also a plug-in to support the review of the XML reports. Genasys provides two additional Eclipse plug-ins, based on the Eclipse Modeling Framework (EMF), that support the editing of business models and technology models.

Genasys can be adapted to support business models in any domain syntax.

To support this, the Genasys business modelling plug-in can also be used to define new domain-specific meta-models.

Perspectives are used to divide a technology model into a set of basically independent feature categories such as User Interface, Data Management, Process Coordination, Security.

 

A Perspective typically embodies a specific technology solution approach.

  • For example, a Perspective may describe the implementation of a web user interface in Java Server Pages using the Spring Framework.
  • Another Perspective could describe the implementation of a web user interface using the AngularJS Java Script framework interacting with RESTful services.
  • Still another Perspective could describe the implementation of a native iOS mobile user inerface using Objective C.

 

By organizing solution elements into Perspectives, Genasys can combine different technology elements together into solutions with various features.

 

The concept of Perspectives helps ensure the separation of concerns across the solution so that elements of the solution can evolve independently of each other.

Each Genasys Perspective contains one or more Aspects.

Genasys borrows the concept of Aspect from the Aspect-Oriented Programming (AOP) paradigm.

 

Essentially an Aspect defines the fine-grained handling of cross-cutting concerns of a system, in all of the contexts where it appears.

 

Each Aspect is associated with a specific type of entity as defined by the meta-model shared between the Business model and the technology model.

 

For example, an Aspect may implement the behavioural features specific to a Data Attribute. All Data Attributes in the business model would be implemented by the same Aspect.

 

It is important to emphasize that Genasys borrows AOP concepts, however does not use AOP explicitly in its implementations. AOP implementations are typically limited to specific languages and platforms.

 

Genasys brings the concept of Aspects to any implementation technology.

Each Genasys Aspect contains one or more Templates.

A Template is a collection of code snippets that all share the same modelling context.

 

The modelling context is derived from the meta-model entity of the parent Aspect and is refined by the specific characteristics of each instance of the entity in the business model.

  • For example, an Aspect may apply to a Data Attribute but, within that Aspect a Template might exist, which applies only to Data Attributes of type Date.
  • This Template would provide code snippets for how a Date is formatted, how it is validated, and how it is stored in a database.
  • A second Template might exist within the same Aspect, handling the generic behaviours of all Data Attributes. This Template may delegate specific behavioural handling to the Date Template only when necessary.

Each Genasys Template may contain Variables.

Variables allow the code snippets contained in a Template to be adapted to any specific business model context.

 

A Variable is essentially a name:value pair.
The value of the variable is derived at generation time based on the context of the owning Aspect and the Business Model that is in scope.

 

Before generating any output from a Template, Genasys examines the code snippets and substitutes any occurrences of the Variable name with its corresponding contextual value.

Each Genasys Template may contain Conditions.

Conditions are boolean rules that determine whether a particular Template is applicable to a particular context.

 

 

Conditions take the form variable-name:operator:value, where variable-name refers to one of the Variables declared within this Template.

 

Only Templates for which all Conditions are true, or Templates which have no Conditions, will contribute to the output in a particular context.