Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N

Метрики трудности программ

При оценке трудности программ, обычно, выделяют три главные группы метрик: метрики размера программ, метрики трудности потока управления программ и метрики трудности потока данных программ.

Оценки первой группы более ординарны и потому получили Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N обширное распространение. Классической чертой размера программ является количество строк начального текста. Под строчкой понимается хоть какой оператор программки.

Конкретное измерение размера программки, невзирая на свою простоту, дает отличные результаты Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N. Оценка размера программки недостаточна для принятия решения о ее трудности. Но полностью применима для систематизации программ, значительно различающихся объемами. При уменьшении различий в объеме программ на 1-ый план выдвигаются оценки других причин, оказывающих воздействие на Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N сложность. Таким макаром, оценка размера программки есть оценка по номинальной шкале, на базе которой определяются только категории программ без уточнения оценки для каждой категории.

К группе оценок размера программ Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N можно отнести также метрику Холстеда. За базу принят подсчет количества операторов и операндов применяемых в программке, т.е. определение размера программки.

Базу метрики Холстеда составляют четыре измеряемые свойства программки: h1 - число уникальных Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N операторов программки, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h2 – число уникальных операндов программки (словарь операндов); N1 – общее число операторов в программке N2 – общее число операндов в программке.

Делая упор на Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N эти свойства, получаемые конкретно при анализе начальных текстов программ, Холстед вводит последующие оценки


Словарь программки h=h1 + h2

Длину программки N=N1+N2

Объем программки V=N log2 h


Смысл оценок h Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N и N довольно очевиден, потому тщательно разглядим только характеристику V.

Количество знаков, применяемых при реализации некого метода, определяется в числе иных характеристик и словарей программки h, представляющим из себя мало нужное число знаков, обеспечивающих Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N реализацию метода.

Дальше Холстед вводит h* - теоретический словарь программки, т.е. словарный припас, нужный для написания программки с учетом того, что нужная функция уже реализована в данном языке и, как следует Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N, программка сводится к вызову этой функции. К примеру, согласно Холстеду вероятное воплощение процедуры выделения обычного числа могло бы смотреться так:

^ CALL SIMPLE (X, Y),

где Y- массив численных значений, содержащих разыскиваемое число Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N X.

Теоретический словарь в данном случае будет состоять из

n1*: {CALL, SIMPLE (...)} n1*=2;

n2*: {X,Y}, h2*=2;

а его длина, определяемая как

h* = h1* + h2* будет равна 4.

Используя h*, Холстед вводит оценку Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N V*: V* = h*log2h*,


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

2-ая более презентабельная группа оценок трудности программ – метрики трудности потока управления программ. Обычно, при помощи этих оценок Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N оперируют или плотностью управляющих переходов снутри программ, или взаимосвязями этих переходов.

И в том и в другом случае стало обычным представление программ в виде управляющего нацеленного графа G(V,E), где Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N V – верхушки, надлежащие операторам, а E – дуги, надлежащие переходам. В дуге (U,V) – верхушка V является начальной, а U – конечной. При всем этом U конкретно следует V, а V конкретно предшествует U. Если Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N путь от V до U состоит более чем из одной дуги, тогда U следует за V, а V предшествует U.

В первый раз графическое представление программ было предложено Маккейбом Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N. Основной метрикой трудности он предлагает считать цикломатическую сложность графа программки, либо, как еще именуют, цикломатическое число Маккейба, характеризующее трудозатратность тестирования программки.

Для вычисления цикломатического числа Маккейба Z(G) применяется формула

Z(G Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N) = l-v+2p,

где l – число дуг нацеленного графа G; v – число вершин; p- число компонент связности графа.

Число компонент связности графа можно рассматривать как количество дуг, которые нужно добавить для преобразования графа сильносвязный Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N. Сильносвязным именуется граф, любые две верхушки которого взаимно достижимы. Для графов корректных программ, т.е. графов, не имеющих недосягаемых от точек входа участков и “висящих” входа и выхода, сильносвязный граф Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N, обычно, выходит методом замыкания одной верхушки, обозначающей конец программки на верхушку, обозначающую точку входа в эту программку.

На самом деле Z(G) определяет число линейно независящих контуров в сильносвязном графе. По другому говоря, цикломатическое число Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N Маккейба указывает требуемое число проходов для покрытия всех контуров сильносвязанного графа либо количество тестовых прогонов программки, нужных для исчерпающего тестирования по аспекту “работает любая ветвь”.









































Для программки цикломатическое число при Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N l=10, v=8, n=1 обусловится как Z(G) = 10-8+2=4.

Таким макаром, имеется сильносвязанный граф с 4-мя линейно независящими контурами:

a-b-c-g-e-h-a;

a-b-c-e-h-a;

a-b-d-f Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N-e-h-a;

