Ru En

Программная инженерия



Лекции (Архив, 2014)

Тема
1 Лекция 1. Основы программной инженерии. SWEBOK - свод знаний по программной инженерии.
2 Лекция 2. Жизненный цикл разработки ПО: водопадная и итерационная модель.
3 Лекция 3. Жизненный цикл ПО: компонентно-ориентированная модель, этапы жизненного цикла.
4

Лекция 4. UP (унифицированный процесс). Определение требований.

5 Лекция 5. Поиск и выявление требований. Варианты использования. Спецификация требований.
6 Лекция 6. Проектирование ПО.
7 Лекция 7. Выявление классов анализа.
8 Лекция 8. Диаграммы классов анализа.
9 Лекция 9. Реализация прецедентов. Диаграмма деятельности. Диаграмма последовательностей.
10 Лекция 10. Модульность. Внутренняя связность (coheshion) и внешняя связанность (coupling).
11 Лекция 11. Метрики ПО. Метрики исходного кода.
12

Лекция 12. Тестирование ПО.

(посмотрите раздел "Тестирование" на странице курса)

13 Лекция 12. Зрелость управления процессами разработки ПО.

Доклады

Тема Докладчик
1

Разработка через тестирование (TDD). Разработка на основе поведения (BDD). Системы поддержки TDD и BDD (Cucumber, SpecFlow).

Лаптева Юлия Сергеевна
2

Гибкие методологии разработки. Методология экстремального программирования. Scrum.

Лыжин Иван Александрович
3

Системы управления версиями (VCS) ПО: история, виды VCS, современные VCS: SVN, GIT, Mercurial.

Горвиц Евгений Львович
4

Принципы и подходы к командной разработке ПО.

Валькевич Николай Васильевич
5

Концепция непрерывной интеграции ПО. Системы поддержки непрерывной интеграции. TeamCity, Jenkins (Hudson) - функциональные возможности, настройка и использоваие.

Шульга Елизавета Вячеславовна

Дополнительные материалы

 

Программная инженерия

  • IEEE Standard 610-90 (Standard Glossary of Software Engineering Terminology) - стандартный глоссарий терминов по программной инженерии. Последняя инстанция разрешения споров по терминологии в программной инженерии.
  • Ivan Marsic. Software Engineering - textbook. Учебник по программной инженерии от профессора Ратгерского университета Ивана Марсика. В книге рассматриваются темы объектно-ориентированного проектирования, метрик ПО, разработки программных компонентов, веб-сервисов и др.
  • IBM Developer Works: Пять уровней зрелости требований. 70–85% от общего числа всех исправлений в ходе разработки ПО связанно именно с ошибками, допущенными на этапе сбора, анализа и документирования требований. В статье рассказывается о модели уровней зрелости для управления требованиями и даются рекомендации по постепенному улучшению процесса управления требованиями к ПО.
  • SWEBOK на русском. Software Engineering Body of Knowledge- документ, разрабатывающийся под руководством Institute of Electrical and Electronics Engineers (IEEE), и объединяющий знания по инженерии программного обеспечения, включая такие аспекты как определение требований, проектирование, конструирование, тестирование, сопровождение ПО и др.
  • University of California, Berkeley: Software Engineering for Software as a Service. Курс в рамках проекта Сoursera, посвященный разработке программных систем в соответствии с концепцией SaaS (программное обеспечение как сервис). К сожалению, курс закрыт, но:
  • The Rise And Fall Of Waterfall. Оказывается "водопадная модель разработки" изначально задумывалась итерационной. Но об этом все забыли.

Гибкие методологии разработки и управление командой

  • Илья Бирман. Псевдокемп: Приоткрытые вопросы. Илья Бирман рассказывает нам о том, что такое открытые, приоткрытые и закрытые вопросы, а также как их задавать заказчику при выявлении требований так, чтобы он не решил, что вы издеваетесь.
  • Хэнриг Книберг. Scrum и XP: заметки с передовой. Короткая (всего 90 страниц) но очень емкая и понятная книга, рассказывающая о внедрении методологий экстремального программирования на практике.
  • Борис Вольфсон. Гибкие методологии разработки. В книге рассматриваются методы гибкой разработки и методология Scrum. Кроме теории в книги содержится множество конкретных приемов и лучших методов, которые можно применять на практике. Рассматриваются такие вопросы как анализ требований; практики управления командой в Scrum; контроль и обеспечение качества ПО.

  • Мы сделаем этот велосипед за месяц. Краткий экскурс в планирование работ для управления группой разработчиков.
  • Чеклист вопросов к проекту: старт, реализация, финал. Держим руку на пульсе проекта.

Архитектура и проектирование ПО

Системы контроля версий

  • Learn Git Branching. Интерактивный учебный курс по механизмам ветвления в рамках системы управления версиями Git.
  • Думай как Git, руководство по Git. Перевод на русский язык руководства "Think Like a Git", где простыми словами объясняются концепции управления версиями посредством Git.
  • Git Extensions. Удобный клиент системы контроля версий GIT для Windows. Отличается удобным пользовательским интерфейсом, интеграцией с Visual Studio и другими приятными особенностями.
  • Pro Git (на русском языке) - обширная обучающая книга о системе контроля версий Git от Скотта Шакона — активного участника разработки проектов Git и GitHub. Полностью переведена на русский язык. Также, доступна в онлайн-версии, и в формате ebup.

Тестирование

  • Роберт Мартин (aka Uncle Bob). TDD: The Bowling Game Kata (Ката - это формальные упражнения в боевых искусствах, имитирующие бой с одним или несколькими противниками - wikipeda). Роберт Мартин по шагам описывает процесс «разработки через тестирование» (test-driven development) для решения одной задачи – подсчет очков при игре в боулинг. В презентации очень наглядно представлен весь процесс создания тестов и разработки кода, начиная с пустого проекта и заканчивая готовой программой. 

  • Модульное тестирование и непрерывная интеграция при помощи Jenkins для C++ проектов. Очень подробный тьюториал об использовании системы Jenkins для подготовки и прогона модульного тестирования.

  • Как начать писать тесты за 10 шагов по 10 минут. Тьюториал о том, как побороть себя и начать разрабатывать в соответствии с методологией Test-Driven Development.

  • Быстрый старт с Google Test. Google Test — это фреймворк от Google для юнит-тестирования кода на С++. В статье приводятся первые шаги по установке, настройке и созданию первого проекта с поддержкой Google Test в среде Visual Studio.

 

Архив

2013

2011