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


Advertisements

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

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

Измерения сложности Halstead

В 1977, г-н Морис Говард Halstead ввел метрическую систему мер для того чтобы измерить сложность програмного обеспечения. Метрическая система мер Halstead зависит на фактической вставке программы и своих измерений, которая вычислены сразу от операторов и операндов от исходного кода, в статическом образе. Она позволяет оценить время, терминологию, размер, затруднение, ошибки, и усилия испытания для исходного кода C/C++/Java.

Согласно Halstead, «компьутерная программа вставка алгоритма рассматриваемые, что было собранием знаков внимания которые можно расклассифицировать как или операторы или операнды». Метрическая система мер Halstead думает программа как последовательность операторов и их связанных операндов.

Он определяет различные индикаторы для того чтобы проверить сложность модуля.

Параметр Значить
n1 Количество уникально операторов
n2 Количество уникально операндов
N1 Номер полного возникновения операторов
N2 Номер полного возникновения операндов

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

Метрическо Значить Математически представление
n Терминология n1 + n2
N Размер N1 + N2
V Том Длина * терминология Log2
D Затруднение (n1/2) * (N1/n2)
E Усилия Затруднение * том
B Ошибки Том/3000
T Время испытания Время = усилия/s, где секунды S=18.

Измерения сложности Cyclomatic

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

Если мы сравниваем 2 программы одинакового размера, то одна с больше заявлений принятия решений будет более сложна по мере того как управление программы скачет часто.

McCabe, в 1976, предложило измерение сложности Cyclomatic квантифицировать сложность, котор дали програмного обеспечения. Модель управляемая диаграммой которая основана на стройках принятия решений программы как если-другое, делать-пока, повторени-до тех пор пока, переключател-случай и переход заявления.

Процесс для того чтобы сделать регулирование потока изобразить:

  • Сломайте программу в более малых блоках, размежеванных стройками принятия решений.

  • Создайте узлы представляя каждый из этих узлов.

  • Соедините узлы следующим образом:

    • Если управление может разветвить от блока i для того чтобы преградить j

      Нарисуйте дугу

    • От узла выхода к узлу входа

      Нарисуйте дугу.

Для того чтобы высчитать сложность Cyclomatic модуля программы, мы используем формулу -

V (g) = e - n + 2

Где
e общее количество краев
n общее количество узлов
Цикломатической Меры Сложность

Сложность Cyclomatic вышеуказанного модуля

e = 10
n = 8
Сложность Cyclomatic = 10 до 8 + 2
                     = 4

Согласно P. Jorgensen, сложность Cyclomatic модуля не должна превысить 10.

Пункт функции

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

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

Функция Точка

Препятствуйте нам увидеть параметры пункта функции:

Внешний входной сигнал

Каждый уникально входной сигнал к системе, от снаружи, рассмотрен как внешний входной сигнал. Уникальность входного сигнала измерена, как никакие 2 входного сигнала не должны иметь такие же форматы. Эти входные сигналы могут или быть данными или параметрами управления.

  • Просто - если отсчет входного сигнала низок и влияет на более менее внутренние архивы

  • Сложно - если отсчет входного сигнала высоок и влияет на более внутренние архивы

  • Средний - между простым и сложным.

Внешний выход

Все типы выхода обеспеченные системой подсчитаны в этой категории. Выход учтен уникально если их формат выхода и/или обрабатывать уникально.

  • Просто - если отсчет выхода низок

  • Сложно - если отсчет выхода высоок

  • Средний - между простым и сложным

Логически внутренние архивы

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

  • Просто - если количество рекордных типов низко

  • Сложно - если количество рекордных типов высоко

  • Средний - между простым и сложным

Архивы внешнего интерфейса

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

  • Просто - если количество рекордного печатает внутри общедоступный файл на машинке низко

  • Сложно - если количество рекордного печатает внутри общедоступный файл на машинке высоко

  • Средний - между простым и сложным

Внешнее дознание

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

  • Просто - если вопросу нужен низкий уровень обрабатывая и производит небольшое количество данных об объеме продукций

  • Сложно - если вопросу нужен высокий процесс и производит большое количество данных об объеме продукций

  • Средний - между простым и сложным.

Каждому из этих параметров в системе дают weightage согласно их типу и сложности. Таблица ниже упоминает weightage, котор дали к каждому параметру:

Параметр Просто Средний Сложно
Входные сигналы 3 4 6
Выходы 4 5 7
Дознание 3 4 6
Архивы 7 10 15
Интерфейсы 5 7 10

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

  • Передачи данных
  • Распределено - обрабатывающ
  • Задачи представления
  • Нагрузка конфигурации деятельности
  • Тариф трудыов
  • Он-лайн ввод данных,
  • Эффективность конечного пользователя
  • Он-лайн новая версия
  • Сложная обрабатывая логика
  • Re-практичность
  • Легкость установки
  • Рабочая легкость
  • Множественные места
  • Желание облегчить изменения

Эти факторы характеристик после этого расклассифицированы от 0 до 5, как упомянуто ниже:

  • Отсутствие влияния
  • Случаино
  • Умеренный
  • Средний
  • Значительно
  • Необходимо

Все номинальности после этого суммированы как N. Значение n колебается от 0 до 70 (14 типа характеристик x 5 типов номинальностей). Оно использован для того чтобы высчитать факторы регулировки сложности (CAF), используя следующие формулы:

CAF = 0,65 + 0.01N

После этого,

Поставленная функция (FP) Points= CAF x сырцовый FP

Этот FP можно после этого использовать в различной метрической системе мер, как:

  • Цена = $/FP

  • Качество = ошибки/FP

  • Урожайность = FP/персон-месяц

Advertisements