UPDATE: видео обсуждения этого постинга на сорок втором заседании Русского отделения INCOSE (9 марта 2011) --
http://community.livejournal.com/incose_ru/23537.html Система и жизненный цикл -- близнецы-братья. Мы говорим система -- подразумеваем жизненный цикл, мы говорим жизненный цикл -- подразумеваем система.
У системы есть два основных представления: целевое (архитектурное, чаще всего структурное в своей основе, плюс процессы времени эксплуатации системы) и жизненного цикла (развертка во времени жизненного цикла -- процессы обеспечивающих систем). Можно обсуждать, насколько каждое из этих представлений является частью другого, но для надлежащего описания системы всегда нужно использовать какое-то представление жизненного цикла.
Прежде всего, нужно различить жизненный цикл (иногда, ограничиваясь только инженерией, но не полным ЖЦ говорят также delivery process, изредка для софта -- software process) и другие "процессные представления" -- трансакции DEMO, логические "бизнес-процессы" (практики), workflows, проектные представления (подробнее --
http://ailev.livejournal.com/904643.html). Хотя есть множество подходов, при которых все эти разные аспекты описаний организации и методов ее работы смешиваются.
Языков представления жизненного цикла и текстовых и графических нотаций для этих языков много, ограничимся для примера лишь несколькими:
1. "Нарезанная колбаска".
Просто перечисление стадий жизненного цикла их названиями, для выразительности названия упакованы в отрезки "колбаски".
Вот еще пример "колбасок" (рис.17 из ISO 19760 -- вокруг традиционной еще две дополнительных: как ЖЦ видят менеджеры, и как ЖЦ видят инженеры).
2. "Скоропись стрелочками".
Используется TechInvestLab для рисования на флип-чартах. Горизонтальная стрелка изображает время, штрихи -- границы стадий. Вертикальная стрелка ведет от обеспечивающей системы на стадии эксплуатации к какой-то целевой стистеме (на которой обозначается скобочкой "жизненный цикл проекта": отрезок жизненного цикла целевой системы в рамках какого-то проекта обеспечивающей системы). Очень удобно для обсуждения запутанных ситуаций типа "штаб-квартира холдинга выполняет проект орг.развития для своего предприятия, которое далее разрабатывает и строит ужасающей сложности инженерный объект"
Сравните с "официально-колбасным" вариантом:
3. V-диаграмма.
Самое знаменитое представление. Вот сразу десяток примеров (и это еще небольшое количество вариаций!):
А.Агроскин "Комментарии к курсу системной инженерии Кевина Форсберга" Тут же по сопричастности -- водопадная и спиральная модель.
4. Т-диаграмма.
Не так часто встречающаяся, но активно популяризируемая в работах Harold "Bud" Lawson:
Смысл этой диаграммы в том, чтобы подчеркнуть "рекурсивный характер" жизненного цикла: каждый отдельный элемент нужно сначала определить (задумать, спроектировать) на какой-то начальной стадии, а затем воплотить (в металле, бетоне, программном коде), а затем из этих отдельных элементов собрать систему.
5. Горбатая диаграмма
В современной системной инженерии важно учитывать не только стадии жизненного цикла, но и выполняемые на этих стадиях практики (часто называемые "дисциплинами", иногда "бизнес-процессами" -- и не путайте с "процессами"-worlkflow). Это "двумерное" отображение жизненного цикла, на котором по-горизонтали даётся время, а по вертикали идут графики "трудозатрат" для каждой дисциплины называется hump diagram ("горбатая диаграмма", ибо на графиках важны "горбы" -- периоды интенсивной траты ресурсов на выполнение тех или иных работ).
6. Диаграмма Гантта
Как ни странно, диаграммы Гантта довольно часто используют для изображения жизненного цикла -- уподобляя их горбатой диаграмме. При этом "работы" (вернее, их группы) соответствуют дисциплинам, а стадии ЖЦ -- это этапы проекта, разделенные контрольными точками. Проблемы в том, что невозможно толком обсуждать продукты (ибо на диаграмме только работы) и различные специфические для жизненного цикла особенности (например, итерации, разные типы зависимостей между работами) трудно показать и обсуждать. Вместе с тем, каждое очередное поколение систем проектного управления всё лучше и лучше приспособлено для выражения особенностей жизненного цикла.
7. Языки ситуационной инженерии методов.
В настоящий момент широко используется два таких языка, каждый из которых имеет в том числе графическую нотацию: OMG SPEM 2.0, и ISO 24744 (и в разработке третий язык -- консорциума SEMAT, уже определен тамошний консорциум по стандартизации -- это будет OMG).
Ситуационная инженерия методов специализирована для обсуждения вопросов жизненного цикла. Так, в языке ISO 24744 наличествует 69 понятий, которые позволяют описать все основные аспекты: рабочие продукты, стадии, практики, руководства, языки, организацию (профессиональные роли и инструменты). Я уже много раз писал на эту тему (см.
http://ailev.livejournal.com/905099.html).
Одной из фирменных особенностей этих языков является упор даже не на процессы или собственно стадии ЖЦ, сколько на рабочие продукты, над которыми затем работают практики, и выполнение которых связывается с определенными стадиями. Не будем забывать, что сами применяемые практики и стадии ЖЦ определяются главным образом в связи с теущим на какой-то стадии состоянием системы (рабочий продукт).
Пример OMG SPEM 2.0 представления разбиения работ:
Пример ISO 24744 представления разбиения работ:
Основная трудность в том, что предлагаемые нотации несводимы к какой-то одной диаграмме. Это и понятно, идея об "очень сложном одном типе диаграмм" является давно уже неосуществимой. Разные аспекты жизненного цикла как метода работы над целевой системой лучше всего выражать разными диаграммами.
8. Голдратовские стратегические деревья.
Разбиение работ верхнего уровня для какого-то проекта (WBS) является обычно неотъемлемой компонентой жизненного цикла. По факту есть нотации, которые предполагают обоснование для такого выбора -- прежде всего, это
карты действий и результатов (они же -- голраттовские S&TT, они же -- "стратегические деревья").
В принципе, сам Голдратт использовал такие деревья для описания типовых практик жизненных циклов своих проектов. Особенностью этого представления является уход от развертки во времени (собственно ЖЦ) и от прямого представления рабочих продуктов. Тем не менее, в терминах таких деревьях обсуждаются именно жизненные циклы -- чаще всего жизненные циклы проектов реорганизации.
Нужно объединить это дерево разбиения практик с более мощными нотациями системной инженерии методов -- в части добавления обоснований (см.
http://community.livejournal.com/praxos/6777.html). Тем не менее, очень важно указать на эту нотацию: роль обоснований в описаниях жизненного цикла обычно недооценена, и нужно как-то напоминать людям об этом важном аспекте описания.
9. Инженерные онтологические представления (4D жизненный цикл).
PLCS (AP239 из STEP -- ISO 10303-239), машинное представление каких-то аспектов, трудносочетаемо с другими протоколами приложений (например, AP233).
Появление рабочих продуктов в их взаимосвязи в 4D онтологии ISO 15926 -- использование "временных частей" (temporal parts) для показа постепенного появления различных взаимосвязанных рабочих продуктов по мере прохождения жизненного цикла:
Важно отметить, что все вышеприведенные языки и нотации позволяют выразить всёвозрастающее количество информации: