Что такое декомпозиция целей и как она помогает достигать результатов

Динамическое программирование

В начале 1970-х было замечено, что задачи из большого класса комбинаторных оптимизационных задач на графах могут быть эффективно решены с помощью несериального динамического программирования, если граф имеет ограниченную размерность, связанный с древесной шириной параметр. Позднее некоторые авторы независимо обнаружили к концу 1980-х , что многие алгоритмические NP-полные задачи для произвольных графов могут быть эффективно решены с помощью динамического программирования для графов ограниченной древесной шириной при использовании древесной декомпозиции этих графов.

В качестве примера представим себе задачу поиска наибольшего независимого множества на графе с древесной шириной k. Для решения этой задачи сначала выберем один узел древесного разложения в качестве корня (произвольным образом). Для узла Xi древесной декомпозиции пусть Di будет объединением множеств Xj, наследуемых от Xi. Для независимого множества S ⊂ Xi пусть A(S,i) означает размер наибольшего независимого подмножества I в Di, такого, что I ∩ Xi = S. Подобным образом для смежной пары узлов Xi и Xj с Xi более дальним от корня по сравнению с Xj и независимого множества S ⊂ Xi ∩ Xj пусть B(S,i,j) означает размер наибольшего независимого подмножества I в Di, такого, что I ∩ Xi ∩ Xj = S. Мы можем вычислить эти значения A и B проходом дерева снизу вверх:

A(S,i)=|S|+∑j(B(S∩Xj,j,i)−|S∩Xj|){\displaystyle A(S,i)=|S|+\sum _{j}\left(B(S\cap X_{j},j,i)-|S\cap X_{j}|\right)}
B(S,i,j)=maxS′⊂XiS=S′∩XjA(S′,i){\displaystyle B(S,i,j)=\max _{S’\subset X_{i} \atop S=S’\cap X_{j}}A(S’,i)}

Где сумма в формуле для A(S,i){\displaystyle A(S,i)} берётся по потомкам узла Xi{\displaystyle X_{i}}.

В каждом узле или ребре имеется не более 2k множеств S, для которых необходимо вычислить эти значения, так что в случае, когда k является константой, все вычисления занимают постоянное время на одно ребро или узел. Размер наибольшего независимого множества является наибольшим значением, запомненном в корневом узле, а само наибольшее независимое множество можно найти (что является стандартным для динамического программирования) путём отслеживания в обратном порядке этих запомненных значений, начиная с наибольшего значения. Таким образом, в графах ограниченной древесной ширины задача поиска наибольшего независимого множества может быть решена за линейное время. Подобные алгоритмы применимы для многих других задач на графах.

Такой подход с динамическим программированием применяется в области машинного обучения с помощью для распространения доверия на графах ограниченной древесной ширины. Подход также играет ключевую роль в алгоритмах вычисления древесной ширины и построения древесной декомпозиции. Как правило, такие алгоритмы имеют первый шаг, на котором аппроксимируется древесная ширина и строится древесная декомпозиция с этой приближённой шириной, а на втором шаге используется динамическое программирование на полученном древесном разложении с целью вычисления точного значения древесной ширины.

Уровни декомпозиции

Казалось бы, проще простого: режем проект на большие части, эти части — ещё на части, а те части — снова на части. Но действительно ли всё так просто?!

1 уровень. Крупные блоки или компоненты

Это может быть блок с е-коммерсом, личный кабинет, мобильное приложение, супер-навороченная админка. В общем, любые блоки работ, которые могут быть как-то между собой связаны, но которые можно делать изолированно друг от друга.

2 уровень. Страницы сайта или экраны мобильного приложения

В случае с блоком «мобильное приложение», как на схеме выше, разбиваем его на экраны. Но как узнать, что вы учли все-все-все возможные экраны? Для проверки полноты берите в расчёт сценарии использования — это даст понимание, какие задачи юзеры будут решать в приложении (или на сайте) и каким примерно образом они это будут делать.

Есть соблазн написать в смете только сценарий использования и его оценку (скажем, сценарий покупки товара или сценарий заказа такси) — ну, ведь понятно же, что там внутри. Нет, непонятно, и есть большой риск потерять множество шагов, поскольку такие сценарии большие, и их крайне сложно адекватно оценить целиком.

