Показатели качества пакетов прикладных программ. Ка́ чество програ́ ммного продукта — «степень соответствия присущих характеристик или требований». 2 группы: 1. Показатели, отражающие функциональные возможности пакета (для пользователей). 2. Показатели, характеризующие структурные свойства пакета (для разработчиков). К первой группе относят: · Точность результатов. · Время работы программы. · Дружественный интерфейс. o Возможность обработки аварийных ситуаций (неправильный ввод данных контроль ввода данных и пример правильного ввода данных). o Все аварийные ситуации должны быть описаны в документации. · Гарантии разработчика (будут выполнены все функции, которые необходимы: создание, печать, …). · Должна учитываться квалификация пользователя (удобство пользования диалоговым режимом). Ко второй группе относят: Программный код Стандарты: 1. Стандарт на разработку с использованием языковых конструкций ( структурированное программирование, объектно – ориентированное программирование, правильное использование типов данных, правильное использование констант и разрядной сетки машины, правильное использование оперативной памяти, правильно использование операторов ввода-вывода, правильное использование внешних программ и их компоновка, правильная обработка аварийных ситуаций). 2. Стандарт на документацию (включает все разделы программного обеспечения. в случае модернизации ПО должна быть модернизирована документации. использовать в опытной эксплуатации). Документация упрощает тестирование, уменьшает количество модификацию программного продукта и самой документации. ошибок, упрощает Методики оценки затрат на разработку программного продукта. 2 вида методик: 1. Инженерно-технические методики. 2. Математические методики. Инженерно- технические методики: 1. Метод экспертных оценок – оценка стоимости разработки экспертом из личного опыта (оценивает сложность разработки, учитывает субъективные и объективные факторы разработки, задает приблизительную оценочную стоимость, которая в процессе разработки может варьироваться). 2. Метод алгоритмического анализа – используется некий алгоритм, по которому производится расчет стоимости. Алгоритм составляется по спецификации на ПО. Если спецификация четкая и правильная, метод дает хорошие оценочные результаты. 3. Пошаговый метод – полуалгоритмический метод, делается оценка стоимости по уровням разработки. Оценка по уровням идет с помощью метода ЭО (1 уровень – главное меню. 2 – подменю, …). Складывая стоимость, получаем стоимостную оценку (хорошие результаты). 4. Закон Паркинсона – временная характеристика (договариваются о сроках на разработку, а затем рассчитывают стоимость всей разработки (субъективные и объективные факторы)). Метод часто используется, но из-за ограниченного времени качество программного продукта низкое. 5. Затраты на завершение разработки – по спецификации (алгоритмический метод) заключается договор: со стороны исполнителя существует недоработка в спецификации, заказчик и исполнитель договариваются о доработке программного продукта. 6. Психологический метод – объявляется конкурс на исполнителя. Заказчик формирует задачу и ждет начальные предложения от фирм-разработчиков (как разработать, средства и методы, стоимость). По такой методике работают все фонды (РФФИ, Сореса,…). Математические методы оценивают: общую стоимость разработки. срок завершения разработки. Используются математические методы из теории надежности. Экспериментально установлено, что зависимость суммарных затрат на разработку больших программных продуктов от времени отображается соотношением: , где E(t) – суммарные затраты на момент времени t. k – общая стоимость системы. a – максимальные затраты за единицу времени. Ежегодные затраты на систему: Зависимость Рэлея: a – максимальные затраты за единицу времени. От 0 до Tmax – период создания системы. От Tmax – период сопровождения системы. Использование такой зависимости возможно при следующих допущениях: 1. Количество задач, решаемых при создании программного продукта, конечно. 2. Последовательность решения задач образует пуассоновский поток случайных событий с интенсивностью λ. 3. Количество исполнителей пропорционально числу решаемых задач (каждый исполнитель работает над своим модулем независимо от других исполнителей). 4. Зависимость вероятности правильного решения от времени выражается прямой пропорциональной зависимостью: Для пуассоновского потока вероятность того, что в интервале [0.t] не произошло ни одного события, имеет показательное распределение. T – момент времени, когда событие произошло, т.е. задача решена. Тогда по определению функции распределения: Вероятность того, что событие произошло: Скорость решения задачи (частота событий) – плотность распределения случайной величины (производная от функции распределения : Пусть p – вероятность правильного решения задачи. Поток правильных решений получается из потока общих решений путем прореживания, т.е. из потока с вероятностью p изымаются правильные решения. Прореженные потоки называются p-преобразованиями. Согласно свойствам пуассоновского потока p-преобразованный поток – пуассоновский поток с интенсивностью pλ. Для потока правильных решений выписывается соотношение: (1) => скорость правильного решения: (2) Если вероятность правильного решения задачи p является функцией времени, то по определению функции распределения выражения (1) и (2) примут следующий вид: Согласно допущению 4 P(t)=α·t => Пусть , тогда И общие затраты Ежегодные затраты выражаются как производная от общих затрат: Исходят из того, что нужно рассчитать 2 параметра. Методика дает оценочные характеристики параметров, которые по мере разработки программного продукта могут корректироваться. Из опыта крупных компаний следует, что допущения 1-4 выполняются. Кортеж программы. Факторы, влияющие на надежность ПО (кортежей): 1. Структура программы (т.е. ее исходный текст): максимально современный язык программирования с использованием методов структурного и объектно-ориентированного программирования => min скорость работы с программой, увеличение производительности. 2. Окружающая среда (оболочка) – операционная система, драйверы устройств, прикладные и системные программы. 3. Режим эксплуатации программы (правильное использование объемов данных). 4. Документация: точность и правильность составления. Экономические характеристики показателей качества. 1. Затраты на исправление кортежа. 2. Убытки от ошибок кортежа. Периоды эксплуатации кортежа. 1. Начальное освоение кортежа характеризуется относительно большой частотой появления ошибок из-за некорректной документации или работы программы. 2. Отладка кортежа – нормальный режим эксплуатации кортежа, характеризуется постепенным уменьшением ошибок. 3. Нормальная эксплуатация кортежа – характеризуется низкой или нулевой частотой появления ошибок. 4. Начальный износ кортежа (оборудования) – частота ошибок увеличивается, требуется корректировка документации или программы. 5. Полный отказ кортежа – требуется замена или новая установка программы. Затем осуществляется переход на 1 этап. Экономические оценки надежности программы. Факторы, обуславливающие моральное старение кортежа: 1. Появление новых задач, не предусмотренных в данном программном продукте. 2. Окончание работ, для которых была написана программа. 3. Появление новых стандартов или требований к входной или выходной информации. 4. Изменение требований к времени решения задач. 5. Введение новой ОС или оболочки. 6. Изменение базового языка программирования. Условие перехода на новый кортеж: Пусть Р1 – остаточная стоимость эксплуатации старого кортежа от данного момента времени до момента окончательного старения кортежа. Р2 – стоимость начальной эксплуатации нового кортежа за тот же период времени. З2 – разовые затраты на освоение персоналом нового кортежа. Э2 – экономия затрат за счет возможной автоматизации некоторых функций, которые в старой программе выполнялись вручную. Условие эффективности перехода на новый кортеж: Ограничения: Исходим из того, что программа допускает ошибки, которые можно исправить двумя способами: 1. Скорректировать документацию, чтобы обходить эти ошибки. 2. Корректировка программы или не использовать функцию, которая не работает. Показатели: 1. Ценовые характеристики эксплуатации: · Средняя зарплата аналитика (Za). · Средняя зарплата пользователя (Zп). · Периодичность выплаты зарплаты (Tz). · Общее число аналитиков (Ma). · Общее число пользователей (операторов) (Mп). 2. Временные характеристики эксплуатации: · Среднее время обращения к программе по существующей документации (Sо). · Среднее время обращения к программе по скорректированной инструкции (Sи). · Среднее время анализа ошибки и корректировки документации (Sа). · Среднее время освоения нового кортежа аналитиком (Snа). · Среднее время освоения нового кортежа пользователем (Snu). · Среднее время выполнения новых функций средствами старого кортежа (Tc). · Среднее время обращения к новой функции в новом кортеже (Тn). · Доля обращений к новой функции среди всех обращений к кортежу (V n). 3. Характеристики числа обращений и ошибок: · Число обнаруженных ошибок в кортеже (f). · Оценка ожидаемого числа ошибок в новом кортеже (f’). · Оценка остаточного времени эксплуатации (То). · Число проведенных обращений к кортежу (k). · Время реальной эксплуатации кортежа (Т). · Среднее число обращений к кортежу на одно повторение раздела документации или средняя повторяемость работы каждого раздела(А). · Частота обращения к кортежу (V). · Вероятность появления ошибки в области исходных данных (Рош). 2 варианта расчета эффективности: 1. Когда оценка ожидаемого числа ошибок в новом кортеже f’ известна. 2. Когда f’ неизвестна. Рассмотри 1 вариант: Пусть Со – цена документации: обращения к кортежу при использовании нескорректированной Со=Zп·Sо/Tz Си – цена дополнительной работы по выполнению скорректированной документации: Cи=Zп·Sи/Тz Са – цена работы аналитика при разборе ошибки и выработке рекомендаций по корректировке документации: Са=Za·Sa/Tz Среднее число повторений каждой инструкции m: m=T·V/A за время эксплуатации. Kо – ожидаемое число обращений к программе: Kо =То·V Тогда средние прогнозируемые затраты на 1 обращение к программе по результатам времени эксплуатации Т можно определить как величину q, не превышающую значения этой величины в прошлом: При достаточно большом k: Тогда Средние по времени затраты за дополнительное время эксплуатации программы в будущем составляют величину, не превышающую произведение стоимости 1 обращения на число обращений: Отсюда затраты на дополнительное время эксплуатации равны произведению средних по величине затрат на время дополнительной эксплуатации: Ko Оценим затраты на введение нового кортежа при тех же условиях. Рассмотрим стоимость эксплуатации нового кортежа Р2: Р2=Р21+Р22+Р23 – стоимость обращения к новому кортежу при использовании старой документации: - стоимость обхода прогнозируемой ошибки при использовании скорректированной документации: - стоимость исправления прогнозируемой ошибки: З2 – разовые затраты на освоение персоналом новой документации: Э2 – экономия затрат за счет автоматизации новых функций: , где – средний выигрыш на 1 обращении: Т.о. имеет вид: Рассмотрим вариант 2: Полагают, что новая программа не лучше старой, т.е. число обнаруженных ошибок в старой программе равно числу прогнозируемых ошибок в новой программе. Тогда условие перехода на новый кортеж будет выглядеть так: З2 и Э2 такие же, как и в варианте 1.