Application Architecture#

The application architecture describes the application components of a system. Part of the application architecture is providing high level insights in the software building blocks, services and micro services that are part of the application landscape.

Tools for creating an application architecture#

Many OSS tools for creating an application are targeted on creating software code. Although an IT architect should be able to code, most of the time architects are more concerned with designing building blocks, interfaces and implementation constrains.

Using the following tools for creating an application architecture saves time and increases the quality of your application architecture:

  • UMLet. UMLet is an open-source UML tool with a simple user interface: draw UML diagrams fast, export diagrams to eps, pdf, jpg, svg, and clipboard, share diagrams using Eclipse, and create new, custom UML elements.

  • Papyrus Modeling environment. Papyrus is an industrial-grade open source Model-Based Engineering tool. Papyrus is the base platform for several industrial modelling tools. Papyrus can be used as graphical modelling tool, but aims to support MDA (Model Driven Architecture) completely.

  • Archi. Since Archi(tm) is a real TOGAF based architecture and desing tool, Archi is a good solution for creation of an enterprise architecture. With Archi you can use the Archimate(tm) modeling language. Since Archimate is a language for Enterprise Architecture modeling, it is not suited and designed for creating more detailed overviews and designs.

  • Open ModelSphere. Open ModelSphere is a powerful data, process and UML modeling tool.

  • Modelio. Modelio is a modelling environment, supporting a wide range of models and diagrams, and providing model assistance and consistency checking features. Modelio can also generate Java code.

Creating an application architecture will lead to creating internal and external interfaces. APIs form the connecting glue between modern applications. Creating good interfaces is a MUST for every good architecture. Below some open tools that can help to speed up this step:

  • API Blueprint. API Blueprint is all about the design-first philosophy. API Blueprint itself is OSS and has a growing base of OSS tools based on the spec. API Blueprint supports the complete chain for interface development (design, test, create etc).

  • Swagger based tools. Swagger is a simple yet powerful representation of your RESTful API. Swagger has a large ecosystem of OSS tools that assist in creating, testing and documenting APIs.

  • RAML based tools. RESTful API Modeling Language (RAML) makes it easy to manage the whole API lifecycle from design to sharing. The RAML specification is designed for design APIs better and faster.

Application Architecture Templates#

To speed up the process of creating an application architecture you SHOULD make use of one of the templates below.