Главная страница

Архис Лаб1. Отчет по предмету 1 лабораторная работа Кодовый замок


Скачать 0.67 Mb.
НазваниеОтчет по предмету 1 лабораторная работа Кодовый замок
Дата25.07.2022
Размер0.67 Mb.
Формат файлаdocx
Имя файлаАрхис Лаб1.docx
ТипОтчет
#635778

Министерство Образования и Науки РФ

Федеральное государственное бюджетное образовательное учреждение

Высшего образования

«___»


Факультет компьютерных наук

Отчет по предмету ____

1 лабораторная работа

Кодовый замок

Студент _ курса _ группы

Направление

ФИО


Воронеж 2021


Оглавление


Описание 3

Use-Case диаграмма 4

Варианты использования 5

1.«Нажать кнопку контроля» 5

2.«Нажать кнопку вызова» 5

3.«Включить звонок» 5

4.«Отпереть дверь вручную» 5

5.«Подать сигнал на дисплей» 6

6.«Подать сигнал на замок» 6

7.«Сменить код контроля» 6

8.«Ввести код контроля» 7

9.«Сменить код доступа» 7

10.«Ввести код доступа» 8

11.«Сравнить введенный код» 8

12.«Добавить запись в БД» 8

Диаграммы последовательности и коммуникаций 10

1.«Нажать кнопку контроля» 10

2.«Нажать кнопку вызова» 10

3.«Включить звонок» 11

4.«Отпереть дверь вручную» 12

5.«Подать сигнал на дисплей» 13

6.«Подать сигнал на замок» 14

7.«Сменить код контроля» 15

8.«Ввести код контроля» 18

9.«Сменить код доступа» 19

10.«Ввести код доступа» 20

11.«Сравнить введенный код» 22

12.«Добавить запись в БД» 23

Диаграмма состояний 25

Диаграмма активности 26

Диаграмма классов 27

Диаграмма пакетов 29

Диаграмма компонентов 30

Диаграмма развертывания 31


Описание


Кодовый замок – устройство, состоящее из микроконтроллера, затворного механизма, звонка, а также панели управления, предназначенное для контроля доступа в определенное помещение.

Панель управления состоит из клавиатуры с 12 кнопками: цифры от 0 до 9, кнопка «Вызов», кнопка «Контроль», а также цифрового дисплея.

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

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

Если код набран правильно, то замок открывается на некоторое время, после чего дверь снова закрывается. Содержимое дисплея очищается. 

Кнопка «Вызов» используется для подачи звукового сигнала внутри помещения. Кнопка «Контроль» используется для смены кодов. 

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

Для смены кода контроля нужно при открытой двери и нажатой кнопке «Вызов» нажать кнопку «Контроль», набрать код контроля, после чего – ввести новый код контроля.

Кодовый замок хранит базу данных кодов (время создания и время смены каждого).

Use-Case диаграмма




Акторы

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

  • Вахтер – Пользователь, находящийся внутри охраняемого помещения и имеющий возможность открыть дверь вручную;

  • Микроконтроллер – главное управляющее устройство кодового замка, обрабатывает нажатия на клавиатуру, подает сигнал на звонок и на замок, оперирует базой данных кодов.


Варианты использования

  1. «Нажать кнопку контроля»


Описание: Вариант использования «Нажать кнопку контроля» позволяет любому пользователю, знающему правильные коды и комбинацию, сменить код доступа кодового замка.

Предусловия:

Основной поток событий:

  • Пользователь нажимает кнопку «Контроль».

  • Вариант использования завершается.


  1. «Нажать кнопку вызова»


Описание: Вариант использования «Включить звонок» позволяет микроконтроллеру подавать звуковой сигнал.

Предусловия: до выполнения данного варианта использования должен быть выполнен вариант использования «Нажать кнопку вызова».

Основной поток событий:

  • Микроконтроллер подает сигнал на звонок;

  • Вариант использования завершается.


  1. «Включить звонок»


Описание: Вариант использования «Включить звонок» позволяет микроконтроллеру подавать звуковой сигнал.

Предусловия: до выполнения данного варианта использования должен быть выполнен вариант использования «Нажать кнопку вызова».

Основной поток событий:

  • Микроконтроллер подает сигнал на звонок;

  • Вариант использования завершается.


  1. «Отпереть дверь вручную»


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

Предусловия: во время выполнения данного варианта использования должен быть выполнен вариант использования «Подать сигнал на замок».

Основной поток событий:

  • Пользователь нажимает кнопку на затворном механизме;

  • Микроконтроллер подает сигнал на затвор;

  • Дверь открывается;

  • Вариант использования завершается.


  1. «Подать сигнал на дисплей»


Описание: Вариант использования «Подать сигнал на дисплей» позволяет микроконтроллеру выводить на дисплее цифры.

