Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тех-экон. обоснование.doc
Скачиваний:
58
Добавлен:
26.03.2015
Размер:
366.59 Кб
Скачать

2. Оценка трудоемкости и стоимости разработки программного продукта на основе его размера

Общее описание метода.

Естественный подход к решению любой проблемы, если она слишком сложная, заключается в ее разделении на более простые, пока они не ока­жутся пригодными для решения. Затем каждая из подпроблем решается от­дельно, при этом предполагается, что все решения могут быть объединены в одно общее. Оценка проекта программного продукта - это также форма реше­ния проблемы и в большинстве случаев эта проблема также слишком слож­ная. Поэтому проблема , которую требуется решить, должна быть предвари­тельно представлена в виде более простых и более управляемых подпроб­лем.

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

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

• трудозатраты (в человеко-месяцах);

  • стоимость разработки (в соответствующей валюте);

  • объем написанных программ (в строках исходного кода);

  • численность разработчиков (человек);

  • объем документации (в страницах) и т.п.

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

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

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

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

  1. На основе предварительного системного анализа должны быть опре­делены основные функциональные подсистемы будущего программного про­дукта и ассмотрено их содержание с точки зрения сложности их программной реализации как отдельного функционального блока программ.

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

  3. В процессе экспертной оценки размеров каждого блока должны опре­деляться доверительные границы каждой оценки.

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

5. Для определения стоимости и трудоемкости разработки проекта требуются данные о производительности труда исполнителей (строк кода в чело­веко-месяцах) и средней стоимости создания строки кода. Эти данные обычно характеризуют уровень производства, достигнутый в организации на данный период времени и должны быть взяты из базы данных о предыдущих проек­тах подобного типа. Такая база данных может создаваться в организации, где планируется разработка программного проекта, но может использоваться ин­формация из хранилищ других организаций. На практике использование этих исторических данных обычно дополняется их экспертной корректировкой, учитывающей особенности, сложность и объемы каждого из блоков.

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

  2. В результате суммирования данных по всем блокам получаем оценки трудоемкости и стоимости разработки всего изделия и степень доверия этих оценок.

Задание 1. Оценка трудоемкости, длительности и стоимости разработки программного продукта на базе оценки его размера в строках исходного кода

Методические указания к выполнению задания 1

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

На основе полученных оценок найти оценки суммарного размера про­граммного продукта и общую трудоемкость и стоимость его разработки, указав границы доверительных интервалов этих оценок с вероятностью 0,997 попа­дания в этот интервал.

При выполнении задания для расчетов использовать табличный про­цессор.

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

Последовательность выполнения задания.

Таким образом, последовательность действий по оценке размеров про­граммного продукта, а затем трудоемкости и стоимости его разработки может быть представлена в следующем виде:

1) в результате предварительного анализа требований пользователя дол­жен быть определен состав функциональных блоков, образующих авто­матизированную систему;

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

  2. на основе экспертных данных для каждого функционального блока оп­ределить среднее значение для числа строк кода и среднеквадратическое отклонение от среднего, т.е. установить границы доверительного интервала для размеров каждого блока.

Среднее значение (математическое ожидание) для размера блока вы­числяется по формуле МО=(а + 4m + b) / 6, где

  • а - наименьший возможный размер блока,

  • b - наибольший возможный размер блока,

  • m - наиболее вероятный размер блока.

Среднеквадратическое значение в предположении нормального распре­деления для оценки определяется по формуле СКВ = (b - а) /6;

  1. на основе результатов подсчета размеров отдельных блоков опреде­лить средний размер всего продукта как сумму математических ожиданий размеров блоков и общее среднеквадратическое отклонение как ко­рень квадратный из суммы квадратов среднеквадратических отклонений для отдельных блоков;

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

  1. для определения стоимости и трудоемкости разработки отдельных бло­ков использовать исторические данные о средней производительности труда (СИК/ЧМ) и стоимости разработки одной строки кода, собранныепо предыдущим проектам. Значения этих показателей определяются особенностями функциональных блоков и их значения также выбирают­ся экспертами;

  2. определить общую стоимость и трудоемкость разработки суммировани­ем соответственно стоимостей и трудозатрат для отдельных функцио­нальных блоков;п

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

Пример расчета параметров проекта.

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

Таблица 1