Emerging Technologies
Emerging Technologies
As anyone who has worked in software development will testify, there is a tremendous amount of repetition in the process of creating large software systems. We are continually faced with development something “similar but not exactly the same” as something we have done many times before.
Delta has more than 40 years experience of building software tools for use in large-scale application development projects. Solving the “similar but not exactly the same” problem is a core element of Delta’s technology and products.
Over the past years Delta has carefully followed research developments in the area of Generative Programming, a new programming paradigm that offers great potential for solving the “similar but not exactly the same” problem. Having made considerable investments in this area, Delta is now gradually releasing the results of various development projects.
This section of the Web site gives you an overview of Generative Programming and the work that Delta has been doing in this area:
- Improving Software Engineering – Over the years many improvements have been made to the software development process, starting with modular programming and then moving on to structured and then object-oriented programming. We are still looking for a good solution to the “similar but not exactly the same” category of problem we encounter so often in software development.
- Generative Programming – The most recent attempt to solve the “similar but not exactly the same” problem, Generative programming brings assembly line techniques to software development. Instead of directly developing a custom application by hand the system is manufactured from a stock of reusable and combinable parts.
- Next Generation Products – Delta has made significant investments to bring together the latest research work on generative programming, the latest thinking on software development and 40 years experience of building software tools. The result is a series of new technologies that underpin Delta’s current and future product offerings.
- Research Community – Delta works closely with leading Universities, making selected emerging technologies freely available to the global academic and developer communities. Early and comprehensive feedback helps Delta build rock-solid enterprise products.
Not Sure where to Start?
If you want a look back at previous attempts to improve productivity then start with Improving Software Engineering. To get an overview of the “next big thing” in software development start with Generative Programming. The section Next Generation Products introduces the new Delta products based on generative programming. The final section Research Community talks about how Delta works with the global development community to improve product quality.
Improving Software Engineering
Improving Software Engineering
The IT industry is continually looking for more effective and efficient ways of building and maintaining software. For many years software engineers have looked at their colleagues in the “hard” engineering disciplines and admired the techniques that have been built-up over the years to build reliable and predicable complex structures. Much time and effort has been spent on trying to bring these sorts of disciplines to the world of software engineering.
Modular programming, structured programming, object-oriented programming – these were all steps on the road to improving the software engineering process. While these methods each lead to improvements at the programming level, they did not address a key issue – that applications are assemblies of large numbers of programs. Improvements are therefore needed not just in how we build individual programs, but in how we build complete applications.
Anyone who has worked as a professional programmer will have noticed quite quickly that there is a lot of repetition in software development. The same functionality is implemented in many programs, especially technical functionality that has to do with interfacing with infrastructure products such as databases, transaction processing systems, user interface technologies etc. If the functionality were exactly the same in each case then things would be relatively straightforward. Unfortunately in the real world the repetitions tend to fall into the “similar but not exactly the same” category. We therefore need processes and tools that help to solve this common problem of repeatedly developing similar functionality again and again.
Generative Programming
Generative Programming
Generative Programming (GP) is an approach to software development that attempts to solve the types of problems that occur in real-world software projects. The focus of generative programming is to bring assembly line techniques to software development. Instead of directly developing a custom application by hand the system should be manufactured.
The key difference to more traditional approaches is that instead of focusing on building one specific application, we take a step back to think about building a family of systems. This gives us a solid basis for handling the “similar but not exactly the same” problem that we find so often in software development.
Generative programming provides tools and techniques to model system families of software. We can then build software components such that we can generate on demand the specific, highly customized and optimised end products (software systems) that meet our specific business and technical requirements.
Delta and Generative Programming
Delta has been in the software development business for a long time and so is very familiar with the "similar but not exactly the same" problem. The very first Delta products in the 1970s directly addressed this problem with the Delta/ADS code generator product. Using the powerful generator techniques in Delta/ADS developers could separate application specific coding from the common code. The Delta/ADS macro technology allowed a certain amount of customizing of standard code for specific requirements.
Over the past 40 years Delta has continually refined and improved the core technologies used in the application development tools. The types of problems that are faced by large development teams are well understood – and it is exactly these types of problems that are addressed by generative programming.
Over the past 15 years Delta has carefully followed the research developments in the field of generative programming as these concepts exactly fit into Delta’s view of how software development can, and should, be done.
Next Generation Products
Next Generation Products
The very first release of Delta/ADS in the late 1970s supported some of the same concepts we see today in generative programming. Naturally in the intervening years the world of software engineering has made dramatic improvements.
Delta has made significant investments to bring these different worlds together – the practical experience from 40 years of generator development, the real-world experience of large scale development projects, the latest research work on generative programming and the latest thinking on software development.
The result is a series of new technologies that underpin Delta’s current and future product offerings:
- ANGIE – ANGIE is a frame-based solution to building generators. Following the generative programming approach ANGIE provides a set of common features that are required by a family of generators. A domain specific generator is then manufactured to solve a specific problem, be it code generation or general model transformation.
- HyperSenses – implements the concepts of Generative Programming where a domain specific language is used to specify the problem to be solved. Instead of storing this program as syntax in a text file it is stored as a model in a repository. A number of different views are then available to define, maintain and understand the specification. Such views include textual, semi-graphic and graphical. HyperSenses supports creation of generic models in an OMG MOF/XML repository. The “Configurator” tool provides the programmer with an active textual representation of this model. “Pattern Editor” defines the patterns used in the specification. “Meta Composer” defines the meta model that is being used.
The ANGIE frame based generator technology has already been proven in large-scale projects and is at the heart of the Delta products SCORE Adaptive Bridges and SCOUT² Development Platform.
Where to Go Next?
Please continue to the next section to see how Delta works closely with the Research Community to make selected emerging technologies freely available to the global academic and developer communities.
Research and Development
Research and Development
Delta works closely with leading Universities and makes selected new technologies directly available to the global academic and development communities. Early exposure of new technologies is a core element of Delta's R&D process, ensuring early and comprehensive feedback that helps Delta to build products that are rock-solid and suitable for enterprise use.
Where to Go Next?
To learn more about the concepts of generative programming and how Delta is bringing these concepts into our core products please see our research area.
Donwloads / Documents
Documents about Emerging Technologies
Language: Englisch - Version: MA21474.12

