-
Notifications
You must be signed in to change notification settings - Fork 17
Home
Общий план занятий и 💁♀️ легенда обозначений
Лекции 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
-
Лекции 1-2. Общая характеристика процесса проектирования.
-
Лекция 1. Объект и предмет проектирования.
- Понятие информационной системы. Типологии информационных систем. (Волков Алексей)
- Понятия информации, данных, информационной технологии. Значение людей в информационных технологиях. (Шульга Николай)
- Понятия программных средств, общего, специального, прикладного и системного программного обеспечения. (Иванов Артём)
- Стадии создания автоматизированных систем и стадии разработки программ. (Сомова Елизавета)
- Понятия качества, объекта и элемента. Основные характеристики качества. (Айтжанов Алишер)
- Понятие процесса. Системная и программная инженерия. Процессы в контексте системы и специальные процессы программных средств. (Куличкина Юлия)
- Целеполагание в анализе, проектировании, проектах. (Смирнов Глеб)
-
Лекция 2. Методологии проектирования.
- Системный подход и системный анализ. Понятия субъекта и объекта. (Кадосин Антон)
- Понятия синергии и эмерждентности. Самоорганизация в организационно-технических системах. (Бороздин Никита)
- Понятие модели. Цели и задачи моделирования. (Медведев Илья)
- Структурно-функциональный и объектно-ориентированный подходы. (Коршунов Сергей)
- Понятия алгоритма, программы, логического и физического объекта. (Николаев Александр)
- Понятие вычислительной сложности алгоритма. Связанные показатели качества программных средств. (Максимова Ольга)
-
-
Лекции 3-4. Проектная документация на информационные системы. 👣
-
Лекция 3. Стадии, документы, виды обеспечения автоматизированных систем.
- Виды документов на автоматизированные системы. Требования к содержанию и оформлению. (Дындин Никита)
- Понятие автоматизированной системы. Виды обеспечения автоматизированных систем. (Молдобаев Исламбек)
- Понятие комплекса средств автоматизации. Основные виды технического обеспечения. (Сурков Кирилл)
- Понятие информационной безопасности. Основные измерения и процедуры информационной безопасности. (Гуров Александр)
- Понятие аутентификации и авторизации. Современные способы и алгоритмы реализации. (Клычков Илья)
- Понятия угрозы, атаки и уязвимости в информационных системах. Модель нарушителя, парирование угроз и защита информации. (Торхова Анастасия)
-
Лекция 4. Стандартизация в области разработки моделей и алгоритмов информационных процессов.
- Методы семиотики в проектировании. (Журкин Павел)
- Понятия стандартизации и гармонизации. Виды документов по стандартизации. (Кайкова Ирина)
- Понятия нотации, диаграммы, легенды. Основные виды нотаций и их описания. (Жиделев Илья)
- Схемы алгоритмов, программ, данных и систем. 👣
- Основные элементы нотаций оперограмм, диаграмм UML, BPMN, SADT, ARIS, DFD 👣
-
-
Лекции 5-6. Методологии проектирования программных и информационных средств. 👣
-
Лекция 5. Проектирование и разработка программных средств.
- Понятие метода и методологии. Основное назначение современных методологий проектирования. (Остапюк Виктор)
- Концепция зрелости процессов в методологиии CMMI. Основные элементы цикла Деминга (PDCA). 👣
- Назначение и способы применения методологий RUP, Agile, XP, Scrum в разработке программных средств. (Микешин Сергей)
- Понятия риска и управления рисками. Риски и дисциплины в методологии RUP. (Овчинников Кирилл)
- Основные приёмы экстремального программирования. Парное программирование и ревизия кода (Code Review).
-
Лекция 6. Проектирование данных и взаимодействия.
- Объектные, реляционные и объектно-реляционные СУБД. Преобразование моделей и особенности проектирования смешанных информационных систем. (Кузьмина Валерия)
- Фактографические информационные системы. Назначение и основные методы построения (OLTP). (Камышева Марина)
- Аналитические информационные системы. Назначение и основные методы построения (OLAP). (Шерматова Милена)
- Понятие онтологии и семантической сети. Применение онтологий в проектировании информационных систем. (Федотов Николай)
- Понятия интероперабельности, полисемии и контекста. Барьеры интероперабельности в коммуникациях.
- Основные синтаксические конструкции языков XML, XSD, JSON. Назначение и варианты использования. (Филиппов Юрий) 👣 👣 👣
-
-
Лекции 7-8. CASE-средства проектирования. 👣
-
Лекция 7. Понятия инженерии, CASE, проектирования.
- Понятие CASE-средств и их применение в системной и программной инженерии. 👣
- Структурный и объектно-ориентированный подходы к проектированию в CASE-технологиях. 👣
- Классификация CASE-средств по функциональной поддержке процессов жизненного цикла. 👣
- Классификация CASE-средств по категориям инструментов. (Руденко Антон)
- CASE-средства поддержки процесса сопровождения программных средств. 👣
- Понятие системы и системной инженерии. Процессы жизненного цикла систем. (Мигунов Никита)
- Понятия моделей «как есть» и «как будет». Взаимосвязь с процессами непрерывного улучшения. 👣
-
Лекция 8. Проектирование программного продукта.
- Понятие интерфейса. Человеко-машинный интерфейс. (Горланова Анна)
- Понятия удобства использования (usability) и эргономичности. (Шляпкина Кристина)
- Понятия операторской деятельности и опыта пользователя (UX). (Журавлев Дмитрий)
- Программные интерфейсы приложений (API). (Силавский Борис)
- Технологические интерфейсы оконечного оборудования (DTE). (Зурабишвили Николай)
- Понятия фреймворка и метамодели. Использование фреймворков в качестве CASE-средств. (Михеева Юлия)
-
-
Лекции 9-10. Основные задачи и методы проектирования программных средств.
-
Лекция 9. Роль и обязанности архитектора программных средств.
- Понятия архитектуры и ее описания.
- Понятие референтной модели. Основные источники бизнес-идей и методы ТРИЗ. (Кривопалова Майя)
- Модели качества программных средств и программного обеспечения.
- Понятия авторского надзора и сопровождения программного обеспечения.
- Модели функциональных точек программного продукта. 👣
-
Лекция 10. История развития итеративной разработки программных средств.
- Модели FDD, TDD, MDD в разработке программных средств. (Мазитов Айнур)
- Модели разработки TDD, BDD и TFD. Отличия и способы применения. 👣
- Способы декомпозиции прецедентов (Use Case) и ее изображение на диаграммах прецедентов. 👣
- Методология RUP (Rational Unified Process). Основные части описания прецедентов (Use Case) и их изображение на диаграммах прецедентов. 👣
- Методология RUP (Rational Unified Process). Понятия исключения и расширения, их графическое выражение в диаграммах UML. 👣
-
-
Лекции 11-12. Математические методы в объектно-ориентированном проектировании.
-
Лекция 11. Информационные системы как системы массового обслуживания.
- Понятие потока информации и его математическая интерпретация. Способы описания информационных потоков в UML. (Муравкин Михаил)
- Понятие действующего лица (actor) в объектно-ориентированном подходе, его семантическое значение и способы изображения на диаграммах UML. (Абакумова Александра)
- Равномерное, нормальное и экспоненциальное распределения, типовые приемы и способы их применения в задачах имитационного моделирования. 👣
- Метод Монте-Карло, способы его применения в имитационном моделировании и реализации с помощью объектно-ориентированного подхода. 👣
- Понятие погрешности при выполнении инженерных расчетов. Погрешности метода, погрешности измерений и погрешности вычислений. 👣
- Практические приемы использования коэффициента Стьюдента при решении задач имитационного моделирования. 👣
-
Лекция 12. Понятия исполнительного устройства и очереди в системе массового обслуживания.
- Понятие очереди в теории массового обслуживания. Виды и способы организации очередей в объектно-ориентированном программировании. (Поздеев Виктор)
- Понятия очереди, стека и кучи в объектно-ориентированном программировании. Назначение и способы реализации. (Ефремов Александр)
- Основные способы реализации алгоритмов имитационного моделирования для очередей. 👣
- Основные практические приемы применения теории массового обслуживания в гибкой разработке программных средств (Scrum). 👣
- Понятие исполнительного устройства в теории массового обслуживания. Способы реализации алгоритмов имитационного моделирования для исполнительных устройств. 👣
-
-
Лекции 13-14. Научные методы в проектировании.
-
Лекция 13. Топология информационных систем.
- Математическое и инженерное понятия топологии. (Шаров Михаил)
- Отличия понятия связности в применении к классам и объектам. (Шаховцев Даниил)
- Понятие слоя в проектировании программного обеспечения. (Сыпачев Андрей)
- Проектирование физического размещения компонентов информационных систем (Гулан Адриан)
- Распределенная обработка данных и параллельные алгоритмы. (Вебер Виктория)
- Понятия сервиса, веб-сервиса, сервис-ориентированной и микросервисной архитектуры. Поддерживающие протоколы прикладного уровня. (Лазарева Карина)
-
Лекция 14. Программирование как научная деятельность.
- Понятия интеллекта, мышления, знаний. (Логачева Анна)
- Понятия научного знания, экспликации и импликации. (Мельникова Влада)
- Понятие эксперимента в разработке программных средств. (Меликян Георгий)
- Основные категории прототипов. (Иванкин Федор)
- Моделирование, прототипирование и исследовательские испытания. (Коршунов Сергей)
-
-
Лекции 15-16. Методы и технологии испытаний информационных систем
-
Лекция 15. Тестирование программных средств.
- Понятие и виды испытаний автоматизированных систем. Программы и методики испытаний. (Парамонов Андрей)
- Понятия пользовательской истории и приемочных испытаний в гибкой разработке программных средств. (Никитин Георгий)
- Тестовые наборы данных, эмуляторы и симуляторы. (Мулляминов Роман)
- Технологии модульного тестирования (Unit Tests). Возможности и ограничения на применимость. (Талько Станислав)
- Технологии интеграционного тестирования. Назначение, возможности и ограничения на применимость. (Гордиенко Анна)
-
Лекция 16. Архитектурные ограничения на тестирование и испытания.
- Локальные, удаленные и распределенные базы данных. (Сахабетдинов Марат)
- Простые и распределенные транзакции. (Сичинава Марк)
- Распределенные реестры и технологии блокчейн. (Шалаев Данил)
- Понятия блокировки и конфликта транзакций. (Петров Никита)
-
Семинары 1 2 3 4
-
Семинар 1
👣
Целеполагание в анализе, проектировании, проектах
- пример "плохой" системы без цели
- пример "не очень хорошей" системы с целью (не автоматизируемой), для нее:
- пример "плохого" проекта, "плохая" цель которого не удовлетворяет принципам S.M.A.R.T.
- пример "хорошего" проекта, "хорошая" цель которого удовлетворяет принципам S.M.A.R.T.
- пример "хорошей" системы с целью (автоматизируемой), выраженной через результат процесса, для нее:
- разбор цели системы по принципам S.M.A.R.T.
- пример "плохого" проекта, "плохая" цель которого не удовлетворяет принципам S.M.A.R.T.
- пример "хорошего" проекта, "хорошая" цель которого удовлетворяет принципам S.M.A.R.T.
-
Семинар 2
👣
Методы семиотики в проектировании
- правильный и неправильный примеры отношений общее-частное
- правильный и неправильный примеры отношений целое-часть
- правильный и неправильный примеры отношений абстрактное-конкретное
- пример исключения
-
Семинар 3
👣
Управление в гибкой разработке программного обеспечения, методы Канбан и Скрам
- определиться с предпочтительными ролями в коллективной работе (2-3 сильными сторонами)
- определиться с предпочтительными проектами и собраться в команды (от 4 до 8 человек):
- разработка веб-приложения (по умолчанию)
- внедрение программного обеспечения
- собственный проект
- определиться с репозиторием проекта, для разработки веб-приложения:
- приложение визуализации моделей
- библиотека служебных функций работы с данными моделей
- библиотека служебных функций обработки данных, расчетов и статистики
- определиться с предпочтительной персональной задачей:
- программная реализация функции
- программная реализация тестового набора данных
- программная реализация автоматизированного теста
- определиться с личными рисками (угрозами) для выбранных ролей:
- выбрать как минимум одну категорию рисков
- описать как минимум один риск (возможное событие) в выбранной категории
- выбрать одну из типовых стратегией управления рисками
- описать основное мероприятие управления рисками в выбранной стратегии
-
Семинар 4
👣
Прототипирование в разработке программного обеспечения
- выбрать улучшаемую систему (процесс) и описать ее цель (назначение) по S.M.A.R.T.
- описать проект улучшения рассматриваемой системы и описать его цель по S.M.A.R.T.
- уточнить состав команды, полномочия и обязанности всех ролей
- описать задачу на деловую игру (спринт) в форме пользовательской истории
- определиться с видом прототипа для разработки
- определиться с проектными рисками (угрозами) для выбранной задачи и прототипа:
- выбрать как минимум одну категорию рисков
- описать как минимум один риск (возможное событие) в выбранной категории
- выбрать одну из типовых стратегией управления рисками
- описать основное мероприятие управления рисками в выбранной стратегии
Лабораторные работы 1 2 3 4 5 6
Списки групп для регистрации отчетов о лабораторных работах:
ИДБ-17-05
ИДБ-17-06
ИДБ-17-07
-
Лабораторная 1 👣 Знакомство с основными инструментами и нотациями
- GITHUB - информационная система коллективной разработки программных средств
- RAMUS - программное средство разработки структурно-функциональных моделей
- PLANTUML - программное средство автоматической генерации UML-диаграмм
-
Лабораторная 2 👣 Определение подсистемы и надсистемы
- Определение надсистемы (среды функционирования)
- Определение автоматизируемых видов деятельности
- Описание участников автоматизируемой деятельности
-
Лабораторная 3 👣 Определение способов существования информации
- Описание хранилищ данных
- Описание взаимодействия участников автоматизируемой деятельности
- Завершение идентификации всех потоков
-
Лабораторная 4
👣
Деловая игра - вход в спринт (Разработка алгоритма и описания процедуры в выбранном проекте)
- Регистрация истории как отдельной задачи проекта
- Разбитие задачи истории на подзадачи - процедуры
- Разбитие задачи истории на подзадачи - страницы
- Разбитие задачи истории на подзадачи - тесты
- Получение оценки времени для каждой подзадачи
- Сбор sprint log
- Назначение исполнителей
- Описание всех подзадач, требующих программной реализации
- Разработка алгоритмов выполнения всех подзадач, требующих программной реализации
-
Лабораторная 5
👣
Деловая игра - итерация спринта (Разработка процедуры на JS в выбранном проекте)
- Проведение stand-up совещания
- Разработка процедуры - страницы, стили и заглушки обработчиков
- Разработка процедуры - тесты и тестовые наборы данных
- Разработка процедуры - обработчики и генераторы тестовых наборов данных
- Регистрация возникающих дополнительных задач в соответствующих проектах
- Определение дополнительных требований к выполнению задач
- Корректировка или создание новых описаний для всех разработанных процедур
-
Лабораторная 6
👣
Деловая игра - завершение спринта (Разработка unit-теста процедуры в выбранном проекте)
- Проведение stand-up совещания
- Разработка и отлаживание процедуры - генераторы тестовых наборов данных
- Разработка и отлаживание процедуры - тесты и тестовые наборы данных
- Разработка и отлаживание процедуры - страницы, позволяющие выполнять тесты в интерактивном режиме
- Разработка требуемых описаний всех разработанных процедур, тестов и тестовых наборов данных
- Выполнение всех разработанных тестов
- Регистрация всех выявленных несоответствий требованиям
- Принятие решения по всем выявленным несоответствиям требованиям
- Проведение демонстрации результатов спринта владельцу продукта и другим заинтересованным лицам
Зачет
Зачёт проводится в очно-заочной форме, а оценка имеет интегрированный характер (в первую очередь учитываются оценки за модули).
При подготовке к зачёту каждый студент должен:
- разработать реферат к одному из вопросов, обозначенных в лекциях, по возможности пользуясь материалами прошлых лет
- критически рассмотреть и при необходимости доработать еще один вопрос, реферат к которому подготовлен другим автором
Основные требования к разработанным и доработанным рефератам:
- лаконичность и точность текста (нужно исключить все, что не входит напрямую в вопрос)
- обязательное наличие ссылок на использованные источники
! **Студенты, не принявшие участия в разработке и доработке рефератов, к зачёту не допускаются!**