WWW.DISUS.RU

БЕСПЛАТНАЯ НАУЧНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

 

Pages:     || 2 |
-- [ Страница 1 ] --

  1. АННОТАЦИЯ

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

В данной дипломной работе решается задача автоматизации проектирования с применением методов оптимизации. Но процессы проектирования являются наиболее сложно поддающейся областью для автоматизации, так как носят трудоёмкий итерационный характер. Это связано с тем, что цикл "проектирование – изготовление – испытание" предполагает множественного повторения. Он повторяется до тех пор, пока не будут найдены оптимальные параметры, удовлетворяющие требованиям технического задания.

Для осуществления быстрого и точного решения поставленной задачи был разработан онлайн сервис «CADoptimizer». Он представляет собой программный комплекс, работающий на удаленном сервере, и доступный как web – сайт в интернете. Моей задачей при создании этого сервиса была разработка пользовательского интерфейса и объединение модулей, разработанных другими участниками проекта в единый комплекс. На сервисе действует система учетных записей пользователя, с помощью которой проектировщик может сохранить состояние своей работы, чтобы позднее продолжить проектирование с любого устройства. Также сервис позволяет создавать свою библиотеку математических моделей. Используя эти модели, пользователь будет решать задачи оптимального проектирования объекта или процесса.

  1. ОГЛАВЛЕНИЕ

Оглавление

2 ОГЛАВЛЕНИЕ - 3 -

А. СПЕЦИАЛЬНАЯ ЧАСТЬ - 5 -

1 ВВЕДЕНИЕ - 5 -

2 ПОСТАНОВКА ЗАДАЧИ - 5 -

2.1 Назначение и структура онлайн сервиса - 5 -

2.2 Техническое задание на дипломное проектирование - 9 -

3 АВТОМАТИЗАЦИЯ ПРОЦЕССА ПРОЕКТИРОВАНИЯ НА ОСНОВЕ МЕТОДОВ ОПТИМИЗАЦИИ - 10 -

3.1 Процессы проектирования - 10 -

3.2 Оптимизация - 16 -

3.3 Классификация оптимизационных задач - 19 -

3.4 Многокритериальная оптимизация. - 20 -

3.5 Причины, приводящие к многокритериальным задачам: - 22 -

4 ПОЛЬЗОВАТЕЛЬСКИЙ ИНТЕРФЕЙС - 25 -

4.1 Каким должен быть интерфейс - 25 -

4.2 Проектирование интерфейса - 29 -

5 ВЫВОДЫ ПО ГЛАВЕ - 29 -

Б. КОНСТРУКТИВНО – ТЕХНОЛОГИЧЕСКАЯ ЧАСТЬ ПРОЕКТА - 30 -

1 ТЕХНИЧЕСКИЕ СРЕДСТВА - 30 -

1.1 Используемые языки программирования и технологии - 30 -

1.2 Используемое программное обеспечение - 39 -

2 РАЗРАБОТКА ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА ОНЛАЙН СЕРВИСА - 42 -

2.1 Регистрация пользователя - 42 -

2.2 Общий интерфейс онлайн сервиса. - 44 -

2.3 Страница профиля пользователя. - 46 -

2.4 Создание математической модели - 47 -

2.5 Управление библиотекой математических моделей. - 49 -

2.6 Интерфейс выбора критериев. - 50 -

2.7 Настройка параметров случайного поиска. - 51 -

2.8 Вывод результатов случайного поиска. - 53 -

2.9 Параметры прямого поиска. - 53 -

2.10 Результаты прямого поиска. - 54 -

3 ТЕХНИЧЕСКАЯ РЕАЛИЗАЦИЯ ОНЛАЙН СЕРВИСА - 55 -

3.1 Файловая система сервиса - 55 -

3.2 Использование библиотеки PHPSandbox. - 57 -

3.3 Проектирование базы данных. - 57 -

4 ВЫВОДЫ ПО ГЛАВЕ - 58 -

В. Охрана труда - 59 -

1 АНАЛИЗ ОПАСНЫХ И ВРЕДНЫХ ПРОИЗВОДСТВЕННЫХ ФАКТОРОВ - 59 -

1.1 Основные понятия - 59 -

1.2 Вредные и опасные факторы при работе на ЭВМ - 60 -

1.3 Физически вредные и опасные факторы - 66 -

1.4 Психофизические вредные и опасные факторы - 67 -

2 ОБЕСПЕЧЕНИЕ ЭЛЕКТРОБЕЗОПАСНОСТИ В ЖИЛЫХ ПОМЕЩЕНИЯХ - 68 -

3 РАСЧЕТ ЗАЩИТНОГО ЗАНУЛЕНИЯ - 70 -

4 ВЫВОДЫ ПО ГЛАВЕ - 73 -

Г. Экологическая часть - 74 -

1 ВЛИЯНИЕ ШУМА НА ПРОИЗВОДИТЕЛЬНОСТЬ ТРУДА - 74 -

2 МИКРОКЛИМАТ В РАБОЧЕЙ ЗОНЕ. - 77 -

3 ВЫВОДЫ ПО ГЛАВЕ. - 80 -

Д. Решение задачи на ЭВМ - 81 -

1 ПРОЦЕСС РЕШЕНИЯ ЗАДАЧИ - 81 -

ЗАКЛЮЧЕНИЕ. - 83 -

СПИСОК ЛИТЕРАТУРЫ - 84 -

А. СПЕЦИАЛЬНАЯ ЧАСТЬ

  1. ВВЕДЕНИЕ

В дипломном проекте требовалось разработать WEB - интерфейс для онлайн сервиса автоматизированного проектирования. Интерфейс должен позволять проектировщику производить многокритериальную и многопараметрическую оптимизацию параметров объекта проектирования. А также в мою задачу входило объединение модулей, разработанных другими участниками проекта.

В пояснительной записке приведены требования, предъявляемые к комплексу, показана его общая структура и кратко описан принцип его работы.

  1. ПОСТАНОВКА ЗАДАЧИ

2.1 Назначение и структура онлайн сервиса

В дипломном проекте решается задача разработки онлайн сервиса для оптимального проектирования, создание пользовательского интерфейса и объединение модулей, разработанных другими участниками проекта.

2.1.1 Назначение онлайн сервиса «CADoptimizer»

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

2.1.2 Цели создания сервиса

  • Уменьшение временных затрат на проектирование объектов / процессов;
  • Получение наиболее оптимальных параметров для объекта проектирования;
  • Повышение точности вычислений.