Предусловия: до выполнения данного варианта использования должны быть выполнены варианты использования «Ввести код доступа» или «Ввести код контроля».

Основной поток событий:

  • Микроконтроллер выводит введенные цифры на дисплей;

  • Вариант использования завершается.


  1. «Подать сигнал на замок»


Описание: Вариант использования «Подать сигнал на замок» позволяет микроконтроллеру открывать или закрывать дверь.

Предусловия: до выполнения данного варианта использования может быть выполнен вариант использования «Сравнить введенный код».

Основной поток событий:

  • Микроконтроллер подает сигнал на замок;

  • Вариант использования завершается.


  1. «Сменить код контроля»


Описание: Вариант использования «Сменить код контроля» позволяет любому Пользователю, знающему правильный порядок действий и коды, сменить контрольный код кодового замка.

Предусловия: во время выполнения данного варианта использования должен быть выполнен вариант использования «Ввести код доступа».

Основной поток событий:

  • Пользователь вводит код доступа;

  • Пользователь зажимает кнопку «Вызов»;

  • Пользователь нажимает кнопку «Контроль»;

  • Пользователь вводит код контроля;

  • Пользователь вводит новый код контроля;

  • Вариант использования завершается.


  1. «Ввести код контроля»


Описание: Вариант использования «Ввести код контроля» позволяет пользователю ввести код контроля для смены других кодов

Предусловия: во время выполнения данного варианта использования должны выполняться варианты использования «Сравнить введенный код» и «Подать сигнал на дисплей».

Основной поток событий:

  • Пользователь вводит код контроля;

  • Микроконтроллер сравнивает введенный код;

  • Вариант использования завершается.


  1. «Сменить код доступа»


Описание: Вариант использования «Сменить код доступа» позволяет любому пользователю, знающему правильные коды и комбинацию, сменить код доступа кодового замка.

Предусловия: во время выполнения данного варианта использования должны быть выполнены варианты использования «Ввести код доступа», «Нажать кнопку контроля», «Ввести код контроля» и «Сравнить введенный код».

Основной поток событий:

  • Пользователь вводит код доступа;

  • Микроконтроллер сравнивает введенный код;

  • Пользователь нажимает на кнопку «Контроль»;

  • Пользователь вводит код контроля;

  • Микроконтроллер сравнивает введенный код;

  • Пользователь вводит код доступа;

  • Вариант использования завершается.


  1. «Ввести код доступа»


Описание: Вариант использования «Ввести код доступа» позволяет любому пользователю ввести код на кодовом замке и, если код введен правильно, открыть дверь и войти в охраняемое помещение.

Предусловия: во время выполнения данного варианта использования должен выполняться вариант использования «Подать сигнал на дисплей» и «Сравнить введенный код».

Основной поток событий:

  • Пользователь вводит код на панели;

  • Микроконтроллер сравнивает введенный код;

  • Вариант использования завершается.


  1. «Сравнить введенный код»


Описание: Вариант использования «Сравнить введенный код» позволяет Микроконтроллеру сравнить, правильный ли введен код.

Предусловия: до выполнения данного варианта использования должен быть выполнен хотя бы один из вариантов использования: «Ввести код контроля», «Ввести код доступа».

Основной поток событий:

  • Микроконтроллер считывает введенный код;

  • Микроконтроллер выводит код на дисплей;

  • Микроконтроллер сравнивает введенный код с оригинальным, если код не подходит, выводится сообщение об ошибке;

  • Микроконтроллер подает сигнал на замок;

  • Вариант использования завершается.


  1. «Добавить запись в БД»


Описание: Вариант использования «Добавить запись в БД» позволяет Микроконтроллеру кодового замка делать записи в БД.

Предусловия: до выполнения данного варианта использования должен быть выполнен хотя бы один из вариантов использования: «Ввести код доступа», «Ввести код контроля», «Сменить код доступа», «Сменить код контроля».

Основной поток событий:

  • Микроконтроллер считывает комбинацию;

  • Микроконтроллер делает запись в нужную таблицу БД;

  • Вариант использования завершается.


Диаграммы последовательности и коммуникаций

  1. «Нажать кнопку контроля»


Последовательности



Объекты:

  1. Пользователь

  2. Панель

Сообщения между объектами:

  1. Нажать кнопку «Контроль»

  2. Команда «Контроль»

Пользователь инициирует выполнение варианта использования «Нажать кнопку контроля». Пользователь нажимает кнопку «Контроль» на панели кодового замка. Панель отправляет команду на Микроконтроллер.

Коммуникации



Диаграмма коммуникации отображает те же объекты и процессы, что и диаграмма последовательности.
  1. «Нажать кнопку вызова»


Последовательности



Объекты:

  1. Пользователь

  2. Панель