a-b-d-e-h-a;

Разглядим метрику трудности программки, получившую заглавие “подсчет точек скрещения”, создателями которой являются М Вудвард, М Хенел и Д Хидлей. Метрика нацелена на анализ Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N программ, при разработке которых использовалось неструктурное кодирование на таких языках, как язык ассемблера и фортран. Вводя эту метрику, ее создатели стремились оценить связи меж физическими местоположениями управляющих переходов.

Структурное Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N кодирование подразумевает внедрение ограниченного огромного количества управляющих структур в качестве первичных частей хоть какой программки. В традиционном структурном кодировке, базирующемся на работах доктора Эйндховенского технологического института(Нидерланды) Э. Дейкстры, оперируют только 3-мя Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N такими структурами: следованием операторов, развилкой из операторов, циклом над оператором. все эти разновидности изображаются простейшими планарными графами программ. По правилам структурного кодировки неважно какая программка составляется методом выстраивания цепочек из 3х упомянутых структур либо помещения Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N одной структуры в другую. Эти операции не нарушают планарности графа всей программки.

В графе программки, где каждому оператору соответствует верхушка, т.е. не исключены линейные участки , при передаче управления от верхушки a Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N к b номер оператора a равен min (a,b), а номер оператора b - max(a,b). Тогда скрещение дуг появятся, если

min(a,b) < min(p,q) max (a,b) |

| min (a Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N,b) < max(p,q) < max(a,b) & min(p,q) < min(a,b).

Другими словами, точка скрещения дуг появляется в случае выхода управления за границы пары вершин (a,b Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N).


К
оличество точек скрещения дуг графа программки дает характеристику

неструктурированности программки.

Одной из более обычных, но довольно действенных оценок трудности программ является метрика Т. Джилба, в какой логическая сложность программки определяется как насыщенность Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N программки выражениями IF_THEN_ELSE. При всем этом вводятся две свойства:


  1. СL - абсолютная сложность программки, характеризующаяся количеством операторов условия;

  2. cl - относительная сложность программки, характеризующаяся насыщенностью программки операторами условия, т.е. cl определяется Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N как отношение CL к общему числу операторов.

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

Большой энтузиазм представляет оценка Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N трудности программ по способу граничных значений.

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

Пусть G=(V,E) - направленный граф программки с единственной исходной и единственной окнечной верхушками. В этом графе число Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N входящих в верхушку дуг именуется отрицательной степенью верхушки, а число исходящих из верхушки дуг - положительной степенью верхушки. Тогда набор вершин графа можно разбить на две группы:

Верхушки первой группы назовем принимающими верхушками, а верхушки 2-ой группы - верхушками отбора.

Для получения оценки по способу граничных значений нужно разбить

граф G на наибольшее число подграфов Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N G', удовлетворяющих последующим условиям:

  1. вход в подграф осуществляется только через верхушку отбора;

  2. каждый подграф включает верхушку (именуемую нижней границей подграфа), в которую можно попасть из хоть какой другой верхушки подграфа. К примеру, верхушка Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N отбора соединенная сама с собой дугой петлей, образует подграф.












Число вершин, образующих таковой подграф, равно скорректированной трудности верхушки отбора:

Свойства

подграфов программ

^ Верхушки отбора

a

b

c

d

Верхушки перехода

b,c

b,d

e,f

g,h

Скорректированная сложность верхушки графа

10

2

3

3

Верхушки подграфа

b Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N,c,d,

e,f,g,

h,i,j


b


l,j


g,h

Нижняя граница подграфа

k

d

i

j



Любая принимающая верхушка имеет скорректированную сложность, равную 1, не считая конечной верхушки, скорректированная сложность которой равна 0. Скорректированные трудности всех вершин Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N графа G суммируются, образуя абсолютную граничную сложность программки. После чего определяется относительная граничная сложность программки:


S0=1-(v-1)/Sa,


где S0 – относительная граничная сложность программки; Sa – абсолютная граничная сложность программки, v – общее число вершин графа программки Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N.

Таким макаром, относительная сложность программки равна

S0=1-(11/25)=0,56.

Другая группа метрик трудности программ – метрика трудности потока данных, другими словами использования, конфигурации и размещения данных в программках.

Пара “модуль – глобальная переменная Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N” обозначается как (p,r), где p – модуль, имеющий доступ к глобальной переменной r. Зависимо от наличия в программке реального воззвания к переменной r формируются два типа пар “модуль – глобальная переменная” : фактические и вероятные Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N. Вероятное воззвание к r при помощи p указывает, что область существования r содержит в себе p.

Черта Aup гласит о том, сколько раз модули Up вправду получили доступ к глобальным переменным, а число Pup Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N – сколько раз они могли бы получить доступ.

