Software Design 5SE весна 2018 — различия между версиями

Материал из SEWiki
Перейти к: навигация, поиск
(Новая страница: « == Лекции == Преподаватель: Брыксин Тимофей Александрович ('''timofey.bryksin@gmail.com''') == Практика Л…»)
 
(Лекции)
 
(не показано 6 промежуточных версий 2 участников)
Строка 2: Строка 2:
 
== Лекции ==
 
== Лекции ==
 
Преподаватель: Брыксин Тимофей Александрович ('''timofey.bryksin@gmail.com''')
 
Преподаватель: Брыксин Тимофей Александрович ('''timofey.bryksin@gmail.com''')
 +
 +
1. Программа и программное обеспечение (ПО). Разработка ПО и Строительство. Понятие архитектуры. Роль проектирования и архитектора в производстве ПО. Функции архитектора. Архитектура и жизненный цикл ПО.
 +
 +
[https://docs.google.com/presentation/d/1s48LnxKaCAi67r6hc67PJmUmYjSlaLyAGJ6jK4kJ6go/edit?usp=sharing Презентация]
 +
[https://docs.google.com/document/d/1vIsjpK50DLRaVoNAKOT9Ku6lJfATtPO8KKHucHB1oF4/edit?usp=sharing Конспект]
 +
 +
2. Декомпозиция. Базовые принципы проектирования. Восходящее и нисходящее проектирование. Объектно-ориентированный подход. Состояние, поведение и идентичность объекта. Принципы объектно-ориентированного проектирования. Наследование vs. композиция. SOLID. Закон Деметры.
 +
 +
[https://docs.google.com/presentation/d/1OYBdw8sHfg3LdTmRk-OrmNlN7UBBLuzJNhEO5FJ33nI/edit?usp=sharing Презентация]
 +
[https://docs.google.com/document/d/1yS6EzgDN4ZQYchBdZSr44d_MWQxqsvRtCEwFU8yZXdQ/edit?usp=sharing Конспект]
 +
 +
3. Проектирование GUI. Понятие User Experience. User-centered design, Activity-centred design. Персонажи и сценарии. Подходы к прототипированию пользовательских интерфейсов: storytelling, бумажные прототипы, bodystorming, макеты, дизайн-макеты, интерактивные прототипы. Подходы к исследованию удобства использования продукта, юзабилити-исследования.
 +
 +
[https://drive.google.com/open?id=1ep4yA49A7DWeTkDhXI-C_lLBGHzld_-JZJNVN9yyaB8 Презентация]
 +
[https://drive.google.com/open?id=1VsxIzI8CGPSdWt-WFei5f516lP-1gVbPnOXVMXap51A Конспект]
 +
 +
4. Модели в различных областях человеческой деятельности. Роль моделирования в процессе разработки. UML и его назначение. Функциональные требования и диаграммы использования. Система, действующие лица и варианты использования. Включение и расширение. Диаграммы активностей. Моделирование бизнес-процессов: диаграммы BPMN и IDEF0.
 +
 +
[https://docs.google.com/presentation/d/1sOURB5E9DPv9rbjZH2AwzmEABHPcGOraj49kaaNRC_Y/edit?usp=sharing Презентация]
 +
[https://docs.google.com/document/d/1qMsIKynkXfdGjIiQdwUixlOK8faGbXCJq_KmdDqcIw4/edit?usp=sharing Конспект]
 +
 +
5. Диаграммы классов и моделирование предметной области. Моделирование взаимодействия объектов. Способы моделирования свойств. Ассоциации, обобщение, зависимости. Диаграммы компонент и диаграммы размещения. Моделирование данных: ER, ORM, UML диаграммы.
 +
 +
[https://docs.google.com/presentation/d/19V-yen4DcqFHLcoAGqIF94JsfbtWSzWeSuLnZh-l3Qw/edit?usp=sharing Презентация]
 +
[https://docs.google.com/document/d/1kmQK4tZ6PAhVXCQu02DzRwgw_ZtTSFAA2KbjryMdkh4/edit?usp=sharing Конспект]
 +
 +
6. Диаграммы состояний и их применение для описания поведения реактивных систем. Диаграммы последовательности и взаимодействия, коммуникационные диаграммы.
 +
 +
[https://docs.google.com/presentation/d/1BBRBe7BiKPSQ_w9C8AxDX_fiHuj5shF67N1pr3FWh2Y/edit?usp=sharing Презентация]
 +
[https://docs.google.com/document/d/1pykRuceM_NQlnHqfJCErfp_YKc0LERtn6Zsy8X-cwBo/edit?usp=sharing Конспект]
 +
 +
7. Понятие архитектурного шаблона и стиля. Многоуровневая архитектура. Pipes and filters. Интерпретатор. Blackboard. Publish-Subscribe. Событийно-ориентированные системы.
 +
 +
[https://docs.google.com/presentation/d/1a0400Q9nUNipkfz4PgFhfizzsiDtGsk37Ry8aAAesTY/edit?usp=sharing Презентация]
 +
[https://docs.google.com/document/d/1KuGALL0KfaHohClMAfzzxPehV4scPYCdVVxgF0mjUkM/edit?usp=sharing Конспект]
 +
 +
8. Структурные шаблоны. Рекурсивная композиция, использование полиморфизма и композиции при едином базовом интерфейсе. Шаблоны Composite и Decorator. Выделение алгоритма в объект, шаблон Strategy. Сокрытие реализации, шаблоны Wrapper и Adapter. Проектирование удаленного и отложенного выполнения. Шаблон Proxy. Шаблон Facade.
 +
 +
[https://docs.google.com/presentation/d/18OIHCth5ND5_IuJXt2G4bAxd7Ciz8vnW8tUrdNWbSRU/edit?usp=sharing Презентация]
 +
[https://docs.google.com/document/d/1sXJfwBHqLsyXm8ljvIbwoe9oFTHPbidrVhnwKANU2rk/edit?usp=sharing Конспект]
 +
 +
9. Порождающие шаблоны. “Ленивая” инициализация, шаблон Singleton. Клонирование объектов, шаблон Prototype. Фабрика, шаблоны Abstract Factory и Factory Method. Поэтапное конструирование объекта, шаблон Builder.
 +
 +
[https://docs.google.com/presentation/d/1dLN7Hf-66kuAkm7Q1F3WtQfU-GO4KvV5nTc1CaoyuT4/edit?usp=sharing Презентация]
 +
[https://docs.google.com/document/d/148fqowOMV79uwT8SVKJDLhmz9eUWI51eQxPXLCWrLbg/edit?usp=sharing Конспект]
 +
 +
10. Поведенческие шаблоны. Шаблон “Chain of Responsibility”. Шаблон “Context”. Архитектуры, управляемые событиями. Шаблон “Listener”. Отложенное выполнение. Шаблон “Command”. Инкапсуляция поведения. Шаблон “Strategy”. Подходы к реализации поведения, основанного на модели конечного автомата. Шаблон “State”. Шаблон “Visitor”.
 +
 +
[https://docs.google.com/presentation/d/11l_absn4W0F8jKStqUmm-oJrUcR29zb8c8o8rmgS6p0/edit?usp=sharing Презентация]
 +
[https://docs.google.com/document/d/1-Qcp-ASBmxBnSPJ2YTvoXkKizFAnUXpdcuQgbnIDirg/edit?usp=sharing Конспект]
 +
 +
11. Задача сетевого взаимодействия. Архитектурные элементы распределённых систем: основные сущности, виды взаимодействия, роли и обязанности, варианты размещения. Основные архитектурные шаблоны (Layered Architecture, Tiered Architecture, Тонкий клиент). Межпроцессное сетевое взаимодействие: семиуровневая модель OSI, модель TCP/IP, сокеты. Взаимодействие через удалённые вызовы (протоколы запрос-ответ, RPC, RMI). Web-сервисы.
 +
 +
[https://docs.google.com/presentation/d/1vgfSH3AIA0QNVoCVmg9dPmiYVEN3YFjWrQG6Ik_MzNE/edit?usp=sharing Презентация]
 +
[https://docs.google.com/document/d/1BYpwc0mTaHsF-HM-QV4CUtkaNM3vAftpGVOxluS8OxI/edit?usp=sharing Конспект]
 +
 +
12. Архитектурный стиль REST. Микросервисная архитектура. Примеры Peer-to-Peer архитектур (Napster, Gnutella, Skype, BitTorrent/DHT).
 +
 +
[https://docs.google.com/presentation/d/1w1tv5TxTfkQPehmmyLqjhuvt2FXnYwerDWKVWs3Lhk0/edit?usp=sharing Презентация]
 +
[https://docs.google.com/document/d/1yv0q0XRmzmw-yz1io7InmJVqruQSSMHL2r4AKomyQW0/edit?usp=sharing Конспект]
 +
 +
13. Репликация данных: пассивная и активная модель. Критерии корректности: линеаризуемость и последовательная согласованность. Алгоритмы голосования: Ring-based algorithm, Bully algorithm. Проблемы соглашения в синхронных системах: задача консенсуса, задача о византийских генералах. Алгоритм RAFT. CAP-теорема. ACID и BASE.
 +
 +
[https://docs.google.com/presentation/d/18deYI5XW5g6iIOrFl88gjbWd27XAgGXD-RZ4g1G7Kak/edit?usp=sharing Презентация]
 +
[https://docs.google.com/document/d/1kKdejlGtyf7sS8kDyAwUqo0Ra3aulSSawf63QQUKbB0/edit?usp=sharing Конспект]
 +
 +
14. Case study: инфраструктура Google. Коммуникационный слой. Распределённая файловая система Google File System: структура данных, поддержка целостности, механизмы репликации. Распределённый сервис блокировок Chubby: архитектура, задача консенсуса, применимость. СУБД BigTable: особенности структуры таблиц, механизм хранения в GFS, средства мониторинга. Модель вычислений MapReduce.
 +
 +
[https://docs.google.com/presentation/d/1pL_6aW4JFAa5dgZXCltprhfvWwX9kG1f5YzW_xzrBrQ/edit?usp=sharing Презентация]
 +
[https://docs.google.com/document/d/1CI6duHoVKw8PvxpDYTL-ArMktWd2wFnFW1nop3goLOo/edit?usp=sharing Конспект]
 +
 +
 +
 +
[https://docs.google.com/document/d/1dYHXxEVNmK_y_HG3vyoTqyEWCZKy3Y63USQnq_eXiIM/edit?usp=sharing Вопросы к экзамену]
 +
 +
[https://docs.google.com/document/d/1n2AT_3s6hNjb9UKzd-RF4-LjjrMkdYEu6fChDRi8qVI/edit?usp=sharing Рекомендуемая литература]
  
 
== Практика Литвинов ==
 
== Практика Литвинов ==
  
 
Преподаватель: Литвинов Юрий ('''Yurii.Litvinov@gmail.com''')
 
Преподаватель: Литвинов Юрий ('''Yurii.Litvinov@gmail.com''')
 +
 +
[http://hwproj.me/courses/33 Курс на hwproj]

Текущая версия на 08:58, 25 мая 2018

Лекции

Преподаватель: Брыксин Тимофей Александрович (timofey.bryksin@gmail.com)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

12. Архитектурный стиль REST. Микросервисная архитектура. Примеры Peer-to-Peer архитектур (Napster, Gnutella, Skype, BitTorrent/DHT).

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

13. Репликация данных: пассивная и активная модель. Критерии корректности: линеаризуемость и последовательная согласованность. Алгоритмы голосования: Ring-based algorithm, Bully algorithm. Проблемы соглашения в синхронных системах: задача консенсуса, задача о византийских генералах. Алгоритм RAFT. CAP-теорема. ACID и BASE.

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

14. Case study: инфраструктура Google. Коммуникационный слой. Распределённая файловая система Google File System: структура данных, поддержка целостности, механизмы репликации. Распределённый сервис блокировок Chubby: архитектура, задача консенсуса, применимость. СУБД BigTable: особенности структуры таблиц, механизм хранения в GFS, средства мониторинга. Модель вычислений MapReduce.

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


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

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

Практика Литвинов

Преподаватель: Литвинов Юрий (Yurii.Litvinov@gmail.com)

Курс на hwproj