Какие инструменты с открытым исходным кодом проверяют надежность архитектуры программного обеспечения? - PullRequest
4 голосов
/ 14 октября 2011

Я думаю, что это сложный вопрос, но я хочу убедиться, что архитектура моего программного обеспечения достаточно надежна.

Я планирую запустить эти инструменты в моем коде:

Но я хочу проверить некоторые инструменты (среди прочих):

  • отношения между зависимостями сборки
  • слишком сильная связь между моими объектами
  • и пр.

Одним словом, я хочу инструменты с открытым исходным кодом , чтобы выделить любые архитектурные проблемы моего проекта.

Я понимаю, что лучший инструмент - это опытный архитектор, но даже лучшему плотнику нужен хороший молот;)

Ответы [ 3 ]

6 голосов
/ 14 октября 2011

Встроенные инструменты Visual Studio хороши, если у вас есть расширенные версии.

Вы также можете взглянуть на nDepend , который является инструментом для статического анализа и указать наобласти вашей системы, которые имеют большое количество зависимостей или связей, среди многих других функций.nDepend является коммерческим продуктом, но имеет бесплатную академическую лицензию и может свободно использоваться, если вы работаете над разработкой с открытым исходным кодом - так что это может соответствовать или не соответствовать вашим критериям.

Помните, что все этиинструменты имеют кривую обучения, и у вас, вероятно, не будет «серебряной пули», которая точно скажет вам, что нужно изменить в вашей системе, но они могут быть действительно полезны для повышения производительности и удобства обслуживания, а также снижения риска.

4 голосов
/ 14 октября 2011

Я думаю, вы слишком много просите от инструментов. Архитектура программного обеспечения очень похожа на архитектуру зданий, нет правильного способа сделать это (могут быть неправильные способы), и попросить инструмент измерить это почти невозможно.

Существует огромное количество инструментов, которые могут измерять более мелкие аспекты (комментарии, соглашения об именах, производительность и т. Д.), Но вы не найдете инструмента, который мог бы сказать вам, правильно ли вы спроектировали решение.

1 голос
/ 15 октября 2011

Инструменты, которые вы перечислили до сих пор, являются инструментами статического анализа кода, которые могут помочь визуализировать некоторые появляющиеся архитектурные паттерны, но не смогут сделать намного больше, чем это. Они прекрасно помогают уменьшить ошибки разработчика, доказать правильность программы (в некоторой степени) и выявить дурной запах и хорошие практики.

Тем не менее, есть много аспектов архитектуры, которые они не будут измерять. Масштабируемость, производительность, объем развертывания, время работы, характеристики времени работы и т. Д.

Многие из этих инструментов просто ничего не знают о бизнес-контексте. Это скорее показатель успеха.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...