Delta Software Technology

Related Information

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.

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.

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.

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.

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.

Simply Automate Software Development!

Weiter zur Entwicklung...Development: Efficiently Generated

Create data services with only a few clicks, generate software for variants and different platforms, speed up your (product line) development with software generators.


More about Integration...Integration: Simply Building Bridges

Reuse legacy functions in SOA, build composite applications and business services, join different database architectures.


More about Modernisation...Modernisation: Really Safe

Understand legacy applications, automate migrations, mass changes and architecture transformations.
 

August: We have released new versions of the following products:

  • AMELIO Logic Discovery 1.5.0
  • ADS on Eclipse 6.8.0
  • ADS 6 for COBOL 6.2.0

You can find more information about new features and fixes at the support area.