====== 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.