- •Пояснительная записка
- •«Разработка программного средства эмуляции pos-терминала»
- •Содержание
- •Специальный раздел
- •Технологический раздел
- •Организационно-экономический раздел
- •Раздел по производственной и экологической безопасности
- •Перечень сокращений
- •Введение
- •Специальный раздел
- •1.Специальный раздел
- •1.1.Исследовательская часть
- •1.1.1.Типы программных средств эмуляции
- •1.1.2.Обзор программных средств эмуляции Microsoft Device Emulator и Android Emulator
- •Системные требования Microsoft Device Emulator
- •1.1.3.Эмуляция аппаратных модулей pos-терминала
- •Сравнительная характеристика программных средств эмуляции
- •1.2.Конструкторская часть
- •1.2.1.Состав выполняемых функций
- •1.2.2.Требования к надежности
- •1.2.3.Требования к информационной и программной совместимости
- •1.2.4.Требования к составу и параметрам технических средств
- •1.2.5.Организация входных и выходных данных
- •1.2.6.Выбор платформы для разработки
- •1.2.7.Выбор среды разработки
- •Сравнительная характеристика средств разработки
- •1.2.8.Алгоритмы работы программного средства
- •1.2.9.Иерархия классов прикладной программы пс эт
- •1.2.10.Описание логической структуры программного средства
- •Список создаваемых специальных файлов устройств
- •1.2.11.Пользовательский интерфейс. Экранные формы
- •1.2.12.Методика и результаты испытаний программного средства
- •Технологический раздел
- •2.Технологический раздел
- •2.1.Технология программирования пс эт
- •2.1.1.Основные определения
- •2.1.2.Этапы разработки и использованная модель жизненного цикла
- •2.1.3.Объектно-ориетированный подход
- •2.2.1.Обзор возможностей языка Си
- •2.3.Разработка драйверов в ос Linux
- •2.3.1.Особенности ос Linux
- •2.3.2.Принципы работы драйверов в ос Linux
- •2.3.3.Специальные файлы устройств
- •2.3.4.Структура, инициализация и выгрузка драйверов
- •2.3.5.Отладка драйверов
- •2.4.Сценарии в ос Linux
- •2.4.1.Основы разработки сценариев на языке оболочки bash
- •2.4.2.Переменные и области видимости
- •Стандартные переменные окружения и оболочки bash
- •2.4.3.Средства ввода-вывода
- •2.4.4.Команды ветвления if-else, case
- •2.4.5.Организация циклов
- •2.4.6.Определение функций
- •2.4.7.Отладка сценариев
- •Опции запуска сценариев
- •2.4.8.Makefile – управление компиляцией
- •2.5.Использование библиотек в ос Linux
- •2.5.1.Статические и динамические библиотеки
- •2.5.2.Графическая библиотека fltk
- •Элементы библиотеки fltk
- •2.5.3.Библиотека pcsc для работы с электронными картами
- •2.5.4.Библиотека TinyXml для работы с xml-файлами
- •Основные классы библиотеки TinyXml
- •2.6.Средства отладки в ос Linux
- •2.6.1.Технологии отладки
- •2.6.2.Отладочные сообщения
- •2.6.3.Стандарт syslog
- •2.6.4.Удаленная отладка с помощью gdbserver
- •2.6.5.Отладка в среде SlickEdit 2009
- •2.7.Виды тестирования
- •2.7.1.Классификация видов тестирования
- •2.7.2.Уровни тестирования
- •2.7.3.Тестирование методом «белого» ящика
- •2.7.4.Тестирование методом «черного» ящика
- •Организационно-экономический раздел «Определение целевого сегмента рынка pos-терминалов»
- •3.Организационно-экономический раздел
- •3.1.Сегментация рынка и позиционирование товара
- •3.1.1.Разделение рынка на сегменты
- •3.1.2.Принципы рыночной сегментации
- •3.1.3.Методы выделения сегментов
- •3.1.4.Критерии рыночной сегментации
- •3.1.5.Выбор целевого рынка
- •3.1.6.Выбор целевого сегмента
- •3.1.7.Позиционирование товара
- •3.1.8.Метод Чекановского
- •3.2.Сегментация рынка платежных pos-терминалов
- •3.2.1.Особенности рынка pos-терминалов
- •3.2.2.Выделение групп конечных пользователей
- •3.2.3.Выделение основных характеристик pos-терминала «ярус»
- •3.2.4.Диаграмма Чекановского
- •3.2.5.Выбор целевого сегмента и позиционирование pos-терминала «ярус»
- •Раздел по производственной и экологической безопасности «Инженерный расчет воздухообмена на рабочем месте инженера-программиста»
- •4.Раздел по производственной и экологической безопасности
- •4.1.Введение
- •4.2.Рабочее место инженера-программиста
- •4.2.1.Особенности и характеристики
- •4.2.2.Основные опасности и вредности
- •4.2.3.Оценка тяжести труда
- •Классы условий труда по показателям тяжести трудового процесса
- •4.3.Воздухообмен в помещении
- •4.3.1.Классификация систем вентиляции
- •4.3.2.Инженерный расчет воздухообмена в зависимости от числа людей в помещении
- •4.3.3.Инженерный расчет воздухообмена по избыткам тепла
- •Значения коэффициента Кост
- •Плотность теплового потока солнечной радиации в июле, Вт/м2
- •4.3.4.Выбор вентиляционной системы
- •4.4.Пожарная безопасность
- •4.5.Экологическая безопасность (утилизация компьютеров)
- •Заключение
- •Список литературы
- •Введение
- •Назначение и условия применения пс эт
- •Состав выполняемых функций
- •Требования к надежности
- •Требования к составу и параметрам технических средств
- •Характеристика пс эт
- •Обращение к пс эт
- •Входные и выходные данные пс эт
- •Сообщения
Опции запуска сценариев
Опция |
Описание |
-n |
Читать все команды, но не выполнять их. |
-v |
Отображать все строки по мере их чтения. |
-x |
Отображать все команды и их аргументы по мере их выполнения. |
Общая методика отладки сценария состоит в том, что прежде, чем запустить его на выполнение, необходимо проверить его синтаксис с помощью опции -п. А для большей детализации рекомендуется использовать совокупность ключей -nv. На следующем этапе, после устранения синтаксических ошибок, проводится отладка с трассировкой с помощью опции -х.
2.4.8.Makefile – управление компиляцией
Компиляция исходного текста программы осуществляется командой make [19], которая осуществляет сборку по набору правил, определенных в специальном файле Makefile, располагающемся рядом с исходным текстом.
При вызове команды make каждый измененный исходный C-файл должен быть перекомпилирован. Если был изменен заголовочный файл, перекомпилируется каждый исходный C-файл, который его включает. Каждая компиляция порождает объектный файл, соответствующий исходному файлу. Наконец, если какой-либо исходный файл был перекомпилирован, все объектные файлы, как новые, так и оставшиеся от предыдущих компиляций, должны быть скомпонованы вместе для создания нового исполняемого файла.
В общем случае make-файл состоит из набора правил следующего вида:
цель1 … цельN : зависимость1 … зависимостьM
[набор команд]
Цель обычно представляет собой имя файла, генерируемого программой make; примерами целей являются исполняемые или объектные файлы. Цель может также быть именем выполняемого действия.
Зависимость – это файл, используемый как вход для порождения цели. Часто цель зависит от нескольких файлов.
Набор команд представляет собой действия, которые выполняет make. Правило может иметь более, чем одну команду – каждую на своей собственной строке, при этом каждая команда должна начинаться с символа табуляции.
Вызов команды make без параметров приводит к выполнению первого правила из списка, при этом сначала строятся все необходимые для данного правила зависимости. Однако при вызове команды make можно явно указать имя правила, которое необходимо выполнить.
Стандарт IEEE 1003.2-1992 (POSIX.2) также предусматривает поддержку специальных функций, упрощающих работу с файлами, строками и т.д. Вызов функции осуществляется следующим образом:
$(имя_функции аргумент1 … аргументN)
Примеры make-файлов, использованных для сборки ПС ЭТ, могут быть найдены в приложении 1.
2.5.Использование библиотек в ос Linux
2.5.1.Статические и динамические библиотеки
Библиотека представляет собой набор подпрограмм, который позволяет коду этих подпрограмм использоваться в виде отдельных модулей [20]. Исполняемые файлы и библиотеки создают взаимные ссылки в процессе связывания (линковки), который осуществляется редактором связей (линковщиком).
В первом приближении библиотеки можно разделить на статические и динамические.
Статические библиотеки являются набором объектных файлов и традиционно имеют расширение «.а» в Linux. Когда программа связывается со статической библиотекой, машинный код из объектных файлов для каждой используемой программой функции библиотеки копируется из библиотеки в конечный исполняемый файл. Главным минусом подобного способа связи является значительное увеличение размера исполняемого файла.
В отличие от статических, в динамических библиотеках (расширение «.so») код библиотеки не прикрепляется к исполняемому файлу во время связывания. В зависимости от того когда и как осуществляется привязка подпрограмм по адресам, процесс связывания можно разделить на следующие этапы:
предварительное связывание;
связывание на этапе загрузки;
неявное связывание во время запуска;
явное связывание во время запуска.
Предварительное связывание позволяет ускорить запуск исполняемого файла за счет сохранения в нем информации об используемых динамических библиотеках на этапе его сборки.
Связывание на этапе загрузки заключается в том, что при запуске исполняемого файла операционная система осуществляет поиск всех необходимых динамических библиотек по информации, сохраненной в данном файле на этапе предварительного связывания. Если какая либо библиотека не найдена, выводится соответствующее сообщение об ошибке.
При вызове подпрограммы динамической библиотеки возможны два варианта связывания – явное и неявное. В случае явного связывания осуществляется поиск по имени и вызов функции непосредственно во время исполнения. В случае неявного связывания прототип функции известен заранее и объявлен в соответствующем заголовочном файле. Второй способ наиболее распространен и был использован при разработке рассматриваемого программного средства.