Software Design, 5 курс, 2 семестр, 2016/17 — различия между версиями

Материал из SEWiki
Перейти к: навигация, поиск
(Лекции)
(Лекции)
 
(не показано 11 промежуточных версий 2 участников)
Строка 19: Строка 19:
 
[https://docs.google.com/presentation/d/1sRFtRrr8DQGeoe0FywnfT8BTLwY42AIHOMH7EXq1VyE Презентация]
 
[https://docs.google.com/presentation/d/1sRFtRrr8DQGeoe0FywnfT8BTLwY42AIHOMH7EXq1VyE Презентация]
 
[https://docs.google.com/document/d/1-pE70tq4-iohgN-gjnA-YOFCqx9PTEuLMXMjTnVpLFk Конспект]
 
[https://docs.google.com/document/d/1-pE70tq4-iohgN-gjnA-YOFCqx9PTEuLMXMjTnVpLFk Конспект]
 +
 +
4. Модели в различных областях человеческой деятельности. Роль моделирования в процессе разработки. UML и его назначение. Функциональные требования и диаграммы использования. Система, действующие лица и варианты использования. Включение и расширение. Диаграммы активностей.
 +
 +
[https://docs.google.com/presentation/d/1ReQm4_lzR7qYdJyfMePZRJTIGw4EA6U_W_Be41ZyDNI/edit?usp=sharing Презентация]
 +
[https://docs.google.com/document/d/1IuIJdlDCBoHlzl6VZW4Ny9sd10JbQEn-ZZys3tr7dSM/edit?usp=sharing Конспект]
 +
 +
5. Диаграммы классов и моделирование предметной области. Моделирование взаимодействия объектов. Способы моделирования свойств. Ассоциации,  обобщение, зависимости. Диаграммы компонент и диаграммы размещения. Моделирование данных: ER, ORM, UML диаграммы.
 +
 +
[https://docs.google.com/presentation/d/1wrcEkjgdCmEler6MjLinPPsmkeMErmWaVZn8VzTJDHI Презентация]
 +
[https://docs.google.com/document/d/1BYzEuFvbh8ZD9iOgY4Xu7eN6g_pQd7y-3iAnOS92P34 Конспект]
 +
 +
6. Диаграммы состояний и их применение для описания поведения реактивных систем. Диаграммы последовательности и взаимодействия, коммуникационные диаграммы. Моделирование бизнес-процессов: IDEF0 и BPMN.
 +
 +
[https://docs.google.com/presentation/d/1mslgTtaA9dqZUBSW-9Bkz1CnzlgH5IKpnONjcXpvlYc Презентация]
 +
[https://docs.google.com/document/d/15kUgoiNWK7-TwbDpubvcbgvxSr_q5odaFsBJcf-GxyQ Конспект]
 +
 +
7. Понятие архитектурного шаблона и стиля. Многоуровневая архитектура. Pipes and filters. Интерпретатор. Blackboard. Publish-Subscribe. Событийно-ориентированные системы.
 +
 +
[https://docs.google.com/presentation/d/1BvyEAxbyEZgukICh8SYmlU1nUIOHU8B_YFmvXgOk6Eo Презентация]
 +
[https://docs.google.com/document/d/1qqu49nNZMVPo5zIFeTlGjk5NJrtOXePKTSFKpfI5iyw Конспект]
 +
 +
8. Структурные шаблоны. Рекурсивная композиция, использование полиморфизма и композиции при едином базовом интерфейсе. Шаблоны Composite и Decorator. Выделение алгоритма в объект, шаблон Strategy. Сокрытие реализации, шаблоны Wrapper и Adapter. Проектирование удаленного и отложенного выполнения. Шаблон Proxy. Шаблон Facade.
 +
 +
[https://docs.google.com/presentation/d/15PA40ysoUWKDOwYHTwUQEn2i12TD94eXVrqDzv3JlqY Презентация]
 +
[https://docs.google.com/document/d/1msdVwKhjTxVZgbgbKYM2TD9yhlsG0dmhnn3gmFQ_qEA Конспект]
 +
 +
9. Порождающие шаблоны. “Ленивая” инициализация, шаблон Singleton. Клонирование объектов, шаблон Prototype. Фабрика, шаблоны Abstract Factory и Factory Method. Поэтапное конструирование объекта, шаблон Builder.
 +
 +
[https://docs.google.com/presentation/d/1asKGolZHVxg6V2n1eUYPna_uc9Lsm5JadzceR6qrAiA Презентация]
 +
[https://docs.google.com/document/d/1g3jQLY8eQeJkb_mjfbQ-c3R1_-kTcWaqcbTPOIRbDUI Конспект]
 +
 +
10. Поведенческие шаблоны. Шаблон “Chain of Responsibility”. Шаблон “Context”. Архитектуры, управляемые событиями. Шаблон “Listener”. Отложенное выполнение. Шаблон “Command”. Инкапсуляция поведения. Шаблон “Strategy”. Подходы к реализации поведения, основанного на модели конечного автомата. Шаблон “State”. Шаблон “Visitor”.
 +
 +
[https://docs.google.com/presentation/d/1we6EPfcVWsdkchMWHxsNi07bT26mNMvUo71CUsE70BU Презентация]
 +
[https://docs.google.com/document/d/1fFV1-G2ukCL2XGfKk9ZoiJ_DsDWKGcWuXv57zXglC1Y Конспект]
 +
 +
11. Рефакторинг: что, когда и зачем. Понятие и основные code smells. Примеры рефакторингов.
 +
 +
[https://docs.google.com/presentation/d/1CeY2XHD3N6cZd4DCrrBhQQn6MhD1yVumL5FtoaNL5eA Презентация]
 +
[https://docs.google.com/document/d/166pC8d7QDeppLs0TzSIgjf_Ky3jN0dxvTI-2d5ZACzc Конспект]
 +
 +
12. Задача сетевого взаимодействия. Архитектурные элементы распределённых систем: основные сущности, виды взаимодействия, роли и обязанности, варианты размещения. Основные архитектурные шаблоны (Layered Architecture, Tiered Architecture, Тонкий клиент). Межпроцессное сетевое взаимодействие: семиуровневая модель OSI, модель TCP/IP, сокеты. Взаимодействие через удалённые вызовы (протоколы запрос-ответ, RPC, RMI). Web-сервисы.
 +
 +
[https://docs.google.com/presentation/d/1Sml8ZbuXjdVgRIG70ZogSf_JqnGbJ0EnT68p0-hojyk Презентация]
 +
[https://docs.google.com/document/d/1K_gyM8fen4-d_LkWepYP0z2zcMU1LNXwN3vTWcYD8nk Конспект]
 +
 +
13. Архитектурный стиль REST. Микросервисная архитектура. Примеры Peer-to-Peer архитектур (Napster, Gnutella, Skype, BitTorrent). Репликация данных: пассивная и активная модель. Критерии корректности: линеаризуемость и последовательная согласованность. Алгоритмы голосования: Ring-based algorithm, Bully algorithm. Проблемы соглашения в синхронных системах: задача консенсуса, задача о византийских генералах.
 +
 +
[https://docs.google.com/presentation/d/1Bid7eyKaZknPmPycVOniPiyUd2qFJ10BlTd1WEcLJfs Презентация]
 +
[https://docs.google.com/document/d/1OEplQyXcD9kyQoZ6hnU5B2ZGsLHSC2ticiPKuxJ8ZRA Конспект]
 +
 +
 +
[https://docs.google.com/document/d/1DSHEWHwlfvuva91DmJ_MwA6mNKUVzGV2tVt_Pypfavc Вопросы к экзамену]
 +
 +
[https://docs.google.com/document/d/1n2AT_3s6hNjb9UKzd-RF4-LjjrMkdYEu6fChDRi8qVI Рекомендуемая литература]
  
 
== Практика ==
 
== Практика ==
 +
Страница курса на HwProj: [http://hwproj.me/courses/21]

Текущая версия на 22:30, 8 июня 2017

Лектор — Тимофей Брыксин (timofey.bryksin @ gmail . com)

Практика — Юрий Литвинов

Лекции

1. Программа и программное обеспечение (ПО). Разработка ПО и Строительство. Понятие архитектуры. Роль проектирования и архитектора в производстве ПО. Функции архитектора. Архитектура и жизненный цикл ПО.

Презентация Конспект

2. Декомпозиция. Базовые принципы проектирования. Восходящее и нисходящее проектирование. Объектно-ориентированный подход. Состояние, поведение и идентичность объекта. Принципы объектно-ориентированного проектирования. Наследование vs. композиция. SOLID. Закон Деметры.

Презентация Конспект

3. Проектирование GUI. Понятие User Experience. User-centered design, Activity-centred design. Персонажи и сценарии. Подходы к прототипированию пользовательских интерфейсов: storytelling, бумажные прототипы, bodystorming, макеты, дизайн-макеты, интерактивные прототипы. Подходы к исследованию удобства использования продукта, юзабилити-исследования.

Презентация Конспект

4. Модели в различных областях человеческой деятельности. Роль моделирования в процессе разработки. UML и его назначение. Функциональные требования и диаграммы использования. Система, действующие лица и варианты использования. Включение и расширение. Диаграммы активностей.

Презентация Конспект

5. Диаграммы классов и моделирование предметной области. Моделирование взаимодействия объектов. Способы моделирования свойств. Ассоциации, обобщение, зависимости. Диаграммы компонент и диаграммы размещения. Моделирование данных: ER, ORM, UML диаграммы.

Презентация Конспект

6. Диаграммы состояний и их применение для описания поведения реактивных систем. Диаграммы последовательности и взаимодействия, коммуникационные диаграммы. Моделирование бизнес-процессов: IDEF0 и BPMN.

Презентация Конспект

7. Понятие архитектурного шаблона и стиля. Многоуровневая архитектура. Pipes and filters. Интерпретатор. Blackboard. Publish-Subscribe. Событийно-ориентированные системы.

Презентация Конспект

8. Структурные шаблоны. Рекурсивная композиция, использование полиморфизма и композиции при едином базовом интерфейсе. Шаблоны Composite и Decorator. Выделение алгоритма в объект, шаблон Strategy. Сокрытие реализации, шаблоны Wrapper и Adapter. Проектирование удаленного и отложенного выполнения. Шаблон Proxy. Шаблон Facade.

Презентация Конспект

9. Порождающие шаблоны. “Ленивая” инициализация, шаблон Singleton. Клонирование объектов, шаблон Prototype. Фабрика, шаблоны Abstract Factory и Factory Method. Поэтапное конструирование объекта, шаблон Builder.

Презентация Конспект

10. Поведенческие шаблоны. Шаблон “Chain of Responsibility”. Шаблон “Context”. Архитектуры, управляемые событиями. Шаблон “Listener”. Отложенное выполнение. Шаблон “Command”. Инкапсуляция поведения. Шаблон “Strategy”. Подходы к реализации поведения, основанного на модели конечного автомата. Шаблон “State”. Шаблон “Visitor”.

Презентация Конспект

11. Рефакторинг: что, когда и зачем. Понятие и основные code smells. Примеры рефакторингов.

Презентация Конспект

12. Задача сетевого взаимодействия. Архитектурные элементы распределённых систем: основные сущности, виды взаимодействия, роли и обязанности, варианты размещения. Основные архитектурные шаблоны (Layered Architecture, Tiered Architecture, Тонкий клиент). Межпроцессное сетевое взаимодействие: семиуровневая модель OSI, модель TCP/IP, сокеты. Взаимодействие через удалённые вызовы (протоколы запрос-ответ, RPC, RMI). Web-сервисы.

Презентация Конспект

13. Архитектурный стиль REST. Микросервисная архитектура. Примеры Peer-to-Peer архитектур (Napster, Gnutella, Skype, BitTorrent). Репликация данных: пассивная и активная модель. Критерии корректности: линеаризуемость и последовательная согласованность. Алгоритмы голосования: Ring-based algorithm, Bully algorithm. Проблемы соглашения в синхронных системах: задача консенсуса, задача о византийских генералах.

Презентация Конспект


Вопросы к экзамену

Рекомендуемая литература

Практика

Страница курса на HwProj: [1]