Информационное письмо
Образец оформления статьи
Анкета автора
24.05.2016

Выбор языка программирования методом анализа иерархий Томаса Саати

Кузнецов Максим Андреевич
магистрант, кафедра информатики, Санкт-Петербургский государственный экономический университет, г. Санкт-Петербург, Российская Федерация
Аннотация: Успех разработки программного обеспечения напрямую зависит от выбранных средств программирования. Существует множество языков программирования, выбор конкретного варианта зависит от ряда критериев и конкретной задачи. Выбрать единственно верный вариант можно с помощью метода анализа иерархии.
Ключевые слова: информационные технологии, objective-c, swift, средства разработки, метод анализа иерархии
Электронная версия
Скачать (952.4 Kb)

Введение

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

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

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

1. Цель исследования

Обзор различных средств разработки программы для формирования расписания, а именно выбор языка программирования для реализации программного кода, выделение положительных и отрицательных сторон каждого, выбор подходящего варианта по критериям оценки языков программирования и проведение анализа методом иерархий Томаса Саати в СППР "Выбор".

2. Альтернативы исследования

В качестве системы для разработки будет рассматриваться операционная система MacOS, которая имеет ряд преимуществ перед аналогами. На данный момент при разработке под эту систему существует два альтернативных языка: Objective-C и Swift. Каждый обладает своими положительными и отрицательными качествами.

Первым появился Objective-C, как надмножество языка C. Создан он был путем добавления новых синтаксических конструкций и специального препроцессора для них. В нём вызовы метода интерпретируются не как вызов функции, а именно как посылка сообщения с именем и аргументами объекту. Он в свою очередь может делегировать это другому объекту, который займется его обработкой.

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

Такой же логике следует и Swift, язык, который пришел на смену Objective-C. Этот язык был создан компанией Apple для разработки их продуктов. Он имеет другой синтаксис, другие конструкции, другие правила. Это совершенно иной инструмент разработки, которому многие специалисты пророчат светлое будущее [7]. Данный язык разрабатывался в течение 4 лет одним из сотрудников Apple, чтобы быстро завоевать себе массу поклонников. На данный момент все силы Apple брошены на усовершенствование и развитие этого языка. Синтаксис, в отличие от Objective-C, был написан с нуля, а значит, теперь нет зависимости от развития C. Это совершенно новый инструмент разработки.

3. Критерии исследования

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

Читаемость языка. В отличие от Objective-C, Swift не построен на C. Поэтому у него отсутствуют специальные обозначения ключевых слов, чтобы отличаться от него. Вместо этого он может объединить все ключевые слова и удалить повторяющиеся символы перед каждым типом или связанным с объектом ключевым словом.

Так же в Swift упрощена реализация условий наследования. Методы и функции вызываются с использованием стандартного списка параметров в круглых скобках, в то время, как в Objective-C это реализовано с использованием многочисленных вложенных конструкций в круглых и квадратных скобках.

По мнению многих программистов JavaScript, Java, C# Swift является более читаемым, что облегчает работу с ним. Он имеет упрощенный синтаксис и грамматику. В результате Swift является совершенно новым, чистым и выразительным языком, более простым для понимания разработчиками.

Поддержка языка. Основная проблема Objective-C - отсутствие возможности развиваться без развития C. В последнем реализован принцип, по которому, чтобы обеспечить высокую эффективность создания приложения и сократить время его установки, разработчикам приходится поддерживать два файла. Этот принцип переносится и на Objective-C.

В Swift это требование попросту отсутствует. Теперь файл-заголовок и файл реализации объединены в одном файле кода с расширением .swift.

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

Управление памятью. Программисту не приходится задумываться о памяти для цифровых объектов, которые он создает. Потому что автоматический подсчет ссылок (ARC) обрабатывает все управление памятью во время компиляции кода. Это происходит потому что ARC в Swift работает и на процессуальном и на объектно-ориентированном коде, и теперь не нужно контекстных переходов для программистов, даже если они пишут код, который рассчитан на более старые API[1]. Это является проблемой для текущей версии Objective-C.

Документация. Objective-C имеет готовую документацию, которая переведена на русский язык, что упрощает работу с этим языком и его использование в своих проектах. Постоянно развивающийся Swift, в свою очередь, не имеет полностью переведенной документации. При постоянной модернизации языка сложно уследить за всеми мелкими изменениями в его синтаксисе.

Скорость работы. Удаление устаревших соглашений намного улучшило движок Swift. Многочисленные тестирования производительности кода указывают на то, что Apple всерьез занимается улучшением скорости работы приложений на Swift. В то время как скорость обработки данных на Objective-C осталась на прежнем уровне C.

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

Что касается Objective-C, то он дальнейшего развития не получает. Apple сконцентрировалась только на работе над Swift. Это стабильный продукт, от которого не приходится ожидать кардинальных изменений.

