Архитектура сдерживает или способствует реализации атрибутов качества системы
Способность/неспособность системы реализовывать предполагаемые (или затребованные) атрибуты качества в значительной степени обусловливается архитектурой. Отношения между вариантами архитектуры и качеством подробно рассматриваются в главе 5; пока что вам следует усвоить следующие постулаты. ♦ Если система ориентирована на высокую производительность, необходимо следить за временным поведением ее элементов, а также за частотой и объемом межэлементного взаимодействия. ♦ Если приоритетом является модифицируемость, то обязанности между элементами следует распределять таким образом, чтобы вносимые в систему изменения не сопровождались далеко идущими последствиями. ♦ Если система должна стать серьезно защищенной, то особое внимание необходимо обратить на безопасность межэлементного взаимодействия и информацию, к которой те или иные элементы имеют право доступа. Кроме того, в архитектуру имеет смысл ввести ряд специализированных элементов (например, надежное ядро). ♦ Если упор в процессе разработки системы планируется сделать на масштабируемости, необходимо обеспечить строгую локализацию использования ресурсов, чтобы тем самым упростить введение элементов с более прогрессивными возможностями. ♦ Если, согласно требованиям проекта, систему следует поставлять поэтапно, в виде отдельных подмножеств, то особое внимание, опять же, необходимо обратить на межэлементное взаимодействие. ♦ Если для элементов данной системы планируется обеспечить возможность многократного применения в рамках других систем, то сцепление между элементами следует ограничить; иначе при извлечении из текущей среды отдельного элемента с ним придется переносить многочисленные дополнения. Стратегии реализации этих и других атрибутов качества в высшей степени архитектурны. При этом важно понимать, что сама по себе архитектура не гарантирует ни функциональности, ни качества. Непродуманные нисходящие проектные и реализационные решения имеют обыкновение подрывать основы качественных архитектурных проектов. На качество системы влияют все решения, вне зависимости от того, на каком этапе ее жизненного цикла — высокоуровневого проектирования, кодирования или реализации — они принимаются. Следовательно, качество нельзя признать полностью находящимся в зоне ответственности архитектурного проектирования. В контексте обеспечения качества хорошая архитектура необходима, но не достаточна.
|