Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
UP_KachTestPO.doc
Скачиваний:
22
Добавлен:
27.09.2019
Размер:
372.74 Кб
Скачать

2.3. Показатели качества этапа проектирования программных систем

Сложность проектирования конкретизуется и становится измеримым при установлении связи этого понятия с конкретными ресурсами, необходимыми для решения задачи. В табл.3, приведены различные показатели сложности программ, из которых этап проектирования характеризуют п.1-3. Эти показатели выбраны по тому, что они являются имитирующими ресурсами для проектирования любого изделия, в том числе и ПС.

Сложность проектирования ПС часто называют статистической сложностью. Её целесообразно анализировать на базе трех специфических компонент: сложность программных модулей, сложность структуры комплекса, сложность структуры данных (рис.14).

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

Таблица 2. Вспомогательные показатели качества.

Этапы жизненного цикла

Проектирование

Эксплуатация

Сопровождение

  1. Структурная упорядоченность программ и данных

  1. Корректность постановки задач

  1. Структурная упорядоченность ПС и данных

  1. Степень стандартизации структуры модулей и переменных

  1. Полнота и точность спецификаций

  1. Степень стандартизации структуры модулей и переменных

  1. Документированность ПС

  1. Уровень языков программирования

  1. Документированность для модификаций

  1. Методическая обеспеченность технологии проектирования

  1. Полнота тестирования программ

  1. Уровень языков программирования

  1. Степень комплексной автоматизации технологии проектирования

  1. Степень помехозащищенности программ

  1. Степень комплексной автоматизации технологии проектирования

  1. Уровень языков спецификаций, программирования и отладки

  1. Документированность для эксплуатации

  1. Обеспеченность контроля изменений версий и распространения копий

  1. Квалификация специалистов и методы организации работ

Структурная сложность модулей определятся числом взаимодействующих компонент, числом связей между компонентами и сложностью их взаимодействия. Разнообразие поведения модуля и связей входных и результирующих данных в значительной степени определяются набором маршрутов, по которым исполняется модуль, т.е. сложность программного модуля связана не с размером программы по числу команд, а с числом отдельных маршрутов его исполнения. Маршруты возможной обработки данных должны быть достаточно полно проверены при создании программы и тем самым определяют сложность её разработки. Проверка в логических системах должна осуществляться по всем маршрутам по конечным и промежуточным решениям. Для этого строится граф программы, по которому формируется полное множество маршрутов. Пример определения полного множества маршрутов показан на рис.15.

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

Статическая сложность модулей основывается на определении внешних измеряемых характеристик программных модулей. Первая характеристика – это интеллектуальная сложность создаваемого программного модуля.

(1)

где V – объем текста программы в битах; V* - потенциальный объем описания программ – это объем наиболее компактного текста программы для фиксированного алгоритма, написанного на языке самого высокого уровня.

Выражение (1) может быть представлено в виде

,

где  - показатель уровня языка используемой системы программирования (см. табл.4).

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

,

где S – интенсивность анализа и принятия решений программистом, измеряемая числом символов, которые различает программист в секунду (S≈18).

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

Таблица 3. Значения показателей сложности программных систем

Показатель сложности

Уровень сложности

простой

средней сложности

сложный

сверх-сложный

1.

Трудоемкость создания, чел. - годы

0,1

1-10

100

103-104

2.

Длительность разработки, годы

0,1-0,5

1-2

2-5

3-10

3.

Количество разрабатывающих специалистов, чел

1-2

3-10

10-100

100-1000

4.

Длинна программы, операторов

103

104

105

106-107

5.

Количество модулей, шт.

1-3

10-102

103

104-105

6.

Количество обрабатываемых переменных, типов

10

102-103

104-105

106-108

7.

Длительность решения варианта задачи, ч.

10-2-10-1

1

10

102-103

8

Допустимое время отклика, с.

106-104

103-102

10-0,1

10-2-10-4

Таблица 4. Значения показателя уровня языка 

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

Уровень языка 

PL-1

1,53

Алгол

1,21

Фортран

1,14

Ассемблер

0,88

Сложность проектирования программных систем (статическая)

Сложность программных модулей

Сложность комплекса и межмодульных связей

Сложность структуры данных

Статическая сложность модулей

Структурная сложность комплекса программ

Структурная сложность модулей

Статистическая сложность комплекса программ

Рис.14. Виды сложности проектирования.

а

б

Рис.15. Пример графа программы (а) и полного множества маршрутов в этом графе (б)

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

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

где М – множество индексов модулей ПС; - переменная, учитывающая связь i-го модуля с j-ым; - переменная, учитывающая связь j-го модуля с i-ым; и могут принимать либо значения 1, если связь есть, либо 0, если связи нет.

Следует отметить, что при таком определении сложности каждая управляющая связь учитывается дважды: в вызывающем и в вызываемом модуле.

Полное количество информационных связей в ПС равно:

где G – множество индексов информационных единиц (переменные, которые передаются в модуль как формальные параметры, также являются информационными единицами); - переменная, учитывающая использование k-ой информационной единице в i-ом модуле; - переменная, учитывающая формирование k-ой инфор-мационной единице в i-ом модуле:

0, если не используется

1, если используется

0, если не формируется

1, если формируется

Управляющие и информационные связи, описываются матрицами связей.

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

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

Корректность программ и степень адекватности их функциональных возможностей, поставленным целям и техническим заданиям является, важнейшим критерием в процессе разработки и испытаний ПС. Понятие корректности или правильности, подразумевает соответствие проверяемой ПС эталону, которому должна она соответствовать. Эти показатели, определяются техническим заданием на ПС и спецификациям на ее компоненты. Различают следующие виды корректности ПС:

  • корректность текстов программ, синтаксическая и семантическая. Корректность текстов определяется степенью соответствия исходных программ формализованным правилам этих языков. Многие некорректности этих типов выявляются автоматически в процессе трансляции исходных текстов программ;

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

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

  • корректность ПС структурная и функциональная. Структурная корректность определяется правилами структурного, модульного построения ПС и общими правилами организации межмодульных связей. Проверка структурной корректности может быть в значительной мере проверена автоматически. Функциональная корректность ПС трудно формализуется вследствие большого количества возможных эталонных значений и распределений. Для программ реального времени различают детерминированную, стохастическую и динамическую корректность. Детерминированная корректность характеризует соответствие исходных и результирующих данных исполняемых программ эталонным значениям. Стохастическая корректность характеризуется соответствием распределений результирующих случайных величин заданным эталонным распределениям при соответствующих распределениях исходных данных. Динамическая корректность характеризует соответствие изменяющихся во времени результатов исполнения программ эталонными данными.

Метрики корректности программных модулей весьма разнообразны и довольно полно представлены в [8].

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]