2.1.3 Преимущества сервиса «CADoptimizer» перед аналогичными решениями

  • Возможность оптимизации характеристик любого объекта или процесса, заданного в виде математической модели;
  • Снижение требований к устройству пользователя за счет серверных вычислений (требуется только наличие доступа к интернету);
  • Отсутствие необходимости установки прикладного программного обеспечения на устройство пользователя (требуется только веб-браузер);
  • Использование учетных записей пользователей для сохранения данных о процессе проектирования на сервере.

2.1.4 Структура и работа комплекса

Разрабатываемый онлайн сервис «CADoptimizer» состоит из следующий модулей: пользовательский интерфейс, математическая модель, библиотека критериев, случайный поиск, прямой и градиентный поиск.

Пользовательский интерфейс реализует следующий функционал:

  • ввод/вывод математической модели;
  • выбор математической модели из библиотеки;
  • выбор из библиотеки и/или создание критериев для выходных параметров;
  • регистрация и аутентификация пользователей;
  • вывод результатов;
  • сохранение состояния работы программы для данного пользователя;
  • ввод дополнительных параметров для остальных модулей;

Математическая модель:

  • Создание внутренней подпрограммы на основе введенной пользователем информации;
  • Формирование вектора выходных характеристик для соответствующего вектора входных параметров;

Библиотека критериев:

  • выбор пользователем частных критериев оптимальности из библиотеки;
  • подключение пользовательских критериев к библиотеке;
  • расчет весовых коэффициентов критериев в зависимости от выбранного пользователем типа;
  • формирование целевой функции на основе выбранных критериев и установленных значений весовых коэффициентов;
  • расчет значения целевой функции для одиночного вектора или массива векторов выходных параметров.

Случайный поиск:

  • Формирование массива векторов входных параметров удовлетворяющих ограничениям пользователя;
  • Ранжирование сформированного массива по минимальному значению целевой функции;
  • Вывод заданного пользователем количества наилучших результатов поиска;
  • Передача выбранного пользователем вектора входных параметров модулю прямого поиска.

Прямой и градиентный поиск.

  • Поиск оптимальных входных параметров на основе выбранного пользователем метода;
  • Вывод наилучшего результата поиска.

На рис. 2.1 показано как взаимодействуют модули разработанного комплекса. Разрабатываемый модуль в данном дипломном проекте раскрашен в темный цвет.

Программный комплекс работает на удаленном сервере и доступен как web – сайт в интернете.

2.2 Техническое задание на дипломное проектирование

2.2.1 Разработать пользовательский интерфейс, реализующий следующие функции:

  • ввод/вывод математической модели;
  • выбор математической модели из библиотеки;
  • выбор из библиотеки и/или создание критериев для выходных параметров;
  • регистрация и аутентификация пользователей;
  • вывод результатов;
  • сохранение состояния работы программы для данного пользователя;
  • ввод дополнительных параметров для остальных модулей;

2.2.2 А также решить некоторые связанные с этим прикладные задачи:

  • Разработка структуры программного комплекса
  • Объединение программных модулей в одну систему
  • Проектирование базы данных
  1. АВТОМАТИЗАЦИЯ ПРОЦЕССА ПРОЕКТИРОВАНИЯ НА ОСНОВЕ МЕТОДОВ ОПТИМИЗАЦИИ

3.1 Процессы проектирования

Процессы проектирования являются наиболее сложно поддающейся областью для автоматизации, потому что это трудоёмкий и многоэтапный процесс, в котором принимают участие много специалистов, целый институты и научно-производственные объединения. В качестве объекта проектирования могут выступать различные сложные технические системы (ракетный комплекс, самолёт, реактивный двигатель), народнохозяйственные и экономические системы (системы обустройства крупных нефтяных или газовых месторождений, использование бассейнов рек и т.п.).

При проектировании объекта, зачастую многократно повторяются различные проектные процедуры. Это происходит потому, что проектирование это закономерно развивающийся процесс. Статистические наблюдения некоторых станкостроительных и общемашиностроительных предприятий показывает, что сам процесс проектирования изделия занимает очень значительную часть времени, тогда как творческие элементы в работе — только 15%.

На каждом этапе жизненного цикла проектируемого изделия, его участники стараются добиться поставленных целей с максимальной эффективностью. В условиях рыночной экономики, для достижения успеха при высокой конкуренции, необходимо обеспечивать выполнение технического задания при заданной степени надежности изделия и минимизации материальных и временных затрат. А это положительно сказывается на себестоимости продукции. В понятие эффективности также входит снижение затрат на дальнейшую эксплуатацию изделий. Также немаловажно удобство освоения изделия. Например, для сложной техники, в таких отраслях как авиа и ракетостроения, удобство эксплуатации имеет очень большое значение.

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

Объектом автоматизации проектирования являются действия человека, которые он выполняет в процессе проектирования. А то, что проектируют, называют объектом проектирования. Следовательно, объекты проектирования не являются объектами автоматизации проектирования.

Основанием для автоматизированного проектирования являются:

  • уменьшение сроков проектирования и внедрения
  • сокращение количества ошибок при проектировании
  • обеспечение возможности изменения проектных решений
  • сокращение сроков тестирования

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

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

В целом для всех этапов проектирования изделий и технологии их изготовления можно выделить следующие основные виды типовых операций обработки информации:

  • поиск и выбор из всевозможных источников нужной информации;
  • анализ выбранной информации;
  • выполнение расчетов;
  • принятие проектных решений;
  • оформление проектных решений в виде, удобном для дальнейшего использования (на последующих стадиях проектирования, при изготовлении или эксплуатации изделия).

На рисунке 2 представлена схема процессов проектирования.

Весьма важно формализовать объект проектирования. От того, насколько полное формальное описание объекта зависит выбор метода решения задачи, а, следовательно, это позволяет определить, возможно ли применить средства вычислительной техники при проектировании. Если задача не формализована, то проектировщик вынужден пользоваться каким либо эвристическим методом решения задачи. Однако когда задача полностью формализована (имеется полная математическая модель объекта проектирования), её можно решать с помощью вычислительной техники автоматически. Если же задача частично формализована (когда не все связи системной модели удалось выразить в виде аналитических и логических зависимостей), то разрабатывается так называемый диалоговый метод решения, который включает вариант математической модели объекта и сценарий взаимодействия конструктора и ЭВМ.

Рисунок 2. Схема процессов проектирования.

Давайте теперь рассмотрим основные этапы проектирования с позиции технологии обработки информации. Обычно проектирование многосложных технических систем делят на несколько этапов или стадий разработки:

  • техническое задание на проектируемый объект;
  • научно-исследовательская работа;
  • эскизный проект;
  • технический проект;
  • рабочий проект;
  • технология изготовления и испытания спроектированного объекта (опытного образца или партии), внесения коррекции (при необходимости).

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

