Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Технологическая.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
185.34 Кб
Скачать

3.2.5.2 Обоснование выбора операционной системы

Данная диссертация предполагает разработку автоматизированного решения для тестирования локальных приложений в UNIX-подобных операционных системах, поэтому в качестве ОС, используемой для разработки такого решения целесообразно будет выбрать один из дистрибутивов GNU/Linux.

GNU/Linux — общее название UNIX-подобных операционных систем, основанных на одноимённом ядре. Ядро Linux разрабатывается и распространяется в соответствии с моделью разработки свободного и открытого программного обеспечения. Поэтому общее название не подразумевает какой-либо единой «официальной» комплектации Linux; они распространяются в основном бесплатно в виде различных готовых дистрибутивов, имеющих свой набор прикладных программ и уже настроенных под конкретные нужды пользователя.

Наиболее популярными дистрибутивами являются: deb-based (Debian, Mint, Ubuntu), RPM-based (RedHat, Fedora, Mageia, OpenSUSE), source-based (Slackware, Gentoo).

В качестве операционной системы для разработки фаззера локальных приложений может выступить дистрибутив Debian GNU/Linux 7.0 («Wheezy»), поскольку он обладает наиболее широкой пакетной базой (ОС содержит весь необходимый сопутствующий разработке инструментарий) и является одним из наиболее стабильных дистрибутивов GNU/Linux.

3.2.5.3 Обоснование выбора среды разработки

На сегодняшний день наиболее функциональной средой разработки для языка Python является PyCharm IDE. PyCharm имеет несколько вариантов лицензий, которые отличаются функциональностью, стоимостью и условиями использования.

Возможности Pycharm IDE:

  • Статический анализ кода, подсветка синтаксиса и ошибок.

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

  • Рефакторинг: переименование, извлечение метода, введение переменной, введение константы, подъём и спуск метода и т. д.

  • Инструменты для веб-разработки с использованием фреймворка Django.

  • Встроенный отладчик для Python.

  • Встроенные инструменты для юнит-тестирования.

  • Разработка с использованием Google App Engine.

  • Поддержка систем контроля версий: общий пользовательский интерфейс для Mercurial, Git, Subversion, Perforce и CVS с поддержкой списков изменений и слияния.

В рамках диссертации предполагается использование версии PyCharm Community Edition. Данная версия отличается урезанным функционалом, однако распространяется свободно. Полный функционал версии PyCharm Professional Edition будет избыточным в контексте разработки фаззера, поскольку для данной задачи достаточно возможностей стандартной библиотеки языка Python.

3.2.5.4 Обоснование выбора системы контроля версий

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

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

Для хранения исходных кодов фаззера предполагается использование бесплатного сетевого репозитория Bitbucket. Bitbucket — веб-сервис для хостинга проектов и их совместной разработки, основанный на системе контроля версий Mercurial и Git. По назначению и предлагаемым функциям аналогичен GitHub (однако GitHub не предоставляет бесплатные «закрытые» репозитории, в отличие от Bitbucket), который поддерживает Git и Subversion.

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

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

Git поддерживает быстрое разделение и слияние версий, включает инструменты для визуализации и навигации по нелинейной истории разработки. Как и Darcs, BitKeeper, Mercurial, Bazaar и Monotone, Git предоставляет каждому разработчику локальную копию всей истории разработки, изменения копируются из одного репозитория в другой.

Удалённый доступ к репозиториям Git обеспечивается git-daemon, SSH- или HTTP-сервером. TCP-сервис git-daemon входит в дистрибутив Git и является наряду с SSH наиболее распространённым и надёжным методом доступа. Метод доступа по HTTP, несмотря на ряд ограничений, очень популярен в контролируемых сетях, потому что позволяет использовать существующие конфигурации сетевых фильтров.