Скачиваний:
17
Добавлен:
15.06.2014
Размер:
183.02 Кб
Скачать

Министерство образования Республики Беларусь

Учреждение образования

«Белорусский государственный университет

информатики и радиоэлектроники»

Факультет компьютерных систем и сетей

Кафедра программного обеспечения информационных технологий

ОТЧЁТ

по лабораторной работе

«Построение метрики уровня языка программирования»

по курсу МССвИР

Анализируемый язык программирования – Pascal

Язык написания программного средства – С#

Проверил:

Данилова Г.В.

Выполнил:

студент гр. 851001

Касперович В.Л.

Минск, 2010

Содержание

Стр.

  1. Введение

3

  1. Теоретические сведения

4

  1. Описание программы

7

3.1 Описание функциональной части программы

7

3.2. Описание интерфейса

8

  1. Вывод

13

  1. Литература

14

Приложение А. Исходный код главного модуля программы

15

Приложение Б. Пример кода, проанализированного данным ПС.

29

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

30

  1. Введение

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

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

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

  1. Теоретические сведения

Для оценки языка программирования издавна существова­ло понятие уровня языка. Однако оно могло иметь только относительное значение, поскольку отсутствовал абсолютный измеритель. Такой измеритель был предложен М. Холстедом, который в своем понимании уровня языка использовал понятия, заложенные им в такие метрические характеристики программ, как уровень программы и объем программы.

Для вычисления этих величин используются четыре измеряемых характеристики программы:

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

2 число уникаль­ных операндов программы (словарь операндов);

N1 общее число операторов в программе;

N2 общее число операндов в программе.

Опираясь на эти характеристики, получаемые непосредст­венно при анализе исходных текстов программ, М. Холстед вводит следующие оценки:

словарь программы:

, (2.1)

длину программы:

, (2.2)

объём программы:

. (2.3)

Количество символов, используемых при реализации некое­го алгоритма, определяется в числе прочих параметров, и сло­варем программы , представляющим собой минимально не­обходимое число символов, обеспечивающих реализацию алго­ритма. Объем программы V характеризует число двоичных разрядов, т. е. бит, не­обходимых для записи программы. Под битом подразумевается логическая единица информации – символ, оператор, операнд, т. е. то, чем непо­средственно оперирует программист при создании программ.

При измерении уровня языка программирования также используется величина * — теоретический словарь про­граммы, т. е. словарный запас, необходимый для написания программы, с учетом того, что необходимая функция уже реа­лизована в данном языке и, следовательно, программа сводит­ся к вызову этой функции. Величина * определяется по следующей формуле:

, (2.4)

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

Исходя из этого, М. Холстед вводит оценку :

, (2.5)

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

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

По аналогии с высказыванием, согласно которому уровень программы, реализуемой конкретным алгоритмом, не зависит от используемого языка программирования, М. Холстед утверждает, что изменение алгоритма при кодировании на одном и том же языке, в одинаковой степени увеличивая потенциальный объем программы, снижает ее уровень. На этом основании была выдвинута гипотеза о постоянстве для одного языка программирования выражения

, (2.6)

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

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

. (2.7)

Данная метрика не является строго фиксированной для языка. Она зависит, в том числе, от поставленной задачи, конкретного алгоритма, а также от квалификации программиста.

Постоянство  определяется синхронным изменением объема программы при изменении ее потенциального объема. Иными словами, увеличение объема программы должно быть на два порядка больше увеличения количества информации по внешним связям. Следовательно, алгоритмически сложные программы вычисления единичных значений переменных будут давать значительно более низкое значение , чем программы вычисления большого объема информации по элементарным соотношениям. Если программа использует только стандартные инструкции языка и не связана с созданием управляющих структур (развилок и циклов), уровень языка такой программы будет значительно выше среднестатистического.

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

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