НовостиОбзорыСобытияIT@WorkРеклама
Идеи и практики автоматизации:

Блог

Про проектирование программных мета-архитектур

Тему проектирования программных архитектур, начатую интервью с Гради Бучем из декабрьского номера CrossTalk (pdf), дополню небольшим обзором других материалов из этого издания.

[spoiler]Модель, управляемая риском (Risk Driven Model), предлагает вместо классических подходов к разработке, когда на продумывание архитектуры выделяется относительно небольшой объем ресурсов, такую концепцию:

- идентифицировать и приоритезировать риски;
- применить к ним подходящий набор архитектурных техник;
- оценить результирующее снижение рисков.

Главенствует в Risk Driven Model идея вытащить риски на первый план. Типовой разработчик мыслит в терминах объектов, модели и списка фич реализуемой области, но затруднится с ходу озвучить списки текущих рисков проекта и инженерные техники противодействия им. Риск-подход предлагает некий срединный путь, соблюдающий баланс между гибкостью и дисциплиной, и подразумевает выбор разных архитектурных приемов для разных рисков. Для этого надо учиться строить мета-архитектуры, гибко объединяющие в себе конкретные архитектурные решения.

Тему про расширяемую гибкость продолжают специалисты из Software Engineering Institute при Carnegie Mellon University, где была создана модель  зрелости программных процессов CMM. Классические аджайлы подразумевают наращивание нужной функциональности путем добавления новых фич с основной ориентацией на "точно в срок". Но типична ситуация, когда заказчик меняет свои требования, и в этот срок удастся уложиться, только если архитектура сможет непрерывно эволюционировать. Иначе чем больше и больше будет появляться неожиданных требований, тем дольше и дольше они будут реализовываться.
SEI продолжает тему мета-архитектуры, в статье достаточно подробно описана методика управления меж-архитектурными зависимостями в проекте.

Cross Domain Discovery Service, созданная при участии Rational, представляет собой расширяемую сервисную архитектуру для построения глобальных сетевых систем, обеспечивающую безопасность как внутри, так и между крупными информационными доменами в американской армии. В материале приведен подробный список использованных в проекте стандартов и наглядно объяснена его архитектура.

Большой материал по системной инженерии рассказывает про два проекта, поддержанные Международной некоммерческой организацией по развитию системной инженерии INCOSE, в которых, как ни удивительно,  участвует и Русское отделение INCOSE.

1. Integrated Software and Systems Engineering Curriculum Project (ISSEC), запущенный в 2007 г. В его рамках выпущено руководство "Graduate Software Engineering 2009 (GSwE2009): Curriculum Guidelines for Graduate Degree Programs in Software Engineering" (www.gswe2009.org) по организации образовательных программ в данной сфере, ставшее частью международных образовательных стандартов. Спонсорами GSwE2009 выступили IEEE Computer Society, Association for Computing Machinery, МО США.

2. При их поддержке развивается и Body of Knowledge and Curriculum to Advance Systems Engineering (BKCASE, запущен в 2009-м) -- база знаний по системной инженерии и руководства по соответствующему профессиональному обучению, с существенным "закосом" в инженерию программную (по последней можно почитать SEBoK, замечательный перевод которой с комментариями можно найти тут). В рамках BKCASE в 2012-м обещаны два материала -- завершенный SEBoK и базирующаяся на ней Graduate Reference Curriculum for Systems Engineering (GRCSE), описывающая прикладные применения.