Сравнительный анализ библиотек, поддерживающих контрактное программирование

Использование библиотек Code Contracts, Contract++, PhpDeal, Cerny.js и jContractor для реализации принципов контрактного программирования. Применение аналитической иерархической процедуры Саати для проведения сравнительного анализа программных продуктов.

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 20.07.2018
Размер файла 241,9 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Волгоградский государственный технический университет

Волжский политехнический институт (филиал)

Сравнительный анализ библиотек, поддерживающих контрактное программирование

студент Демидов Александр Анатольевич

кандидат наук, доцент Рыбанов Александр Александрович

кандидат наук, доцент, доцент Лясин Дмитрий Николаевич

Аннотация

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

Правильность работы любой информационной системы во многом зависит от качества программного обеспечения (ПО), входящего в её состав. Постоянное усложнение современного ПО и рост важности выполняемых им функций увеличивает ущерб от возможных ошибок [1]. Чтобы минимизировать количество ошибок, допущенных при разработке ПО, необходимо осуществлять верификацию его корректности, а также проверять соответствие спецификациям. Реализовать это на практике возможно с помощью методологии контрактного программирования.

Для реализации принципов контрактного программирования возможно использовать следующие библиотеки: Code Contracts, Contract++, PhpDeal, Cerny.js и jContractor.

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

1. А1 - скорость работы;

2. А2 - объём занимаемой памяти;

3. А3 - объём результирующего кода;

4. А4 - базовый функционал;

5. А5 - качество документации.

Чтобы определить веса критериев, была использована аналитическая иерархическая процедура Саати. Данный метод нашёл применение в самых различных областях, таких как образование [2,3], наука и производство. В таблице 1 представлены правила заполнения матрицы парных сравнений.

Таблица 1. Значения коэффициентов матрицы парных сравнений

Xij

Значение

1

i-ый и j-ый критерий примерно равноценны

3

i-ый критерий немного предпочтительнее j-го

5

i-ый критерий предпочтительнее j-го

7

i-ый критерий значительно предпочтительнее j-го

9

i-ый критерий явно предпочтительнее j-го

В таблице 2 представлены матрица парных сравнений, средние геометрические и веса критериев.

Таблица 2. Матрица парных сравнений, средние геометрические и веса критериев

A1

A2

A3

A4

A5

Среднее геометрическое

Веса критериев

A1

1

5

7

1/5

1/5

1,09

0,14

A2

1/5

1

5

1/7

1/7

0,57

0,08

A3

1/7

1/5

1

1/9

1/7

0,24

0,03

A4

5

7

9

1

3

3,71

0,49

A5

5

7

7

1/3

1

2,01

0,26

Сумма

7,61

1

На рисунке 1 изображена диаграмма весовых коэффициентов для каждого из используемых критериев.

Рисунок 1. Весовые коэффициенты критериев

Выполним проверку матрицы попарных сравнений на непротиворечивость.

Суммы столбцов матрицы парных сравнений:

R1 = 11,34; R2 = 20,2; R3 = 29; R4 = 1,79; R5 = 4,49.

Путём суммирования произведений сумм столбцов матрицы на весовые коэффициенты альтернатив рассчитывается вспомогательная величина L = 4,46. библиотека контактный программирование phpdeal

Индекс согласованности: ИС = (L - N)/(N - 1) = 0,154.

Величина случайной согласованности для размерности матрицы парных сравнений: СлС = 1,12.

Отношение согласованности ОС = ИС/СлС = 0,14 не превышает 0,2 - значит уточнение матрицы парных сравнений не требуется.

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

1. Code Contracts для языка C#;

2. Contract++ для языка C++;

3. PhpDeal для языка PHP;

4. Cerny.js для языка JavaScript;

5. jContractor для языка Java.

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

Значения весовых коэффициентов бi, соответствующие функциональным возможностям продуктов:

1. Скорость работы: б1 = 0,14;

2. Объём занимаемой памяти: б2 = 0,08;

3. Объём результирующего кода: б3 = 0,03;

4. Базовый функционал: б4 = 0,49;

5. Качество документации: б5 = 0,26.

Определим (по введённой шкале) количественные значения функциональных возможностей Xij (таблица 3). Вычислим интегральный показатель качества для каждого программного продукта.

Таблица 3. Интегральные показатели качества

Критерии

Весовые коэффициенты

Code Contracts

Contract++

PhpDeal

Cerny.js

jContractor

Базовые значения

Скорость работы

0,14

3

4

3

3

4

3,4

Объём занимаемой памяти

0,08

2

4

6

5

3

4

Объём результирующего кода

0,03

4

3

3

4

4

3,6

Базовый функционал

0,49

6

5

5

5

6

5,4

Качество документации

0,26

6

5

5

4

6

5,2

Интегральный показатель качества Qj

5,20

4,72

4,74

4,43

5,42

4,9

Интегральный показатель качества для j-ой библиотеки визуализации графов определим с помощью следующей формулы:

Qj= ai * Zij.

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

Рисунок 2. Лепестковая диаграмма интегральных показателей качества

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

Рисунок 3. Лепестковая диаграмма значений функциональных характеристик

После проведения сравнительного анализа было выяснено, что только 2 библиотеки имеют интегральный показатель качества, превышающий базовое значение. Наивысшим интегральным показателем качества обладает библиотека jContractor.

Список литературы