Отношение числа фактических воззваний к вероятным определяется


Rup=Aup/Pup


Эта формула указывает приближенную возможность ссылки случайного модуля на произвольную глобальную переменную. Разумеется, чем выше эта Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N возможность, тем выше возможность “несанкционированного” конфигурации какой-нибудь переменной, что может значительно осложнить работы, связанные с модификацией программки.

Покажем расчет метрики “модуль – глобальная переменная”. Пусть в программке имеются три глобальные Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N переменные и три подпрограммы. Если представить, что любая подпрограмма имеет доступ к каждой из переменных, то мы получим девять вероятных пар, другими словами Pup=9. Дальше пусть 1-ая подпрограмма обращается к одной переменной, 2-ая Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N – двум, а 3-я не обращается ни к одной переменной. Тогда Aup=3, Rup=3/9.

Еще одна метрика трудности потока данных – спен.

Определение спена основывается на локализации воззвания к данным снутри каждой программной секции Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N.

Спен – это число утверждений, содержащих данный идентификатор, меж его первым и последним возникновением в тексте программки. Идентификатор, показавшийся n раз, имеет спен, равный n-1.

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

Последующей метрикой трудности потока данных программ является метрика Чепина. Существует несколько ее модификаций. Разглядим более обычный, а исходя из убеждений практического Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N использования – довольно действенный вариант этой метрики.

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

Все огромное количество переменных Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N, составляющих перечень ввода-вывода разбивается на четыре многофункциональные группы

  1. Р – вводимые переменные для расчетов и для обеспечения вывода. Примером может служить применяемая в программках лексического анализатора переменная, содержащая строчку начального текста программки, другими Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N словами сама переменная не модифицируется, а только содержит начальную информацию.

  2. М – модифицируемые либо создаваемые снутри программки переменные.

  3. C – переменные, участвующие в управлении работой программного модуля (управляющие переменные).

  4. Не применяемые в программке (“паразитные Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N”) переменные. Так как любая переменная может делать сразу несколько функций, нужно учесть ее в каждой соответственной многофункциональной группе.

Дальше вводится значение метрики Чепина:

Q = a1P + a2M + a3C + a4T Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N ,где a1, a2, a3, a4 – весовые коэффициенты.

Весовые коэффициенты применены для отражения различного воздействия на сложность программки каждой многофункциональной группы. По воззрению создателя метрики, больший вес, равный трем, имеет многофункциональная группа С Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N, потому что она оказывает влияние на поток управления программки. Весовые коэффициенты других групп распределяются последующим образом: a1=1; a2=2; a4=0.5. Весовой коэффициент группы T не равен нулю, так как “паразитные” переменные не Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N наращивают трудности потока данных программки, но время от времени затрудняют ее осознание. С учетом весовых коэффициентов выражение воспримет вил:

Q = P + 2M + 3C + 0.5T .

Необходимо подчеркнуть, что рассмотренные метрики трудности программки основаны Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N на анализе начальных текстов программ, что обеспечивает единый подход к автоматизации их расчета.
^ Метрики стилистики и понятности программ

За время собственного существования программирование не стало быть искусством отдельных исполнителей, превратившись в предмет коллективной производственной Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N деятельности. Язык прграммирования и сами программки являются не только лишь средством общения программера с компом, да и средством общения программистов меж собой. Возникают новые требования к читаемости и воспринимаемости программ Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N, соблюдение которых упрощает контакт снутри группы разработчиков, также позволяет обслуживать и корректировать программки без роли конкретных разработчиков.

Более обычной метрикой стилистики и понятности является оценка уровня комментированности программки F:

F = Nком/Nстр,

где Nком Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N - количество комментариев в программке;

Nстр – количество строк либо операторов начального текста.

Таким макаром, метрика F отражает насыщенность программки комментами.

Исходя из практического опыта принято считать, что F0.1, т.е Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N. на каждые 10 строк программки должен приходиться минимум один комментарий. Как демонстрируют исследования, комменты распределяются по тексту программки неравномерно: сначала программки их излишек, а посреди либо в конце – недочет. Это разъясняется тем, что сначала программки, обычно Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N, размещены операторы описания идентификаторов, требующие более “плотного” комментирования. Не считая того, сначала программки также размещены “шапки”, содержащие общие сведения об исполнителе, нраве, многофункциональном предназначении программки и т.п. Такая Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N насыщенность компенсирует недочет комментариев в теле программки, и потому приведенная формула недостаточно точно отражает комментированность многофункциональной части текста программки.

Более удачен вариант, когда вся программка разбивается на n равных частей и для каждого из их Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N определяется Fi:

Fi=sign(Nком/Nстр–0.1), при всем этом

Уровень комментированности программки считается обычным, если производится условие: F=n. В неприятном случае какой или кусок программки дополняется комментами до обычного Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N уровня.

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