Сообщения между объектами:

  1. Нажать кнопку «Вызов»

  2. Команда «Вызов»

Пользователь инициирует выполнение варианта использования «Нажать кнопку вызова». Пользователь нажимает кнопку на Панели кодового замка. Панель отправляет команду на Микроконтроллер.

Коммуникации



Диаграмма коммуникации отображает те же объекты и процессы, что и диаграмма последовательности.
  1. «Включить звонок»


Последовательности



Объекты:

  1. Панель

  2. Микроконтроллер

  3. Звонок

Сообщения между объектами:

  1. Команда “Звонок”

  2. Сигнал

На микроконтроллер приходит команда «Звонок» с панели, Микроконтроллер включает звонок на 5 секунд.

Коммуникации



Диаграмма коммуникации отображает те же объекты и процессы, что и диаграмма последовательности.
  1. «Отпереть дверь вручную»


Последовательности



Объекты:

  1. Вахтер

  2. Задняя панель

  3. Микроконтроллер

  4. Замок

Сообщения между объектами:

  1. Нажатие кнопки

  2. Команда открытия затвора

  3. Сигнал на открытие

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

Коммуникации



Диаграмма коммуникации отображает те же объекты и процессы, что и диаграмма последовательности.
  1. «Подать сигнал на дисплей»


Последовательности



Объекты:

  1. Микроконтроллер

  2. Дисплей

Сообщения между объектами:

  1. Сигнал

  2. Отрисовать цифру

Микроконтроллер инициирует выполнение варианта использования «Подать сигнал на дисплей». Микроконтроллер подает сигнал с закодированной цифрой и позицией на дисплей. Дисплей выводит цифру.

Коммуникации



Диаграмма коммуникации отображает те же объекты и процессы, что и диаграмма последовательности.
  1. «Подать сигнал на замок»


Последовательности



Объекты:

  1. Микроконтроллер

  2. Замок

Сообщения между объектами:

  1. Сигнал на открытие

  2. Открыть замок

  3. Сигнал на закрытие

  4. Закрыть замок

Микроконтроллер инициирует выполнение варианта использования «Подать сигнал на замок». Микроконтроллер подает сигнал на замок, он открывается. Через 5 секунд Микроконтроллер снова подает сигнал на замок, и он закрывается.

Коммуникации



Диаграмма коммуникации отображает те же объекты и процессы, что и диаграмма последовательности.
  1. «Сменить код контроля»


Последовательности



Объекты:

  1. Пользователь

  2. Панель

  3. Микроконтроллер

  4. Дисплей

  5. Замок

Сообщения между объектами:

  1. Ввести код доступа

  2. Передать код

  3. Подать сигнал

  4. Открыть замок

  5. Нажать кнопку “Вызов”

  6. Команда “Вызов”

  7. Нажать кнопку “Контроль”

  8. Команда “Контроль”

  9. Ввести код контроля

  10. Передать код

  11. Подать сигналы

  12. Ввести новый код контроля

  13. Передать новый код

  14. Записать код в БД

Пользователь инициирует выполнение варианта использования «Сменить код контроля». Пользователь вводит код доступа, панель передает код на Микроконтроллер. Микроконтроллер выводит цифры на Дисплей и открывает Затвор. Пользователь зажимает кнопку «Вызов», нажимает кнопку «Контроль» и вводит код контроля. Микроконтроллер обрабатывает введенную комбинацию. Пользователь вводит новый код контроля. Микроконтроллер записывает новый код контроля себе в базу данных.

Коммуникации



Диаграмма коммуникации отображает те же объекты и процессы, что и диаграмма последовательности.
  1. «Ввести код контроля»


Последовательности



Объекты:

  1. Пользователь

  2. Панель

  3. Микроконтроллер

Сообщения между объектами:

  1. Ввести код контроля

  2. Передать код

  3. Обработать код

Пользователь инициирует выполнение варианта использования «Ввести код контроля». Пользователь вводит на Панели код контроля. Панель передает введенный код в Микроконтроллер. Микроконтроллер обрабатывает введенный код.

Коммуникации



Диаграмма коммуникации отображает те же объекты и процессы, что и диаграмма последовательности.
  1. «Сменить код доступа»


Последовательности



Объекты:

  1. Пользователь

  2. Панель

  3. Микроконтроллер

  4. Дисплей

  5. Замок

Сообщения между объектами:

  1. Ввести код доступа

  2. Передать код

  3. Подать сигнал

  4. Открыть замок

  5. Нажать кнопку “Контроль”

  6. Команда “Контроль”

  7. Ввести код контроля

  8. Передать код

  9. Ввести новый код доступа

  10. Передать новый код

  11. Записать код в БД

