Практика по проектированию ПО

3 курс группа

Юрий Литвинов

Студент TODO №1 №2 №3 №4 №5 №6 №7 №9
236 CLI grep Учёт дефектов cd, ls Магазин книг Диздок Roguelike 1 Roguelike 2
Абрамов Дмитрий 8
Алехина Ольга 8
Алфёров Василий 8
Бартош Григорий 8
Василенко Елизавета 8
Егоров Владимир 8
Елисеева Мария 8
Ермилов Антон 8
Ерохина Алина 8
Казаков Дмитрий 8
Казначеев Дмитрий 8
Киракосян Александр 8
Кириленко Андрей 8
Купоросов Василий 7
Лупуляк Ольга 7
Мурашкина Наташа 8
Недиков Костя 8
Никифоровская Анна 8
Орлова Александра 8
Парадовский Юрий 8
Правилов Михаил 7
Смирдин Андрей 7
Соликов Павел 8
Тух Игорь 8
Фарутин Вадим 8
Федоров Александр 8
Федотов Александр 8
Шаркова Дарья 8
Швецова Анна 8
Ютман Михаил 8

Задачи

Домашняя работа 9. 13.03.19
Практическое занятие 9. Структурные паттерны, детали реализации (слайды)
  1. Roguelike 2

    Реализовать в рогалике поддержку мобов и боевую систему:

    • Несколько разных видов, различающихся характеристиками и поведением:
      • Агрессивное поведение, атакуют игрока, как только его видят
      • Пассивное поведение, просто стоят на месте
      • Трусливое поведение, стараются держаться на расстоянии от игрока
    • При попытке занять одну клетку существа атакуют друг друга (но не занимают клетку, пока одно из существ не уничтожено)

    • Необходимо использовать паттерн "Стратегия" для поддержки различных поведений

    • Используя паттерн "Декоратор", реализовать для игрока возможность конфузить мобов. Моб, находящийся под эффектом конфузии, перемещается, случайно выбирая соседнюю клетку. Эффект должен быть временным.

    Обновить диздок.

    Дедлайн: 17.04.2019, 10:00.

Домашняя работа 8. 06.03.19
Лекция 8. Domain-Driven Design, стратегические аспекты (презентация)
Практическое занятие 8. Примеры архитектур (презентация)
Домашняя работа 7. 27.02.19
Практическое занятие 7. Практика по проектированию (презентация)
  1. Roguelike 1

    В командах по 3 человека разработать первую версию Roguelike со следующими требованиями:

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

    • Нельзя пользоваться библиотеками для разработки Roguelike-игр и копипастить чужой код (смотреть в туториалы можно, заимствовать решения --- нет)

    • Обязательно указать при сдаче, с кем вы в команде

    Дедлайн: 14.03.2019, 10:00

Домашняя работа 6. 20.02.19
Практическое занятие 6. Архитектурная документация (презентация)
  1. Диздок

    Разделиться на команды по три человека и написать архитектурное описание Roguelike по требованиям из презентации

    • Общие сведения о системе
    • Architectural drivers
    • Роли и случаи использования
      • Описание типичного пользователя, как было в курсе по SE
    • Композиция (диаграмма компонентов)
    • Логическая структура (диаграмма классов)
    • Взаимодействия и состояния (диаграммы последовательностей и конечных автоматов)

    Обязательно указать при сдаче, с кем вы в команде

    Дедлайн: 02.03.2019, 23:59

Домашняя работа 5. 13.02.19
Практическое занятие 5. Практика по рисованию диаграмм (презентация)
  1. Магазин книг

    Выполнить анализ предметной области и построить модель в виде диаграммы классов для интернет-магазина книг по следующему ТЗ:

    Обратите внимание, что это должна быть модель предметной области, детали реализации наподобие способа хранения информации в базе данных не важны. Будет оцениваться точность следования ТЗ, соответствие модели сущностям предметной области (в том числе, неявным) и, естественно, пунктуальность в следовании синтаксису UML.

    Дедлайн: 27.02.2019, 10:00.

Домашняя работа 4. 06.02.19
Практическое занятие 4. Диаграммы классов UML (презентация)
Практическое занятие 4. Диаграммы классов UML (конспект)
  1. cd, ls

    Реализовать команды ls и cd на базе кода одногруппника

    • Обе команды могут принимать 0 или 1 аргумент
    • Не забывайте про юнит-тесты
    • Написать ревью на архитектуру оного одногруппника, указав, что оказалось удобным, а что неудобным при реализации, что можно было бы улучшить
    • Сделать fork на GitHub, выложить изменения туда и сделать пуллреквест в свой форк
      • Если вы не стесняетесь и “жертва” не против, можно и в исходный репозиторий

    Реализация, в которой надо сделать команды, определяется циклическим сдвигом на 3 вниз по списку на HwProj из сданных задач

    Дедлайн: 20.02.2019, 10:00.

Домашняя работа 3. 30.01.19
Практическое занятие 3. Объектно-ориентированное проектирование (презентация)
Практическое занятие 3. Объектно-ориентированное проектирование (конспект)
  1. Учёт дефектов
    • Проанализировать запрос https://goo.gl/MiyH8c
    • Нарисовать диаграмму IDEF0 (контекстную и первого уровня) бизнес-процесса завода
    • Наприсовать BPMN-диаграмму бизнес-процесса завода
    • Нарисовать диаграмму случаев использования создаваемого приложения

    Дедлайн: 14.02.2019, 10:00

Домашняя работа 2. 23.01.19
Практическое занятие 2. Пример архитектуры — Bash (презентация)
Практическое занятие 2. Пример архитектуры — Bash (конспект)
Таблица с баллами за домашки
  1. grep
    • На базе своей реализации CLI реализовать команду grep,
      • поддерживающую ключи -i (нечувствительность к регистру), -w (поиск только слов целиком), -A n (распечатать n строк после строки с совпадением);
      • поддерживающую регулярные выражения в строке поиска;
      • использующую одну из библиотек для разбора аргументов командной строки.

    Ожидается обоснование выбора библиотеки для работы с аргументами --- какие были рассмотрены, почему выбрана именно эта.

    Сдавать как новый пуллреквест из новой ветки на базе предыдущей.

    Дедлайн: 13.02.2019, 10:00

Домашняя работа 1. 16.01.19
Практическое занятие 1. Введение (презентация)
Практическое занятие 1. Введение (конспект)
  1. CLI

    Разработать архитектуру и реализовать прототип интерпретатора командной строки из презентации.

    Ожидается:
    - архитектурное описание (диаграмма с классами и их взаимосвязями, немного текста, описывающего детали реализации)
    - работающий интерпретатор
    - поддержка команд из презентации
    - работающие кавычки и переменные окружения
    - юнит-тесты, комментарии в коде
    Всё это --- в пуллреквест на гитхабе в свой репозиторий из отдельной ветки.

    Дедлайн: 06.02.2019, 10:00

© 2014-2019 HwProj