^ МЕТРИКИ ХОЛСТЕДА

Для измерения теоретической Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N длины программки М.Холстед вводит аппроксимирующую формулу:



где h1 - словарь операторов; h2 - словарь операторов программки.


Вводя эту оценку, Холстед исходит из главных концепций теории инфы, по аналогии с которыми частота использования операторов и операндов Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N в программке пропорциональна двоичному логарифму количества их типов. Таким макаром, приведенное выражение представляет собой идеализированную аппроксимацию N=N1+N2, т.е. справедливо для потенциально корректных программ, свободных от избыточности либо несовершенства Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N (стилистических ошибок). Несовершенствами можно считать последующие ситуации:

а) следующая операция уничтожает результаты прошлых без их использования;

б) находятся тождественные выражения, решающие совсем схожие задачки;

в) одной и той же переменной назначаются разные имена Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N и т.п.

Подобные ситуации приводят к изменению N без конфигурации h.

М.Холстед утверждает, что для стилистически корректных программ отклонение в оценке теоретической длины от реальной ^ N не превосходит 10%.

При Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N автоматизации измерения h1, h2, N1 и N2 найти N несложно. Все же оценка представляет энтузиазм и с другой точки зрения.

употребляется как эталонное значение длины программки со словарем h. Длина корректно Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N составленной программки N, т.е. программки, свободной от избыточности и имеющей словарь h, не должна отклоняться от теоретической длины программки более чем на 10%. Таким макаром, измеряя h1, h2, N1 и N2 и Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N сопоставляя значения N и для некой программки, при более чем 10%-ном отклонении можно гласить о наличии в программке стилистических ошибок, т.е. несовершенств.

Другой чертой, принадлежащей к метрикам правильности программ, по М.Холстеду Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N, является уровень свойства программирования L (уровень программки).



где V и V* определяются




Начальным для введения этой свойства является предположение о том, что при понижении стилистического свойства программирования миниатюризируется содержательная нагрузка и каждый компонент Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N программки и, как следствие, расширяется объем реализации начального метода. Беря во внимание это, можно оценить качество программирования на основании степени расширения текста относительно потенциального объема V*. Разумеется, для безупречной программки L Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N=1, а для реальной - всегда L<1.

Часто целенаправлено найти уровень программки, не прибегая к оценке ее теоретического объема, так как перечень характеристик программки нередко находится в зависимости от реализации и может быть искусственно расширен. Это приводит Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N к повышению метрической свойства свойства программирования. М.Холстед предлагает аппроксимировать эту оценку выражением, включающим только фактические характеристики, т.е. характеристики реальной программки:



Спецы считают более корректным при оценке программ использовать характеристику L Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N.

Располагая чертой , Холстед вводит характеристику I, которую рассматривает как умственное содержание определенного метода, инвариантное по отношению к применяемым языкам реализации:



Термин интеллектуальность не совершенно удачен, поточнее сказать что идет Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N речь о характеристике информативности программки.

Введение свойства I позволяет найти главные интеллектуальные издержки на создание программки. Процесс сотворения программки условно можно представить как ряд операций: 1) осмысление предложения известного метода; 2) запись предложения метода Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N в определениях применяемого языка программирования, т.е. поиск в словаре языка соответственной аннотации, ее смысловое заполнение и запись.

Используя эту формализацию в методике Холстеда, можно сказать, что написание программки по заблаговременно известному Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N методу есть -кратная подборка операторов и операндов из словаря программки h1, при этом число сравнений (по аналогии с методами сортировки) составляет ~log2h.

Если учитывать, что любая выборка-сравнение содержит, в свою очередь, ряд мысленных Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N простых решений, то можно поставить в соответствие содержательной нагрузке каждой конструкции программки сложность и число этих простых решений. Количественно это можно охарактеризовывать при помощи свойства , так как имеет смысл Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N рассматривать как средний коэффициент трудности, влияющий на скорость подборки для данной программки. Тогда оценка нужных умственных усилий по написанию программки может быть изменена как

.

Таким макаром, охарактеризовывает число требуемых простых решений при написании Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N программки.

Но следует увидеть, что правильно охарактеризовывает только исходные усилия по написанию программ, так как при построении не учитываются отладочные работы, которые требуют умственных издержек другого нрава. Потому исходя из убеждений практической применимости хотелось Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N бы направить внимание на интерпретацию этой свойства, когда заместо теоретической длины программки употребляется ее настоящая длина:

.

Черта введена исходя из догадки, что умственные усилия на написание и восприятие программки очень близки по Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N собственной природе. Но, если при написании программки стилистические погрешности в тексте программки фактически не должны отражаться на умственной трудозатратности процесса, то при попытке осознать такую программку их присутствие может привести Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N к суровым осложнениям.

