МД (1194692), страница 15
Текст из файла (страница 15)
К результату проектирования предъявляются различные требования на основе правил, стандартов и ожиданий инициатора.3.1 Требования, предъявляемые к программному комплексуДля реализации программы-слайсера, реализующей адаптивный подход кдинамически задаваемой толщине слоя, необходимо при разработке ПО предусмотреть ряд функций, которым должна соответствовать программа [28]:̶ загрузка и открытие трехмерных моделей в формате *.stl;̶ работа с трехмерной сценой, возможность поворота как сцены, так и загруженной модели;̶ наличие нулевой плоскости и осей координат в пространстве сцены;̶ просмотр контура при рассечении модели на определенном слое;̶ просмотр обхода контура на каждом слое;̶ задание толщины слоя;̶ просмотр модели в виде векторной триангуляционной сетки, для просмотра внутренней структуры и структуры модели;96̶ генерация внутренней сетки заполнения внутри контура (случайным образом и в виде узлов сетки матрицы);̶ послойное деление всей загруженной модели (статическое с заданной величиной слоя, и динамическое, с адаптивно изменяемой толщиной слоя в зависимости от геометрии внешнего контура модели;̶ генерация g-кода по полученному в результате послойного деления массива контуров;̶ сохранение сгенерированного g-кода в файл для последующей трехмернойпечати.3.2 Требования, предъявляемые к программному кодуМожно выделить несколько основных критериев оценки качества программного обеспечения [27].3.1.1Качество исходного кодаК качеству программного кода предъявляются следующие требования:̶ соответствие кода стандартам;̶ легкость поддержки;̶ малое число предупреждений при компиляции.3.1.2 Качество программного продуктаК качеству программного кода предъявляются следующие требования:̶ функциональность;̶ надежность;̶ удобство использования;̶ эффективность;̶ безопасность.973.3 Требования к продуктуК созданному программному продукту предъявляются стандартные требования в рамках проектирования программных продуктов специализированногоназначения, включая следующие требования:̶ наличие инструкции по эксплуатации, включая письменное описание основных программных функций, пояснительную записку по интерфейсу программы, описание возможных ошибок и средств к их исправлению;̶ файл инструкции по эксплуатации должен быть представлен к программному продукту либо в бумажном виде, либо в электронном формате;̶ краткая презентация программы с указанием краткого письменного описания с указанием основного функционала на языке понятном для целевой аудитории.3.4 Требования к интерфейсуК интерфейсу готового программного продукта предъявлены следующиетребования:̶ разработка интерфейса начинается с определения задачи или набора задач,для которых продукт предназначен;̶ интерфейс должен быть максимально простым и понятным;̶ интерфейс должен быть ориентированным на человека, т.е.
отвечать нуждам человека и учитывать его слабости;̶ элементы интерфейса должны оставаться максимально неизменными, ановые элементы интуитивно понятными;̶ разработка интерфейса опирается на принцип наименьшего возможногоколичества действий со стороны пользователя;̶ цвет элементов интерфейса.
Цвета делятся на теплые (желтый, оранжевый,красный), холодные (синий, зеленый), нейтральные (серый). Обычно для элементов интерфейса используют теплые цвета. Это как раз связано с психологией восприятия;98̶ форма. В большинстве случаев - прямоугольник со скругленными углами.Или круг [29];̶ основные элементы интерфейса (часто используемые) должны быть выделены.
Например, размером или цветом;̶ иконки в программе должны быть очевидными;̶ перед расположением элементы интерфейса следует упорядочить (сгруппировать) по значимости. Т.е. определить, какие наиболее важны, а какие – менее;̶ необходимо учитывать привычки пользователя. Например, если в Windowsкнопка закрыть находится в правом верхнем углу, то программе аналогичнуюкнопку необходимо расположить там же.
Т.е. интерфейс должен иметь какможно больше аналогий, с известными пользователю вещами;̶ элемент интерфейса можно считать видимым, если он либо в данный момент доступен для органов восприятия человека, либо он был настолько недавно воспринят, что еще не успел выйти из кратковременной памяти.
Для нормальной работы интерфейса, должны быть видимы только необходимые вещи те, что идентифицируют части работающих систем, и те, что отображают способ, которым пользователь может взаимодействовать с устройством;̶ отступы между элементами интерфейса равные или кратные друг другу;̶ если задержки в процессе выполнения программы неизбежны или действие производимое пользователем очень значимо, важно, чтобы в интерфейсебыла предусмотрена сообщающая о них обратная связь;̶ элементы интерфейса должны отвечать. Если пользователь произвел клик,то элемент интерфейса должен как-то отозваться, чтобы человек понял, чтоклик произошел [30].3.5 Планируемый вид интерфейсаВнешний вид приложения представлен на рисунке 43.
При запуске приложения происходит загрузка командной консоли и окна, содержащего трехмер99ную сцену. Работа с приложением осуществляется посредством консольногоинтерфейса, инструкция по использованию клавиш выводится при запуске вконсоль.абРисунок 43 – Планируемый вид приложения: а – консольное окно; б – окно интерфейсаПосредством управляющих клавиш, пользователь, работающий с программой, имеет весь необходимый функционал для слайсинга трехмерных моделейлюбой конструкции. Так же, в консоль выводится поясняющий код, проходящий в процессе выполнения операций над трехмерной моделью.3.6 Выбор языка программированияВ качестве языка программирования программного комплекса, нарезающего3D моделей на слои для последующей печати на 3D принтере (программыслайсера), реализующего адаптивный подход к динамически задаваемой толщине слоя, выбран язык C++, как язык программирования общего назначения,100поддерживающий весь необходимый функционал для создания оконных и консольных приложений, включая проектирование и использование алгоритмовразличных классов [31].3.6.1 Состав С++Совокупность библиотек С++ включает в себя множество взаимосвязанныхобластей, основные из которых приведены ниже [26]:̶ поддержка языка.
Подключает компоненты, необходимые для работы программ, данные о признаках исполнения. Управление ресурсами памяти, RTTI,основные исключения, границы значений для числовых типов данных, основные компоненты согласования со средой;̶ шаблонные контейнеры. В базисную библиотеку входят шаблоны для таких контейнеров как: ассоциативные массивы, одномерные массивы, стеки,множества, списки, одно- и двунаправленные очереди, очереди с приоритетом;̶ базовые утилиты. Описание центральных элементов, применяемых в базисной библиотеке, элементов управления ресурсами памяти;̶ итераторы.
Обеспечивают шаблоны объектов абстрагирующих за единыминтерфейсом доступ к элементам коллекции, с помощью которых в базиснойбиблиотеке осуществляется центральный механизм группового применения методов обработки данных к компонентам контейнеров;̶ методы. Образцы для отображения операций обработки, применяемых спомощью устройств базисной библиотеки к любой последовательности составляющих, в том числе к компонентам в контейнерах;̶ строки. Стандарты строк в стиле C++.
Также в этот раздел попадает частьбиблиотек для работы со строками и символами в стиле C;̶ ввод-вывод. Манипуляторы, модели и вспомогательные классы для потоков строкового ввода-вывода и ввода-вывода общего вида;̶ диагностика. Идентификация ряда исключений и механизмов контроляутверждений во время выполнения (assert);101̶ числа. Генератор случайных чисел, атрибуты для работы с математическими векторами, комплексными числами, поддержка общих математическихфункций.Из вышеперечисленного, вытекают основные достоинства выбора С++:̶ огромное количество источников, обширный выбор литературы;̶ универсальность;̶ простота работы;̶ распространенность в мировом сообществе;̶ библиотеки, написанные для данного языка высокого уровня и позволяющие решать огромный класс задач.3.7 Используемые для программирования приложения библиотекиДля создания программного комплекса необходимо использовать библиотеку для создания оконных приложений.
Наиболее оптимальным вариантом выглядит графическая библиотека glut.h. Библиотека glut.h предназначена для создания и манипуляций с окнами и вывода графики.Подключение выполняется командой: #include <GL/glut.h>.Кроме библиотеки для работы с графикой, для работы приложения необходимо подключение заголовочного файла stdlib.h, для подключения библиотеки,занимающейся выделением памяти, контролем процесса выполнения программы, преобразованием типов данных.
Библиотека подключается командой:#include <stdlib.h>.Далее необходимо подключение заголовочных файлов для работы с элементами, включенными в стандартную библиотеку С++.Подключим заголовочный файл iostream с классами, функциями и переменными для организации ввода-вывода в языке программирования C++,включенный в стандартную библиотеку.Класс string используем как класс с методами и переменными для организации работы со строками.102Fstream (сокращение от «FileStream») ̶ заголовочный файл из стандартнойбиблиотеки C++, включающий набор классов, методов и функций, которыепредоставляют интерфейс для чтения данных из файла и записи данных в файл.Vector ̶ директива, позволяющая использовать «вектора», абстрактные модели, имитирующие динамический массив.Algorithm ̶заголовочный файл из стандартной библиотеки С++, включа-ющий набор функций для выполнения алгоритмических операций над контейнерами и над другими последовательностями.Math.h̶ заголовочный файл стандартной библиотеки С++, разработанныйдля выполнения простых математических операций, в том числе, с использованием чисел с плавающей точкой.Подключение всех необходимых библиотек показано на рисунке 44.Рисунок 44 – Подключение библиотекWindows.h является файлом заголовков для языка программирования C++,который содержит объявление для всех функций в Windows, все общие макросы, которые используются для программирования оконных приложений, и всетипы данных, используемых различными функциями и подсистемами.3.8 Выбор среды программированияДля обоснования выбора подходящей платформы программирования наязыке С++ следует провести сравнительный анализ наиболее перспективныхвариантов, с выяснением их сильных и слабых сторон, а также особенностипрограмм, которые будут наиболее полезны в контексте решаемой задачи.103Наиболее популярными средами программирования на языке С++ на данный момент являются: Qt, Dev-C++, Microsoft Visual Studio, Code Blocks.3.8.1 Среда разработки QtQt ̶ кроссплатформенная среда разработки, отвечающая за создание приложений на языке программирования C++ (Python, Java, Ruby и т.д.).