courseproject

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
courseproject [2016/12/02 14:03] usercourseproject [2026/08/29 07:59] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +====== Учебный проект ======
  
 +Учебный проект выполняется командой в составе 2-4 человек.
 +
 +Проект должен быть оформлен в виде архива с именем <№ группы>-<Проект>-<Фамилия1Фамилия2Фамилия3>.zip (пример 093-ИнПлан-ИвановСидоров.zip) включающий:
 +
 +  - Файл PDF или DOC (.doc, .odt) с описанием проекта: постановка задачи, диаграммы, текст вариантов использования, обоснование, артефакты
 +  - Папка с проектом реализованным в среде моделирования
 +
 +Проект присылается **один** раз. Он может быть возвращен на доработку, если имеются ошибки в оформлении. Частично выполненные проекты, по которым спрашиваются комментарии, будут рассматриваться как завершенные. Вопросы можно задавать, но конкретные (а не вида “какие у нас здесь ошибки, мы исправим и пришлем?”), в том числе на семинарах.
 +
 +==== Задание 1 ====
 +
 +Шаблон задания доступен {{pps-report-analysis-20121002.doc|здесь}}.
 +
 +Задание включает:
 +
 +  - Модель анализа - диаграммы вариантов использования, диаграммы классов, схемы состояний.
 +  - Описание ключевых вариантов использования в текстовом виде (4-6 штук) и в виде деятельности.
 +  - Артефакты разработки (допустимо фотографии с бумаги): списки потенциальных классов, карточки CRC, промежуточные варианты диаграмм
 +
 +Также необходимо обосновать представленную модель, то есть почему получены именно такие классы, почему важен тот или иной вариант использования, почему необходимо моделировать данную ассоциацию и т.п.
 +
 +** Описание поведения **
 +
 +При описании поведения объектов предметной области действия, выполняемые акторами в сценариях вариантов использования, должны быть согласованы с действиями в деятельности, описывающей данный вариант использования, а также с операциями, назначенными классам.
 +
 +Жизненный цикл объектов предметной области, при необходимости, описывается схемами состояний (например, экземпляры класса Заказ). Переходы в схемах состояний должны быть согласованы с изменениями состояний объектов, участвующих в деятельности / сценариях вариантов использования.
 +
 +** Сдача задания **
 +
 +Сдача задания происходит на семинаре, артефакты на бумажном носителе можно не прикладывать, а принести с собой. 
 +
 +**Задержка отправки задания приводит к снижению оценки на 0.5 балла каждые 3 дня**
 +
 +==== Задание 2 ====
 +
 +Шаблон задания доступен {{pps-report-design-20121020.doc|здесь}}.
 +
 +Суть второго задания состоит в реализации модели задания №1 на выбранной платформе. Платформа включает в себя набор классов, реализующий функции доступа к базам данных, коммуникации по сети, рисование пользовательского интерфейса и решающие другие вспомогательные задачи. Для каждого проекта классы, входящие в платформу оговариваются отдельно. Обратитесь к своему семинаристу для согласования списка классов платформы реализации.
 +
 +Задание включает:
 +
 +  - Задание 1 (модель анализа, описание вариантов использования, диаграммы, обоснование)
 +  - Модель реализации - диаграммы вариантов использования, диаграммы классов
 +  - Интерпретация ключевых взаимодействий/конечных автоматов динамической модели (2-3 штуки)
 +  - Обоснование применения шаблонов проектирования и других проектировочных решений
 +
 +Модель реализации должна включать **отдельную** диаграмму (или несколько, если требуется) классов (или внутренней структуры), на которой описано, каким образом реализована модель предметной области, используя библиотеки и классы выбранной платформы.
 +
 +Отдельное внимание следует уделить моделированию поведения. Лучшим кандидатом для моделирования является описание реализации ключевых вариантов использования с помощью взаимодействий, схем состояний или деятельности. Одним из ключевых результатов является разработка **согласованных** статической и динамической моделей (то есть если при описании взаимодействия мы вызываем метод принять() у класса А, он должен быть в статической модели).
 +
 +В дополнение к первому заданию, второе должно включать:
 +
 +  - описания основного и альтернативных сценариев в каждом варианте использования
 +  - диаграмма классов реализации, в том числе их взаимодействия с платформой / выбранным каркасом
 +  - (при необходимости) диаграммы конечных автоматов для описания жизненного цикла классов реализации
 +  - диаграммы кооперации и для каждой из них описание взаимодействия, описывающее реализацию сценариев данного варианта использования
 +  - диаграммы деятельности для демонстрации основных сценариев вариантов использования (актеры и boundary классы).
 +
 +Каждая объявленная или использованная (в пунктах 1-5) операция,  должна быть реализована. То есть для нее должен быть  создан метод, реализующий алгоритм на псевдоязыке или скриптом (напр. JavaScript, Groovy, …), или представлена диаграмма деятельности. При этом операции классов и интерфейсов платформы реализовывать не нужно.
 +
 +Рекомендуется применять паттерны проектирования. Их обоснованное использование дает дополнительные плюсы при проверке задания.
 +
 +Сдача задания происходит на семинаре в виде презентации, артефакты на бумажном носителе можно не прикладывать, а принести с собой. 
 +
 +**Примечание**
 +Перед отправкой проверьте, что Вы можете ответить положительно на следующие вопросы по проекту:
 +
 +  - Реализованы 2-3 варианта использования: имеются необходимые диаграммы, для всех операций либо есть метод (opaqueBehavior) на псевдоязыке, либо деятельность, либо это операция платформы.
 +  - Проект успешного проходит валидацию в MagicDraw по simulationProfile (ТОДО).
 +  - Отчет по проекту оформлен в виде курсовой работы: титульный лист, оглавление, содержательная часть, заключение
 +  - Вы прочитали и поняли требования к структуре и содержанию второго задания
 +  - Вы изучили пример {{pps.spring2011-theater.zip|Театральная касса}}
 +
 +==== Задание 2+ ====
 +
 +В учебном году 2016 ранее дополнительное задание становится обязательным. Вместе с моделью реализации должен быть предоставлен прототип реализации.
 +
 +=== План тестирования ===
 +
 +В виду того, что курс по тестированию читается параллельно с данным курсом, при сдаче данного задания нужно также подготовить план тестирования для выявления возможных несоответствий реализации требованиям, сформулированным в задании 1. 
 +
 +План тестирования указывает реализованные и проверяемые варианты использования и тест кейсы для них. Формат:
 +
 +Описание конфигурации системы (заголовок 2 уровня)
 +Дать инструкции предварительной настройке и какой файл запустить.
 +Укзать, что является объектом тестирования.
 +
 +Название варианта использования (заголовок 2 уровня)
 +
 +Таблица с тестами
 +
 +^ # ^ Действие актора ^ Ожидаемый результат ^ Соответствие ^
 +| 1. <Проверить основной сценарий> |
 +| 1.1 | Актор нажимает кнопку | Система показывает окно | <номер шага в варианте использования> |
 +| 1.2 | Актор вводит значние “Привет” и нажимает | Система обновляет окно и показывает “Привет” в поле А | <номер шага в варианте использования> |
 +| 2. <Название теста> |
 +| 2.1 | Актор нажимает кнопку | Система показывает окно | <номер шага в варианте использования> |
 +| 2.2 | … | … |  |
 +
 +=== Вариант 1. Исполняемая модель (экспериментальное задание) ===
 +
 +Один из двух возможных вариантов реализации данного задания. 
 +
 +Задание состоит в детализации модели до уровня, когда она может быть исполнена (на выбор)
 +
 +  * Cameo Simulation Toolkit
 +  * BridgePoint ([[https://xtuml.org/|https://xtuml.org/]]) или Papyrus xtUML ([[https://projects.eclipse.org/proposals/papyrus-xtuml|https://projects.eclipse.org/proposals/papyrus-xtuml]])
 +  * Papyrus RT ([[https://www.eclipse.org/papyrus-rt/|https://www.eclipse.org/papyrus-rt/]])
 +
 +Задание включает реализацию 1-2 сценариев вариантов использования, указанных в плане тестирования:
 +
 +  - поведение (деятельность или конечный автомат), описывающее действия системы и актеров (взаимодействие с пользовательскими интерфейсами)
 +  - реализация использованных операций граничных классов (“веб-страниц”)
 +  - реализация вызываемых операций классов предметной области
 +
 +Проверяющее поведение в пункте 1 может быть заменено пользовательским интерфейсом.
 +
 +Пример исполняемой модели для Cameo Simulation Toolkit: {{software_design-example-simtoolkit.zip|Секундомер}} на конечных автоматах.
 +
 +=== Вариант 2. Реализация в исходных кодах ===
 +
 +Задание состоит в реализации модели на языке программирования и создании работающего прототипа.
 +
 +Задание включает реализацию 1-2 сценариев вариантов использования, указанных в плане тестирования.
 +
 +Требование к реализации (предварительно):
 +
 +  * Запускается и проходит smoke-test
 +  * Отсутствуют серьезные расхождения с планом тестирования
 +
 +Типовые нефункциональные требования:
 +
 +  * Реализация выполняется не только на компьютерах участников команды проекта