====== Qualitative SIMPLE ======
John D. McGregor, “Qualitative SIMPLE”, Journal of Object Technology, Volume 7, no. 7 (September 2008), pp. 7-16, [[http://dx.doi.org/10.5381/jot.2008.7.7.c1|doi:10.5381/jot.2008.7.7.c1]].
Изложение в pdf -- [[https://bitbucket.org/Xpast/pps_papers/raw/1e5f84025cb6dc0ee2f4edd81f56fd246c49978a/Qualitative%20SIMPLE%20-%20%D0%B8%D0%B7%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5.pdf|Qualitative SIMPLE]]
==== Введение ====
В данной статье описывается SIMPLE, Structured Intuitive Model of Product Line Economics. Это метод для моделирования стоимости и прибыли от ПО в течении его времени жизни. Описываемый метод позволяет найти качественную оценку, а не количественную, т.е. быстро оценить затраты и прибыль.
Часто необходимо быстро оценить затраты и прибыль, не прибегая к сложным ресурсоемким вычислениям. Модель SIMPLE предоставляет множество функций, которые учитывают расходы и доходы построения продукта. Мы не ограничиваем функции расходов и доходов, предоставляя свободу выбора аналитику. Аналитик подбирает ее исходя из ситуации.
==== Описание метода ====
Базовая модель расходов состоит из четырех частей:
C_{org}(\square) + C_{cab}(\square) + \sum_{i=1}^{n}(C_{unique_i}(\square) + C_{reuse_i}(\square))
где n -- число продуктов.
C_{org}: расходы на организацию продаж. Обычно эту стоимость можно разделить на две части: стоимость старта и стоимость поддержки производства.
C_{cab}: суммарная стоимость всех компонентов продукта в течение всего производства. Идет речь о компонентах, которые используются во многих продуктах в течение производства.
C_{unique_i}: это стоимость уникальных (свойственных только этому конкретному продукту i) компонентов.
C_{reuse_i}: это суммарная стоимость переиспользования компонентов в продукте i. Процесс стремится минимизировать эту стоимость путем предоставления инструкций для компонента.
Дополнительные обозначения:
Ben_j: это ожидаемые выгоды от использования подхода линейки продуктов.
C_{prod}: это стоимость построения продукта в среде без линейки продукта.
product_t: этот параметр отвечает за определение продукта. Это может быть набор требований к продукту или точное имя продукта.
t_i: время.
C_{unique_t}(product_t,t_i): стоимость //уникальной// части i-ого продукта, спецификация которого дана как product_t и он будет готов к времени t_i.
==== Использование ====
Один из способов использовать SIMPLE -- построить оценки стоимости, используя Framework for Product Line Practices. См Рис. 1. Для ранней оценки в начальном исследовании наличие этой таблицы может помочь менеджеру сосредоточиться на одной вещи в один момент времени.
Для того, чтобы компенсировать качество оценок, предлагается использовать симуляцию Монте-Карло.
{{https://bytebucket.org/Xpast/pps_papers/raw/1e5f84025cb6dc0ee2f4edd81f56fd246c49978a/spr.png|SIMPLE}}
==== Качественная оценка ====
На начальных этапах исследования чтобы определить, следует ли запустить линейку продуктов, часто бывает достаточно рассмотреть относительные издержки, а не точные. Относительное сравнение затрат между сценариями позволяет читателям сосредоточиться на отношениях между затратами и что будет происходить с этими затратами, а также как происходят изменения в линейке продуктов.\\
Предлагается строить таблицу, в которой несколько вариантов может быть описано относительно друг друга.
Сценарии, как правило, более сложны на практике, и лучший выбор не всегда очевиден. Качественное моделирование представляет собой более формальный подход, который дает возможность оценить все более точно за счет большего количества времени и усилий. Фрагмент модели на рисунке ниже показывает коренные структурные отношения между продуктом и продуктовой линейкой: линейка продуктов содержит продукты.
Другие фрагменты будут связывать основные активы и уникальные предметы с производственной линией.
{{https://bytebucket.org/Xpast/pps_papers/raw/1e5f84025cb6dc0ee2f4edd81f56fd246c49978a/fig2.png?400|Структурная связь}}
На следующем рисунке, продукт и базовый актив ядра связаны через "положительную пропорциональность" (P+). Этот фрагмент моделирует тот факт, что, как правило, если количество продуктов увеличивается, то стоимость базы активов ядра также увеличивается. Стоимость моделируется с помощью количественного пространства (quantity space), в котором величина либо возрастает, либо убывает, либо постоянна. Количество продуктов моделируется как значение, которое является положительным с положительной производной.
{{https://bytebucket.org/Xpast/pps_papers/raw/1e5f84025cb6dc0ee2f4edd81f56fd246c49978a/fig3.png?400|Фрагмент качественной модели}}
Качественные рассуждения предоставляют технику для моделирования сущностей, количества и взаимодействия без числовых значений.
==== Результат инвестиций (ROI) ====
Многие решения линейки продуктов, в частности, первоначальное решение о заимствовании -- инвестиционные. Многие инвестиционные решения оцениваются по сумме отдачи, которая будет получена в результате инвестиций. Стандартная формула для вычисления окупаемости инвестиций (ROI):
\frac{a}{b}
где a -- доходы, полученные от инвестиций; b -- полная сумма затрат.
Один из способов смоделировать выгоду от заимствования продуктовой линейки является сравнение стоимости строительства системы текущим способом и построения системы в линейке продуктов. Функция Ben может быть использована, чтобы более точно отражать преимущества продуктовой линейки, но там должны быть только выгоды, непосредственно связанные с подходом линейки продуктов. См. [Böckle 04].
==== Учитываем время ====
Контекст, в котором линия продуктов реализуется, меняется со временем. [Ganesan 06] обсуждает, как организация производственной линии должна периодически обновлять основные средства. По существу эти затраты рассматриваются в функциях C_{cab} и C_{unique}.
Технологии, информация о рынке, а также знания о предметной области, учитывающиеся в основных активах, имеют конечный срок службы. В некоторых областях этот срок может быть очень маленьким - несколько
месяцев, или медленнее - год или больше. Модель SIMPLE учитывает это время жизни путем вычисления модели в тех сегментах, где каждый сегмент примерно равен отрезку времени до обновления.
Со временем некоторые из артефактов, которые первоначально рассматривались как уникальные, будут перемещены в базу активов. Это происходит, когда команда продукта признает необходимость в той же функциональности, которая была использована в другом продукте. В продвижении к основным активам, затраты, связанные с двумя вхождениями в C_{unique} перемещаются в C_{cab}. Чтобы обеспечить возможность многократного использования, C_{cab} также возрастает на величину, необходимую для обновления уникальной части. Идея состоит в том, что с течением времени уменьшение C_{unique} будет больше, чем увеличение C_{cab}.
==== Вывод ====
Первичные оценки, полученные с помощью SIMPLE хоть и являются высокоуровневыми, но позволяют быстро принять решение по продуктовой линейке. SIMPLE можно использовать для того, чтобы понять, какие продукты следует включить в продуктовую линейку и как организовать процесс разработки.
SIMPLE помогает организации быстро и качественно принять правильную стратегию с обоснованием (с учетом затрат и выгод).
==== Список литературы ====
- Answers.com. http://www.answers.com/topic/return-on-investment, 2008.
- Günter Böckle, Paul Clements, John D. McGregor, Dirk Muthig, and Klaus Schmid. Calculating ROI for Software Product Lines, IEEE Software, 2004.
- Jan Bosch.Maturity and Evolution in Software Product Lines: Approaches, Artefacts and Organization,Second Conference Software Product Line Conference, SPLC2, August 2002.
- 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.
- 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.
- Garp3, http://hcs.science.uva.nl/QRM/, 2008.
- Software Engineering Institute, www.sei.cmu.edu/productlines, 2008.