- •Введение
- •1. Системотехническая часть
- •1.1 Описание и анализ предметной области
- •1.1.1 Принципы обучения слепому методу печати
- •1.1.2 Обзор существующих клавиатурных тренажеров
- •1.1.3 Анализ предметной области
- •1.2 Постановка задачи
- •1.3 Построение структурной схемы
- •1.4 Спецификация системы
- •1.4.1 Функциональная спецификация системы
- •1.4.2 Спецификация качества
- •1.5 Разработка и описание структуры данных и классов объектов
- •1.6 Разработка и описание алгоритмов
- •Выбор и обоснование программных средств
- •1.7.1 Выбор операционной системы
- •1.7.2 Выбор языка программирования
- •2. Конструкторско-технологическая часть
- •2.1 Разработка пользовательского интерфейса системы
- •2.1.1 Меню администратора
- •2.1.2 Меню обучаемого
- •Описание тестового примера
- •2.2 Реализация и описание модулей программы
- •2.3 Выбор и обоснования комплекса технических средств
- •2.3.1 Расчет объема занимаемой памяти
- •2.3.2 Минимальные требования, предъявляемые к системе
- •Заключение
1.4 Спецификация системы
Спецификация требований программного обеспечения является полным описанием поведения системы, которая будет создана. Она включает ряд сценариев использования, которые описывают все виды взаимодействия пользователей с программным обеспечением. Сценарии использования также известны как функциональные требования. В дополнении к сценариям использования, спецификация программного обеспечения также содержат нефункциональные (или дополнительные) требования.
Функциональные требования объясняют, что должно быть сделано. Они идентифицируют задачи или действия, которые должны быть выполнены. Функциональные требования определяют действия, которые система должна способна выполнять, связь входа/выхода в поведении системы
Нефункциональные требования — требования, которые определяют критерии работы системы в целом, а не отдельные сценарии поведения. Нефункциональные требования определяют системные свойства такие как производительность, удобство сопровождения, расширяемость, надежность, средовые факторы эксплуатации [8].
1.4.1 Функциональная спецификация системы
Функциональная спецификация – перечень всех функций, которые выполняет пользователь, и наиболее важных функций системы с привязкой к информационной среде [9].
Функциональная спецификация системы включает в себя:
перечень функций, которые будет выполнять система, с привязкой к информационной среде;
перечень исключительных ситуаций;
описание внешней информационной среды.
Перечень функций, выполняемых системой, представлен в таблице 1.
1.4.2 Спецификация качества
Спецификация качества представляет собой количественные определения показателей качества функциональной системы.
В программе должны выполняться следующие требования:
защита от не обдуманных действий пользователя;
контроль вводимых параметров;
корректное выполнение функций, поставленных перед программой.
Спецификация качества включает в себя перечень исключительных ситуаций и описание реакций системы на них.
Исключительная ситуация – ситуация, при которой система не может выполнить возложенные на нее функции или ситуация, которая приводит к деморализации системы.
Перечень исключительных ситуаций системы представлен в таблице 2.
1.5 Разработка и описание структуры данных и классов объектов
Класс – это логическая конструкция, которая определяет форму и природу объекта. Класс является специальным типом, который содержит поля, методы и свойства. Как и любой другой тип, класс служит образцом для создания конкретных экземпляров реализации объектов. Класс формирует основу объектно-ориентированного программирования. На рисунке 7 - представлена диаграмма пользовательских классов, которая показывает отношение классов между собой. Спецификации классов представлены в таблицах 3-18.
Таблица 3 – Спецификация класса «Настройки»
|
Поле |
Тип |
+ |
Конфигурация настроек |
Настройки |
|
Метод |
Тип |
+ |
Загрузка |
|
+ |
Сохранение |
|
Таблица 4 – Спецификация класса «Статистика обучаемых»
|
Поле |
Тип |
+ |
Таблица обучаемых |
Таблица |
|
Метод |
Тип |
+ |
Показать статистику |
|
Таблица 5 – Спецификация класса «Отображение настроек»
|
Метод |
Тип |
+ |
Показать статистику обучаемого |
|
- |
Показать статистику обучаемых |
|
- |
Показать упражнения |
|
- |
Показать системные настройки |
|
- |
Редактировать системные настройки |
|
- |
Редактировать записи обучаемых |
|
- |
Редактировать упражнения |
|
- |
Сохранить системные настройки |
|
- |
Сохранить записи обучаемых |
|
- |
Сохранить упражнения |
|
Таблица 6 – Спецификация класса «Данные обучаемого»
|
Поле |
Тип |
+ |
Текущий обучаемый |
Пользователь |
|
Метод |
Тип |
+ |
Отображение данных пользователя |
|
+ |
Создание пользователя |
|
Таблица 7 – Спецификация класса «О программе»
|
Метод |
Тип |
+ |
Показать информацию о программе |
|
Таблица 8 – Спецификация класса «Статистика обучаемого»
|
Метод |
Тип |
+ |
Показать статистику обучаемого |
|
Таблица 9 – Спецификация класса «Работа с обучаемым»
|
Поле |
Тип |
- |
Клавиатура |
Форма |
- |
Падающая буква |
Текст |
- |
Текущее упражнение |
Текст |
- |
Обучаемый |
Пользователь |
|
Метод |
Тип |
+ |
Отобразить упражнение |
|
- |
Анимация падающего символа |
|
- |
Заполнение списка |
|
- |
Инициализация компонентов |
|
- |
Клавиша нажата |
|
- |
Удержание клавиши |
|
- |
Клавиша отжата |
|
- |
Подсветка клавиши |
|
- |
Установка упражнения |
|
Таблица 10 – Спецификация класса «Все обучаемые»
|
Поле |
Тип |
+ |
Все пользователи |
Все пользователи |
- |
Обучаемые |
Список пользователей |
|
Метод |
Тип |
+ |
Загрузка списка обучаемых |
|
+ |
Сохранение списка обучаемых |
|
+ |
Удаление обучаемого |
|
+ |
Добавление обучаемого |
|
Таблица 11 – Спецификация класса «Обучаемый»
|
Поле |
Тип |
+ |
Имя |
Строка |
+ |
Фамилия |
Строка |
+ |
Статус |
Строка |
+ |
Статистика выполненных упражнений |
Статистика |
+ |
Логин |
Строка |
+ |
Пароль |
Строка |
+ |
Метод |
Тип |
+ |
Получить пароль |
|
+ |
Пароль администратора |
Логический |
+ |
Правильный пароль |
Логический |
Таблица 12 – Спецификация класса «Упражнения»
|
Поле |
Тип |
+ |
Легкие упражнения |
Упражнение |
+ |
Средние упражнения |
Упражнение |
+ |
Сложные упражнения |
Упражнение |
+ |
Очень сложные упражнения |
Упражнение |
- |
Список упражнений |
Список строк |
- |
Допустимый процент ошибок |
Число |
|
Метод |
Тип |
+ |
Загрузка упражнений |
|
+ |
Сохранение упражнений |
|
+ |
Удалить упражнение |
|
- |
Чтение упражнения |
Упражнение |
- |
Запись упражнения |
|
+ |
Получить упражнение |
Строка |
- |
Изменение упражнения |
|
Таблица 13 – Спецификация класса «Клавиатура»
|
Метод |
Тип |
+ |
Получить символ по коду клавиши |
Символ |
+ |
Получить код клавиши по символу |
Код клавиши |
- |
Получить клавишу по коду |
Клавиша |
+ |
Подсветка клавиши |
|
+ |
Восстановить цвет клавиши |
|
- |
Задать цвет клавиши |
|
Таблица 14 – Спецификация класса «Отображение упражнения»
|
Поле |
Тип |
- |
Кисть |
Кисть рисования |
- |
Фон рисования |
Графический объект |
- |
Объект для отображения |
Изображение |
- |
Холст для рисования |
Холст |
|
Метод |
Тип |
+ |
Показать упражнение |
|
Таблица 15 – Спецификация класса «Статистика»
|
Поле |
Тип |
+ |
Статистика легких упражнений |
Статистика упражнений |
+ |
Статистика средних упражнений |
Статистика упражнений |
+ |
Статистика сложных упражнений |
Статистика упражнений |
+ |
Статистика очень сложных упражнений |
Статистика упражнений |
Таблица 16 – Спецификация класса «Авторизация пользователя»
|
Метод |
Тип |
- |
Администратор |
|
- |
Обучаемый |
|
Таблица 17 – Спецификация класса «Администратор»
|
Метод |
Тип |
- |
Отображение настроек |
|
Таблица 18 – Спецификация класса «Статистика упражнений»
|
Поле |
Тип |
+ |
Количество выполненных упражнений |
Число |
+ |
Допустимый процент ошибок |
Число |
