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:
- 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/desing tool, Archi is a good solution for creation of an application architecture.
- 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:
- Integration Principles. With this tool you can easily (re)use good integration principles for your project.
- 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.
- API Design and tools. For good integration architecture you SHOULD dive into design problems to get your architecture straight. Google is of course the number one company when it comes to large scale API design. So use this internal Google API design guide.
Application Architecture Templates
To speed up the process of creating an application architecture you SHOULD make use of one of the templates below.
- Architecture description template for use with ISO/IEC/IEEE 42010:2011. (MSWord template or PDF)
- SAD (Software Architecture Document)
- Software Engineering Institute’s(SEI) Architecture template (MSWord)
- Solutions Architecture Template (U.S. Government, HUD) (MSWord)