Файл: Информатика и вычислительная техника.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 27.04.2024

Просмотров: 132

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.




1.3 Обзор и обоснование выбора инструментальных средств разработки программного комплекса. Обоснование технической значимости разработки ИТ-проекта.



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

ОС

Windows

Mac OSX

Linux

Стоимость

Платная

Платная

Бесплатная

Код

Закрытый код

Закрытый код

Открытый код

Защищенность

Средняя

Высокая

Средняя

Дополнительное ПО

Много

Средне

Много

Распространенность

Высокая

Низкая

Низкая


ОС Windows имеет достаточную защищенность и очень широко распространена [5]. Поэтому именно она будет использована для разработки программного комплекса.

Язык программирования должен являться высокоуровневым, обладать достаточной выразительностью для удобства написания программного комплекса и минимизации временных затрат на разработку, а также достаточной производительностью для обработки большого объема производственных данных [6]. Кроме того, необходима поддержка объектно-ориентированной парадигмы, в качестве дополнительного требования можно предъявить возможность управления памятью.

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


Таблица 3 – Сравнение языков программирования по уровню

Язык

Уровень

С++

Высокоуровневый (есть низкоуровневые возможности)

С#

Высокоуровневый

Java

Высокоуровневый

Python

Высокоуровневый

JavaScript

Высокоуровневый

PHP

Высокоуровневый


Все рассматриваемые языки программирования являются высокоуровневыми, исключением является C++, который предоставляет низкоуровневые возможности.

Для сравнения производительности языков программирования проведем сравнение скорости выполнения задачи рекурсивного вычисления чисел Фибоначчи. На основе данных с сайта IBM [7]. В таблице 4 представлено сравнения языков программирования по производительности.
Таблица 4 – Сравнение языков программирования по производительности

Язык

С++

С#

Java

Python

JavaScript

PHP

Время выполнения, с


0,014


0,124


0,176


1,838


0,689


1,307


Наиболее производительным из рассматриваемых языков является C++, далее идут C#, Java, JavaScript, PHP, наименее производительным является Python.

Выразительность языка позволяет судить, насколько выразительно можно излагать содержание на том или ином языке в одинаковом объеме кода. Основываясь на данных с портала openhub.net [8], дадим количественную оценку выразительности языков в диапазоне от 0 до 10. В таблице 5 представлено сравнение языков на основе их выразительности.
Таблица 5 – Сравнение языков программирования по выразительности

Язык

С++


С#

Java

Python

JavaScript

PHP

Выразительность

3

8

5

10

6

4



ФП – декларативная парадигма программирования. Ее обычно противопоставляют более известной альтернативе – императивной парадигме программирования, в частности, ООП. ФП – это подход к разработке компьютерных программ, в котором основной инструмент – математические функции. Причем речь идет о «чистых» функциях, чей результат зависит исключительно от входных данных [9].

В ООП происходит работа с объектами – структурами данных, в которых есть вся нужная машине информация и процедуры, которые нужно провести. В ФП идет работа с функциями – операциями над входными данными, например, операции сложения или вычитания.

И в ООП, и в ФП есть переменные. В ООП переменные по-настоящему переменные, то есть их значение может меняться. В ФП переменные больше похожи на переменные в математике, где наименование переменной – это имя для конкретного значения. Раз в ООП значения переменных могут меняться, машине нужно исполнять инструкции в заданном порядке, чтобы получить желаемый результат. Функциональные языки позволяют выполнять независящие друг от друга инструкции в произвольном порядке, потому что значения переменных не изменятся и не смогут таким образом повлиять на конечный результат [9].

В таблице 6 приведено сравнение языков программирования на основе поддерживаемых языком парадигм.
Таблица 6 – Сравнение языков программирования по парадигмам

Парадигма

С++


С#

Java

Python

JavaScript

PHP

ООП

+

+

+

+

+

+

ФП

−/+ 

+/−

−/+

+

+/−

+/−


Таким образом, единственным языком, полноценно поддерживающим возможности ООП и ФП, является Python, при этом ООП поддерживается всеми рассматриваемыми языками программирования.

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

Возможности работы с памятью зависят от четырех основных критериев:


– объекты на стеке – возможность создавать экземпляры объектов не в «куче», а на стеке;

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

– ручное управление памятью – возможность явного выделения и освобождения памяти в «куче»;

– сборка «мусора» – возможность использовать автоматический процесс сборки «мусора» (освобождения памяти в «куче», занятой неиспользуемыми объектами) [10].

В таблице 7 приведено сравнение языков программирования на основе возможностей управления памятью.
Таблица 7 – Сравнение языков программирования по работе с памятью

Язык

С++


С#

Java

Python

JavaScript

PHP

Создание объектов на стеке

+

+









Неуправляемые указатели

+

+









Ручное управление памятью

+

+









Сборка «мусора»

−/+

+

+

+

+

+


На основе проведенного анализа составлена сводная таблица 8 для языков программирования по всем рассмотренным ранее характеристикам. Количественные оценки характеристик представлены в виде чисел по шкале от 0 до 10.
Таблица 8 – Сводная таблица по языкам программирования

Язык

С++


С#

Java

Python

JavaScript

PHP

Высокоуровневость

+

+

+

+

+

+

Производительность

10

8

7

3

5

4

Выразительность

3

8

5

10

6

4

ООП

+

+

+

+

+

+

ФП

−/+ 

+/−

−/+

+

+/−

+/−

Управление памятью

−/+

+

+

+

+

+