In this document, we aim to familiarise you with the basic methods and concepts of programming in ANGIE.
Whereas the document The ANGIE Generator Language has the character of a reference manual, in this document we would like to use a simple example to introduce you to programming with ANGIE. First, however, we will discuss ANGIE in general and then the methodical principles of the ANGIE generator system.
Read more

Language: Englisch - Version: MA21581.01

This tutorial will familiarize you with easily implementing and using a software generator with the HyperSenses™ tools. Both the generator implementation as well as its use are significantly simplified by the model-based approach adopted by HyperSenses.
Read more

Language: Englisch - Version: MT21002.01

Background Information
Generative Programming - From Theory to Practice
Read more

Language: Deutsch - Version: MT11048.01

Der Vortrag "HyperSenses – Domänenspezifische Codegenerierung²" war Teil der Veranstaltung "Generative Software-Entwicklung" und fand am 8. Januar 2008 in Leipzig statt.
Sehen Sie, wie Sie Ihre Software-Entwicklung mit Hilfe generativer Werkzeuge wie HyperSenses automatisieren können. Laden Sie sich hier die Vortragsfolien zu "HyperSenses – Domänenspezifische Codegenerierung²" herunter.
Read more

Language: Englisch - Version: MT21011.04

Grupo Edson Queiroz selects generator-based tools from Delta Software Technology for major migration project from Bull DPS7 to UNIX
Read more

Language: Englisch - Version: MT21013.04

Grupo Edson Queiroz selects generator-based tools from Delta Software Technology for major migration project from Bull DPS7 to UNIX
Read more

Language: Englisch - Version: MT21041.01

Which opportunities deliver generators that are specifically tailor-made for particular projects? Which risks do you have to consider when developing generators? Get the information now. Download Rüdiger Schilling's presentation "Generators - More than a necessary evil?"
Read more

Language: Englisch - Version: MT21042.01

Generative tools for automated software development and modernization
Read more

Language: Englisch - Version: MT21044.01

Download of Lecture from the OOP 2007
Know more about the way processes are concerned with product lines, and about the meaning of "Process Family Engineering". Which role are code generators playing thereby, and how do process family concepts provide the "construction manual" for productive tool chains? Our lecture slides summarize this for you by means of concrete examples.
Read more

Language: Englisch - Version: MT21046.01

Model-Driven Development and Product Lines, Leipzig 2007
Read more

Language: Englisch - Version: MT21047.01

Cord Giese, Research Analyst at Delta Software Technology, presented the process-based concept for a product line architecture developed for PESOA and demonstrated its practical implementation using an example from the automotive area.
Read more

Language: Englisch - Version: MT21049.01

What is the best way for the integration of business software - with particular focus on the data access layer?
Read more
