Разработка сложных программных изделий


Измерения в программотехнике


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

• определить или показать качество продукции;

• установить производительность труда персонала, занятого раз­работкой;

• оценить выгоды (прибыль или доход), которые могут быть по­лучены в результате разработки новых программных средств;

• сформировать основу (базовую линию) для последующих оце­нок;

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

Принято различать два вида измерений: прямые и косвенные. Прямые измерения процесса разработки и сопровождения про­граммного изделия включают трудозатраты и стоимость. Непосред­ственные измерения программного продукта охватывают число строк кода (LOC — lines-of-code), размер требуемой памяти, ско­рость выполнения программы, число ошибок (дефектов), обнару­женных за определенный период времени. Косвенные измерения программного продукта включают его функциональные возмож­ности, показатели качества (надежность, эффективность, пригод­ность к сопровождению и т.п.).

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

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

Во-вторых, выделяют группы метрик по их ориентации:

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


• функционально- ориентированные метрики, которые косвенно характеризуют функциональное назначение продукта и особеннос­ти его входных и выходных данных;



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

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

• общие трудозатраты (в человеко-месяцах — ЧМ);

• объем программного изделия (в тысячах строк исходного кода — KLOC);

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

• объем документации (в страницах документов — СД);

• ошибки, обнаруженные в течение года эксплуатации (число ошибок — 40);

• число людей, работавших над изделием (человек);

• срок разработки (в календарных месяцах).

На основе этих данных обычно подсчитываются простые метри­ки для оценки производительности труда (KLOC/4M) и качества изделия (40/KLOC).

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

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

Для оценки характеристик программного изделия и процесса его разработки была предложена мера, получившая название функ­циональной точки (FP). Значение функциональной точки вычисля­ется на основании пяти характеристик разрабатываемого про­граммного изделия с учетом четырнадцати факторов, отражающих требования, предъявляемые к изделию и особенностям его функци­онирования.К характеристикам изделия относятся:

• число входов пользователя;

• число выходов пользователя;

• число запросов пользователя;

• число файлов базы данных;

• число внешних интерфейсов.

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

На основе большого числа программных разработок было уста­новлено соотношение между обеими метриками для разных языков программирования. Усредненные данные имеют вид:

Язык программирования

Ассемблер

Кобол

Фортран

Паскаль

Ада

Объектно-ориентированные языки

Языки 4-го поколения

Генераторы кода

LOC/FP

300 100 100 90 70 30 20 15


Содержание раздела