По сути, идеология связана с лучшими практиками, которые были перечислены ранее. Основные из них сводятся к удовлетворению принципов итеративного подхода: архитектурная центричность, компонентное проектирование, управление изменениями и качеством. Rational Unified Process можно адаптировать для различных моделей жизненного цикла, т. е. применять как каскадный подход, так и как подход, связанный с итерациями (может быть эволюционная модель жизненного цикла или инкрементальные, спиральные модели), и, кроме того, RUP может включать более или менее широкий набор артефактов, активностей и ролей и быть более или менее формализованной (рис. 5.4). Поэтому можно говорить о том, что Rational Unified Process может быть легкой или тяжелой, большой, формализованной, более применимой к корпоративным приложениям. Тем не менее говорить о том, что RUP имеет смысл применять для небольших проектов или изготовления небольших продуктов, не совсем правильно, потому как это достаточно серьезная методология, которая предусматривает существенные трудозатраты и весомый инструментарий. И, конечно, пользоваться ею для создания небольших продуктов экономически нецелесообразно: слишком много дополнительных расходов, связанных с проектной документацией, обучением сотрудников, привлечением специалистов по рискам. Для небольших проектов это неоправданно, а вот для корпоративных проектов важно, что Rational Unified Process является достаточно формальным подходом, его артефакты достаточно четко определены, процессы формальны описаны, существует большое количество руководств, хороший опыт, накопленный в разных коллективах, по производству серьезных программных продуктов. Это свидетельствует о том, что этим подходом можно пользоваться для производства и сопровождения больших корпоративных приложений. При этом можно применять достаточно широкий спектр моделей жизненного цикла.
Рис. 5.2. Структура RUP: роли, задачи, артефакты
Рис. 5.3. Структура RUP: руководства, шаблоны, инструкции
Рис. 5.4. RUP: настройка процесса
Следующим подходом, который также ориентирован на большие корпоративные системы является Microsoft Solution Framework (MSF). Этот подход вырос из моделей синхронизации и стабилизации, но в данной интерпретации это набор лучших практик, набор рекомендаций о том, каким образом следует вести разработку корпоративных информационных систем, какие роли выделяются при проектировании и реализации систем, какие этапы выделяются. То есть очень важно понимать, что это не модель жизненного цикла, это методология, технология проектирования, просто набор рекомендаций. Можно сказать, что Framework – достаточно гибкая и абстрактная система рекомендаций, на основе которой происходит построение. Она не связанна непосредственно с моделью синхронизации и стабилизации, может подразумевать другие модели, например спиральную как возможный вариант поддержки жизненного цикла.
Конечно, Microsoft Solution Framework возникла внутри Microsoft и основана на большом опыте этой компании по созданию серьезных корпоративных систем, корпоративных в смысле масштаба, распределенности, количества заказчиков. Это прежде всего операционные системы Windows, офисные приложения, которые являются корпоративными. Существуют специальные классы, которые позволяют строить офисные расширения, настраивать продукты офиса, создавать новые возможности, управление проектами посредством Microsoft Project Server, Microsoft Visual Studio, порталов. И это нашло отражение в данной методологии. То есть MSF предназначена для производства больших корпоративных приложений, но является достаточно гибким подходом и может быть адаптирована для небольших систем.
В описании модели стабилизации и синхронизации было упомянуто, что эта модель до сегодняшнего дня не нашла широкого применения вне Microsoft. На самом деле есть достаточно много серьезных организационных сложностей, связанных с использованием специфических средств тестирования (тестирование является важным атрибутом). Далее будут показаны некоторые примеры, которые получены на основе Microsoft Solution Framework не в Microsoft, но они не так уж многочисленны.
Еще одна особенность MSF сводится к тому, что это достаточно адаптивная методология. И как Rational Unified Process, она может быть как большой, так и маленькой, претендует на использование не только для корпоративных, но и для относительно маленьких проектов. Для небольших проектов она называется Agile. Это версия MSF и может быть более формальной, пригодной для больших корпоративных систем. Надо отметить, что принципы, которые заложены в MSF, могут быть использованы не только при проектировании программного обеспечения, а просто при проектировании.