Когда сценарий раскладывается на экраны, шансов ошибиться становится меньше. Но помните, что каждый сценарий стоит проверять на связанность — достаточно ли вам вот этих экранов, чтобы этот сценарий сбылся?

3 уровень. Содержание экранов

В общем случае у вас на экранах могут быть какие-то вкладки либо какие-то блоки — грубо, вложенные экраны. Например, страница корзины/оформления заказа — здесь всегда есть блок товаров со своим сценарием (добавить-убавить-очистить), а еще блоки доставки, оплаты, авторизации, бонусной системы и так далее. Бывают ситуации, когда эти блоки также разбивают на экраны по шагам. Зависит от решения, принятого по итогам аналитики — бывает, что удобнее их всё-таки «слить» воедино.

Задача менеджера, когда он добрался до такого экрана, — посмотреть, из чего тот состоит. Бывает, экран легко разбить на блоки, бывает — сложно. Яркий пример сложной разбивки — калькуляторы: по ним чаще всего неочевидно, что происходит и как процесс расчёта делить на шаги.

Когда вы добираетесь до третьего уровня, нужно быть супер-внимательными, потому что на странице могут появляться самые разные вещи

И важно понимать, откуда они там вообще берутся — от этого будут сильно зависеть ваши оценки

Как научиться декомпозировать задачи?

Идеальное обучение — практика. Но сложно начинать практиковатся на реальных задачах, если вы еще не до конца понимаете весь процесс. Как же быть? Я вижу два вектора тренировок.

1. Задачи из реальной жизни

Дело в том, что вы так или иначе занимаетесь декомпозицией каждый день. Когда вам нужно сделать какое-то большое дело, оно скорее всего состоит из многих мелких задач. Ну например, вам нужно завать чай. Для этого нужно пойти на кухню, поставить чайник, подождать пока закипит вода, заварить чай, добавь по желанию сахар и потом уже получить результат. Но! В этой задаче (заварить чай) каждая подзадача слишком мала. Вашему мозгу не нужно много думать, чтобы «подождать пока закипит вода в чайнике». Поэтому вы не ощущаете что продекомпозировали данную задачу. Но мозг на подсознательном уровне это сделал.

Но не все так просто в нашей жизни. Когда задачи простые, мозг декомпозирует задачу подсознательно. Вы не задумываетесь особо над этим. Вы сталкивались когда-то с ощущением, что вам нужно что-то сделать и не знаете с чего начать и кажется что эта задача непосильная и вообще это почти невозможно? Я думаю да. Так вот. Насамом деле не нужно паниковать или долго думать как подойти.

  1. Разбейте сложную задачу на множество простых. Если они кажутся все равно сложными — разбейте их еще раз.
  2. Придуймайте решение каждой.
  3. Выстройте план действий.
  4. Приступите к выполнению.

Конечно поначалу применяя мой совет будет сложно. Нужно будет думать как разбить задачу, потом что с ней делать, какой-то план составлять и так далее. Но, человеческий мозг крутая штука. Если вы будете регулярно так делать со временем эти процессы начнут занимать мало времени. Из личного примера — многие сложные задачи я решаю подобным образом автоматически. Мой мозг уже привык подобным образом мыслить. Конечно у всех разные интеллектуальные способности, но это не значит что нельзя научится так делать. Просто кто-то научится быстрее, кто-то медленней.

2. Поиск объяснения устройства различных процессов

Что я имею ввиду? Ищите объяснения как устроены привычные для вас вещи. Вы когда то думали как устроен замок в вашей двери? Или, например, как работает электрический чайник?

Дело в том, что даже относительно простые механизмы, которые вас окружают состоят из нескольких деталей. Каждая деталь выполняет определенную функцию. Находите сходство с декомпозицией?

Практиковаться в этом направлении просто. Когда у вас появилась свободная минутка оглянитесь вокруг

Начните обращать внимание на привычные для вас предметы. К слову, это вообще крутая практика тренировка внимания, но это тема для другой статьи