Пользователь инициирует выполнение варианта использования «Сменить код доступа». Пользователь вводит код доступа, панель передает код на Микроконтроллер. Микроконтроллер выводит цифры на Дисплей и открывает Затвор. Пользователь нажимает кнопку «Контроль» и вводит код контроля. Микроконтроллер обрабатывает введенную комбинацию. Пользователь вводит новый код доступа. Микроконтроллер записывает новый код доступа себе в базу данных.

Коммуникации



Диаграмма коммуникации отображает те же объекты и процессы, что и диаграмма последовательности.
  1. «Ввести код доступа»


Последовательности



Объекты:

  1. Пользователь

  2. Панель

  3. Микроконтроллер

Сообщения между объектами:

  1. Ввести код доступа

  2. Передать код

  3. Обработать код

Пользователь инициирует выполнение варианта использования «Ввести код доступа». Пользователь вводит на Панели код доступа. Панель передает введенный код в Микроконтроллер. Микроконтроллер обрабатывает введенный код.

Коммуникации



Диаграмма коммуникации отображает те же объекты и процессы, что и диаграмма последовательности.
  1. «Сравнить введенный код»


Последовательности



Объекты:

  1. Микроконтроллер

  2. Замок

Сообщения между объектами:

  1. Код

  2. Проверить код в БД

  3. Если код верный, то открыть замок

Панель инициирует вариант использования «Сравнить введенный код». На Микроконтроллер приходит код. Микроконтроллер проверяет актуальность этого кода в базе данных. Если код верный, то открывается Замок.

Коммуникации



Диаграмма коммуникации отображает те же объекты и процессы, что и диаграмма последовательности.
  1. «Добавить запись в БД»


Последовательности



Объекты:

  1. Микроконтроллер

Сообщения между объектами:

  1. Код

  2. Добавить код в БД

На Микроконтроллер приходит код. Микроконтроллер делает соответствующую запись в БД.

Коммуникации



Диаграмма коммуникации отображает те же объекты и процессы, что и диаграмма последовательности.

Диаграмма состояний




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

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

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

Если пользователь нажимает на кнопку «Вызов», то микроконтроллер подает сигнал на звонок. По прошествии некоторого времени сигнал прекращается.

Диаграмма активности




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

  • Активировать звонок

  • Записать код в БД

  • Считать введенную цифру

  • Вывести цифру на дисплей

  • Открыть замок

  • Закрыть замок

После выполнения этих действий прямо или косвенно микроконтроллер возвращается в исходное состояние «Ожидать действия». 

Диаграмма классов




Основной класс программы – CodeLock. Главный метод – Work. CodeLock содержит в себе 5 модулей. Каждый модуль представлен классом. 

Класс Alarm работает со звонком. Для этого у него есть приватное поле alarmAddr типа int – адрес GPIO для управления звонком. Поле timer представляет собой таймер для включения звонка на время. Метод Alarm сбрасывает таймер, включает звонок и следит, когда таймер истечет. После этого звонок отключается.

Класс DataBase предназначен для коммуникации с базой данных. Приватное поле dbLink представляет собой ссылку на базу данных. Метод SaveTo предназначен для записи в базу данных строки в нужную таблицу. Метод CheckCode предназначен для проверки правильности введенного кода.

Класс Lock работает с затворным механизмом. Для этого у него есть приватное поле lockAddr типа int – адрес GPIO для управления затворным механизмом. Приватное поле isOpened типа bool хранит информацию о состоянии затворного механизма. Метод ChangeState меняет состояние – открывает или закрывает затворный механизм. Метод GetState позволяет получить информацию о состоянии затворного механизма.

Класс Keyboard работает с панелью ввода. Для этого у него есть приватное поле keyboardAddr типа int – адрес GPIO для считывания нажатых клавиш. Метод WaitForKey представляет собой асинхронный метод, ожидающий нажатие какой-либо клавиши.

Класс Display работает с дисплеем. Для этого у него есть приватное поле displayAddr типа int – адрес GPIO для управления дисплея. Приватное поле digits типа List предназначено для хранения информации о введенных цифрах. Метод Print выводит новую цифру на дисплей. Метод Clear очищает дисплей.

Диаграмма пакетов




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

Диаграмма компонентов




Основная программа для микроконтроллера CodeLock.exe зависит от 5 основных модулей. Database отвечает за коммуникацию с БД с помощью SQL запросов. Lock отвечает за управление затворным механизмом. Display отвечает за индикацию на дисплее. Alarm отвечает за звонок. Keyboardker отвечает за обработку нажатий на клавиатуре и передачу их в главные классы.

Диаграмма развертывания




На микроконтроллере должно быть развернуто Java Micro Edition, в котором будет исполняться программа микроконтроллера. Кроме того, микроконтроллер должен хранить базу данных SQLite. Взаимодействие между программой и базой данных происходит с помощью SQL-запросов.


написать администратору сайта