Преобразуя формулу



с учетом иполучим

.

Такое представление , а соответственно и , потому что , наглядно иллюстрирует необходимость разбиения программ на отдельные модули, так как умственные издержки оказываются пропорциональными квадрату объема программки, который Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N всегда больше суммы квадратов объемов отдельных модулей.

В заключение разглядим еще одну метрику, по собственному нраву несколько отличающуюся от прошлых. Она опирается на принцип оценки, при котором употребляется измерение флуктации длин программной Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N документации.

Начальным является предположении о том, что чем меньше конфигураций и корректировок вносится в программную документацию, тем паче верно были сформулированы решаемые задачки на всех шагах работ. Некорректности и неясности при разработке ПО служат Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N предпосылкой роста количества корректировок и конфигураций в документации. И, напротив, демпфированный переходный процесс с малочисленными переменами длин документов - естественное следствие отлично продуманной идеи, отлично проведенного анализа, проектирования и ясной структуры программ. Эти связи Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N и являются основными для данного способа оценки, сущность которого состоит в последующем.

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

,

где Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N - длина документа в предшествующий момент времени; - добавляемая часть документа; - исключаемая часть документа.

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



Потом рассчитывается интеграл по модулю этого отличия Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N на интервале от до , представленный в виде суммы

.

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

Чтоб Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N отразить воздействие конфигураций такового рода, именуемых в предстоящем импульсными, вводится экспоненциальная функция, отражающая функцию отклика.


^ Пример импульсного конфигурации длины программного документа


Рис.


Заштрихованная область представляет собой дополнение к оценке , отражающее Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N воздействие импульсного конфигурации длины документов и рассчитывается как





Таким макаром, оценка длины документа пропорциональна значению импульсного конфигурации длины с коэффициентом пропорциональности .

В принципе импульсное изменение длины документа находится и при


aibi , потому


n-1

H’n Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N С




при этом Ci=min{ai,bi}.

Если в процессе работы значения ai и bi неконтролируемы, изменяемое измерение длины учитывать нельзя.

Используя конечное значение длины документа , можно записать


H’’n = H’n /ln Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N ,


Программная документация неоднородна по собственному содержанию . С одной стороны встречаются документы , очень зависящие от текста программки . С другой стороны , существует документация , отражающая постановку задачки , имеются спецификации и ведомости, также материалы , относящиеся к Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N испытаниям программ. Целенаправлено данную метрику для оценки свойства сначала эксплуатационной документации , исключая формуляр и ведомость эксплуатационных документов. Раздельно оценивается техническое задание с объяснительной запиской и описанием программки другие документы в Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N большинстве случаев отражают конфигурации в перечисленных документах либо неявно вызывают эти конфигурации.

Представляет энтузиазм сам подход , дающий возможность оценивать динамику черт . Ведь, если заместо текущей длины документа использовать какую-либо иную характеристику, к примеру длину Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N программки , то все начальные предпосылки останутся в силе. Измеряя в определенные моменты времени значение исследуемой свойства , мы можем делать выводы о ее динамке. По этим данным , выявляя большие скачки в переходном Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N процессе , можно судить о потере стабильности применяемого ПО и о необходимости его проектирования поновой .

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


Метрики Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N использования языков

программирования и технологических

средств


На качество ПИ оказывают влияние средства автоматизации программирования и форма организации работ по созданию программ . Это проявляется в 2-ух направлениях :

При всем этом 1-ое направление охарактеризовывает качество фактически технологических программных средств, а 2-ое - степень перенесения этого свойства на итоговые ПИ .

Для оценки языка Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N программирования давно было понятие уровня языка. Но оно могло иметь только относительное значение , так как отсутствовал абсолютный показатель. Таковой измеритель был предложен Холстедом. Холстед в собственном осознании уровня языка опирается на Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N понятия заложение им в такие метрические свойства программ как , уровень программки и объем программки.

По аналогии с выражением , согласно которому уровень программки реализуемой определенным методом , не находится в зависимости от применяемого языка программирования, Холстед Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N утверждает , что изменение метода при кодировке на одном и том же языке , в схожей степени увеличивая возможный объем программки , понижает ее уровень. На этом основании была выведена догадка о всепостоянстве для Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N каждого языка программирования выражения :


LV’ ,

где - оценка уровня языка ;

L - уровень программки ;

V’- возможный объем программки ;

Беря во внимание L=V’/V, можно записать:

L²V ,

это выражение Холстет употребляет для вычисления уровня языка Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N. На основании статистического материала им установлены последующие значения уровня для неких языков :



Язык

Средний уровень языка 

отклонение от среднего x

Английкий

2.16

0.74

ПЛ/1

1.53

0.92

Алгол 58

1.21

0.74

Фортран

1.14