Программа, которая будет разработана в ходе настоящего дипломного проекта, затрагивает проектирование на этапе научно-исследовательской работы. Научно-исследовательская работа (НИР) это своего рода предварительное проектирование. Этот этап один из самых ответственных. Для решения его задач необходимо использование ЭВМ. Это так называемые автоматизированные системы научных исследований (АСНИ).

Стадию НИР часто можно разделить на следующие стадии: предпроектные исследования, техническое задание и техническое предложение. На этих этапах шаг за шагом исследуются потребности в получении новых изделий с заданным целевым назначением. Также исследуются конструктивные, информационные, физические и технологические правила построения поделки и допустимость исполнения этих принципов, предсказываются возможные значения параметров и характеристик объекта проектирования. Также уточняются связи "вход-выход", осуществляется определение информативности параметров, проводится активный эксперимент, разрабатываются математические модели и алгоритмы управления технологическим процессом.

Результатом НИР является сформулированное техническое задание на разработку нового объекта.

На этапе НИР необходимо решение следующих задач:

  1. Формулирование критериев качества и управления.
  2. Управление научным экспериментом.
  3. Проведение пассивного или (и) активного эксперимента с обработкой их результатов.
  4. Разработка математических моделей и их идентификация по экспериментальным данным.
  5. Отработка технологических процессов изготовления объектов РЭС с целью поиска норм на параметры, обеспечивающих оптимальные выходные показатели качества.
  6. Формирование обобщенного критерия качества, включающего в себя все частные показатели качества. Обобщенный критерий принимается далее за целевую функцию при решении задачи оптимизации.
  7. Решение задачи оптимизации. Производится варьирование входных и управляющих параметров технологического процесса в рамках установленных норм (допусков) с целью получения оптимального критерия качества.
  8. Поиск принципиальной возможности построения системы.
  9. Разработка новых технических средств, в том числе средств контроля и измерений.

Автоматизация указанных работ достигается за счет применения оптимизационных математических методов. При наличии разработанной модели задача оптимизации сводится к прогнозированию хода процесса при различных комбинациях воздействий и выбору оптимального варианта. [2]

3.2 Оптимизация

Идея оптимизации состоит в том, чтобы при проектировании систем стремиться не к любым допустимым варьируемым параметрам, а только к оптимальным. Эта идея глубоко вошла в современное проектирование.

К задачам параметрической оптимизации относятся:

  1. Определение оптимальных значений параметров.
  2. Назначение оптимальных допусков на параметры по математической модели и заданным ограничениям на показатели качества.
  3. Параметрическая идентификация (уточнение параметров в модели блока объекта проектирования на основе данных испытания).

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

Проектные параметры – это независимые переменные параметры, которые полностью и однозначно определяют решаемую задачу проектирования.

x = (x1,..., xn )T , 

где – одна из характеристик объекта.



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

Другие параметры могут быть случайными или постоянными величинами. Внешними параметрами называют свойства внешней среды, которые влияют на объект проектирования. Внешние параметры, имеющие в общем случае, случай­ную природу, сводятся к вектору:

 

Характеристиками называются свойства, характеризующие количественные значения показателей объекта проектирования:

Математической моделью оптимизируемого объекта называют отображение между двумя множества­ми параметров:

в частности, это функциональные соотношения:

При разработке расчетной математической модели обычно используют следующие основные принципы:

  • Не учитываются внутренние параметры, обладающие слабым влиянием на техническую характеристику;
  • Модель разрабатывается для сокращенного диапазона входных воздействий и дестабилизирующих факторов, исходя из реальных условий эксплуатации и степени их влияния на техническую характеристику.

Обычно оптимизируемая величина связана с экономичностью работы рас­сматриваемого объекта (аппарат, цех, завод). Оптимизируемый вариант работы объекта должен оцениваться какой-то количественной мерой — критерием оптимальности. Количественная оценка оптимизи­руемого качества объекта, называется критериями оптимальности. На базе выбранного критерия оптимальности составляется целевая функция.

Целевая функция - это выражение, значение которого лицо, принимающее решение, стремится сделать максимальным или минимальным. Целевая функция позволяет количественно сравнить два альтернативных решения. С математической точки зрения целевая функция описывает некоторую (n+1)-мерную поверхность. Ее значение определяется проектными параметрами. Примерами целевой функции, часто встречающимися в инженерной практике, являются стоимость, вес, прочность, габариты, КПД.

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

При проектировании определённых объектов или систем возникает задача максимизации или минимизации определённых характеристик. Так, одни алгоритмы оптимизации приспособлены для поиска минимума, другие - для поиска максимума. Но независимо от типа решаемой задачи на экстремум, можно пользоваться одним и тем же алгоритмом, так как задачу минимизации можно легко превратить в задачу на поиск максимума, поменяв знак целевой функции на обратный.

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

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

Глобальный оптимум называется оптимальное решение всего множества допустимых решений. Оно лучше всех других решений, соответствующих локальным оптимумам, и именно его ищет ЛПР. Возможен случай нескольких равных глобальных оптимумов, расположенных в разных частях пространства проектирования. [3]

Для решения задачи оптимизации необходимо:

  1. составить математическую модель объекта оптимизации
  2. выбрать критерий оптимальности и составить целевую функцию
  3. установить возможные ограничения, которые должны накладываться на переменные;
  4. выбрать метод оптимизации, который позволит найти экстремальные значения искомых величин.

3.3 Классификация оптимизационных задач

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

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

Желаемые переменные могут быть дискретными или непрерывными. Непрерывными – это такие переменные, которые могут принимать любые значения в заданных граничных условиях. Дискретными же называют величины, принимающие только заданные значения. Целочисленными называют такие дискретные переменные, которые в состоянии принимать только целые значения.

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

При сочетании различных элементов модели образуются различные классы оптимизационных задач, требующие разных методов решения. [3]

3.4 Многокритериальная оптимизация.

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

Постановку задачи можно воспроизвести следующим образом:

Решение задач многокритериальной оптимизации сводится к поиску экстремума некоторой скалярной целевой функции F(Q), к которой тем или иным способом сводится векторная функция Ф(Q), на множестве параметров Q:

найти min F(Q),

Qmin Q Qmax при G(Q) 0,

где F(Q) У[Ф(Q)] – скалярная целевая функция;

У – оператор преобразования;

G(Q) – вектор ограничений, возникающий при сведении векторной функции в скалярную.

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

3.5 Причины, приводящие к многокритериальным задачам:

К характеристикам проектируемого объекта предъявляется множество различных технических требований, и это является одной из главных причин, приводящих к многокритериальности. Эти причины можно представить в виде системы неравенств:

где предельное значение iго технического требования.

