Delta Software Technology

Notre offre

Infos connexes

Copy-Paste-Adapt seems to be the most commonly used method to implement similar solutions or variants of a system (to simplify matters, the term ‘software family’ is used when talking about similar solutions or a set of variants, a single member of a software family is referred to as variant or instance). But the disadvantage of this method is that every task, e.g. correction, change, enhancement, has to be repeated for every variant which is error-prone and time consuming as well as expensive.

Using generators and domain specific languages (DSLs) avoids the above mentioned problems.

I would rather write programs
to help me write programs
than write programs.
Dick Sites

However, most generator technologies require quite experienced developers. Often developers do not accept generators because the generated code is hard to read and maintain. Business-specific programming guidelines are rarely fulfilled by generators.

HyperSenses Concept Developing a DSL is often regarded as a simple finger exercise. If the DSL has to be extendable, the task gets a bit more tricky. But as soon as a DSL and a generator have to fit to each other, their development transmutes from a simple finger exercise to a time consuming challenge for an experienced developer. Everyone who is going to use the new language first has to spend some time to learn it. Depending on the language’s complexity this familiarisation process can require quite a high effort.

Not until generator and DSL are completely developed, a testable system is available. This means (conceptual) errors will be found at a very late point of the developing process which in the worst case results in an expensive correction. In addition, the long development phase and the late availability of a testable system impede the usage of generators and DSLs in combination with agile methods.

Due to this reasons many companies avoid the usage of generators and DSLs and use Copy-Paste-Adapt instead.

The Requirements

When developing HyperSenses, we aimed to overcome the above mentioned weaknesses of the development of generators and DSLs. In concrete, the target was to develop a generator technology

  • Which allows the generator and DSL to be developed stepwise as well as deployed and to be used in combination with agile methods
  • Which simplifies and mostly automates the tedious programming of a generator and a fitting DSL and which requires only very little knowledge on generator technologies and DSLs
  • With an easy to read and maintain specification
  • Which supports a DSL simple to use so that nearly no training is required
  • Which encourages to reuse expert knowledge and share it with as many developers as possible
  • Which generates code easy to read for humans, accepted by software developers and fulfils the companies programming guidelines if available
  • Which scales for all sizes of projects

To achieve these targets, HyperSenses introduces the concept of model-driven meta-development, (MD)² in short. While other approaches use generators and DSLs for model driven development and generative programming of applications we consistently apply model driven development and generative programming to develop generators and DSLs.

White Paper - HyperSenses

White Paper about HyperSenses: HyperSenses simplifies the development of generators and DSLs and supports their stepwise and distributed development. First results are obtained, testable and reproducible within hours or a few days instead of weeks as usual. Therefore HyperSenses enables the development of generators and DSLs for agile methods.

>> Détails

Télécharger