Метрики программной продукции: трудоёмкость разработки программного обеспечения и модель COCOMO II
Автор: Ставенко С.С., Раткевич А.И., Харитонов А.Ю.
Журнал: Экономика и бизнес: теория и практика @economyandbusiness
Статья в выпуске: 5-2 (39), 2018 года.
Бесплатный доступ
Данная работа посвящена такому актуальному вопросу, как анализ важности таких характеристик программных средств как стоимость и трудоёмкость. В центре внимания работы находятся различные системы оценки трудоёмкости и стоимости программного обеспечения. Раскрывается причина их несостоятельности и неэффективности. Более подробно рассматривается одна из самых популярных и используемых на практике моделей оценки стоимости COCOMO II и выполняется анализ её достоинств.
Методы оценки
Короткий адрес: https://sciup.org/170180976
IDR: 170180976
Software metrics: problems of software development and COCOMO II model
The article analyzes the importance of such software features as cost and labor intensity. Examples of various systems for estimating the complexity and cost of software are given. The cause of their insolvency and inefficiency is revealed. In more detail, one of the most popular and used in practice models of COCOMO II cost estimation is considered and its merits are analyzed.
Текст научной статьи Метрики программной продукции: трудоёмкость разработки программного обеспечения и модель COCOMO II
Сегодня производство программного обеспечения обязательно должно оцениваться не только по качеству [1,2] и ряду других важных характеристик [3], но и по стоимости производства.
Трудоёмкость - это важный обобщающий показатель затрат труда на производство единицы продукции. Трудозатраты - объём работ необходимый для того чтобы достичь определённую цель. Обычно для измерения трудозатрат используют такую условную единицу как человеко-часы, а чаще человеко-месяцы.
Для определения последующих при разработке программного средства трудозатрат используются ориентиры, включающие следующее:
-
- задачи, которые будет выполнять ПО;
-
- задача разработки ПО (разработка архитектуры, написание кода, тестирование);
-
- задачи поддержки (менеджмент, см);
-
- дополнительные затраты (командировки, оборудование);
-
- используемые инструменты;
-
- опытность разработчиков.
Трудозатраты на разработку программных средств могут меняться в довольно обширных рамках и их оценка на данном этапе развития индустрии информационных технологий очень важная задача, однако она является достаточно сложной [4].
Для её выполнения есть большое количество моделей, но, к сожалению, большинство из них устарели и недостаточно отражают современное состояние сферы ИТ.
Например, модель линейного подхода в котором основной мерой трудозатрат является количество строк кода, его необъективность очевидна и доказывается тем, что более опытный программист пишет короче, допускает меньшее количество ошибок [5], нежели начинающий и это неоспоримый плюс при изменении, отладке или же доработке существующего кода. Однако такой метод оценки стимулирует разработчика к обратным действиям.
Другой пример: метод оценки Use Case Point (UCP) который был разработан в 1993 году [6]. Этот метод основан на использовании для оценки размера программного обеспечения примеров из унифицированного языка моделирования (Unified Modeling Language - UML). UCP оценивает такие элементы как: исполнители, техническая сложность и сложность среды. Сама же оценка производится по формуле:
UCP = (UUCW + UAW) x TCF x ECF где UUCW - нескорректированный вес прецедента,
UAW - нескорректированный вес исполнителя,
TCF - коэффициент технической сложности,
ECF - коэффициент сложности среды.
Эта система оценки более полно учитывает всё разнообразие факторов разработки и рисков [7,8], однако, вышеуказанные факторы не охватывают все многообразие возможных оценок проекта.
Найти идеальный подход к решению проблемы оценки трудоёмкости и, следовательно, стоимости программного обеспечения затруднительно, но модель оценки COCOMO II, по-нашему мнению, охватывает большинство сторон разработки и именно поэтому она стала такой популярной и широко используемой технологией оценки.
COnstructive COst MOdel (разработанная модель стоимости) – это модель, созданная Барри Боэмом. Представляет собой алгоритмическую модель оценки стоимости разработки программного обеспечения, для работы с которой также нужно собирать данные о разрабатываемых проектах, которые позже будут использоваться в расчетных формулах [9]. Для использования этой модели используется регрессионная формула с параметрами [10].
Регрессионная модель создаётся из данных статистики, определяющих средние значения или связь между переменными. Основные качества этой модели:
-
- с её помощью создаётся прогнозирование одной переменой (количественное и качественное), которое зависит от значения других переменных;
-
- применение определённой техники статистики для поиска зависимостей (в том числе и взаимозависимо-стей) между переменными с целью спрогнозировать будущие значения.
Модель COCOMO – II это наследник более ранней модели COCOMO, которая была представлена ещё в 1981 г. Новая модель имеет в своей основе современные идеи и приспособлена к текущим методологиям разработки программных средств (например, к спи- ральной и итеративной моделям жизненного цикла ПО).
В COCOMO – II можно различить две стадии оценки: начальная или предварительная на начальном этапе и детальная после проработки архитектуры.
Преимуществами оценочной системы COCOMO – II являются:
-
- проста применения;
-
- факторы корректировки оценки
могут идеально подходить данной организации, так как система может принять дополнительные (уникальные) факторы для корректировки, которые определены организацией;
-
- процесс, который применяется
является повторяемым;
-
- прежний опыт позволит макси
мально точно откалибровать оценку;
-
- документация обязательна;
-
- является универсальной, потому
что умеет поддерживать разные так называемые «уровней» и «режимов»;
Но, к сожалению, в модели оценки COCOMO – II присутствуют и недостатки, основными из них являются следующие:
-
- опыт имеет свойство устаревать, поэтому оценки, сделанные на его основе, не всегда соответствует актуальному состоянию развития проекта;
-
- зависимость уровней от оценки размера (точность при оценивании должна быть высокая, а этого не всегда легко добиться);
-
- уровни взаимодействия персона
ла не учитываются;
-
- IDE не учитывается;
-
- большинство вопросов, связан
ных с АО, не учитываются;
По концепции Боэма, изначально трудозатраты делились следующим образом:
-
- 30% на дизайн;
-
- 30% на тестирование и кодиро
вание;
-
- 40% на тестирование и интегра
цию;
На рисунке 1 изображены фазы COCOMO-II.
Рисунок 1. Фазы, включаемые в COCOMO-II
Для того, чтобы успешно применять модель оценки COCOMO – II следует накапливать настолько больше данных, насколько это возможно, особенно оценок и тех результатов, которые получились фактически. Также стоит пригото- виться к выполнению повторной оценки и её перепроверке с самых начальных стадий, и калибровке моде-ли/инструмента в соответствии с теми потребностями, которые выдвинет конкретная организация.