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

x04-2017 (практика по SD) группа

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

Студент TODO №1 №2 №3 №4 №5 №6 №8
13 CLI grep HwProj Учёт дефектов Магазин книг cd, ls Roguelike Диздок
Виноградова Анастасия
Голышев Роман
Горячева Валерия
Гостевский Дмитрий
Егоров Антон
Зубаков Алексей
Калинин Владислав
Кектеева Ангира 8
Колесниченко Лариса
Кривоносова Кристина
Кузиванов Николай
Кузнецов Александр
Лапко Данила
Макеев Владимир 5
Мурычева Наталья
Никулин Даниил
Новожилов Дмитрий
Орищенко Александра
Полевиков Евгений
Стребежев Игорь
Халанский Дмитрий
Чернышев Ярослав
Шеметова Екатерина

Задачи

Домашняя работа 12. 25.05.18
Практическое занятие 12. Domain-Driven Design, стратегические аспекты (презентация)
Домашняя работа 11. 18.05.18
Практическое занятие 11. gRPC (презентация)
Домашняя работа 10. 11.05.18
Практическое занятие 10. Антипаттерны (презентация)
Домашняя работа 9. 27.04.18
Практическое занятие 9. Паттерны, детали реализации (презентация)
Домашняя работа 8. 20.04.18
Практическое занятие 8. Архитектурная документация (презентация)
  1. Диздок

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

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

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

Домашняя работа 7. 13.04.18
Практическое занятие 7. Практика по рисованию диаграмм (презентация)
Домашняя работа 6. 13.04.18
Практическое занятие 6. Domain-Driven Design (презентация)
Практическое занятие 6. Domain-Driven Design (конспект)
  1. Roguelike

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

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

    Что хочется:

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

    Дедлайн: 11.05.2018г.

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

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

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

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

  2. cd, ls

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

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

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

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

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

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

Домашняя работа 3. 16.03.18
Практическое занятие 3. Проектирование UI, логирование (презентация)
  1. HwProj

    Спроектировать интерфейс приложения HwProj таким, каким бы он должен быть в идеале (со стороны студента и пофантазировать на тему функциональности для преподавателя). Назначение приложения должно быть таким же, как HwProj, но исполнение --- на ваше усмотрение (например, это может быть мобильное приложение, настольное приложение или веб-приложение), функциональность тоже может отличаться (например, можно добавить элементы геймификации, типа уровней опыта пользователей, повышающихся за сданные задачи).

    Что нужно сделать:

    • Описать поток экранов HwProj в виде UML-диаграммы активностей
    • Сделать набор макетов всех экранов приложения в каком-либо из инструментов создания wireframe-макетов

    Результаты выложить на гитхаб и/или приаттачить ссылку на проект в каком-либо из онлайн-тулов

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

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

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

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

    Эта задача без дедлайна (надо сдать до зачёта).

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

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

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

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

© 2014-2018 HwProj