Skip to content
okoff edited this page Feb 28, 2019 · 44 revisions

Лекции

  • Лекции 1-2 Основные задачи и методы проектирования программных средств

    • Лекция 1. Роль и обязанности архитектора программных средств. Понятия аспекта в моделировании и сложности объекта проектирования. Методы оценки и измерения сложности автоматизированных систем и программных средств (IFPUG). Особенности объектно-ориентированного подхода. Объектно-ориентированный анализ (OOA), проектирование (OOD), программирование (OOP). Объектно-ориентированные языки программирования.
    • Лекция 2. История развития итеративной разработки программных средств. Методология RUP. Понятие риска в разработке программных средств. Основные фазы, строительные блоки и поддерживающие процессы в RUP. Использование в RUP объектно-ориентированного подхода, основные конструкции языка UML.
  • Лекции 3-4 Математические методы в объектно-ориентированном проектировании

    • Лекция 3. Информационные системы как системы массового обслуживания. Модели и методы статистической обработки информации. Применение объектно-ориентированного подхода в имитационном моделировании и симуляции.
    • Лекция 4. Понятия исполнительного устройства и очереди в системе массового обслуживания. Виды и программная реализация очередей. Использование очередей с приоритетами в управлении разработкой ПО (SCRUM). Организация и использование очередей в веб-приложениях (AJAX).
  • Лекции 5-6 Проектирование топологии информационных систем

    • Лекция 5. Отличия понятий связности в применении к классам и объектам. Понятие слоя в проектировании программного обеспечения. Проектирование физического размещения компонентов информационных систем. Распределенная обработка данных и параллельные алгоритмы.
    • Лекция 6. Локальные, удаленные и распределенные базы данных. Простые и распределенные транзакции. Распределенные реестры и технологии блокчейн. Понятия блокировки и конфликта транзакций.
  • Лекции 7-8 Научный подход в программировании

    • Лекция 7. Программирование как научная деятельность. Понятие эксперимента в разработке программных средств. Моделирование, прототипирование и исследовательские испытания.
    • Лекция 8. Тестирование программных средств. Понятия пользовательской истории и приемочных испытаний в гибкой разработке программных средств. Тестовые наборы данных, эмуляторы и симуляторы. Роль пользователя в проведении испытаний.
  • Лекции 9-10 Проектирование взаимодействий < TODO >

    • Лекция 9. Вертикальное и горизонтальное взаимодействия. Понятие инициатора взаимодействия. Выталкивающее и втягивающее производство. Планирование запасов.
    • Лекция 10. Управление сроками. Сетевое планирование и понятие критического пути. Планирование сроков в гибкой разработке программных средств. Планирование совещаний. Личный тайм-менеджмент.
  • Лекции 11-12 Проектирование конфигурационного управления < TODO >

    • Лекция 11. Управление требованиями, изменениями, инцидентами. Понятия конфигурации и конфигурационного управления. Сборки, выпуски и версии в гибкой разработке (SCRUM). Понятия инцидента, обходного пути и заплатки.
    • Лекция 12. Управление конфигурацией. Разработка, управляемая моделями (MDD). Инжиниринг в разработке, управляемой функциональностью (FDD), реинжиниринг и рефакторинг в разработке, управляемой тестами (TFD, TDD, BDD). Документирование программного кода.
  • Лекции 13-14 Проектирование по шаблонам (паттернам) < TODO >

    • Лекция 13. Шаблоны проектирования систем. Функциональные (ERP, MES, APC, PMS, ECM) и архитектурные ("звезда", "кольцо") шаблоны. Хранилища данных и модель Data Vault.
    • Лекция 14. Шаблоны проектирования программ. Шаблоны "Модель-Представление-Контроллер (MVC), "Интерфейс" и "Тип данных".
  • Лекции 15-16 Проектирование интеграционных решений < TODO >

    • Лекция 14. Справочники и классификаторы. Понятия классификации, классифицируемого множества и классификационного признака. Иерархическая и фасетная классификация. Системы классификации и кодирования.
    • Лекция 15. Извлечение и очистка данных. Понятия нормализации и дедупликации. Технологии ETL. Понятие и технологии обработки больших данных.
  • Лекции 17-18 Проектирование высоконагруженных систем и систем реального времени< TODO >

    • Лекция 17. < todo >.
    • Лекция 18. < todo >.
  • Лекции 19-20 Проектирование аналитических и экспертных систем < TODO >

    • Лекция 19. < todo >.
    • Лекция 20. < todo >.

Семинары

  • Семинар 1 Методология RUP, прецеденты и язык UML

  • Семинар 2 Управление разработкой ПО, методы Канбан и Скрам

  • Семинар 3 Прототипирование в разработке ПО

  • Семинар 4 Автоматизированное тестирование в разработке ПО

Лабораторные работы

Экзамен

Полноценная подготовка к экзамену является ключевым вопросом дисциплины и состоит из следующих шагов:

  1. Анализ набора экзаменационных билетов
  2. Выбор 2+ вопросов, заданные в которых темы наиболее близки к теме дипломного проекта, выбранному профессиональному направлению или другим собственным интересам (не обязательно брать в работу целиком один билет)
  3. Формирование мини-команды из 2+ человек, занимающихся теми же вопросами
  4. Командное формирование полноценного реферата по теме, заданной в вопросе

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

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

В идеальной ситуации:

  1. Текст реферата можно 1:1 включить в состав ВКР (дипломной работы)
  2. В качестве примеров использованы собственные или коллективные материалы, разработанные в ходе лабораторных работ
  3. Выбранная тема может послужить основой для проведения каких-то дополнительных исследований

Ресурсы для самостоятельного изучения

Площадки для тренировок

Software Risk Management

Rational Unfied Process

Анализ методов Agile

Абсурд (выявление чуши)

Clone this wiki locally