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

302 группа

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

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

Задачи

Домашняя работа 13. 17.05.18
Практическое занятие 13: Domain Driven Design, стратегические аспекты (презентация)
Домашняя работа 12. 10.05.18
Практическое занятие 12: Распределённые приложения, RabbitMQ (презентация)
Домашняя работа 11. 03.05.18
Практическое занятие 11: Распределённые приложения, gRPC (презентация)
  1. Instant Messenger

    Разработать сетевой чат с помощью gRPC

    • peer-to-peer, то есть соединение напрямую
    • Консольный пользовательский интерфейс
    • Отображение имени отправителя, даты и текста сообщения
    • Адрес peer-а и порт — параметры
    • Указание своего имени — параметром или в конфигурационном файле
    • Логирование
    • Нужны юнит-тесты
Домашняя работа 10. 26.04.18
Практическое занятие 10: Антипаттерны (презентация)
Домашняя работа 9. 19.04.18
Практическое занятие 9: Паттерны, детали реализации (презентация)
Домашняя работа 8. 12.04.18
Практическое занятие 8: Порождающие шаблоны (презентация)
Домашняя работа 7. 05.04.18
Практическое занятие 7. Архитектурная документация (презентация)
  1. Диздок

    Написать архитектурное описание Roguelike

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

    Дедлайн: 10:00 19.04.2018г

Домашняя работа 6. 29.03.18
Практическое занятие 6. Domain-Driven Design (презентация)
Практическое занятие 6. Domain-Driven Design (конспект)
  1. Архитектура Roguelike

    Построить модель предметной области и модель структуры консольной Roguelike RPG со следующими функциональными требованиями:

    • Персонаж игрока, способный перемещаться по карте, управляемый с клавиатуры
      • Непосредственно стрелками (или дополнительной цифровой клавиатурой), не вводом команды
    • Инвентарь персонажа, включающий элементы, влияющие на его характеристики, которые можно надеть и снять
    • Карта (автоматически сгенерированная или считываемая из файла, на ваше усмотрение)
    • Мобы, способные перемещаться по карте
    • Боевая система — движущиеся объекты, пытающиеся занять одну клетку карты, атакуют друг друга

    Что хочется:

    • Модель предметной области не обязательно делать отдельной диаграммой
    • Ожидаемый результат — диаграмма компонентов и диаграммы классов для каждого компонента
      • Достаточно подробная, чтобы её можно было отдать на реализацию неопытному программисту

    Дедлайн: 12.04.2018г.

  2. Roguelike

    Реализовать Roguelike RPG.

    • Консольная графика, с возможностью далее сделать графический тайловый интерфейс
    • Расширяемая и сопровождаемая архитектура
    • Логирование основных событий в игре
    • Юнит-тесты

    Дедлайн: 03.05.2018г.

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

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

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

    Дедлайн: 10:00 29.03.2018г.

  2. cd, ls

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

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

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

    Дедлайн: 10:00 19.04.2018г.

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

    Эта задача без дедлайна

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

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

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

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

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

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

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

© 2014-2018 HwProj