Software Design

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

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

Студент TODO №1 №2 №3 №4 №5 №6 №7 №8 №11
49 CLI grep tracker cd, ls Use Case, Activity Реверси Структура Магазин книг Последовательности HwProj Instant Messenger Pattern Challenge
Stashevsky Leonid
Абрамов Иван 1
Акимов Евгений 10
Бибаев Виталий
Бочаров Федор
Васильев Роман
Власов Святослав 11
Гарифуллин Шамиль
Геллер Марк
Голованов Сергей 1
Горбунов Егор
Дмитрий Байдин
Жаворонков Эдгар
Коноплев Денис 12
Курбанов Рауф
Мордберг Антон
Пилюгин Кирилл
Поляков Семен 1
Саввинов Дмитрий
Серебро Андрей
Степанов Алексей
Толстоганов Иван 12
Чаркин Костя
Шугаепов Ильнур 1
Ялышева Наталья

Задачи

Домашняя работа 15. 14.12.16
Практическое занятие 15. Разбор домашних работ (презентация)
Домашняя работа 14. 07.12.16
Практическое занятие 14. Распределённые приложения - 2 (презентация)
Домашняя работа 13. 30.11.16
Практическое занятие 13. Распределённые приложения (презентация)
Домашняя работа 12. 23.11.16
Лекция 12. Шаблоны интеграции приложений (презентация)
Лекция 12. Шаблоны интеграции приложений (конспект)
Практическое занятие 12. Design Documents (презентация)
Домашняя работа 11. 16.11.16
Практическое занятие 11. Антипаттерны, продолжение (презентация)
Лекция 11. Поведенческие шаблоны (презентация)
Лекция 11. Поведенческие шаблоны (конспект)
  1. Pattern Challenge
    • Зарефакторить CLI с учётом полученных на курсе знаний
    • Применить как можно больше паттернов проектирования (и задокументировать их применение), но так, чтобы это оставалось разумным
    • Применившим больше всех – прощается одна домашка
Домашняя работа 10. 09.11.16
Лекция 10. Порождающие шаблоны (презентация)
Лекция 10. Порождающие шаблоны (конспект)
Практическое занятие 10. Антипаттерны (презентация)
Домашняя работа 9. 02.11.16
Практическое занятие 9. Структурные шаблоны, детали реализации (презентация)
Лекция 9. Структурные шаблоны (презентация)
Лекция 9. Структурные шаблоны (конспект)
Домашняя работа 8. 26.10.16
Лекция 8. Архитектурные шаблоны и стили (конспект)
Лекция 8: Архитектурные шаблоны и стили (презентация)
Практическое занятие 8. Практика по архитектуре (презентация)
  1. Instant Messenger

    Разработать сетевой чат (наподобие Jabber)

    • peer-to-peer, то есть соединение напрямую
    • Пользовательский интерфейс
      • Отображение и отправка сообщений
      • Указание адреса сервера
      • Настройки “аккаунта” (указание своего имени)
    • Архитектура
      • Логирование
      • Лёгкость портирования на другие платформы (desktop/android)
      • Тестирование (заглушки для серверного взаимодействия)
      • Архитектурная документация (сколько и какую считаете нужной)
    • Совместимость
      • Надо сделать так, чтобы можно было общаться с клиентом ещё хоть одного одногруппника
Домашняя работа 7. 19.10.16
Практическое занятие 7. Проектирование пользовательских интерфейсов (презентация)
Лекция 7. Проектирование пользовательских интерфейсов (презентация)
Лекция 7. Проектирование пользовательских интерфейсов (конспект)
  1. HwProj
    • Описать персонажей – пользователей HwProj
    • Описать информационную структуру приложения
    • Сделать набор макетов для ключевых экранов

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

Домашняя работа 6. 12.10.16
Лекция 6. Проектирование и моделирование поведения (конспект)
Лекция 6. Проектирование и моделирование поведения (презентация)
Требования на интернет-магазин книг
Практическое занятие 6. Моделирование структуры и поведения (презентация)
  1. Магазин книг

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

  2. Последовательности

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

Домашняя работа 5. 05.10.16
Практическое занятие 5. Моделирование структуры (презентация)
Лекция 5: Проектирование и моделирование структуры (презентация)
Лекция 5: Проектирование и моделирование структуры (конспект)
  1. Реверси

    Нарисовать диаграмму классов для игры “Реверси”:

    • Пользовательский интерфейс
    • Возможность играть против человека (hot seat) или компьютера
    • Несколько видов компьютерных оппонентов
      • Случайные ходы
      • Метод поиска по дереву ходов с разными настройками глубины поиска
      • Может быть несколько разных наборов эвристик для оценки позиции
        • В реверси, например, стратегически важны угловые клетки, фишки там “неубиваемы”
        • Края доски в среднем выгоднее центра
    • Возможность алгоритмов играть друг против друга
  2. Структура

    Нарисовать диаграммы компонентов и классов для своего проекта

Домашняя работа 4. 28.09.16
Практическое занятие 4. Проектирование и модели (презентация)
Лекция 4. Проектирование и модели (презентация)
Лекция 4. Проектирование и модели (конспект)
  1. Use Case, Activity
    • Сделать и выложить презентацию по какому-либо из своих текущих или бывших проектов (изложить суть работы)
    • Нарисовать для этого проекта диаграмму случаев использования. Не пугаться, если там будет одна роль и один случай использования, вы ведь не хотите делать гигантскую информационную систему в качестве содержательного примера.
    • Нарисовать для этого проекта одну или несколько диаграмм активностей (для процесса в целом или для какого-нибудь из сценариев использования, либо для используемого в проекте алгоритма).

    Презентацию и модель выложить в новую ветку в гит и сделать пуллреквест. Модель --- в формате сохранения Visual Paradigm (.vpp).

Домашняя работа 3. 23.09.16
Практическое занятие 3. Объектно-ориентированное проектирование (презентация)
Лекция 3. Проектирование и ООП (презентация)
Лекция 3. Проектирование и ООП (конспект)
  1. cd, ls
    • Реализовать команды ls и cd на базе кода одногруппника
    • Написать ревью на архитектуру оного одногруппника, указав, что оказалось удобным, а что неудобным при реализации
    • Сделать fork проекта одногруппника на GitHub, выложить изменения туда и сделать пуллреквест в исходный репозиторий
    • Посчитать свой порядковый номер в списке на HwProj, поделить на число проектов, которые хотя бы частично приняты, использовать остаток как порядковый номер проекта, в котором Вы должны поддержать новые команды
      • Нумерация начинается с нуля
      • Если это оказался Ваш проект, взять следующий
Домашняя работа 2. 15.09.16
Лекция 2. Проектирование и декомпозиция (презентация)
Лекция 2. Проектирование и декомпозиция (конспект)
Практическое занятие 2. Введение, часть вторая (презентация)
  1. grep
    • На базе своей реализации CLI реализовать команду grep,
      • поддерживающую ключи -i (нечувствительность к регистру), -w (поиск только слов целиком), -A n (распечатать n строк после строки с совпадением);
      • поддерживающую регулярные выражения в строке поиска;
      • использующую одну из библиотек для разбора аргументов командной строки.

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

  2. tracker

    Завести проект для CLI на https://www.pivotaltracker.com, записать туда подзадачи, добавить ссылку на проект в README.md репозитория с CLI.

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

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

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

© 2014-2018 HwProj