Гибкое моделирование - Agile modeling

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

Гибкое моделирование является дополнением к другим методологиям гибкой разработки, таким как Scrum , экстремальное программирование (XP) и Rational Unified Process (RUP). Он явно включен как часть структуры дисциплинированной гибкой доставки (DAD). Согласно статистике за 2011 год, на гибкое моделирование приходилось 1% всех гибких разработок программного обеспечения.

Основные практики

Есть несколько основных практик:

Документация

  1. Документируйте постоянно. Документация создается на протяжении всего жизненного цикла, параллельно с созданием остальной части решения.
  2. Документ поздно. Документация создается как можно позже, избегая спекулятивных идей, которые могут измениться в пользу стабильной информации.
  3. Исполняемые спецификации. Требования указываются в виде исполняемых «клиентских тестов», а не неисполняемой «статической» документации.
  4. Информация из одного источника. Информация (модели, документация, программное обеспечение) хранится только в одном месте, чтобы не возникало вопросов о том, какая версия / информация является «правильной».

Моделирование

  1. Активное участие заинтересованных сторон. Заинтересованные стороны моделируемого решения / программного обеспечения должны активно участвовать в этом. Это продолжение практики работы с клиентами на месте от Extreme Programming .
  2. Представление архитектуры. Команда выполняет легковесное высокоуровневое моделирование, которого едва ли достаточно (JBGE) в начале программного проекта, чтобы изучить стратегию архитектуры, которая, по мнению группы, будет работать.
  3. Инклюзивные инструменты. Предпочитайте инструменты моделирования, такие как белые доски и бумага, с которыми легко работать (они включены).
  4. Итерационное моделирование. Когда требование / рабочий элемент не были достаточно подробно изучены с помощью прогнозного моделирования, команда может решить провести это исследование во время сеанса планирования итерации / спринта. Необходимость сделать это обычно рассматривается как симптом того, что команда не выполняет достаточного прогнозного моделирования.
  5. Едва достаточно (JBGE). Все артефакты, включая модели и документы, должны быть достаточными для поставленной задачи. JBGE носит контекстный характер, в случае модели он определяется сочетанием сложности того, что модель описывает, и навыков аудитории для этой модели.
  6. Прогнозное моделирование. Agile-команда просматривает свой бэклог на одну или несколько итераций / спринтов вперед, чтобы убедиться, что требование / рабочий элемент готовы к работе. В Scrum также называется «очисткой бэклога» или «уточнением бэклога» .
  7. Модель штурма. Короткий, часто импровизированный сеанс гибкого моделирования. Сеансы штурма моделей проводятся для изучения деталей требований или аспектов вашего дизайна.
  8. Несколько моделей. Разработчики Agile-моделей должны знать, как создавать различные типы моделей (например, пользовательские истории, карты-истории, модели данных, диаграммы Unified Modeling Language (UML) и т. Д.), Чтобы применять лучшую модель для конкретной ситуации.
  9. Приоритетные требования. Требования следует обрабатывать в приоритетном порядке.
  10. Разработка требований. Команда выполняет легкое высокоуровневое моделирование, которое является JBGE в начале проекта программного обеспечения, чтобы изучить требования заинтересованных сторон.

Ограничения

Существует значительная зависимость от личного общения и сотрудничества с клиентами. Дисциплины гибкого моделирования могут быть трудными для применения:

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

Смотрите также

Рекомендации

внешняя ссылка