Курсовой проект по дисциплине "Технология разработки программного обеспечения"
Срок сдачи курсового проекта – неделя перед ломкой расписания.
Тема проекта и минимальный набор требований к программе должны быть согласованы с преподавателем в начале семестра.
Для контроля за процессом написания программы, возможности отката к предыдущим версиям, возможности совместной работы над программным кодом, а также для настройки непрерывной интеграции, все исходные коды программы должны храниться в репозитарии системы управления версиями (Git или Mercurial).
За неделю до защиты выполненного курсового проекта преподавателю сдается пояснительная записка и репозитарий (с полной историей изменений), упакованный в архив формата ZIP.
Обратите внимание, что файл, который предлагает скачать GitHub – это не весь репозитарий, а только последняя версия.
Система оценивания
Максимально допустимое количество баллов
- За работу в семестре: 40;
-
За курсовой проект: 60:
- Пояснительная записка: 45,
- Программа: 15.
Оценка
- Отлично: 90 – 100 баллов;
- Хорошо: 70 – 89 баллов;
- Удовлетворительно: 55 – 69 баллов.
Каждый раздел поснительной записки оценивается отдельно. Полученные баллы суммируются. Если объём раздела меньше, чем номинальный объём, балл за раздел снижается пропорционально объёму раздела. Если объём раздела больше, чем номинальный объём, балл за раздел повышается (на усмотрение преподавателя, обычно пропорционально объёму раздела).
Для обеспечения адекватной оценки в случае несамостоятельного, несвоевременного или неаккуратного выполнения курсового проекта предусмотрены штрафы.
Также предусмотрены поощрения за досрочное выполнение проекта и выполнение дополнительных заданий, связанных с обеспечением удобства использования разработанных программ.
Штрафы
- Несвоевременная сдача пояснительной записки: 1 балл в неделю, но не более 10 баллов;
- Ошибки и небрежности в оформлении, грамматические ошибки и опечатки, неверные ссылки на рисунки и источники: 1 балл за каждые 5 ошибок;
- Логические ошибки (требующие написания замечаний): до 1 балла за замечание;
- Отсутствие таких важных составляющих пояснительной записки, как "Титульный лист", "Содержание", "Введение", "Заключение" или "Список использованных источников": 2 балла за каждый отсутствующий раздел.
- Копирование текста без указания ссылки на источник: 2 балла за абзац;
- Незнание содержимого пояснительной записки: 10 баллов за раздел;
- Несоответствие функционала программы содержимому пояснительной записки (разделы 1 и 5): до 10 баллов;
- Несоответствие исходного кода программы содержимому пояснительной записки: до 10 баллов;
- Непонимание исходного кода программы, неспособность найти часть исходного кода, отвечающую за определённую функцию: до 5 баллов за фрагмент исходного кода;
- Невозможность запустить программу: 10 баллов;
- Существенное ограничение переносимости программы (например, программа работает только будучи установленной в определённую папку; программа, не предназначенная для обслуживания системы, не работает без прав администратора): до 5 баллов;
-
Неудобный пользовательский интерфейс: до 5 баллов;
- Отсутствие горячих клавиш: 1 балл;
- Неиспользование клавиши Enter для подтверждения ввода и Escape для отмены: 1 балл;
- Бессмысленный порядок переключения элементов управления при нажатии клавиши Tab: 1 балл;
- Невозможность развернуть окно приложения на весь экран (вместе с элементами управления): 1 балл;
- Нечитабельный шрифт: 1 балл;
- Консольный интерфейс оценивается на усмотрение преподавателя.
- Отсутствие 10 осмысленных зафиксированных наборов изменений (commit) в системе управления версиями, выполненных каждым участником команды: до 10 баллов (1 балл за каждый отсутствующий набор изменений).
Поощрения
- Сдача проекта раньше срока: 1 балл в неделю;
-
Автоматизированная установка приложения (процесс создания/размещения инсталлятора/пакета должен быть описан в пояснительной записке): до 10 баллов (в зависимости от сложности инсталлятора)
- Инсталлятор для Windows (InnoSetup, NSIS, WiX);
- Размещение приложения в Google play, App Store, Windows Store;
- Пакет для любого дистрибутива Linux;
- Приложение для социальной сети (Facebook, ВКонтакте);
- Размещение библиотеки исходного кода в репозитарии Maven;
- Развёртывание приложения на сервере в Интернете (процесс развёртывания должен быть описан в пояснительной записке в соответствующем разделе, с указанием адреса развёрнутого приложения).
-
Локализация программы (используемый инструментарий и подход к локализации должны быть описаны в пояснительной записке): до 10 баллов (в зависимости от объёма и качества локализации)
- Основной язык – английский;
- Язык локализации – русский;
- Все строки, требующие локализации, должны быть вынесены в ресурсный файл;
- Для подключения дополнительного языка должно быть достаточно предоставить ресурсный файл с переводом;
- Возможность переключения языка из пользовательского интерфейса программы.
Структура пояснительной записки
Титульный лист
Номинальный объём: 1 страница
Содержание
Номинальный объём: 1 страница
Введение
Номинальный объём: 1 полная страница
Введение в предметную область.
Используемые средства разработки.
1. Требования к программе
Номинальный объём: 8 страниц
Назначение программы.
Область применения.
Задачи, решаемые программой.
Структурированный перечень функциональных и нефункциональных требований к программе (глава 3).
Можно в виде историй пользователей (user-stories) со сценариями (слайды, статья).
Можно в виде ТЗ по ГОСТ 19.201-78.
Варианты использования (главы 4, 5).
Диаграмма (диаграммы) вариантов использования с описанием как минимум пяти наиболее значимых: краткое описание, главные актёры, второстепенные актёры, предусловия, основной поток, постусловия, альтернативные потоки.
Номинальный объём: 8 страниц
Предлагаемое содержание:
-
Классы анализа: диаграмма с описанием назначения всех классов и отношений между ними (главы 7-10).
-
Диаграммы последовательностей для вариантов использования с участием классов анализа и выявленных для них операций (глава 12).
-
Диаграммы деятельности для описания поведения программы (глава 14).
-
Конечные автоматы для динамических классов анализа (глава 21).
3. Проектирование (глава 16)
Номинальный объём: 8 страниц
Предлагаемое содержание:
-
Проектные классы (главы 17, 18).
-
Диаграммы последовательностей для операций проектных классов (глава 12).
-
Конечные автоматы для динамических проектных классов (глава 21).
-
Компоненты и программные интерфейсы (глава 19).
Номинальный объём: 8 страниц
Тестирование
Сюда входит автоматическое, полуавтоматическое и ручное тестирование, например:
- Модульное тестирование – тестирование каждого метода в отдельности с использованием заглушек.
- Интеграционное тестирование – то же, что модульное тестирование, но без использования заглушек.
- Системное тестирование – проверка всей программы в целом.
-
Тестирование интерфейса
- автоматизированное (например, Selenium);
- ручное (проверка всех заявленных вариантов использования).
- Нагрузочное тестирование.
Непрерывная интеграция
-
Описание того, как была выполнена автоматизация сборки (make, msbuild и т.п.), включающее конфигурационный файл системы автоматизации сборки с пояснениями.
-
Описание процесса настройки системы непрерывной интеграции (например, Jenkins, TFS) для автоматического тестирования и сборки проекта при появлении изменений в системе управления версиями.
Развёртывание
- Описание процесса развёртывания программы, проиллюстрированное диаграммой развёртывания (глава 24).
5. Документация
Номинальный объём: 8 страниц
- Руководство оператора по ГОСТ 19.505-79.
Раздел "Выполнение программы" должен показывать, как реализованы требуемые функции, описанные в разделе 1.
Заключение
Номинальный объём: 1 полная страница
Список использованных источников
Номинальный объём: 1 полная страница
По ГОСТ Р 7.0.5-2008.
Каждая диаграмма должна сопровождаться текстовым описанием.
Каждый рисункок должен быть подписан и пронумерован с использованием автоматической нумерации.
На каждый рисунок должна быть ссылка в текте.
Рисунок не может следовать сразу после заголовка.
Текст на рисунках должны быть читабельным. Размер шрифта на рисунках должен быть сопоставим с размером шрифта основного текста. Большие диаграммы рекомендуется разбивать на более мелкие осмысленные диаграммы.
Все заголовки одного уровня должны иметь одинаковое оформление (шрифт, интервалы, выравнивание). Не допускается использовать пустые строки для настройки интервалов перед заголовками и после них.
Основной текст пояснительной записки должен иметь одинаковое оформление (шрифт, интервалы, выравнивание).
Настройки оформления стилей заголовков и основного текста должны совпадать с реальным оформлением. Для изменения оформления текста и заголовков необходимо изменять оформление соответствующих стилей, а не оформление отдельных абзацев текста или заголовков.
Все заголовки, кроме заголовков "Содержание", "Введение", "Заключение", "Список использованных источников" должны быть пронумерованы с использованием автоматической нумерации.
Содержание должно быть собрано автоматически и обновлено перед печатью.
Содержание не должно изменяться при обновлении (не должны появляться лишние пункты и исчезать существующие). Все страницы кроме титульного листа должны быть пронумерованы. Не допускается для форматирования использовать несколько подряд идущих пробелов или переводов строк.
Примеры проблем, для которых может быть разработано программное обеспечение:
- Библиотечная система.
- Информационная система университета.
- Аукцион.
- Торговля недвижимостью.
- Удаленное обучение.
- Гостиница.
- Бюро по трудоустройству.
- Туристическая фирма.
- Грузовые перевозки для населения.
- Прокат автомобилей.
- Поликлиника.
- Больница.
- Универсам.
- Спортивные состязания по легкой атлетике.
- Чемпионат страны по футболу.
- Чемпионат по биатлону.
- Факультет университета.
- Аэропорт.
- Жилищные управляющие компании.
- Школа (успеваемость, посещаемость).