Найдите из этих предметов какой-то механизм. Пока я писал статью, первое на что я обратил внимание это компьютерная мышь. Из каких частей она состоит? Попробуйте подумать сами, а потом еще поискать в интернете. Возможно эта информация никогда не будет вам полезна. Особенно если вы не собираетесь чинить компьютерные мыши :). Но дело тут в другом. Подобные размышления тренируют мозг в правильном направлении.

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

С другой стороны практикуясь подобным образом вы не только тренируете мозг в решение задач декомпозиции, но и узнаете много нового. Вдруг что-то пригодится?

Определение

Интуитивно древесная декомпозиция представляет вершины заданного графа G как поддеревья дерева таким образом, что вершины графа смежны только тогда, когда соответствующие поддеревья пересекаются. Тогда G образует подграф графа пересечений поддеревьев. Полный граф пересечений — это хордальный граф.

Каждое поддерево связывает вершину графа с множеством узлов дерева. Чтобы определить это формально, мы представим каждый узел дерева как множество вершин, связанных с ней.
Тогда для заданного графа G = (V, E) древесная декомпозиция — это пара (X, T), где X = {X1, …, Xn} является семейством подмножеств множества V, а T является деревом, узлами которого служат подмножества Xi, удовлетворяющие следующим свойствам:

  1. Объединение всех множеств Xi равно V. Таким образом, любая вершина графа связана хотя бы с одним узлом дерева.
  2. Для любого ребра (v, w) графа существует подмножество Xi, содержащее как v, так и w. Таким образом, вершины смежны в графе, если только они соответствуют поддеревьям, имеющим общий узел.
  3. Если Xi и Xj содержат вершину v, то все узлы Xk дерева в (уникальном) пути между Xi и Xj содержат v тоже. То есть узлы, связанные с вершиной v, образуют связное подмножество в T. Это свойство можно сформулировать эквивалентно — если Xi{\displaystyle X_{i}}, Xj{\displaystyle X_{j}} и Xk{\displaystyle X_{k}} являются узлами, а Xk{\displaystyle X_{k}} находится на пути из Xi{\displaystyle X_{i}} в Xj{\displaystyle X_{j}}, то Xi∩Xj⊆Xk{\displaystyle X_{i}\cap X_{j}\subseteq X_{k}}.

Древесная декомпозиция графа далеко не уникальна. Например, тривиальная древесная декомпозиция содержит все вершины графа в корневом узле.

Древесная декомпозиция, в которой деревом служит путь, называется путевой декомпозицией и древесная ширина этого специального вида древесной декомпозиции известна как путевая ширина.

Древесная декомпозиция (X, T = (I, F)) с древесной шириной k является гладкой, если для всех i∈I|Xi|=k+1{\displaystyle i\in I:|X_{i}|=k+1} и для всех (i,j)∈F|Xi∩Xj|=k{\displaystyle (i,j)\in F:|X_{i}\cap X_{j}|=k}.

Декомпозиция в теории систем

В общей теории систем доказано, что большинство систем могут быть декомпозированы на базовые представления подсистем. К ним относят: последовательное (каскадное) соединение элементов, параллельное соединение элементов, соединение с помощью обратной связи.

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

Зачем декомпозировать

Понять, что и в каком поряд­ке делать. «Доба­вить счёт­чик на стра­ни­цу» кажет­ся зада­чей для фронтенд-разработчика. Но на самом деле он смо­жет сде­лать свою часть, толь­ко когда будет гото­ва база дан­ных и АПИ — меха­низм, по кото­ро­му эти дан­ные под­тя­ги­ва­ют­ся на сайт.

Если фрон­тенд попро­бу­ет сам пред­по­ло­жить, как будет выгля­деть запрос, то после инте­гра­ции могут всплыть непред­ви­ден­ные баги: бэкенд мог реа­ли­зо­вать АПИ не так, как думал фронтенд-разработчик. Деком­по­зи­ция помо­жет понять, с какой сто­ро­ны под­сту­пить­ся и в какой после­до­ва­тель­но­сти дви­гать­ся.

Оце­нить сро­ки. Когда зада­ча раз­ло­же­на на части, мож­но оце­нить по вре­ме­ни каж­дую и понять, сколь­ко потре­бу­ет­ся на всё вме­сте. Понят­но, что не полу­чит­ся запу­стить счёт­чик за день, если толь­ко на базу дан­ных и АПИ нуж­но два.

