Qualitative SIMPLE

John D. McGregor, “Qualitative SIMPLE”, Journal of Object Technology, Volume 7, no. 7 (September 2008), pp. 7-16, doi:10.5381/jot.2008.7.7.c1.

Изложение в pdf – Qualitative SIMPLE

В данной статье описывается SIMPLE, Structured Intuitive Model of Product Line Economics. Это метод для моделирования стоимости и прибыли от ПО в течении его времени жизни. Описываемый метод позволяет найти качественную оценку, а не количественную, т.е. быстро оценить затраты и прибыль.

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

Базовая модель расходов состоит из четырех частей:

<latex>C_{org}(\square) + C_{cab}(\square) + \sum_{i=1}^{n}(C_{unique_i}(\square) + C_{reuse_i}(\square))</latex>

где <latex>n</latex> – число продуктов.

<latex>C_{org}</latex>: расходы на организацию продаж. Обычно эту стоимость можно разделить на две части: стоимость старта и стоимость поддержки производства.

<latex>C_{cab}</latex>: суммарная стоимость всех компонентов продукта в течение всего производства. Идет речь о компонентах, которые используются во многих продуктах в течение производства.

<latex>C_{unique_i}</latex>: это стоимость уникальных (свойственных только этому конкретному продукту <latex>i</latex>) компонентов.

<latex>C_{reuse_i}</latex>: это суммарная стоимость переиспользования компонентов в продукте <latex>i</latex>. Процесс стремится минимизировать эту стоимость путем предоставления инструкций для компонента.

Дополнительные обозначения:

<latex>Ben_j</latex>: это ожидаемые выгоды от использования подхода линейки продуктов.

<latex>C_{prod}</latex>: это стоимость построения продукта в среде без линейки продукта.

<latex>product_t</latex>: этот параметр отвечает за определение продукта. Это может быть набор требований к продукту или точное имя продукта.

<latex>t_i</latex>: время.

<latex>C_{unique_t}(product_t,t_i)</latex>: стоимость уникальной части i-ого продукта, спецификация которого дана как <latex>product_t</latex> и он будет готов к времени <latex>t_i</latex>.

Один из способов использовать SIMPLE – построить оценки стоимости, используя Framework for Product Line Practices. См Рис. 1. Для ранней оценки в начальном исследовании наличие этой таблицы может помочь менеджеру сосредоточиться на одной вещи в один момент времени. Для того, чтобы компенсировать качество оценок, предлагается использовать симуляцию Монте-Карло.

SIMPLE

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

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

Структурная связь

На следующем рисунке, продукт и базовый актив ядра связаны через “положительную пропорциональность” (P+). Этот фрагмент моделирует тот факт, что, как правило, если количество продуктов увеличивается, то стоимость базы активов ядра также увеличивается. Стоимость моделируется с помощью количественного пространства (quantity space), в котором величина либо возрастает, либо убывает, либо постоянна. Количество продуктов моделируется как значение, которое является положительным с положительной производной.

Фрагмент качественной модели

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

Многие решения линейки продуктов, в частности, первоначальное решение о заимствовании – инвестиционные. Многие инвестиционные решения оцениваются по сумме отдачи, которая будет получена в результате инвестиций. Стандартная формула для вычисления окупаемости инвестиций (ROI):

<latex>\frac{a}{b}</latex> где a – доходы, полученные от инвестиций; b – полная сумма затрат.

Один из способов смоделировать выгоду от заимствования продуктовой линейки является сравнение стоимости строительства системы текущим способом и построения системы в линейке продуктов. Функция <latex>Ben</latex> может быть использована, чтобы более точно отражать преимущества продуктовой линейки, но там должны быть только выгоды, непосредственно связанные с подходом линейки продуктов. См. [Böckle 04].

Контекст, в котором линия продуктов реализуется, меняется со временем. [Ganesan 06] обсуждает, как организация производственной линии должна периодически обновлять основные средства. По существу эти затраты рассматриваются в функциях <latex>C_{cab}</latex> и <latex>C_{unique}</latex>. Технологии, информация о рынке, а также знания о предметной области, учитывающиеся в основных активах, имеют конечный срок службы. В некоторых областях этот срок может быть очень маленьким - несколько месяцев, или медленнее - год или больше. Модель SIMPLE учитывает это время жизни путем вычисления модели в тех сегментах, где каждый сегмент примерно равен отрезку времени до обновления. Со временем некоторые из артефактов, которые первоначально рассматривались как уникальные, будут перемещены в базу активов. Это происходит, когда команда продукта признает необходимость в той же функциональности, которая была использована в другом продукте. В продвижении к основным активам, затраты, связанные с двумя вхождениями в <latex>C_{unique}</latex> перемещаются в <latex>C_{cab}</latex>. Чтобы обеспечить возможность многократного использования, <latex>C_{cab}</latex> также возрастает на величину, необходимую для обновления уникальной части. Идея состоит в том, что с течением времени уменьшение <latex>C_{unique}</latex> будет больше, чем увеличение <latex>C_{cab}</latex>.

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

SIMPLE помогает организации быстро и качественно принять правильную стратегию с обоснованием (с учетом затрат и выгод).

  1. Günter Böckle, Paul Clements, John D. McGregor, Dirk Muthig, and Klaus Schmid. Calculating ROI for Software Product Lines, IEEE Software, 2004.
  2. Jan Bosch.Maturity and Evolution in Software Product Lines: Approaches, Artefacts and Organization,Second Conference Software Product Line Conference, SPLC2, August 2002.
  3. Paul Clements, John D. McGregor, and Sholom G. Cohen. The Structured Intuitive Model for Product Line Economics(SIMPLE),Software Engineering Institute, CMU/SEI-2005-TR-003.
  4. Dharmalingam Ganesan, Dirk Mutig, and Kentaro Yoshimura. Predicting Return-on Investment for Product Line Generations, 10th International Software Product Line Conference (SPLC'06) pp. 13-22, 2006.
  5. Software Engineering Institute, www.sei.cmu.edu/productlines, 2008.