Скачать 208.84 Kb.
|
РЕФЕРАТ Курсовой проект с., 21 рис., 13 табл., 8 источников. МОДЕЛИРОВАНИЕ РАБОТЫ ЛИФТОВ, WPF, ВАРИАНТЫ ИСПОЛЬЗОВАНИЯ, UML ДИАГРАММЫ, ПОЛЬЗОВАТЕЛЬСКИЙ ИНТЕРФЕЙС, АЛГОРИТМЫ ПЕРЕДВИЖЕНИЙ. Цель проекта — разработать программный продукт, который предоставит возможность наглядно рассмотреть множество ситуаций, наиболее часто возникающих при работе системы лифтов в многоэтажном здании. Процесс работы проходил в 4 основных этапа:
В результате было разработано приложение «Elevator» соответствующее поставленным целям. Пояснительная записка к курсовому проекту была выполнена в текстовом редакторе Microsoft Office Word 2010 и представлена в печатном виде.
Студенту Пинкевичу Артему Владиславовичу, группа 580-1 1. Тема проекта: Моделирование работы лифтов. 2. Срок сдачи студентом проекта: 26.01.2013 3. Исходные данные и возможности программы: Программа состоит из:
Программа имеет функции:
4. Содержание пояснительной записки:
5. Дата выдачи задания: 24.09.2012 Руководитель: аспирант каф. КСУП А. А. Калентьев _____________________ Задание принял к исполнению: А. В. Пинкевич ______________________ Содержание1Введение 6 2Постановка и анализ задачи 7 2.1Обоснование выбора среды разработки 7 2.2Обзор аналогов 9 2.3Анализ и декомпозиция предметной области 10 3Проектирование 12 3.1Проектирование пользовательского интерфейса 12 3.2Описание математических алгоритмов 14 4Описание реализации 16 5Описание программы для пользователя 19 6Тестирование 22 7Заключение 26 8Список использованных источников 27 Приложение А 28 1ВведениеДанная программа предназначена для моделирования работы некоторого количества лифтов в многоэтажном здании. В здании имеется несколько этажей, которые обслуживаются лифтами. На каждом этаже есть дверь (двери), из которой появляются люди, которым требуется воспользоваться лифтом. Каждый человек едет на определенный этаж. В здании также могут иметься лестницы. Пользователь может регулировать количество лифтов, лестниц, дверей, людей, может управлять движением лифтов, людей и многое другое. 2Постановка и анализ задачиРазрабатываемый нами программный продукт представляет собой гибкую систему моделирования, позволяющую представить множество ситуаций, наиболее часто возникающих при работе системы лифтов в многоэтажном здании. 2.1Обоснование выбора среды разработкиТак как программа курсового проекта должна быть реализована на языке программирования C#, то было принято решение использовать интегрированную среду разработки Microsoft Visual Studio 2012 с использованием .Net Framework 3.5. Данная среда является мощным и удобным инструментом в разработке программ на языке программирования C#. Поскольку данная программа представляет собой оконное приложение и не требует сложных графических преобразований, было принято решение положить в основу графическую (презентационную) подсистему в составе .NET Framework WPF (Windows Presentation Foundation). Графической технологией, лежащей в основе WPF, является DirectX, в отличие от Windows Forms, где используется GDI/GDI+. Производительность WPF выше, чем у GDI+ за счёт использования аппаратного ускорения графики через DirectX.[1] WPF представляет обширный, масштабируемый и гибкий набор графических возможностей, которые имеют следующие преимущества: Графика, не зависящая от разрешения и устройства. Основной единицей измерения в графической системе WPF является аппаратно-независимый пиксель, который составляет 1/96 часть дюйма независимо от фактического разрешения экрана и предоставляет основу для создания изображения, независимого от разрешения и устройства. Каждый аппаратно-независимый пиксель автоматически масштабируется в соответствии с числом точек на дюйм в системе, в которой он отображается. Повышенная точность. В системе координат WPF используются числа с плавающей запятой двойной точности, вместо одиночной точности. Значения преобразований и прозрачности также выражаются с помощью чисел двойной точности. Кроме того, WPF поддерживает широкую цветовую палитру (scRGB) и предоставляет встроенную поддержку для управления входными данными из различных цветовых пространств. Дополнительная поддержка графики и анимации. WPF упрощает программирование графики за счет автоматического управления анимацией. Разработчик не должен заниматься обработкой сцен анимации, циклами отрисовки и билинейной интерполяцией. Кроме того, WPF предоставляет поддержку проверки нажатия и полную поддержку альфа-компоновки. Аппаратное ускорение. Графическая система WPF использует преимущества графического оборудования, чтобы уменьшить использование ЦП.[2] 2.2Обзор аналоговДанная программа имеет аналоги. Но специфика использования данных программных продуктов затрудняет свободный доступ к ним. Однако некоторые примеры реализаций все-таки можно найти в сети в виде скомпилированных программ и/или исходных кодов. Рассмотрим один из них. С сайта http://vvv.clan.su было скачано приложение, реализующее алгоритм работы одного лифта в десятиэтажном здании. Главное окно программы-аналога представлено на рисунке 2.1.
Главными недостатками данной программы являются: отсутствие настраиваемых параметров процесса моделирования; ограниченное количество этажей; интуитивно непонятный пользовательский интерфейс. В сущности, данная программа представляет собой модель работы одного лифта, а не комплексной системы лифтов в многоэтажном здании. 2.3Анализ и декомпозиция предметной областиИсходя из требований к программе, были выделены основные классы: Building — здание; Elevator — лифт; Person — человек; Door — дверь. Для взаимодействия объектов основных классов и для демонстрации всевозможных ситуаций в процессе работы лифтов было принято решение включить в проект вспомогательные классы: Floor — этаж; Shaft — шахта лифта; ResizingAdorner — декоратор, предназначенный для изменения размера шахты лифта; ResizingThumb — элемент управления декоратора; Position — позиция; Caller — кнопки вызова лифта; Call — вызов; Destination — точка назначения. Для того чтобы более точно определить последовательности действий, которые может осуществлять система в ответ на внешние воздействия пользователей была составлена диаграмма вариантов использования. Диаграмма вариантов использования представлена на рисунке 2.2. Рисунок 2.2 — Диаграмма вариантов использования 3Проектирование3.1Проектирование пользовательского интерфейсаРабочая область программы представляет собой многоэтажное здание, внутри которого находятся двери, лестницы, люди, лифты и их панели управления. Макет изображения процесса моделирования представлен на рисунке 3.1. Рисунок 3.1 — Макет изображения рабочей области Для удобства в управлении процессом моделирования работы лифтов необходимы вспомогательные всплывающие панели. Макет всплывающей панели представлен на рисунке 3.2. Рисунок 3.2 — Макет всплывающей панели Помимо действий, изображенных на рисунке, в данном окне могут также присутствовать такие действия как: создать дверь; создать лифт; остановить лифт; очистить стек вызовов у лифта; 3.2Описание математических алгоритмовАлгоритм работы лифта основывается на следующих принципах:
Алгоритм перемещения человека. Создать человека можно либо нажав на кнопку на панели управления, либо нажав на дверь. При этом человек появляется с конечным пунктом (местом, куда ему надо прийти). Для того чтобы изменить конечный пункт, нужно нажать на человека левой клавишей мыши, а затем нажать правой клавишей мыши на интересующее место. Для достижения конечного пункта выполняются следующие действия:
4Описание реализацииРеализация программы проходила на основе UML диаграмм, составленных на этапе проектирования. В ходе разработки программы было принято решение реализовать ее в виде проекта с открытым исходным кодом. Так же было принято решение использовать систему контроля версий. В связи с этим было решено размещать проект на сайте https://github.com. Разрабатываемый программный продукт представляет собой многоэтажное здание. Исходя из того, что здание можно представить как пространство, разделенное на секции, было принято решение использовать элемент управления Grid. Элемент управления Grid — это один из мощных контейнеров компоновки в WPF. Контейнер Grid является идеальным инструментом для разбиения окна на меньшие области, которыми можно управлять с помощью других панелей.[3] Визуализация перемещения нестатических объектов осуществляется за счет таймеров. За каждым таким объектом прикреплено по два таймера. Один проверяет состояние, а другой создается на время непосредственно для реализации анимации. Человек имеет поля «Конечный пункт» и «Точка назначения». Конечный пункт — это место, куда человек должен прийти. Точка назначения — это место, в которое человек идет в определенное время. Точкой назначения может быть кнопка лифта, дверь лифта, дверь квартиры и любое место на этаже. Точка назначения влияет на передвижение человека. В свою очередь на точку назначения влияет состояние человека. Состояния человека:
Для формализации процесса разработки программы, были составлены UML диаграммы классов. UML диаграмма классов представлена на рисунке 4.1. Рисунок 4.1 — Диаграмма классов «человек» Таблицы описания классов приведены в приложении А. В ходе разработки программы, в классе «Person» было создано семь полей, чего в принципе хватало для демонстрации поведения человека в многоэтажном здании с системой лифтов. Но в целях усовершенствования программы добавлялись новые возможности, которые обеспечивались новыми методами. Для отслеживания положения конечного пункта были добавлены соответствующие методы. Так же были добавлены функции для отображения этажа, на котором находится человек. Класс «Position» написан таким образом, что при изменении значений его полей изменяется положение человека. 5Описание программы для пользователяПрограмма представляет собой гибкую систему моделирования, позволяющую представить множество ситуаций, наиболее часто возникающих при работе системы лифтов в многоэтажном здании. Особенности программы: Количество этажей задается пользователем и оно может находиться в диопозоне от 5 до 127. По умолчанию, количество этажей равно 5. Количество лифтов задается пользователем, но зависит от количества этажей. Предоставляется возможность изменять размер лифта Количество дверей задается пользователем. Предоставляется возможность запустить моделирование работы лифтов в автоматизированном режиме. Предоставляемся возможность манипулировать всеми объектами, которые участвуют в процессе меделирования (этажи, двери, лифты, люди). Например, можно указать дверь из которой должен появиться человек, можно указать человечку куда ему идти. При запуске программы отрывается главное окно. Изображения главного окна представлено на рисунке 5.1. Рисунок 5.1 — Изображение главного окна В левой части окна находится панель управления с кнопками, с помощью которых можно добавлять новую дверь и шахту лифта и указывать количество этажей. При этом положение шахты или двери задается случайным образом. Изображение панели управления представлено на рисунке 5.2. Рисунок 5.2 — Панель управления Для создания объекта в определенном месте, следует нажать правую клавишу мыши в этом месте и выбрать интересующее действие в открывшемся окне. Изображение всплывающего окна представлено на рисунке 5.3. Рисунок 5.3 — Всплывающее окно Помимо создания новых объектов, посредством нажатия на правую кнопку мыши можно удалять объект и совершать различные манипуляции, такие как: остановить лифт; очистить стек вызовов у лифта; Для того чтобы указать человеку конечный пункт (место куда человеку надо прийти), следует выбрать человека, нажав на него левой клавишей мыши (при этом человек выделится цветом) и кликнуть правой клавишей мыши на любое место рабочей области программы. Для выхода из программы следует закрыть главное окно программы. 6ТестированиеТест 1. Задали количество этажей, равным двадцати, количество секций, равным двенадцати, создали пять шахт. Создали две двери в двух противоположных частях здания. Затем кликом на двери, находящейся в правом нижнем углу, создали человека и кликом правой кнопкой на другой двери отправили его к ней. Программа отработала без сбоев. Ход тестирования представлен на рисунках 6.1–6.3. Рисунок 6.1 — Тест 1, начало Рисунок 6.2 — Тест 1, человек едет на лифте Рисунок 6.3 — Тест 1, человек достиг конечного этажа Тест 2. Задали небольшое количество этажей, одну шахту. Создали около шестидесяти людей, в среднем около двух в секунду. У каждого изначально была инициализирована конечная точка назначения. Каждый человек в ходе тестирования находился в движении. Программа отработала без сбоев. Ход тестирования представлен на рисунках 6.4. Рисунок 6.4 — Тест 2, большое число движущихся людей Тест 3. В качестве основы для этого теста был использован предыдущий тест. В ходе нагрузочного тестирования было создано семь лифтов, двадцатиэтажное здание с двенадцатью секциями. Также было создано более сотни людей, каждый из которых находился в движении. Программа начала потреблять большое количество ресурсов оперативной памяти и в итоге завершилась ошибкой. Рисунок 6.5 — Тест 3, нагрузочный Рисунок 6.6 — Тест 3, подробности проблемы 7ЗаключениеЦель и задачи, поставленные в работе, выполнены. Создано приложение «Elevator», имеющее интуитивно-понятный графический интерфейс пользователя. Для реализации была выбрана среда разработки Visual Studio 2010, версия .Net Framework 3.5, технология WPF. Программа предоставляет возможность смоделировать большое количество различных ситуаций связанных с взаимодействием людей и лифтов в многоэтажном здании. Так же программа имеет автономный режим. 8Список использованных источников
Приложение А(справочное) Таблицы описания классов Описание класса «Person» представлено в таблице А.1. Таблица А.1 — описание класса «Person».
Продолжение таблицы А.1
Описание класса «Destination» представлено в таблице А.2. Таблица А.2 — описание класса «Destination».
Описание класса «Position» представлено в таблице А.3. Таблица А.3 — описание класса «Position».
2013 |
Пояснительная записка к курсовому проекту по дисциплине «Объектно-ориентированное... Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования | Пояснительная записка к курсовому проекту по дисциплине «Объектно-ориентированное... Моделирование работы лифтов, wpf, варианты использования, uml диаграммы, пользовательский интерфейс, алгоритмы передвижений | ||
Урок №4 Тема: Введение в объектно -ориентированное программирование Познакомить учащихся с базовыми понятиями объектно-ориентированного программирования | Объектно-ориентированное программирование на примере размножения и развития живых организмов Данная работа представляет собой методическую разработку четырёх уроков информатики, посвящённых объектно-ориентированному программированию.... | ||
Пояснительная записка к курсовому проекту по дисциплине «Разработка... Курсовой проект содержит: страниц – 22, источников – 8, рисунков – 9, таблиц – 1 | «Объектно-ориентированное программирование» в 10 – 11 классе Икт: Практикум по программированию, 10-11 класс. Он содержит поурочные разработки по данному учебнику и диск с готовыми проектами... | ||
Методические указания к курсовому проекту по дисциплине «Программная инженерия» Документирование процесса разработки программных средств с использованием uml: Методические указания к курсовому проекту по дисциплине... | Пояснительная записка к курсовому проекту по дисциплине «Разработка сапр» Целью работы является разработка и реализация библиотеки элементов «Отвертка» на базе системы компас 3D, с использованием методов... | ||
Пояснительная записка к курсовому проекту по дисциплине Схемотехника... Усилительный каскад, транзистор, коэффициент передачи, частотные искажения, напряжение, мощность, термостабилизация, скважность,... | Пояснительная записка к курсовому проекту по дисциплине «Разработка... Курсовой проект содержит: страниц –19, источников – 5, рисунков – 6, таблиц – 2 | ||
Пояснительная записка к курсовому проекту по дисциплине: «Разработка сапр» Целью данной работы является разработка и реализация модуля к сапр «Зубчатая передача с пересекающимися осями колес» на базе системы... | Интегрированная среда разработки языка Visual Basic ... | ||
Урок №6 Тема урока: Объектно-ориентированное программирование Умение работать в коллективе, умение делать самоанализ, взаимоконтроль, развитие дисциплины | Урок по предметам «Информационная безопасность» и «Объектно-ориентированное... Необходимое оборудование и программы: пк с ос windows, среда программирования Delphi, проектор | ||
Курсовая работа выполняется на основании 'Задания на курсовую работу'... Целью курсовой работы является закрепление практических навыков самостоятельной постановки и решения задачи обработки данных с помощью... | Пояснительная записка к курсовому проекту по прикладной механике... Курсовой проекта содержит два листа графической части формата а-1 и пояснительную записку в «35» листов |