ArchEvol
unifies architectural development with implementation by providing the
means of maintaining a consistent linking between architectural and
source code entities throughout software evolution. ArchEvol does not
solve the problem of consistency between architecture and
implementation by itself, but instead provides the necessary tool
support.
ArchEvol enables integration of ArchStudio, an architectural development environment, with Eclipse, used for source code development, while providing a uniform software repository managed by SVN.
The following rules have been key to ArchEvol's design:
- the software repository will have to accomodate all representations of the developed system.
- a general repository cannot be trusted to know the internal representations of all the software artifacts, and therefore the specialized tools for each representation have to be in charge of interpreting it; consistency can only be achieved by having all these tools communicating with each other.
- maintaining consistency between two different representations will have two steps: 1) conversion from the format of one representation to the format of the other, and 2) merging of this result with the other representation.
In our case, the three rules are materialized as such:
- the two representations are architectural descriptions and source code, and we provide a uniform Subversion repository structure that accomodates both.
- Archstudio is responsible for the architectural model, Eclipse for source code, and they both communicate with each other in order to maintain consistency.
- Properties of the source code are first transformed into a pseudo-architectural description, in the form of the component metadata, which is then merged with the complete architectural description.