ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 27.04.2024
Просмотров: 132
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
1.1 Анализ характеристик экструзионно-каландрового производства полимерных пленок
2. Основная часть. Технология разработки программного комплекса
2.2 Функциональная структура программного комплекса
2.4 Структуры интерфейсов программного комплекса
2.6 Тестирование программного комплекса
2.7 Оценка соотношения затрат на реализацию ИТ-проекта и коммерческого эффекта от внедрения
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 |
ООП | + | + | + | + | + | + |
ФП | −/+ | +/− | −/+ | + | +/− | +/− |
Управление памятью | −/+ | + | + | + | + | + |