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.

?

Log in

No account? Create an account