EggAndGherkin (nuget): DependencyAnalysis is a software testing tool for architectural constraints.  Who are you?   You are a software developer. You feel a special interest in test driven development, clean code and software architecture.  What do you want?    What you can see in your every day work, is the code quality level of classes in your IDE. Automated tests can be accessed, approved and extended right away.  There are hurdles when surveying the software at the architectural level. It requires a tool first. There are quite some available. Now you have chosen for example CoolArchitecture2000 as the weapon of choice. It has a lot of features. But it has a drawback. Anytime you want to check something has changed to the architecture, you have to start that tool.  What is wrong?  We developers are the Montgomery Scotts of our software project. Our place is the machine deck (the IDE). If we had to use the turbolifts to the bridge several times a day to see the results of our work, how long will this process last until we skip the bridge visit?   Who do you think is responsible for keeping a software architecture in shape?  1. The software architect?  Well the architect designs dependencies, has an overview of the whole project and bears a vision of the future structure. He suggests technologies to use. Often, he is not the one, who makes daily commits and actively changes the projects structure.  2.Can a dedicated developer be the guardian of architecture?  This will work for a prolonged time. Once he goes on holiday, no one else will invest the effort required to perform the task of keeping everything in shape. His team mates are not familiar with this task.  3. The answer must be every developer of the team is responsible.  More or less each team member has an insight at the meta-level of the project he is contributing. This is the source where the check-ins come from. And this is the only instance that can actually influence a growing sofware project.
Keywords: Dependency|analysis|software|architecture|graph|unit|testing|quality|metrics|design|principles