ЛЕКЦИЯ 6 Оценка количественных и качественных характеристик ПО
Метрология (от греч. metron - мера и...логия), наука об измерениях, методах достижения их единства и требуемой точности. К основным проблемам метрологии относятся: создание общей теории измерений; образование единиц физических величин и систем единиц; разработка методов и средств измерений, методов определения точности измерений, основ обеспечения единства измерений и единообразия средств измерений (законодательная метрология); создание эталонов и образцовых средств измерений, проверка мер и средств измерений.
К основным проблемам метрологии относятся: создание общей теории измерений; образование единиц физических величин и систем единиц; разработка методов и средств измерений, методов определения точности измерений, основ обеспечения единства измерений и единообразия средств измерений (законодательная метрология); создание эталонов и образцовых средств измерений, проверка мер и средств измерений.
Историческими этапами в развитии метрологии стали: установление эталона метра (Франция, кон. 18 в.), создание абсолютных систем единиц (К. Гаусс, 1832), подписание международной Метрической конвенции (1875), разработка и установление в 1960 Международной системы единиц (СИ); в России - присоединение к Метрической конвенции и создание в 1893 Д. И. Менделеевым Главной палаты мер и весов (ныне - Научно-исследовательский институт метрологии им. Менделеева).
В 20 в. метрологические исследования отдельных стран координируются Международными метрологическими организациями.
Измерения, меры и метрики в разработке ПО
Измерения помогают оценить как продукт, так и сам процесс его разработки. В результате измерений определяется мера - количественная характеристика какого-либо свойства объекта. Некоторые измерения позволяют сразу определить свойства объекта. А остальные можно получить лишь за счет вычисления от значений опорных характеристик. Результаты подобных вычислений называют метриками. Зачастую понятие мера и метрика рассматривают как равноценные определения.
Измерения при разработке ПО необходимы для того, чтобы: определить или показать качество продукции; оценить производительность труда персонала, занятого разработкой; оценить выгоды (прибыль или доход), которые могут быть получены в результате разработки новых программных средств; сформировать основу (базовую линию) для последующих оценок; получить данные для обоснования запросов на дополнительные средства, обучение и т.п.
Измерения бывают прямые и косвенные. Результаты прямых измерений процесса разработки и сопровождения программного изделия: трудозатраты и стоимость, число строк кода (LOC - lines-of-code), размер требуемой памяти, скорость выполнения программы, число ошибок (дефектов), обнаруженных за определенный период времени. Косвенные измерения дают оценку функциональных возможностей, показателей качества программного продукта (надежность, эффективность, пригодность к сопровождению и т.п.).
Существует деление метрик на 3 группы: метрики производительности метрики качества продукции технические характеристики продукта.
Метрики производительности фокусируются на выходе процессов разработки ПО. Метрики качества позволяют судить о том, насколько близко соответствие программного изделия явным и подразумеваемым требованиям пользователя, т.е. пригодности изделия к использованию. Технические метрики в большей степени относятся к особенностям программного изделия, а не к процессу его разработки (например, логическая сложность изделия, модульность проекта и т.п.).
Вторая классификация метрик - классификация по признаку их ориентации: размерно-ориентированные метрики - используются для сбора результатов прямых измерений программного продукта и его качества, а также процесса разработки; функционально-ориентированные метрики, которые являются косвенными мерами, характеризующими функциональное назначение продукта и особенности его входных и выходных данных; человеко-ориентированные метрики, которые также являются косвенными мерами, позволяющими судить об отношении персонала (разработчиков и пользователей), об эффективности и качестве работы программного изделия, удобстве взаимодействия с ним, простоте обучения и т.д.
Размерно-ориентированные метрики Размерно-ориентированные метрики прямо измеряют программный продукт и процесс его разработки. Основываются такие метрики на LOC-оценках (Lines Of Code). LOC-оценка - это количество строк в программном продукте.
Принято регистрировать следующие показатели: общие затраты (в человеко-месяцах - чел.- мес); объем программного изделия (в тысячах строк исходного кода - KLOC); стоимость разработки (в тыс. рублей или в долларах $); объем документации (в страницах документов - СД); ошибки, обнаруженные в течение первого года эксплуатации (число ошибок - ЧО); число людей, работавших над изделием (человек); срок разработки (в календарных месяцах).
На основе перечисленных показателей вычисляются размерно-ориентированные метрики производительности и качества (для каждого проекта): Достоинства размерно-ориентированных метрик: 1) широко распространены; 2) просты и легко вычисляются. Недостатки размерно-ориентированных метрик: 1) зависимы от языка программирования; 2) требуют исходных данных, которые трудно получить на начальной стадии проекта; 3) не приспособлены к непроцедурным языкам программирования.
Функционально-ориентированные метрики Функционально-ориентированные метрики косвенно измеряют программный продукт и процесс его разработки. Вместо подсчета LOC-оценки при этом рассматривается не размер, а функциональность или полезность продукта.
Используется 5 информационных характеристик. 1. Количество внешних вводов EI. Подсчитываются все вводы пользователя, по которым поступают разные прикладные данные. Вводы должны быть отделены от запросов, которые подсчитываются отдельно. 2. Количество внешних выводов EO. Подсчитываются все выводы, по которым к пользователю поступают результаты, вычисленные программным приложением. В этом контексте выводы означают отчеты, экраны, распечатки, сообщения об ошибках. Индивидуальные единицы данных внутри отчета отдельно не подсчитываются.
3. Количество внешних запросов EIN. Под запросом понимается диалоговый ввод, который приводит к немедленному программному ответу в форме диалогового вывода. При этом диалоговый ввод в приложении не сохраняется, а диалоговый вывод не требует выполнения вычислений. Подсчитываются все запросы - каждый учитывается отдельно. 4. Количество внутренних логических файлов ILF. Подсчитываются все логические файлы (то есть логические группы данных, которые могут быть частью базы данных или отдельным файлом). 5. Количество внешних интерфейсных файлов ELF. Подсчитываются все логические файлы из других приложений, на которые ссылается данное приложение.
Вводы, выводы и запросы относятся к категории транзакций. Транзакция – это элементарный процесс, различаемый пользователем и перемещающий данные между внешней средой и программным приложением. В своей работе транзакции используют внутренние и внешние файлы.
Потом приступают к расчету метрики – количества функциональных указателей FP (Function Points). Автор методики – А. Албрехт (1979). Количество функциональных указателей вычисляется по формуле
После вычисления FP на его основе формируются метрики производительности, качества и т. д.:
Используем для расчетов метрическое значение производительности из базиса некоторой фирмы: Производительность = 25,5 [ FP / чел-мес ]; Произведем расчет следующих характеристик: Стоимость = Трудоемкость * 2000 руб
Область применения метода функциональных указателей - коммерческие информационные системы. Для продуктов с высокой алгоритмической сложностью используются метрики указателей свойств (Features Points). Они применимы к системному и инженерному ПО, ПО реального времени и встроенному ПО. Для вычисления указателя свойств добавляется одна характеристика - количество алгоритмов. Алгоритм здесь определяется как ограниченная подпрограмма вычислений, которая включается в общую компьютерную программу. Примеры алгоритмов: обработка прерываний, инвертирование матрицы, расшифровка битовой строки.
Достоинства функционально-ориентированных метрик: 1. Не зависят от языка программирования. 2. Легко вычисляются на любой стадии проекта. Недостаток функционально-ориентированных метрик: результаты основаны на субъективных данных, используются не прямые, а косвенные измерения. FP-оценки легко пересчитать в LOC-оценки. Результаты пересчета зависят от языка программирования, используемого для реализации ПО.
Определение числа функциональных точек является методом количественной оценки ПО, применяемым для измерения функциональных характеристик процессов его разработки и сопровождения независимо от технологии, использованной для его реализации. Подсчет функциональных точек помимо средства для объективной оценки ресурсов, необходимых для разработки и сопровождения ПО, применяется также в качестве средства для определения сложности приобретаемого продукта в целях принятия решения о покупке или собственной разработке.
Метод разработан на основе опыта реализации множества проектов создания ПО и поддерживается международной организацией IFPUG (International Function Point User Group). Существуют специальные программные средства, автоматизирующие проведение оценок по методу функциональных точек и позволяющие оценить, насколько быстро и с какими затратами в действительности удастся реализовать проект. Одним из таких средств является KnowledgePLAN продукт фирмы SPR.