Рик Казман: Одной из основных областей интересов Казмана является архитектура программного обеспечения, ее влияние на экономические и технологические аспекты проектов разработки. Его книги выходили и в русском переводе. Московской аудитории Казман предложил обсудить вопросы проектирования и анализа архитектуры программных систем.

Казман убежден в том, что архитектура является фундаментальным артефактом процесса разработки программного обеспечения, определяющим его ход. Поэтому важно прежде всего правильно определить понятие программной архитектуры. Казман призвал аудиторию не ограничиваться построением традиционных схем из прямоугольников, квадратов и овалов, связанных между собой стрелками. Такое "определение" архитектуры имеет много ограничений, не раскрывая сути составляющих ее элементов и не описывая всех существующих между ними зависимостей. По Казману, архитектуру программного обеспечения необходимо определить как структуру системы, которая охватывает все ее программные элементы, их внешне видимые свойства и взаимосвязи. Архитектура — это абстракция системы, ее базовая структура. Любая программная система обладает архитектурой, но для успешной разработки важно, чтобы она была изначально правильно спроектирована и стала руководящим документом для команды разработки.

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

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

Поделитесь материалом с коллегами и друзьями