Упро­стить тести­ро­ва­ние. Тести­ро­вать про­ще, когда понят­но, что нуж­но про­ве­рить. В слу­чае со счёт­чи­ком: базу дан­ных, метод и вёрст­ку.

Рас­ста­вить при­о­ри­те­ты. Деком­по­зи­ция может пока­зать, что зада­ча боль­шая и тре­бу­ет вре­ме­ни. Напри­мер, если мар­ке­то­лог хочет ука­зать не толь­ко коли­че­ство поку­пок, но и коли­че­ство горо­дов, в кото­рые товар достав­ля­ли. Раз­ра­бот­чик может пока­зать, что делать всё вме­сте — две неде­ли, но счёт­чик поку­пок мож­но выка­тить быст­рее. А мар­ке­то­лог уже решит, как луч­ше посту­пить.

Что такое декомпозиция?

Декомпозиция — это разделение крупного на составные системы вплоть до самых мелких частей — до элементарных и понятных действий. Это способ упростить объект, но в то же время сохранить его целостность.

Это разделение на подпункты жизни, ее отдельных сфер, целей, задач, проблем, проектов.

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

Наверняка вы слышали такой термин тайм-менеджмента, как «Cъесть слона по кускам» — это вот как раз про декомпозицию. Разделить на куски, сделать бифштексы, порезать еще на кусочки поменьше и легко потихоньку съесть один за другим, когда они все лежат перед тобой на тарелке, маленькие и готовые к употреблению.

 Что такое декомпозиция целей и как она помогает достигать результатов

 
Крупная цель разбивается на подцели, потом еще на подцели, на конкретные шаги, более мелкие шаги и так далее.

Декомпозиция может иметь много уровней — оптимально 3, можно до 6 и даже более. Очень желательно, чтобы каждый финальный пункт занял у вас по времени максимум 1-2 часа. Нужно разбивать и разбивать задачи до того, как конечные будут такого объема.

Важнейший элемент — дедлайн напротив каждого мелкого шага.

Основные принципы

Прежде чем углубляться в теорию, давайте немного поговорим об инструменте, которым мы будем пользоваться.

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

Что такое декомпозиция целей и как она помогает достигать результатов

Такая иерархическая структура называется деревом целей. С его помощью можно окинуть свой план одним взглядом, понять, чем его дополнить, и сразу найти его слабые места. Почти все приведенные в этой статье примеры декомпозиции будут представлять собой такие деревья.

В принципе для построения деревьев можно использовать любую программу для создания схем — Microsoft Visio или, например, сервис draw.io. Древовидные структуры умеют создавать и некоторые современные органайзеры, например, LeaderTask.

Однако удобнее всего рисовать такие деревья в виде ментальной карты. Мы для этой цели будем пользоваться бесплатной программой X-mind.

Итак, приступим. В общем виде декомпозиция выглядит так:

  • Выбираем задачу или цель.
  • Спрашиваем себя: какие шаги потребуется предпринять для ее осуществления? Записываем результат. У нас получаются цели (или задачи) 2-го порядка.
  • Задаем к ним все тот же вопрос и снова записываем результат. Получаем цели 3-го порядка.
  • Повторяем эту процедуру необходимое количество раз.

Уровень детализации зависит от ваших потребностей. Если вам, например, нужен план ежедневных действий, то остановиться можно на тех задачах, которые занимают от 15 минут до 2 часов.

Что такое декомпозиция целей и как она помогает достигать результатов

В процессе декомпозиции важно соблюдать следующие правила:

1. Следить, чтобы записанных подзадач было достаточно для выполнения задачи верхнего уровня. Посмотрите на список подзадач и подумайте: если все это сделать, будет ли задача выполнена? Если нет, то каких-то подзадач явно не хватает.

2. Стараться не делить задачи более чем на 7 подзадач. По правилу Джорджа Миллера мы способны за один раз удержать в памяти 7±2 объекта, и если подзадач окажется больше, нам будет труднее воспринимать свои планы. В таких случаях можно разделить задачи на группы по какому-нибудь признаку:

Что такое декомпозиция целей и как она помогает достигать результатов

Впрочем, последнее правило не является аксиомой: делайте так, как вам удобнее.

