Welcome to Codeling!

Codeling is a tool for extracting software architecture models from source code and propagating changes in the models back to the code.

What is it good for?

Software architecture specifications and implementations are two views of software architecture. They describe common aspects, such as the existence and Connection of components. The specification adds information about the design, the communication and for analysis. The implementation, instead, describes additional details for an executable system. Managing the consistency between these representations manually is difficult and error-prone. Codeling is an approach that integrates the architecture specification with the implementation artifacts. The specification as an independent artifact is no longer necessary, because it can be derived from the source code. The tool Codeling extracts the integrated architecture specifications from the code and propagates changes in the specification to the code automatically. It can be used in the following contexts:

  • Bottom-Up Extraction

    Architecture specifications can be extracted from program code, despite the differences between architecture specification and architecture implementation languages.

  • Top-Down Integration

    Architecture specifications—or changes in an extracted specification—can be integrated with the underlying program code, also despite the differences between architecture specification and architecture implementation languages.

  • Specification Migration

    When an architecture specification language evolves, or a new architecture specification language emerges, the specification language used to represent the program can be changed.

  • Implementation Migration

    When an architecture implementation language evolves, or a new architecture implementation language emerges, the architecturally modelled aspects of the program can be migrated to the new architecture implementation language.

If you are interested in using Codeling or in talking about a related research idea, feel free to contact us.

Latest blog posts