0.81

Ассемблер

0.88

0.42



Потому что черта уровня языка программирования рассчитывается на базе Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N объема программ (количества логических бит для описания задачки), можно прийти к выводу что среднее значение охарактеризовывает сравнительную сложность программирования на различных языках , а отклонениеx для определенной программкой от ее среднего значения для данного Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N языка программирования указывает качество использования языковых средств.

Преобразуем формулу LV’ ,на основании соотношения L²V к виду:

V’²/V,

где  - оценка уровня языка;

V’- возможный объем программки;

V - объем программки Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N.

Всепостоянство определяется синхронным конфигурацией объема программки при изменении ее потенциального объема. Другими словами, повышение объема программки должно быть на два порядка больше роста количества инфы по наружным связям. Как следует, алгоритмически сложные программки вычисления Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N единичных значений переменных будут давать существенно более низкое значение  чем программки вычисления огромного объема инфы по простым соотношениям.

Если программ употребляет только стандартные конструкции языка и не связана с созданием управляющих структур (развилок Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N и циклов), уровень языка таковой программки будет существенно выше среднестатического.

Таким макаром, предлагаемая М. Холстидом метрическая черта очень находится в зависимости от уровня программки и ее специфичности. Потому трактовать эту метрику Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N следует как уровень языка программирования в контексте области внедрения, т.е. определять среднее значение уровня языка на основании статистических данных по программкам определенной предметной области. Только при сопоставлении со средним значением уровня Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N языка можно прийти к выводу о применимости языка программирования к реализации программ данной проблемной области, с одной стороны, и об уровне использования языковых средств - с другой. Оба вывода должны делаться на основании локальных Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N средних значений для типологических рядов программ.

Для определения количества ошибок Холстед вывел формулу:


2/3

В=E / 3000 = V/3000

где В - количество ошибок после реализации программки на языке программирования; Е - умственные усилия при программировании Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N; V - объем программки; 3000 - критичный уровень работы по составлению программки.

Возникновение в языках программирования средств семантического контроля программки, таких, как пользовательские типы данных и операторов, потребовало конфигурации эффективности этих средств. Главным понятием при решении Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N этой задачки является эффект программки.

^ Недостаток программки представляет собой такое искажение текста программки по сопоставлению с эталонной, которое не находится при компиляции, но значительно оказывает влияние на финал выполнения программки Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N. Необходимо подчеркнуть, что недостаток может быть и не найден при выполнении программки на определенном огромном количестве начальных данных. Потому создатель метрики С.В. Денисенко вводит понятие огромного количества всех возможных изъянов программки D и Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N числа этих изъянов I.

Выдвигается догадка, согласно которой количество ошибок в программке прямо пропорционально I. Тогда для какого-нибудь средства статистического семантического контроля можно вычислить показатель его эффективности:

R1 d1

g = ------- = -------,

R Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N2 d2


где R1 - количество ошибок в программке, приобретенной без использования данного средства;

R2 - количество ошибок в программке, приобретенной с внедрением данного средства;

d1 - количество вероятных изъянов в программке, приобретенной без Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N использования данного средства;

d2 - количество вероятных изъянов в программке, приобретенной с внедрением данного средства.

Сейчас нужно количественно оценить d1 и d2. Денисенко предлагает в качестве примера оценку эффективности контроля соответствия типов данных Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N по всему тексту программки и ограничения области доступности переменных программки при переходе от блочной структуры к модульной.

При оценке количества вероятных изъянов, возникающих в тексте программки, оцениваются все случаи подмены операторов Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N и типов, приводящих к изменению смысла метода. Количество изъянов для средств контроля типов данных определяется как


d = d + d + d ,

тип т N1 N2


где d - количество изъянов от вероятной подмены типов данных Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N;

т


d - количество изъянов от вероятной подмены кодов операндов;

N1


d - количество изъянов от вероятной подмены кодов операндов;

N2


Таким макаром, взяв за базу сопоставления полное отсутствие контроля типов данных, эффективность средства контроля Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N типов данных можно оценить по формуле


d T(T-1) + N1(1-1) + N2(2-1)

g = -------- = Т ------------------------------

тип d N1(1-T) + N2(2-T)

тип

где T - число типов данных;

N1 - число операторов;

1 - словарь операторов;

N2 - число операндов Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N;

 - словарь операндов;


^ В качестве второго оцениваемого средства контроля Денисенко выдвигает ограничения доступности переменных программ методом внедрения модульной структуры со связью модулей через характеристики. Количество вероятных изъянов при использовании обыкновенной блочной структуры, характерной таким языкам Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N, как алгол, паскаль, пл/1, возрастает по сопоставлению с модульной структурой за счет вероятного воззвания к доступной, но не определенным по спецификации связи блоков переменным. Эта черта может быть вычислена как:

