Archicheck is a simple tool to describe and enforce architecture/design decision
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
Tests
docs
patch_opentoken
src
src_opentoken-6.0b
.gitignore
COPYING
Makefile
_config.yml
archicheck.gpr
mkdocs.yml

README.md

ArchiCheck

CII Best Practices


Overview

Simple structural aspect of the software architecture, metaphore like My software is a layered system, can not be fully translated at programming languages level. Even in languages like Ada, powerfull regarding description of the software structure, there is a semantic loss.

The code doesn't tell the whole story!

Sooner or later, in large or complex developpement, someone will propose a patch adding an ìmport that compile fine, but is a complete violation of the architecture.

Architecture degradation over time

Archicheck is a simple free software tool that :

  1. ease simple architecture description.

    It's really as simple as: Gtk is a layer over Gdk.

  2. enforce code compliance with that description.

    Put archicheck in your test suite, and let it be a vigilant teacher of your architecture over time.


Get it!

Source or exe download


Run it!

Archicheck needs :

  • a bunch of sources : give the directories with one or more -I options;
  • an architecture description, called a rules file : a simple text file describing your architecture.

Let's consider the following file My_Architecture.ac, that describes a simple layered architecture :

Presentation_Layer contains pkg_1, pkg_2
Application_Layer  contains pkg_3, pkg_4

Presentation_Layer is a layer over Application_Layer

Run ArchiCheck that way:

archicheck -I src My_Architecture.txt

It will check that the code comply with your architecture.

For example, here, it will check that pkg_3 or pkg_4 (in the lower layer) are not using pkg_1 or pkg_2 (in the upper layer).


Helpful hints


Further readings