Декомпозиция целей проекта

Самое главное отличие целей проекта от целей организации в том, что только ради цели меняется и/или появляется элемент организационной  структуры, после  достижения этой цели элемент исчезает. Однако отличий в принципе декомпозиции целей проекта от целей организации почти нет. Отметим, что при планировании проектов систематизация целей  в форме декомпозиции особо важна. Ввиду того, что проект раскладывается на части, где каждая часть имеет свою цель как подцель общего направления проекта, а как мы писали ранее, проект создаётся только ради достижения цели. Как и цели организации, цели проекта должны быть подвергнуты фильтрам. Приведём пример раскладки. Как видно на изображении при планировании проекта всё-таки удобнее верстать один документ.

Генеральная цель проекта
Подцель проекта А
подцель проекта А1
подцель проекта А2
подцель проекта А3
Подцель проекта В
подцель проекта В1
подцель проекта В2
подцель проекта В3

Оффлайновые задачи на запросы на подотрезках массива и универсальная sqrt-эвристика для них

Рассмотрим ещё одну интересную вариацию идеи sqrt-декомпозиции.

Пусть у нас есть некоторая задача, в которой есть массив чисел, и поступают запрашивающие запросы, имеющие вид — узнать что-то о подотрезке . Мы считаем, что запросы не модифицирующие, и известны нам заранее, т.е. задача — оффлайновая.

Наконец, введём последнее ограничение: мы считаем, что умеем быстро пересчитывать ответ на запрос при изменении левой или правой границы на единицу. Т.е. если мы знали ответ на запрос , то быстро сможем посчитать ответ на запрос или или или .

Опишем теперь универсальную эвристику для всех таких задач. Отсортируем запросы по паре: . Т.е. мы отсортировали запросы по номеру sqrt-блока, в котором лежит левый конец, а при равенстве — по правому концу.

Рассмотрим теперь группу запросов с одинаковым значением и будем обрабатывать все запросы этой группы. Ответ на первый запрос посчитаем тривиальным образом. Каждый следующий запрос будем считать на основе предыдущего ответа: т.е. двигать левую и правую границы предыдущего запроса к границам следующего запроса, поддерживая при этом текущий ответ. Оценим асимптотику: левая граница каждый раз могла двигаться на не более раз, а правая — не более раз в сумме по всем запросам текущей группы. Итого, если текущая группа состояла из запросов, в сумме будет совершено не более пересчётов. В сумме по всему алгоритму получится — пересчётов.

Простым примером на данную эвристику является такая задача: узнать количество различных чисел в отрезке массива .

Чуть более усложнённым вариантом этой задачи является задача с одного из раундов Codeforces.

Декомпозиция целей организации

Что такое декомпозиция целей и как она помогает достигать результатов 22 06 2015      Редактор       5 комментариев

В продолжение статьи про стратегические цели, было решено раскрыть термин декомпозиции. Плюс ко всему, появились просьбы самих читателей сделать это. Как говорится: «спрашивали – отвечаем».

Оглавление статьи

Характеристики и понятие темыМетоды декомпозиции целейДекомпозиция дерева целейПример декомпозиции целейДекомпозиция целей проектаВывод по статье

Это достаточно распространённый вопрос. Термин «декомпозиция» — полупрофессиональный, входящий в комплект отраслевых жаргонизмов. Но, на самом деле, он касается многих. Дело в том, что так называемая раскладка и вложения встречаются почти во всех сферах жизни. С момента нашего рождения, нас окружают элементы декомпозиции.

Например, игрушки, для мальчиков и для девочек, они в свою очередь делятся по другим характеристикам. Люди мыслят именно элементарными нормами логики. Везде: в быту, в законах, во врачебной практике, сохраняются представления о декомпозиции, потому как это привито нам с детства.

Касается, конечно, всех, только не везде нужно и не все этим пользуются. Попытаемся рассказать

Характеристики и понятие темы

В случае с целями имеет следующие характеристики:Надо понимать, что декомпозиция ради неё же самой никому не нужна. Она имеет три характеристики, а именно:

  1. Разделение;
  2. Достижение;
  3. Распределение.

Из них попытаемся сложить определение:

Декомпозиция целей организации – разделение вышестоящих целей для их достижения и дальнейшего распределения между ответственными исполнителями.