dбл=dт Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N+ dN1+ dN2+ N2nсв,

где ncd- число наружных переменных, доступных, но не применяемых в рассматриваемом блоке в соответствие с его специфичностью.

Тогда эффективность модульной реализации комплекса программ по сопоставлению с блочной Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N реализацией определяется как





Анализ метрик позволяет прийти к выводу о том, что оценка языков и технологий программирования в текущее время проводится не на базе оценки синтаксиса и состава включенных средств, а Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N на базе пригодности этих задач, поточнее, на базе вариантов реализации задач при помощи данного средства программирования. Понятно, что конкретно эти свойства более ценны для практики.


^ Актуальный цикл программного изделия.


Суть развития ПИ во времени Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N отражает беспристрастная финансовая категория «цикл жизни». Предпосылкой для введения этой категории в сферу программных разработок послужило определение ПИ как изделия , имеющего самостоятельное значение, процессы проектирования и производства которого подобны процессам связанным Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N с созданием (созданием). Как и хоть какое изделие, Пиимеет собственный цикл жизни, т.е. интервал времени от исходного момента появления беспристрастной необходимости в ПИ до момента изъятия его из эксплуатации. Следует Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N выделить, что актуальный цикл ПИ завершается в итоге его морального, а не физического износа (что приемлимо для промышленных изделий). В свою очередь, молвят что ПИ морально устарело, если оно перестает удовлетворять животрепещущим требованиям, а Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N предстоящая его модификация не представляется вероятной либо не прибыльна, что тянет за собой необходимость в разработке нового ПИ.

В итоге анализа заморочек, требующих решения в процессе сотворения, исследования опыта разработок Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N и использования разных ПИ было установлено, что независимо от специфичных критерий, видов и требований к определенным ПИ можно выделить некую типовую последовательность шагов разработки и функционирования ПИ.

В общем виде за период Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N собственного актуального цикла ПИ проходит 3 фазы: разработку, внедрение, сопровождение. Фаза разработки начинается с анализа осуществимости проекта, а дальше методом поочередной трансформации преобразования от требований юзера в форму, доступную для реализации на ЭВМ. К тому Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N же в протяжении всей фазы закладываются главные свойства свойства грядущего ПИ, которые появляются на стадии его эксплуатации. На эту фазу приходятся, обычно, 50% цены ПИ и 32% трудозатрат.

Фаза использования начинается Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N тогда, когда изделие передается юзеру, находится в действии и употребляется отлично. В фазе использования обычно производятся обучение персонала, внедрение, настройка, сопровождение и, может быть, расширение ПИ.

Фазу сопровождения также именуют фазой продолжающейся разработки. Практиками признано Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N, что часть актуального цикла(ЖЦ) должна приниматься во внимание с момента начала разработки с целью совершенствования ПИ в согласовании с потребностями юзера. Процесс сопровождения, продолжающийся параллельно фактически эксплуатации ПИ, фактически в течении Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N всего времени его использования состоит из выявления и устранения ошибок в программках и исследования из многофункциональных способностей.

Структура трудозатрат на разные виды деятельности по сопровождению такая, что на изменение Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N многофункциональных способностей ПИ уходит около 78% времени, а на выявление ошибок –17%.

Ж.Ц. ПИ образует 4 главные стадии.

1.Исследование и проектирование. Исследование и анализ имеющихся ПИ, документирование; анализ осуществимости; определение и спецификация требований к Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N новенькому ПИ: концептуальное проектирование ПИ.

2.Реализация. Детализация проекта кодирование, тестирование, установление эксплуатационных процедур.

3.Внедрение (сдача) в опытную эксплуатацию. Приемочные испытания, обучение юзеров.

4.Эксплуатация и сопровождение. Повторяющиеся процедуры обработки инфы, рабочие прогоны программ, измерение производительности и Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N других черт ПИ, сопровождение и модификация по мере возникновения новых требований.

Исходные этапы определяют качество проекта и фуррор разработки программных средств в целом. Для исходных шагов разработки ПС типичны ситуации Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N; выявление и точное формулирование задачи в критериях значимой неопределенности; выбор стратегии исследования и разработок; четкое определение ПИ как системы (границы, выходы, набор компонент); выявление целей развития и функционирования ПИ; выявление функций Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N и состава вновь создаваемого ПИ.

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

В укрупненном виде актуальный цикл ПИ можно представить состоящим из последующих шагов: определение требований Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N к системе; определение требований к ПО; предварительное проектирование; кодирование и отладка; тестирование ПИ и системы; эксплуатация и сопровождение.

