?

Log in

No account? Create an account

aeshnik


Уменьшая скорость роста энтропии вселенной


Previous Entry Share Next Entry
Одно архитектурное описание для одной архитектуры для одной системы
aeshnik
Этот пост стоит читать в контексте с двумя предыдущими по теме:
1. единое описание;
2. архитектура, единство многих описаний и ISO 42010

ISO 42010 говорит, что у одной целевой системы (System-of-interest - это то, в чем заинтересованная сторона Stakeholder испытывает потребность) есть только одна архитектура (Architecture). А для одной архитектуры есть только одно архитектурное описание (Architecture Description). Тут надо заметить, что стандарт различает архитектуру (о ней он говорит как об абстракции; я понимаю ее как что-то, что есть у каждой системы, потому что в ней связаны всякие разные вещи друг с другом) и архитектурное описание (о ней стандарт говорит как о рабочем продукте - work product; это я понимаю как результат направленной деятельности). Похоже, архитектурное описание можно создавать, а архитектуру - нет, она просто есть у каждой системы.

Вот например построили вы самолет. У самолета, как бы вы его ни строили, обязательно будет архитектура. Но возможно, у него не будет архитектурного описания: чего-то, что выражает архитектуру и что можно посмотреть на бумажке, в компьютере или еще где-то.


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

Например, можно начать проектировать самолет, используя архитектурное описание. Тогда много разных разработчиков получат разные описания (view) в соответствии со своими потребностями. Все эти описания будут собираться воедино в одно архитектурное описание. И тогда, если кто-то поменяет самолету пустые места в фюзеляже во время перепроектирования, все остальные проектировщики об этом быстро узнают и что-то предпримут, чтобы их куски поместились в самолет.


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

Например, у вас может быть замечательное архитектурное описание системы для всех разработчиков: все будут понимать друг друга с полуслова. А вот для производителей это архитектурное описание не будет годно: они будут смотреть на нее как на что-то непонятное и требовать того, что привыкли видеть обычно. В этом случае у разработчиков будет одно архитектурное описание (на бумажке), а у производителей - другое (в голове или в виде хорошо понятных способов описания - viewpoints - которых текущее архитектурное описание не включает). В этом случае получается, что разработчики разрабатывают один самолет, а производители строят другой (у нас же два архитектурных описания; значит, и архитектуры две, и целевых системы две). Уточнив этот пример, можно сказать, что у разработчиков могут быть трехмерные модельки самолета, а производителям нужен перечень деталей, штуки напротив каждой из них и информация о том, как детали собираются.


Что с этим делать? Цель одна: единое архитектурное описание, если его отсутствие мешает нормально работать. Способа видится два: либо доработать одно архитектурное описание с учетом требований тех, кто им пользоваться не может, либо "провязать" правилами перехода два имеющихся архитектурных описания. Но, в любом случае, это не получится сделать сидя на заднице в кабинете: нужно будет здорово поработать, чтобы понять, что и кого не устраивает, чтобы сделать для них что-то полезное.

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

2015-02-01 18-12-05 Screenshot
Архитектурное описание и его окружение из ISO 42010.