1. Кулямин, В.В. Методы верификации программного обеспечения [Электронный ресурс] : статья / Кулямин В.В. // Институт системного программирования РАН / Режим доступа : http://www.ict.edu.ru/ft/005645/62322e1-st09.pdf.

2. Рыбанов А. Определение весовых коэффициентов сложности тем учебного курса на основе алгоритма Саати // Педагогические измерения. 2014. № 4. С. 21-28.

3. Рыбанов А.А., Макушкина Л.А. Технология определения весовых коэффициентов сложности тем дистанционного курса на основе алгоритма Саати // Открытое и дистанционное образование. 2016. № 1 (61). С. 69-79.

Размещено на Allbest.ru

...

Подобные документы

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

    курсовая работа [5,6 M], добавлен 04.05.2013

  • Понятие и виды электронных ресурсов муниципальных библиотек. Организация и использование электронных ресурсов в муниципальных библиотеках РФ. Анализ современного состояния и основные тенденции развития электронных ресурсов муниципальных библиотек.

    курсовая работа [77,9 K], добавлен 16.05.2017

  • Интерфейс API, реализация функций API на уровне ОС, системы программирования и с помощью внешних библиотек. Характеристики сетевого интерфейса прикладного программирования Winsock, особенности его применения в операционных системах UNIX и Windows.

    контрольная работа [74,2 K], добавлен 04.06.2015

  • Основные типы динамических подключаемых библиотек DLL: исполняемые и библиотеки ресурсов. Способы экспорта процедур и функций: по имени и порядковому номеру. Системные требования к разработке программы для организации проведения опросов (тестов).

    курсовая работа [124,3 K], добавлен 23.07.2012

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

    курсовая работа [602,7 K], добавлен 26.06.2016

  • Developed the principles that a corpus of texts containing code-mixing should have and built a working prototype of Udmurt/Russian Code-Mixing Corpus. Discussed different approaches to studying code-mixing and various classifications of code-mixing.

    дипломная работа [1,7 M], добавлен 30.12.2015

  • Основные интегрированные информационные системы поддержки принятия решений. Обзор и сравнительный анализ программных продуктов инвестиционного проектирования. Программа управления проектами "MS Project". Примеры программных продуктов в ОАО "Криогенмаш".

    курсовая работа [776,0 K], добавлен 03.06.2014

  • Исследование возможностей и областей использования языка программирования JavaScript. Сравнительный анализ языков программирования JavaScript и PHP. Разработка интерактивного Web-приложения на примере теста по теме "Программирование на языке Delphi".

    практическая работа [26,0 K], добавлен 04.02.2015

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

    курсовая работа [1,3 M], добавлен 25.07.2012

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

    дипломная работа [1,2 M], добавлен 13.06.2014

  • Характеристики и свойства языков программирования. Исследование эволюции объектно-ориентированных языков программирования. Построение эволюционной карты механизмов ООП. Разработка концептуальной модели функционирования пользовательского интерфейса.

    курсовая работа [2,6 M], добавлен 17.11.2014

  • Библиотека, обладающая крупной распределенной коллекцией документов в электронной форме, доступной через сети передачи данных. Основные задачи электронных библиотек. Цели создания и концепция электронных библиотек. Профильность хранимой информации.

    контрольная работа [26,0 K], добавлен 27.11.2012

  • Особенности разработки программ для ЭВМ. Этапы планирования программы. Понятие и особенности алгоритмов. Средства, используемые для создания программ. Виды и классификация языков программирования. Структурное и объектно-ориентированное программирование.

    реферат [59,7 K], добавлен 19.08.2010

  • Разработка программы, которая выявляет в прямоугольной матрице все подматрицы, состоящие только из m-значных целых чисел. Использование компилируемого языка программирования общего назначения C/C++. Обработка алгоритмов, кодирование программных средств.

    курсовая работа [980,1 K], добавлен 05.03.2015

  • Понятие арифметического точечного пространства. Различные виды плоскостей в пространстве. Общая задача оптимизации. Геометрия задачи линейного программирования. Графический метод решения задачи линейного программирования при малом количестве переменных.

    курсовая работа [756,9 K], добавлен 29.05.2014

  • Книжные интернет-магазины и их специфические особенности, сайты издательств в сети Интернет. Новые сетевые проекты для библиотекарей, издателей и книготорговцев. Национальная программа "Книги в наличии и печати", её значение для комплектования библиотек.

    курсовая работа [40,4 K], добавлен 14.02.2011

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

    учебное пособие [1,7 M], добавлен 26.10.2013

  • Основные примеры работы процедуры слияния и обеспечение его стабильности. Листинг реализации процедуры слияния на языке программирования C++. Формализация алгоритма рекурсивным и итерационным способомами. Восходящая, гибридная и естественная сортировка.

    курсовая работа [363,9 K], добавлен 24.05.2015

  • Сравнительный анализ наиболее распространенных языков, их классификация, описание достоинств и недостатков. Использование процедур, функции и подпрограмм в языках программирования высокого уровня. Разработка и реализация программы "Бортовой компьютер".

    курсовая работа [329,8 K], добавлен 22.06.2014

  • Характеристика языков программирования: краткая история, хронология. Основные виды языков программирования: ассемблер; бейсик. Создание и использование формул в Excel. Применение операторов в формулах. Использование функций в Excel. Сайт дома отдыха.

    отчет по практике [139,1 K], добавлен 03.06.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.