Начальным шагом сотворения и является шаг разработки требований, в процессе которого проводятся поисковые, исследования, формируется комплекс Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N требований выражающий потребности юзера в определенном ПИ. На данном шаге будущий комплекс программки кропотливо анализируется с учетом выполняемых им функций и главных параметров, обосновывается необходимость их разработки, за ранее оцениваются трудовые и Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N стоимостные издержки и сроки сотворения, вырабатываются советы по выбору инструментальных средств и способов, которые подразумевается использовать в процессе разработки программ. Неотклонимым в содержании данного шага является также формирование требований к качеству Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N программ в согласовании с критериями их функционирования и реализации определенных функций. Выполнение этих работ в процессе формирования требований и формирование нужных эксплуатационных параметров в ПИ на данном и следующих шагах их Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N разработки позволяет, предупредить дополнительные расходы, вызванные модификацией программ при их внедрении и сопровождении.

Последующим шагом в процессе сотворения программ является шаг проектирования, в процессе которого требования юзеров формируются в более четком и определенном виде Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N. Проектирование программ обхватывает комплекс работ по разработке структуры программ и их компонент; выбору языка программирования и определенной конфигурации комплекса технических средств, на котором подразумевается реализация разрабатываемых программ. В процессе Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N проектирования решается задачка выбора хорошей структуры программ, определяющая содержание и нрав работ на следующих шагах разработки. На данном шаге качество ПИ обеспечивается определенными решениями и зависит в главном от организации управления разработкой, квалификации профессионалов Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N, использования прогрессивных способов, приемов, правил и средств проектирования программ.

После проектирования программ следует их кодирование. На практике эти этапы, обычно, отчасти перекрываются, т.е. за проектированием отдельных модулей производится их программирование, а Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N потом, может быть, и подготовительная проверка корректности функционирования разработанного модуля.

Программирование характеризуется огромным числом различных правил, приемов, способов и средств его выполнения, применение которых находится в зависимости от квалификации, опыта Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N и личных особенностей программистов. Этот шаг более автоматизирован в процессе разработки ПИ. В текущее время есть 10-ки языков программирования и средств автоматизации, облегчающих труд программистов и повышающих его производительность, также создающие предпосылки унификации и Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N стандартизации процесса сотворения ПИ. К тому же внедрение современных приемов программирования, средств автоматизации, проведения разных видов проверок и контроля программирования содействует предотвращению и выявлению значимого числа ошибок, что уменьшает время и Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N расходы на шаге отладки и тестирования программ, увеличивает их качество.

Шаг отладки и тестирования программ, последующий за шагом программирования, имеет целью выявление и устранение ошибок в их, а так же определению, в Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N како мере разработанные программки удовлетворяют требованиям, сформированным в спецификациях. Работы по отладке и тестированию программ характеризуются большой степенью повторяемости и являются более мучительными и дорогостоящими. В связи с этим уделяется огромное внимание разработке и Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N использованию разных системных и инструментальных средств, автоматизирующих выполнение работ на данном шаге, что позволяет повысить качество разрабатываемых программ и понизить Трудозатратность их сотворения. По оценкам профессионалов на отладку и тестирование программ Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N затрачивается до половины общих средств на разработку программ, что все же не исключает наличие в их ошибок.

В связи с тем, что любая из нареченных стадий может быть представлена разным Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N набором составляющих ее шагов, в текущее время существует существенное количество моделей актуального цикла. Обилие моделей с теоретической точки зрения разъясняется тем, что термин «Жизненный цикл», идиетичен способу актуального цикла, а сам способ включает:

С практической точки зрения отсутствие в использовании единой модели разъясняется тем, что ЖЦ моделируется или порождается под воздействием определенной наружной среды, а не Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N напротив. К главным объектам формирующим внешнюю среду, относят организационно-технологические условия разработки ПИ; условия их сопровождения и эксплуатации; технические условия; структуру и режим использования ПИ; опыт и компанию коллектива разработчиков; класс решаемых задач с Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N учетом их типа и прикладной области, и в конце концов, количество шагов и их заполнение в ЖЦ зависят от выделенных ресурсов (временных, трудовых, стоимостных).

Обратим внимание, что во всех Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N приведенных вариантах схем ЖЦ не выделен момент (что является естественным и нужным для промышленных изделий) их производства (тиражирования). Это можно разъяснить 2-мя причинами:

  1. Невозможность поделить во времени и пространстве процесс разработки и фактически производства Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N ПС.

  2. ПС, как ранее говорилось, не имеет физического износа. Владея свойством фиксироваться на разных носителях, ПС не теряет и не меняет при всем этом свое содержание. Это особенность позволяет организовать их тиражирование и Число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); h 2 число уникальных операндов программы (словарь операндов); N неоднократное применение с наименьшими техническими и временными затратами.


chisla-kotorie-preobrazili-mir-referat.html
chisla-s-plavayushej-tochkoj.html
chislennaya-model-poleta-la.html