Skip to content

pragkirk/componentarchitecture

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

From Fragile to Agile Architecture

A demonstration of architectural agility

The following information explains how the simple sample application demonstrates several of the practices of agile architecture. As the example evolves, so will the explanations.

Prove It With Code

The system grew from a small and simple working system that worked.

Architect All the Way Down

The system is carefully architected at all levels. Class relationships are decoupled and package and module (ie. JAR) relationships are also very carefully managed.

Generate Documentation

JarAnalyzer, an open source software visualization tool for the Java platform, is used to generate visualizations that allow the team to clearly see the relationships between system entities at many different levels. JarAnalyzer also generates architectural metrics.

Validate and Enforce the Architecture

One way the architecture is enforced is via the build scripts and structure of the source code repository. The system has separate build scripts for each component. You can see his by looking in the subdirectories under the src directory.

Refactor Mercilessly

This is ongoing, and we will highlight refactorings as the example evolves. But the visualizations and validations will help guide these refactorings, including the metrics generated by JarAnalyzer.

Keep It As Simple As Possible

The system started as a simple system that worked, with no unnecessary complexity.

To see the sample in action, clone this repository and run the build scripts in each subdirectory. Then, execute the run.sh shell script.

Requirements: - Java 1.8 ++ - Gradle for builds - GraphViz for visualization

About

Demo of structural architectural agility

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published