https://www.youtube.com/watch?v=G4MBF7u4npc

Грубо говоря, она является подробной расшифровкой вышестоящего уровня.

Продемонстрируем пример:

рис. Элементарная декомпозиция целей организации. Нажмите для увеличения.

Мы считаем, что оптимальным разделением является декомпозиция до третьего уровня. Третий уровень должен прояснять картинку и отвечать на вопрос: «что делать?».  Однако при создании дерева целей для больших организаций и/или холдинговых структур могут наблюдаться до шести вложений.

Методы декомпозиции целей

Основным методом является переход от общего к частному. В данном случае дедукция является той основой, которая формирует всю суть декомпозиции.

Однако можно выделить и обратную (индуктивную) форму, где частные моменты образуют общности. Это можно назвать агрегированием целей или композицией. Только такой метод характерен в проектировании инженерных систем, программировании и/или в создании программного обеспечения, а никак при выстраивании целевой структуры организации.

Декомпозиция дерева целей

Начнём сначала, а именно с декомпозиции стратегических целей

Сами стратегические цели образуют первый уровень раскладки. А вот появляются они уже из высших целей или целей нулевого уровня, таких как видение организации.

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

Стратегически цели организации декомпозируются на цели второго уровня, чаще всего на функциональные. В свою очередь, они  раскладываются на цели третьего уровня и становятся основой для функциональных политик, таких как политика в области маркетинга или политика в области производства.

Важной её характеристикой является «достижение», то есть декомпозиция дерева целей в организации делается для того, чтобы лучше достичь цели. Как проверить, что вы достигнете той или иной цели? Разбейте её на части — подцели и оцените – возможно, ли их достичь

Простите за бытовой пример — проще проглотить большой кусок, разрезав его на мелкие кусочки.

Вернёмся к признакам и приведём варианты декомпозиции по ним…

Пример декомпозиции целей

Приведём три варианта,  в зависимости от её модели. Заметьте, что и у коммерческих предприятий, и у некоммерческих структур (вроде спортивных клубов, например) здесь наблюдается схожесть. Даже, казалось бы, — «какой у спортивного клуба продуктовый подход в целях?», однако у них продуктами могут быть виды спорта или их подвиды.А вот и сами примеры:

рис. по функциональному признаку. Нажмите для увеличения.

рис. по территориальному признаку. Нажмите для увеличения.

рис. по продуктовому признаку. Нажмите для увеличения.

Метод 2: Разбиение по позитивным и негативным сценариям.

Фактически каждая функциональность имеет правильный\прямой сценарий использования, который приводит к ожидаемому\позитивному результату. Однако, когда пользователь работает с тем или иным функционалом могут произойти отклонения от правильного процесса: переданы не те данные, выполнены не все обязательные условия, нет необходимых прав доступа и т.п. Такие отклонения от прямого сценария работы приведут к негативным результатам (действие не выполнится, функция отработает некорректно и т.п.).

Соответственно мы можем выполнить декомпозицию на ожидаемый сценарий использования функционала и на неправильные, но возможные и вероятные сценарии работы

Для каждого сценария важно выделить отдельные пользовательские истории:

  • Для позитивного – реализация правильной работы функционала.
  • Для негативных – реализовать правильную отработку той или иной возможной ошибки, разработать альтернативный сценарий.

В качестве примера декомпозиции требований на позитивные\негативные сценарии снова рассмотрим функцию покупки в интернет магазине:

  • Позитивный сценарий: пользователь заходит в свою учетную запись на сайте и совершает покупку оплачивая ее по карте. Или в формате пользовательской истории: «как клиент я могу войти в свою учетную запись, чтобы совершить покупку по карте».
  • Негативный сценарий 1: клиент пробует совершить покупку без авторизации.
  • Негативный сценарий 2: пользователь пробует совершить покупку, но у него на счету не хватает средств и оплата не проходит.
  • Негативный сценарий n: клиент пробует совершить покупку, но его учетная запись заблокируется из-за неправильного ввода пароля.

Подобный тип декомпозиции позволяет выделить, проанализировать и запланировать отработку различных исключений и неверных сценариев использования ПО, которые в любом случае будут возникать.