Поддержка динамических библиотек. Самое большое нововведение в Swift - это переход от статических библиотек, которые обновляются только при крупных обновлениях, к динамическим библиотекам, которые присоединяются к готовому приложению и получают развитие не с обновлением всего проекта, а с изменениями этих библиотек [2]. В Objective-C работа происходила только со статическими библиотеками, что увеличивало объем конечного приложения.

Ниже представлена сводная таблица 1:

Таблица 1. Сводная таблица критериев и языков

Критерии

Читаем.

Поддерж.

Память

Докум.

Скор.

Законч.

Библиот.

Язык

Objective-C

2

2

2

1

2

1

2

Swift

1

1

1

2

1

2

1

4. Использование метода анализа иерархий Т.Саати в СППР Выбор при выборе языка программирования для разработки программы

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

Рассматриваемая задача представлена в виде иерархической структуры выбора инструментов для разработки мобильного приложения «Цель → Критерии → Альтернативы» на рисунке 1.

Рис. 1. Иерархическая структура выбора языка программирования

Рис. 1. Иерархическая структура выбора языка программирования

5. Суждения исследования

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

Таблица 2. Шкала субъективных суждений сравнения критериев

Значение

Определение

1

A и B одинаково важны

3

А незначительно важнее, чем B

5

A значительно важнее B

7

A явно важнее B

9

A по своей значительности абсолютно превосходит B

2, 4, 6, 8

Промежуточные значения

Можно выделить следующие субъективные суждения:

  • Читаемость значительно превосходит поддержку и абсолютно превосходит память;
  • Скорость существенно превосходит читаемость и библиотеки;
  • Законченность умеренно превосходит читаемость, скорость и поддержку;
  • Память значительно превосходит поддержку;
  • Документация умеренно превосходит поддержку и память;
  • Скорость умеренно превосходит поддержку, память и документацию;
  • Поддержка существенно превосходит библиотеки;
  • Память умеренно превосходит законченность и библиотеки;
  • Читаемость умеренно превосходит документацию и библиотеки;
  • Документация существенно превосходит библиотеки;
  • Законченность значительно превосходит библиотеки и документацию.

2. Матрицы попарных сравнений

Матрицы попарных сравнений были составлены при помощи программного продукта СППР Выбор[6], там же были определены значения следующих показателей:

  • собственного значения матриц (λ),
  • индекса согласованности (ИС),
  • отношения согласованности (ОС).

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

Рис. 2. Матрица попарных сравнений критериев выбора языка программирования

Рис. 2. Матрица попарных сравнений критериев выбора языка программирования

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

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

Рис. 4. Матрица попарных сравнений альтернатив языков по поддержке

Рис. 4. Матрица попарных сравнений альтернатив языков по поддержке

Рис. 5. Матрица попарных сравнений альтернатив языков по управлению памятью

Рис. 5. Матрица попарных сравнений альтернатив языков по управлению памятью

Рис. 6. Матрица попарных сравнений альтернатив языков по документации

Рис. 6. Матрица попарных сравнений альтернатив языков по документации

Рис. 7. Матрица попарных сравнений альтернатив языков по скорости работы

Рис. 7. Матрица попарных сравнений альтернатив языков по скорости работы

Рис. 8. Матрица попарных сравнений альтернатив языков по законченности

Рис. 8. Матрица попарных сравнений альтернатив языков по законченности

Рис. 9. Матрица попарных сравнений альтернатив языков по поддержке динамических библиотек

Рис. 9. Матрица попарных сравнений альтернатив языков по поддержке динамических библиотек

Рис. 10. Результат вычислений в виде круговой диаграммы

Рис. 10. Результат вычислений в виде круговой диаграммы

В итоге мы получили результат вычислений в виде диаграммы рис. 10, из которой видно, что для разработки оптимальным вариантом, удовлетворяющим всем критериям выбора, является язык программирования Swift с комбинированным весовым коэффициентом равным 0,397.

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

1. Вандад Нахавандипур. iOS. Разработка приложений для iPhone, iPad и iPod. СПб.: Питер, 2013. — 864 с.

2. Дж. Конвэй, А. Хиллегасс. Программирование под iOS. Для профессионалов. СПб.: Питер, 2013. — 608 с.

3. Граничин О. Н., Кияев В. И. Информационные технологии и системы в современном менеджменте. СПб.: Изд-во СПбГУ-ВВМ, 2014. — 897 с.

4. Гусева Д.В., Витовтов В.А., Кириленко Т.А. Перспективы применения метода анализа иерархий при совершении спортивных ставок // Nauka-rastudent.ru. – 2016. – № 02 (26) / [Электронный ресурс] – Режим доступа. – URL: http://nauka-rastudent.ru/26/3218/

5. Саати Т. Принятие решений. Метод анализа иерархий. М.: Радио и связь. 1993. – 278 с.

6. Система поддержки принятия решений (СППР) "Выбор" [электронный ресурс]. URL: http://www.ciritas.ru/product.php?id=10

7. SwiftBook Справочник языка Swift, [Электронный ресурс] – Режим доступа. – URL: http:// http://swiftbook.ru/