- •Ответы на экзаменационные вопросы
- •1. Функциональность программного средства (functionality)
- •Оценивание качества разработки программ на основе метрик Холстеда. Измеримые свойства алгоритмов
- •Длина программы
- •Объем программы
- •Потенциальный объем V*
- •Значение уровня языка
- •{Ri (ej)} e -event.
- •Модель Джелинского-Моранды.
- •Модель Шика-Уолвертона.
- •Модель Нельсона. Применение последовательного анализа Вальда для снижения количества прогонов программы.
1. Функциональность программного средства (functionality)
Совокупность свойств ПС, определяемая наличием и конкретными особенностями набора функций, способных удовлетворять заданные или подразумеваемые потребности качества наряду с ее надежностью как технической системы.
2. Удобство использования программного средства (usability)
Совокупность свойств ПС, характеризующая усилия, необходимые для его использования, и оценку результатов его использования заданным кругом пользователей ПС.
3. Эффективность программного средства (efficiency)
Совокупность свойств ПС, характеризующая аспекты его уровня пригодности, которые связаны с характером и временем использования ресурсов, необходимых при заданных условиях функционирования.
Примечание: правильнее эту характеристику называть производительностью (performance); тогда как эффективность дожна также зависеть от затрат на создание и внедрение ПС.
4. Сопровождаемость программного средства(maintainability)
Совокупность свойств ПС, характеризующая усилия, которые необходимы для его модифи-кации. Модификация, может осуществляться для устранения дефектов, усовершенствования ПС или его адаптации к изменениям в условиях функционирования, a также в составе и особенностях требуемых функций.
5. Мобильность программного средства (portability)
Совокупность свойств ПС, характеризующая приспособленность для переноса из одной среды функционирования в другие.
6. Надежность программного средства (reliability)
Совокупность свойств, характеризующая способность программного средства сохранять заданный уровень пригодности в заданных условиях в течение заданного интервала времени.
Помимо перечисленных используются и другие характеристики качества ПС:
Корректность или правильность подразумевает соответствие проверяемого объекта некоторому эталонному объекту или совокупности формализованных эталонных характеристик и правил. Корректность программы наиболее полно определяется степенью ее соответствия предъявляемым к ней формализованным требованиям - программной спецификации.
Если надежность программы - свойство, заложенное при ее изготовлении и проявляющееся при эксплуатации программы во времени (поэтому без длительного наблюдения нельзя сделать заключения о надежности программы), то корректность может быть проверена в статике на этапе разработки программы.
Сложность программ. Рассматривается в трех аспектах:
сложность процесса разработки программ;
сложность программы как объекта разработки (статическая);
сложность выполнения программы (динамическая) – учитывает ресурсы, необходимые для ее выполнения.
Трудоемкость - совокупные затраты труда на создание или использование программы.
Различают трудоемкость на этапе проектирования программ и трудоемкость изучения и модификации программ при их сопровождении.
На этапе проектирования основные затраты составляет трудоемкость создания программ заданной сложности и корректности. Трудоемкость зависит от квалификации специалистов, технологии проектирования, степени автоматизации разработки, испытаний и т.д. Трудоемкость изучения и модификации программ при сопровождении определяется степенью документированности программ, уровнем языка программирования, структурностью их построения и другими факторами, связанными с удобством анализа ПС и внесения изменений. Этот критерий влияет на длительность жизни программ. Целесообразность и длительность использования, модернизации и переноса программ сохраняются до тех пор, пока не станет рентабельной новая разработка.
Этапы жизненного цикла программ и обеспечение качества программ на различных этапах. Характеристика статических и динамических составляющих качества программ.
Конструктивные критерии зависят не от области применения, а от этапа жизненного цикла программы (ЖЦП). На различных этапах ЖЦП рекомендуется использовать разные критерии:
Критерии этапа разработки
Трудоемкость ( статическая сложность )
Корректность ( правильность ) программы
Критерии этапа эксплуатации ПП
Функциональность
Производительность ( ресурсоемкость )
Надежность
Критерии этапа сопровождения
Трудоемкость
Понимаемость программы
Производительность программы
Надежность
В заключение рассмотрим основные компоненты, влияющие в целом на обеспечение заданного качества программных продуктов, состав которых показан на рис.1. На рисунке для трех основных составляющих качества ПП приведены метрики, определяющие качество ПП на уровне этой компоненты, и способ их использования для обеспечения высокого качества ПП.
Классификация видов сложности программных продуктов и их краткая характеристика.
Большое многообразие способов оценивания и видов сложности программных продуктов можно разделить на группы, представленные на рис
Как видно из рисунка, прежде всего можно выделить статические составляющие сложности, характерные для этапов разработки ПП и определяющие их трудоемкость, и динамические составляющие сложности ПП, проявляющиеся в процессе выполнения программы. Трудоемкость разработки ПП может оцениваться двумя способами:
по интегральным характеристикам сложности, которые определяются по внешним параметрам программы, не учитывающим ее внутреннюю структуру (подход «черного ящика»);
по структурным характеристикам сложности, учитывающим внутреннюю структуру программы и зависящим от сложности маршрутов (потоков) управления, сложности потоков данных или специальных свойств графа управления (подход «белого ящика»).
Динамическая (или вычислительная) сложность характеризует процесс выполнения программы и имеет три взаимосвязанных составляющих:
временную – определяется временем выполнения программы или временем ее реакции на запрос пользователя;
программную – определяется составом и способом взаимодействия процедур или модулей, образующих программу, а также возможностью их размещения в кеш-памяти, основной памяти или на диске; а в случае распределенных приложений - размещением программ в компьютерах сети.
информационную – определяется сложностью организации данных и доступа к ним, а также особенностями их размещения в кеш-памяти, основной памяти, на диске или на сетевом сервере.
Следует заметить, что для получения достаточно полного представления о сложности программного продукта как статические, так и динамические характеристики сложности следует рассматривать не по отдельности, а в совокупности.
Система метрик Холстеда для оценивания характеристик программ. Измеримые параметры программ. Оценки длины и объема программы. Потенциальный объем программы. Причины несоответствия оценок теоретическим значениям.
Одной из интересных интегральных систем оценивания не только сложности, но и качества программ в целом является система метрик, предложенная Холстедом.