Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Сложность программной системы.
По Холстеду сложность программной системы оценивается мерой длины модуля. N=n1*log (n1) + n2*log (n2) N – Длина модуля n1 – Число различных операторов n2 – Число различных операндов Вторая характеристика – объём модуля. V – Количество символов для записи операторов и операндов текста модуля. V=N*log (n1+n2) Том Мак Кейб в качестве характеристики сложности программы предложил использовать топологию внутренних связей.Для этого была разработана метрика циклологической сложности. V(G)=E-N+2 E – Количество дуг N – Количество вершин в управляющем графе программной системы Таким образом при комплексной оценке сложности программной системы необходимо рассматривать: 1) Меру сложности модулей; 2) Меру сложности внешних связей; 3) Меру сложности внутренних связей. На основе полных коэффициентов функциональных модулей вычисляется метрика общей сложности структуры.
S= *(Fan_in(i)+Fan_out(i)) (*) length(i) – Оценка размера i-ого модуля Fan_in(i) – Коэффициент объединения по входу(Количество управляющих i-ым модулем модулей) Fan_out(i) – Коэффициент разветвления по выходу(Количество модулей,ко-торыми прямо управляет i-ый модуль) Характеристики йерархической структуры программной системы.
Высота Depth
Fan_in(n)=2 Ширина Fan_out(m)=3 Width Рассмотрим основные характеристики йерархической структуры,представ- ленной на рисунке. Первыми характеристиками являются количество вершин (модулей) и коли-чество рёбер (связей между модулями).К ним добавляются две глобальные харак-теристики – высота и ширина: q Высота – количество уровней управления; q Ширина – максимальное из количеств модулей,размещённых на уров-нях управления. В нашем примере высота = 3,ширина = 3. Локальными характеристиками модулей структуры являются коэффициент объединения по входу и коэффициент разветвления по выходу (Fan_in(i) и Fan_out(i)). В примере для модуля n: Fan_in(n)=2;для модуля m: Fan_out(m)=3. Возникает вопрос:как оценить качество структуры? Из практики проекти-рования известно,что лучшее решение обеспечивается йерархической структурой в виде дерева. Степень отличия реальной проектной структуры от дерева характеризуется невязкой структуры(Nev). Значение невязки лежит в диапазоне от 0 до 1.Если Nev = 0,то проектная структура является деревом,если Nev = 1,то проектная структура – полный граф.
Ясно,что невязка даёт грубую оценку структуры.Для увеличения точности оценки следует применить характеристики связности и сцепления.
Хорошая структура должна иметь низкое сцепление и высокую связность. Л.Констентайн и Э.Йордан (1979) предложили оценивать структуру с помо-щью коэффициентов Fan_in(i) и Fan_out(i) модулей. Большое значение Fan_in(i) – свидетельство высокого сцепления,так как является мерой зависимости модуля.Большое значение Fan_out(i) говорит о высо-кой сложности вызывающего модуля.Причиной является то,что для координации подчинённых модулей требуется сложная логика управления. Основной недостаток коэффициентов Fan_in(i) и Fan_out(i) состоит в игно-рировании веса связи.Здесь рассматриваются только управляющие потоки (вызо-вы модулей).В то же время информационные потоки,нагружающие рёбра структу-ры,могут существенно изменяться,поэтому нужна мера,которая учитывает не только количество рёбер,но и количество информации,проходящей через них. С.Генри и Д.Кафура (1981) ввели информационные коэффициенты ifan_in(i) и ifan_out(j).Они учитывают количество элементов и структур данных,из которых i-й модуль берёт информацию и которые обновляются j-м модулем соответствен-но. Информационные коэффициенты суммируются со структурными коэффи-циентами sfan_in(i) и sfan_out(j),которые учитывают только вызовы модулей. В результате формируются полные значения коэффициентов: Fan_in(i)= sfan_in(i)+ifan_in(i), Fan_out(j)=sfan_out(j)+ifan_out(j). На основе полных коэффициентов модулей вычисляется метрика общей сложности структуры: Формула (*).
Программная документация. Она должна быть организована так, чтобы легко была доступна информация по отдельным модулям. Список модулей, описание программы и иерархической схемы используется как справочник. Модули должны быть пронумерованы (обычно в соответствии с их иерархической упорядоченностью).
Схема модульной структуры программы должна быть дополнена описанием внешних характеристик модулей. Оно называется внешней спецификацией и содержит все сведения, необходимые для обращения к модулю.
На основе внешней спецификации модулей осуществляется разработка логической структуры этих модулей. Логическая структура модуля прорабатывается на стадии технического проекта программы. Внешняя спецификация модуля должна включать: 1. Имя модуля, используемое при обращении к нему. 2. Описание функции, здесь приводится назначение модуля, но оно не должно содержать сведений о логической структуре и о контекстах, в которых используется модуль. 3. Список параметров: число и порядок задания параметров. 4. Входные параметры: подробное описание и их атрибуты (структура, размер, единица измерения, допустимый диапазон назначений, типы и т.д.). 5. Выходные параметры (аналогично п.4). 6. Внешние эффекты. Например: печать сообщений, чтение запроса с монитора, вывод сообщений об ошибке. Внешние эффекты модуля включают все внешние эффекты подчинённых ему модулей.
|
|||||||||||||||||
Последнее изменение этой страницы: 2016-07-16; просмотров: 259; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.217.4.206 (0.009 с.) |