Тогда частные критерии оптимальности, скорее всего, будут отсутствовать в явном виде, поэтому приходится вводить их искусственно при помощи выражений:

Здесь весовой коэффициент, учитывает важность i-го ограничения

Следовательно, решение системы неравенств, превращается в решение задачи векторной оптимизации:

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

В последнем случае коэффициент полезного действия и качество работы могут быть охарактеризованы разными критериями оптимальности.

В случае если неопределенность функционирования будет иметь количественный характер, задача оптимизации сведется к задаче векторной оптимизации при помощи дискретизации критерия оптимальности Q(,v) по параметру v и рассмотрению в качестве частных критериев оптимальности функции.

Подобный путь к задаче оптимального проектирования дает возможность учитывать действие внешних факторов (температуры, ускорения, и т. п.) на критерий оптимальности и ограничения проектируемого объекта.

Одним из основных вопросов, при постановке задачи оптимального проектирования, является выбор критерия оптимальности Q (). С одной стороны, критерий обязан иметь определённый физический смысл, а с другой - от него требуется, чтобы он как можно более полно характеризовал проектируемый предмет. Тем не менее, требования функциональной полноты трудно удовлетворить только лишь одним скалярным показателем, потому что он, как правило, описывает определённое свойство предмета. Поэтому необходимо рассматривать совокупность показателей (Q1…Qs), у каждого из которых есть наглядная физическая интерпретация, и это позволяет с различных точек зрения оценить качество оптимального решения.

Из этого следует, что из-за необходимости обеспечения функциональной полноты показателей, которые конкретизируют оптимальные свойства проектируемого объекта или системы, при единовременной их физической наглядности приводит к многокритериальности, которая в свою очередь, вытекает из постановки задачи оптимального проектирования. К примеру, при проектировании транзисторного логического элемента бортовой ЭВМ автотракторного средства необходимо рассматривать одновременно несколько частных критериев оптимальности, отражающих различные свойства схемы, что приводит к следующей задаче векторной оптимизации:

где Dx - допустимая область работоспособности схемы, Q1(- нагрузочная способность; Q2(, Q3( - статическая помехоустойчивость в закрытом состоянии к отпирающей по напряжению помехе и к запирающей по току, действующей в открытой схеме, соответственно, Q4(- рассеиваемая мощность, Q5(- среднее время задержки сигнала. Оптимальный вариант логической схемы должны иметь экстремальные значения по каждому из частных критериев (Q1,...Qs).

В случае, когда проектируемый объект или система состоит из нескольких взаимосвязанных узлов и блоков, общая оптимальность определяется эффективностью и качеством его отдельных частей, каждая из которых может быть охарактеризована, хотя бы одним частным критерием оптимальности Qi(.

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

Другой ситуацией, приводящей к многокритериальности, является случай, когда функционально-логическая модель проектируемого устройства или системы отсутствует и требуется ее построить таким образом, чтобы внешние параметры наилучшим образом соответствовали экспериментальным данным. [3]

  1. ПОЛЬЗОВАТЕЛЬСКИЙ ИНТЕРФЕЙС

4.1 Каким должен быть интерфейс

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

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

4.1.1 Интуитивно понятный интерфейс

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

Интуитивно понятный интерфейс это когда пользователь начинает пользоваться системой, почти сразу после первого запуска программы. Пользователь вдруг понимает, на какие кнопки нажимать. Естественно, ни у каждого есть необходимые априорные знания. У каждого пользователя свой уникальный опыт работы с программами и их интерфейсами, и исходя из этого опыта, и берется вся интуиция. И в этом все дело. Если одному человеку интерфейс показался интуитивно понятным, то это ещё не значит, что большинство людей сочтут его таким же. Напротив, кому-то он может показаться совершенно неясным. Все зависит от степени подготовки пользователя с подобного рода программами. Поэтому следует использовать наиболее широко известные всем практики, при создании интерфейса.

Хотелось бы отметить, что обычно системы разрабатываются для какой-то определенной предметной области. В этих системах, для интуитивной понятности, интерфейс должен быть выражен в терминах её предметной области.

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

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

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

4.1.2 Самодокументированный интерфейс

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

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

4.1.3 Ненавязчивый интерфейс

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

4.1.4 Проверка данных

При работе с системой пользователю очень поможет ненавязчивая проверка данных. Проверка введенных данных должна быть предусмотрена на каждом этапе.

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

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

После этого должны быть сформированы сообщения об ошибках к нужным формам и выданы пользователю системы.

4.1.5 Минимизация ошибок пользователя

Интерфейс должен свести к минимуму ошибки пользователя. Для этого нужно использовать то, о чём говорилось в предыдущих пунктах: это и многочисленные подсказки, и всевозможные ненавязчивые проверки, и отсутствие скрытых элементов управления. Всё это служит нашей цели минимизации ошибок. Но ещё неизвестно, какой из пунктов будет наиболее значимым в борьбе с пользовательскими ошибками. Ведь каждый конкретный человек, имеет уникальный опыт, подготовку, привычки и квалификацию. Поэтому, для эффективного интерфейса нужно использовать весь комплекс вышеперечисленных мер.

4.2 Проектирование интерфейса

Проектирование интерфейса можно условно поделить на следующие шаги:

  1. Составить портрет пользователя и список его целей. Цели можно разбить на задачи, которые пользователю предстоит решить. И составить список задач для каждой цели.
  2. Написать пользовательские сценарии в соответствии со списками задач. Сценарии вида: «пользователь сделал – система ответила».
  3. Составить список страниц интерфейса в соответствии со сценариями.
  4. Составить структуру навигации. Т.е. последовательность исполнения сценариев. Необходимо поставить акцент на важные сценарии.
  5. Описать все страницы интерфейса.
  1. ВЫВОДЫ ПО ГЛАВЕ

В данной главе была поставлена задача по разработке интерфейса для онлайн-сервиса “CADoptimizer”, были перечислены цели его создания, основные преимущества перед аналогичными решениям и его структура. А также было составлено техническое задание на дипломный проект и приведены теоретические сведения, связанные с процессами проектирования, автоматизации проектирования и оптимизации объекта проектирования, необходимые для выполнения данной дипломной работы. Также была приведена теория о том, как надо создавать хорошие пользовательские интерфейсы.

Б. КОНСТРУКТИВНО ТЕХНОЛОГИЧЕСКАЯ ЧАСТЬ ПРОЕКТА

  1. ТЕХНИЧЕСКИЕ СРЕДСТВА

В процессе работы над дипломным проектом использовалось много различного программного обеспечения, разного рода web – технологии и языки программирования. В этой части диплом кратко рассмотрены используемые технические средства.

1.1 Используемые языки программирования и технологии

1.1.1 HTML

HTML (HyperText Markup Language) – это язык разметки гипертекста. Он предоставляет браузеру необходимые инструкции, позволяющие отображать тексты и другие элементы web – страниц на мониторе. Язык разметки не является языком программирования. Различные браузеры и даже различные версии браузеров могут отображать HTML код по – разному.

Изначально, язык HTML разрабатывался для обмена научной и технической документацией, подходящий для использования людьми, которые не являются специалистами в области вёрстки, красиво оформить документ. Язык появился на свет приблизительно в 1986 – 1991 годах в Женеве в Европейском Центре Ядерных исследования, и был разработан Тимом Бернерсом – Ли. HTML является приложением SGML (англ. Standard Generalized Markup Language — стандартный обобщённый язык разметки). SGML был разработан в 1969 году, и широко использовался в издательской сфере и для создания машинно-читаемых документов. Но он был очень сложным, что затрудняло его распространение для повседневного использования. HTML же успешно справился со сложностью путём определения небольшого набора структурных и семантических элементов, называемых дескрипторами или тегами.

При помощи HTML легко создаются сравнительно простые и при этом красиво оформленные документы. Кроме упрощения структуры документа, HTML также поддерживает гипертекст.

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

1.1.2 CSS

CSS (Cascading>

CSS используется как средство оформления внешнего вида web – страниц, написанных языком разметки HTML или XHTML, но также может применяться к любым XML документам.

С помощью CSS можно задавать цвета, шрифты, расположение блоков и других элементов страницы. Основная цель CSS – это разделение описания HTML кода (который описывает структуру документа) от описания внешнего вида этого документа. При таком разделении увеличивается доступность документа, появляется большая гибкость и возможность быстрого изменения внешнего его внешнего вида, посредством изменения правил оформления. А также это уменьшает сложность и повторяемость кода HTML. Помимо этого, используя CSS можно представлять один и тот же документ совершенно по-разному, просто используя другой файл стилей. Ведь все параметры стилей хранятся в определенном месте и легко задаются для любого тега документа. CSS предлагает несравнимо больше возможностей, чем обычный HTML.

Итого, CSS – это мощная система, расширяющая возможности дизайна и верстки web – страниц.

1.1.3 Javascript

«JavaScript – это интерпретируемый язык программирования с объектноориентированными возможностями. С точки зрения синтаксиса базовый язык JavaScript напоминает C, C++ и Java такими программными конструкциями, как инструкция if, цикл while и оператор &&. Однако это подобие ограничивается синтаксической схожестью. JavaScript – это нетипизированный язык, т. е. в нем не требуется определять типы переменных. Объекты в JavaScript отображают имена свойств на произвольные значения. Этим они больше напоминают ассоциативные массивы Perl, чем структуры C или объекты C++ или Java. Механизм объектно – ориентированного наследования JavaScript скорее похож на механизм прототипов в таких малоизвестных языках, как Self, и сильно отличается от механизма наследования в C++ и Java. Как и Perl, JavaScript – это интерпретируемый язык, и некоторые его инструменты, например регулярные выражения и средства работы с массивами, реализованы по образу и подобию языка Perl.

Ядро языка JavaScript поддерживает работу с такими простыми типами данных, как числа, строки и булевы значения. Помимо этого он обладает встроенной поддержкой массивов, дат и объектов регулярных выражений.

Обычно JavaScript применяется в веббраузерах, а расширение его возможностей за счет введения объектов позволяет организовать взаимодействие с пользователем, управлять веббраузером и изменять содержимое документа, отображаемое в пределах окна веббраузера. Эта встроенная версия JavaScript запускает сценарии, внедренные в HTMLкод вебстраниц. Как правило, эта версия называется клиентским языком JavaScript, чтобы подчеркнуть, что сценарий исполняется на клиентском компьютере, а не на вебсервере.

В основе языка JavaScript и поддерживаемых им типов данных лежат международные стандарты, благодаря чему обеспечивается прекрасная совместимость между реализациями. Некоторые части клиентского JavaScript формально стандартизированы, другие части стали стандартом дефакто, но есть части, которые являются специфическими расширениями конкретной версии браузера. Совместимость реализаций JavaScript в разных браузерах зачастую приносит немало беспокойств программистам, использующим клиентский язык JavaScript.» [4]

Этот язык использовался для создания динамического интерфейса пользователя разрабатываемого в данном дипломном проекте программного комплекса.

1.1.4 PHP

РНР — это серверный язык программирования сценариев, разработанный специально для Web. В HTML-страницу можно внедрить любой РНР код, который будет выполняться при каждом посещении страницы. РНР код интерпретируется Web-сервером и генерирует HTML или иной вывод, выводимый посетителю этой страницы.

Разработка РНР была начата в 1994 г. и поначалу выполнялась одним человеком, Расмусом Лердорфом (Rasmus Lerdorf). Этот язык был принят рядом талантливых людей и претерпел несколько основных редакций, и после стал распространяться и широко использоваться разработчиками, став зрелым продуктом, с которым мы и имеем дело сегодня. По состоянию на 2013 год, число доменов во всем мире, использующих PHP составляет более двухсот миллионов, и эта цифра продолжает расти.

РНР — это проект с открытым исходным кодом (Open Source). Т.е. у пользователя имеется доступ к исходному коду. Его можно использовать, изменять и свободно распространять другим пользователям или организациям.

Первоначально РНР являлось сокращением от Personal Home Page (Персональная начальная страница), но затем это название было изменено в соответствии со специальным соглашением по наименованию и теперь означает РНР Hypertext Preprocessor (Препроцессор гипертекста РНР).

В число главных конкурентов PHP входят Perl, Microsoft ASP.NET, Ruby (on Rails и др.), JavaServer Pages (JSP) и ColdFusion.

PHP обладает рядом преимуществ по сравнению с этими продуктами, среди которых наиболее значительными являются:

  • производительность;
  • масштабируемость;
  • наличие интерфейсов к множеству систем управления базами данных;
  • встроенные библиотеки для выполнения многих общих задача, связанных с Web;
  • низкая стоимость;
  • простота изучения и использования; строгая поддержка объектно-ориентированного программирования;
  • переносимость;
  • гибкость подхода к разработке;
  • доступность исходного кода;
  • доступность поддержки со стороны разработчиков и документации.

PHP работает исключительно быстро. Он позволяет обслуживать миллионы обращений в день, используя всего – лишь один недорогой сервер. Более высокую производительность PHP в сравнении с конкурирующими продуктами, подтверждают результаты тестирования, опубликованные компанией Zend Technologies.

Также в PHP есть встроенная возможность подключения ко нескольким системам управления баз данных. В дополенние к MySQL, среди прочих, можно свободно подключаться к базам данных PostgreSQL, Oracle, DB2, dbm и многим другим. В PHP также реализован встроенный SQL-интерфейс для работы с двумерными файлами.

В дополнение к собственным библиотекам PHP поддерживает уровень абстракции доступа к базам данных, называемый PHP Database Objects (PDO), который обеспечивает единообразный доступ и безопасное кодирование.

Так как PHP был разработан как язык для Web, он имеет множество встроенных функций для выполнения большого разнообразия полезных задач, связанных с ним. Так, например, с его помощью можно на ходу генерировать изображения, подключаться различным сетевым службам, разбирать XML документы, отправлять сообщения на электронною почту, работать с cookie – наборами и генерировать PDF-файлы – причем все это с помощью всего нескольких строк кода.

PHP можно использовать под управлением множества различных операционных систем. Хорошо написанный код, как правило, будет работать без каких-либо изменений в различных средах, в которых установлен пакет PHP.

Обычно, во многих языках программирования сравнительно простая задача реализуется довольно сложно, PHP же позволяет реализовывать простые задачи действительно просто. И в сравнительной степени просто строить крупные приложения с использованием каркаса, основанного на шаблонах проектирования, например, таких как MVC (Model-View-Controller – модель-представление-контроллер). [5]

Так как разрабатывалось именно web приложение, этот язык был выбран, потому что обладает вышеперечисленными достоинствами.

1.1.5 MySQL

MySQL – это очень надежная и быстрая система управления реляционными базами данных (СУРБД). База данных позволяет эффективно хранить, искать, выбирать и сортировать информацию. Сервер MySQL управляет доступом к данным, позволяя тем самым работать с ними нескольким пользователям одновременно, а также обеспечивается быстрый доступ к данным и гарантируется предоставление доступа только пользователям, имеющих на это соответствующие права. Таким образом, MySQL является многопоточным и многопользовательским сервером. Он использует SQL (Structured Query Language – язык структурированных запросов), стандартный язык запросов к базам данных. MySQL появился в 1996 году, но его разработка была начата задолго до этого, ещё в 1979 г. В наше время MySQL представляет собой самую популярную СУРБД с открытым исходным кодом.

К основным конкурентам MySQL относятся системы PostgreSQL, Oracle, Server и Microsoft SQL.

MySQL обладает следующими преимуществами:

  • высокая производительность;
  • низкая стоимость;
  • простое конфигурирование и изучение;
  • переносимость;
  • доступность исходного кода;
  • доступность поддержки.

MySQL прост в использовании. Большинство современных баз данных используется язык SQL. Специалист, ранее работавший с другими СУРБД, при переходе на эту систему не должен столкнуться с какими либо затруднениями. [5]

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

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

MySQL это клиент-серверную система, то есть состоит из двух частей: клиентской и серверной. Так, например клиентские php – скрипты, посылают серверу MySQL SQL – запрос через специальные сетевые средства, далее сервер обрабатывает их и запоминает результат. После чего MySQL сервер посылает ответ в виде результата обратно клиенту (т.е php – скрипту).

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

MySQL имеет трехуровневую структуру: базы данных – таблицы – записи. Таблицы и базы данных в MySQL на самом деле представляются файлами с расширением frm, MYD, MYI. Но в логическом смысле – таблица это совокупность записей. А записи, в свою очередь, являются совокупностью полей разного типа. Имя базы данных MySQL является уникальным в пределах системы, таблицы – в пределах этой базы данных, а поля – в пределах таблицы. Один сервер MySQL умеет поддерживать несколько баз данных одновременно, при этом доступ к ним разграничивается логином и паролем пользователя базы данных. Только зная эти логин и пароль можно работать с конкретной базой данных.

В общем, MySQL является мощнейшим и удобнейшим средством для создания онлай web – приложений. И был выбран для использования в этом дипломном проекте за свою простоту использования и надежность.

1.1.6 Apache

Apache – это самый распространенный HTTP сервер. Распространяется он свободно. Apache является многоплатформенным программным обеспечением и поддерживает множество операционных систем, таких как: Microsoft Windows, Linux, Mac, BSD, OS, NetWar и другие.

Основными преимуществами Apache является надёжность и гибкость конфигурации. Apache умеет использовать СУБД для аутентификации пользователей, модифицировать сообщения об ошибках и многое другое. Также Apache позволяет подключать различные внешние модули, которые выполняют различные функции, и которых существует достаточно много. Эти модули могут быть включены в состав web – сервера при компиляции, или быть загружены динамически, через специальные директивы конфигурационных файлов. В модулях, например реализуются такие вещи как:

  • добавление функций
  • исправление ошибок или видоизменение основных функций;
  • поддержка разных языков программирования;
  • улучшение безопасности.

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

  • алгоритм авторизации пользователей для доступа к директориям на основе HTTP-аутентификации;
  • ограничение доступа к конкретным файлам и папкам;
  • запрет доступа к конкретным директориям или все серверу, в зависимости от IP – адресов посетителей;
  • отказ в доступе к определенным типам файлов для всех или некоторых пользователей (например, используется для отказа в доступе к разного рода конфигурационным файлам);

Разработанное в настоящем дипломном проекте web – приложение работает на сервере Apache.

1.2 Используемое программное обеспечение

1.2.1 Notepad++

Notepad++ – это бесплатный текстовый редактор файлов, который поддерживает синтаксис большого количества языков программирования. Программа обладает большим набором опций и отличается тем, что работает очень быстро, так как потребляет минимальное количество ресурсов процессора.

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

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

Данный редактор использовался для быстрого внесения изменений в отдельные файлы проекта.

1.2.2 NetBeans IDE

NetBeans – это бесплатный многофункциональный редактор исходного кода. NetBeans является многофункциональной кросс-платформенной средой разработки, поддерживающая несколько языков программирования, в том числе и PHP. Это не просто текстовый редактор, данная среда делает подсказки при кодировании в зависимости от подключенных файлов и классов, а также подсказки параметров. В NetBeans есть всплывающие подсказки по документации со стандартными функциямя, возможность скачивать и закачивать файлы на удаленный сервер по FTP и SFTP, интеллектуальное автозавершение кода. Ещё он предоставляет шаблоны кода и позволяет его быстро переорганизовывать, умеет исправлять ошибки и многое другое.

Данная среда использовалась мной при разработке дипломного проекта.

1.2.3 Denwer

Для работы любого интернет приложения необходим сервер. На сервере работать не очень удобно. И для разработки серверных приложений можно использовать эмуляцию сервера. При создании нашего онлайн-сервиса был выбран специальный готовый устанавливающийся пакет «Denwer». Денвер – это набор дистрибутивов (Apache, PHP, MySQL, Perl и др.) и программная оболочка для развертывания локального сервера на Windows-машине, работающего без доступа в интернет. Главной особенностью Денвера является удобство работы сразу над несколькими независимыми проектами и даже возможность размещения сервера на Flash – накопителе.

Базовый пакет Denwer включает:

  • Apache, SSL, SSI, mod_rewrite, mod_php;
  • PHP5 с поддержкой GD, MySQL, sqLite;
  • MySQL5 с поддержкой транзакций;
  • phpMyAdmin — система управления MySQL через Web-интерфейс;
  • эмулятор sendmail и SMTP-сервера.

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

1.2.4 Онлайн сервис Balsamiq Mockups.

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

1.2.5 Adobe Photoshop.

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

  1. РАЗРАБОТКА ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА ОНЛАЙН СЕРВИСА

Одной из задач, стоящих передо мной в данном дипломном проекте, была разработка web – интерфейса для онлайн сервиса. Для этого использовался HTML и CSS. Для придания интерфейсу динамичности, использовался язык JavaScript в комбинации со свободно распространяющейся библиотекой jQuery, которая позволяет удобно и быстро оживлять web-страницы.

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

Итак, был разработан интерфейс, который реализует следующий функционал:

  • регистрация на сервисе;
  • вход под своим профилем на сервис;
  • управление библиотекой математических моделей;
  • управление библиотекой критериев;
  • выбор критериев для выходных характеристик;
  • настраивать параметры поиска и изменять стратегию поиска;

Далее будут подробно рассмотрены эти пункты.

2.1 Регистрация пользователя

Для того чтобы пользователь смог воспользоваться инструментами оптимизации, ему необходимо пройти регистрацию, а затем входить под своим логином, который является e-mail адресом, и паролем. Для этого был разработан удобный и нераздражающий интерфейс для регистрации на сайте. В правом верхнем углу web-сайта есть скрывающаяся форма для аутентификации и кнопка для регистрации, она показана на рисунке 4.

 Форма входа на сайт. Как можно догадаться из рисунка 3, на-37

Рисунок 3. Форма входа на сайт.

Как можно догадаться из рисунка 3, на сервисе реализована возможность восстановления забытого пароля по email, указанного при регистрации.

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

Ещё на рисунке 4 видно, что используется CAPTCHA. CAPTCHA — (англ. Completely Automatic Public Turing Test to Tell Computers and Humans Apart) — это автоматический тест Тьюринга для того чтобы различить людей от компьютерных программ. Другими словами, это такая задача, которую не может решить компьютер, но при этом легко решаемая человеком.

Применять CAPTCHA необходимо для того, чтобы предотвратить множество автоматических регистраций и отправление сообщений программами. Т. е. CAPTCHA защищает web приложения от спама, и захвата аккаунтов. Обычно CAPTCHA представляет собой хитрым способом зашумленное случайное число или слово, которую пользователю необходимо распознать и ввести прочитанный результат. Для реализации CAPTCHA использовалось бесплатное готовое решение «KCAPTHCA», написанное на PHP, использующее библиотеку GD.

 Форма регистрации пользователя. 2.2 Общий интерфейс онлайн-38

Рисунок 4. Форма регистрации пользователя.

2.2 Общий интерфейс онлайн сервиса.

После успешной регистрации, пользователю не нужно будет входить на сайт, он сразу будет автоматически авторизован. На указанный E-mail придет письмо, необходимое для подтверждения регистрации. В письме будет ссылка, при переходе на которую E-mail будет подтвержден. В противном случае, аккаунт пользователя будет автоматически удален через 3 дня. В профиле пользователя будет сообщение, с обратным отчетом этого события.

Итак, после входа под своим аккаунтом, пользователю будет доступен полный функционал онлайн сервиса. На рисунке 5 представлен общий интерфейс онлайн сервиса.

Рисунок 5. Общий интерфейс пользователя.

Давайте подробнее рассмотрим пронумерованные элементы интерфейса на рисунке 5.

1 – верхний блок, содержащий выпадающее меню, и форму входа или кнопку выхода из аккаунта. Этот блок есть на всех страницах сайта.

2 – левая колонка. В этом блоке хранятся дополнительные элементы интерфейса, которые должны быть доступны на всех страницах сервиса.

3 – главный контейнер. В этой части интерфейса все и происходит, это рабочая область в которой выводится содержание разных страниц сервиса с разным функционалом, будь то ввод математической модели или регистрация на сайте.

4 – выпадающее меню.

5 – информация о текущей учетной записи и ссылка на переход на профиль пользователя.

6 – кнопка для выхода из текущей учетной записи.

7 – дополнительное общее левое меню.

8 – место для дополнительного левого меню, здесь может располагаться меню, необходимое для дополнительных элементов интерфейса, в зависимости от страницы, на которой мы находимся.

9 – информация о текущей выбранной математической модели.

10 – кнопка для перехода на страницу настройки параметров поиска. Эта кнопка появляется только в том случае, если выбрана математическая модель и не менее одного критерия для выходных параметров.

2.3 Страница профиля пользователя.

Эта страница носит чисто формальный характер. Как видно на рисунке 6, на странице профиля представлена информация об аккаунте пользователя, а также возможность редактировать личные данные и изменять пароль. В процессе дальнейшей разработки сервиса эта страница может быть изменена.

 Страница профиля пользователя. 2.4 Создание математической-40

Рисунок 6. Страница профиля пользователя.

2.4 Создание математической модели

На рисунке 7 представлен интерфейс ввода математической модели.

 Создание математической модели. Как видно из рисунка 7,-41

Рисунок 7. Создание математической модели.

Как видно из рисунка 7, интерфейс позволяет добавлять и удалять динамически поля для ввода входных и выходных параметров, нажатием на соответствующие кнопки плюс/минус. Также можно сразу ввести ограничения для входных и выходных параметров, уже при создании математической модели. Справа есть информационный блоки, которые помогают пользователю правильно ввести данные. Название математической модели и её описание можно указать любое, это нужно лишь для удобства пользователя. После отправки данных, программа проверит данные, и укажет на ошибки пользователя в нужных местах, это показано на рисунке 8.

 Обработка ошибок при создании математической модели. При-42

Рисунок 8. Обработка ошибок при создании математической модели.

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

2.5 Управление библиотекой математических моделей.

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

 Выбор математической модели. Выбранная модель отображается-43

Рисунок 9. Выбор математической модели.

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

2.6 Интерфейс выбора критериев.

Приступить к выбору критериев для выходных параметров математической модели, очевидно, можно только после выбора математической модели из библиотеки моделей. Давайте рассмотрим рисунок 10, на котором представлен выбор критериев, и на котором видно, что данные были отправлены, и пользователю были выведены сообщения об ошибках в нужных местах.

 Настройка критериев для выходных параметров. Как видно из-44

Рисунок 10. Настройка критериев для выходных параметров.

Как видно из рисунка 10, одному выходному параметру можно задавать как несколько критериев, так и ни одного. Давайте подробнее разберем рисунок 10:

1 – имя выходного параметра (берется автоматически из математической модели)

2 – кнопка, которую нужно нажать, если для этого выходного параметра не нужно задавать какие либо критерии. Это кнопка превратится в кнопку 3 после нажатия.

3 – кнопка для того чтобы задать критерии для этого выходного параметра.

4 – так выглядит блок с выходным параметром, если для него не нужно задавать критерии.

5 – кнопка для добавления дополнительных критериев для выходного параметра.

6 – кнопка для удаления дополнительных критериев для выходного параметра.

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

2.7 Настройка параметров случайного поиска.

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

Макет интерфейса для настройки параметров поиска представлен на рисунке 11.

 Настройка параметров случайного поиска. 2.8 Вывод результатов-45

Рисунок 11. Настройка параметров случайного поиска.

2.8 Вывод результатов случайного поиска.

Вывод результатов случайного поиска в программном комплексе представлен в виде таблицы, с возможностью выбора данных строки таблицы для дальнейшего поиска. Таблица изображена на рисунке 12.

 Таблица результатов случайного поиска. Также была-46

Рисунок 12. Таблица результатов случайного поиска.

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

2.9 Параметры прямого поиска.

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

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

Прототип интерфейса представлен на рисунке 13.

Рисунок 13. Прототип интерфейса для выбора и настройки прямого поиска.

2.10 Результаты прямого поиска.

На этой странице выводится результат прямого поиска, а также все параметры предшествующего поиска. На этой странице, если результаты не удовлетворяют пользователя, есть возможность вернуться на страницы настроек случайного или прямого поисков, для изменения стратегии поиска. А также можно вернуться к выбору критериев, если необходимо изменить критерии поиска для выходных характеристик. Или даже отредактировать математическую модель, но тогда все параметры поиска будут сброшены.

  1. ТЕХНИЧЕСКАЯ РЕАЛИЗАЦИЯ ОНЛАЙН СЕРВИСА

Для работы современного сайта используется целый комплекс различных технологий. Об этих технологиях было сказано в разделе «выбор технических средств» этой части дипломного проекта. В этом же разделе речь пойдет о технической реализации некоторых ключевых моментов, файловой системе проекта и структуре базы данных.

3.1 Файловая система сервиса

На рисунке 14 представлена примерная файловая система онлайн сервиса.

Рисунок 14. Файловая система онлайн сервиса.

Давайте рассмотрим рисунок 14, и разберемся, за что отвечают некоторый файлы и папки.

В папке «css» хранятся файлы стилей.css, которые отвечают за внешний вид страниц. В папке «js» хранятся javascript программы, которые отвечают за динамику на страницах.

Файл.htaccess это конфигурационный файл HTTP-сервера Apache, позволяющий корректно настроить работу сайта или сервера в целом. В нашем сервисе в настройках этого файла было настроено специальное перенаправление с любого URL – сайта на главную страницу index.php.

А уже в файле index.php подключаются все необходимые скрипты для работы приложения, и для определения на какой странице мы сейчас находимся.

В папке php хранятся все файлы необходимые для работы онлайн сервиса на сервере. Внутри этой папки множество других папок. Рассмотрим некоторые из них.

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

В папке «libs» хранятся необходимые для работы библиотеки.

И наконец, в папке «scripts» хранятся папки со скриптами, реализующие выполнение сценариев доступные на одноименных url – адресах. Например, папка «mymodels» отвечает за работу сценариев для создания/редактирования/удаления и вывода математических моделей пользователя. И эта страница доступна в интернете по адресу: http://адрес-сайта/mymodels/.

Для удобства программирования используется шаблон «Model-View». Этот шаблон используется для разделения модели и её представления, что необходимо, так как позволяет изменять их отдельно друг от друга. Так в одном файле (являющейся моделью) будет логика работы с данными, а в другом (представление) работа с пользовательским интерфейсом.

3.2 Использование библиотеки PHPSandbox.

В нашем онлайн сервисе существует возможность написания подпрограмм для задания математической модели. Для этого пользователям предлагается написать логику на языке PHP. Дело в том, что выполнять на сервере код пользователя, мягко говоря, не безопасно. Злоумышленники могут удалить базу данных, или разослать спам на 1000 email адресов, используя какую-либо уязвимость. Поэтому особенно важно было реализовать безопасное выполнение любого кода, и защита от потенциально опасных конструкций в коде пользователя. Для этого была использована библиотека PHPSandbox, которая, к слову, требует новой современной версии языка PHP 5.3.2+. Эта библиотека основана на использовании другой библиотеки PHPParser. Эта библиотека в свою очередь разбирает php код в абстрактном представленном дереве, однозначно определяющее синтаксис входного кода. Эти две библиотеки являются OpenSource проектами и свободно представлены в общем доступе.

3.3 Проектирование базы данных.

Для современного онлайн сервиса необходима база данных. На нашем сервисе база данных в первую очередь необходима для системы аутентификации пользователей и их пользовательской библиотеки математических моделей. На рисунке 15 представлена структура базы данных. В процессе разработки она может быть дополнена и модифицирована.

 Структура базы данных. Из рисунка видно, какие типы полей есть у-49

Рисунок 15. Структура базы данных.

Из рисунка видно, какие типы полей есть у представленных таблиц. Таблица «users» хранит информацию о пользователях. Из email-адреса, пароли в зашифрованном виде, код для подтверждения email-адреса, и забытого пароля. Эта таблица условно связана с другими таблицами.

Так, таблица «math_models» хранит математические модели пользователей. Таблица «conditions» текущее состояние вычисления, это необходимо на случай, если пользователь захочет выйти из своего аккаунта и вернуться к нам позже. И таблица «results» хранит результаты уже когда-то проведенных пользователем поисков. Своего рода история вычислений.

  1. ВЫВОДЫ ПО ГЛАВЕ

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

В. Охрана труда

  1. АНАЛИЗ ОПАСНЫХ И ВРЕДНЫХ ПРОИЗВОДСТВЕННЫХ ФАКТОРОВ

1.1 Основные понятия

Трудовой кодекс Российской Федерации (глава 33, статья 209) устанавливает следующие основные определения и понятия, связанные с охраной труда:

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

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



Pages:     || 2 |
 



<
 
2013 www.disus.ru - «Бесплатная научная электронная библиотека»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.