Раздел 3Дополнительные процессы разработки ПО

Вспомогательные процессы разработки охватывают, например, написание документации, контроль за изменениями конфигурации и построение выпусков.

Лекции

16. Управление изменениями и версиями ПО

Создание более-менее сложного программного обеспечения невозможно без управления процессом разработки. Утилиты, использующиеся для автоматизации управления разработкой, такие как системы управления версиями и средства автоматического построения, вполне пригодны и для малых индивидуальных проектов. Эти инструменты помогают организовать процесс создания ПО и, в некоторых случаях, заметно его ускорить. Детальнее→

17. Управление построением и выпусками

Управление версиями программного обеспечения не только упрощает разработку, но и составляет основу для двух других аспектов управления конфигурацией ПО — построение и управление выпусками. Детальнее→

18. Документирование ПО

Один из важных этапов разработки программного обеспечения — создание документации. Документирование ПО (системная документация) помогает разработчикам и отделу сопровождения понять структуру системы и назначение ее элементов. Кроме того, часть документации (пользовательская документация) предназначена для конечных пользователей и администраторов — она позволяет понять, как нужно устанавливать и разворачивать систему, какие функции она предоставляет и каким образом можно бороться с ошибками, возникающими при ее работе. Детальнее→

19. Инженерия качества

Качество — одна из основных характеристик, требуемых от программного обеспечения. Несмотря на это, понятие качества достаточно сложно формализовать. Обычно под качеством подразумевают две связанных между собой свойства программной системы: мера, в которой ПО соответствует функциональным требованиям, заданным планом разработки и прочими документами спецификации (функциональное качество); уровень поддержки нефункциональных требований: надежности, производительности и так далее (структурное качество). Детальнее→

20. Управление программным проектом

Управление программным проектом — один из ключевых аспектов разработки программного обеспечения. В классических моделях жизненного цикла ПО управление проектом составляет основу для всего процесса разработки. В более новых подходах (гибкой методологии, экстремальном программировании, Scrum и так далее) управление ориентировано на решение задач меньшего масштаба, но по-прежнему играет важную роль в разработке. Детальнее→

Темы для самостоятельной работы

  • Сравнение систем управления версиями ПО.
  • Системы автоматического построения для современных сред разработки (Maven, Grunt, Gradle и др.).
  • Системы зависимостей в современных средах разработки (Python setuptools, npm, Bower и др.).
  • Системы генерации документации в языках программирования и создание плагинов для этих систем.
  • Прикладные инструменты автоматизации процессов инженерии качества.
  • Особенности планирования программного проекта в гибкой методологии разработки.
  • Автоматизация усовершенствования процессов разработки ПО.

Контрольные вопросы

  • Обзор процессов управления конфигурацией программного обеспечения.
  • Идентификация элементов конфигурации.
  • Процессы управления изменениями в разработке ПО. Запросы на изменение.
  • Основные понятия управления версиями.
  • Централизованные и распределенные системы управления версиями.
  • Основы распределенного управления версиями на примере системы Git.
  • Проблематика процессов построения программной системы. Виды инструментов построения.
  • Основные понятия построения ПО. Цели и зависимости.
  • Программа make.
  • Программа Apache Ant.
  • Основные принципы непрерывной интеграции.
  • Жизненный цикл выпусков программного обеспечения.
  • Версии ПО; их связь с системами управления версиями. Семантическая нумерация.
  • Цели и проблематика управления программным проектом.
  • Понятие рисков при разработке ПО. Категории и примеры рисков.
  • Процессы управления рисками.
  • Планирование проекта. Проектный план и другие планы в традиционной разработке ПО.
  • Роль планирования в гибкой методологии разработки.
  • Экспертные и алгоритмические методы оценки затрат на разработку.

Литература

  • Лаврищева Е.М. Программная инженерия. Учебник. — К.: Академпериодика. — 2008. — 319 с.
  • Основы инженерии качества программных систем / Андон Ф.И., Коваль Г.И., Коротун Т.М. и др. — К: Академпериодика. — 2007. — 680с.
  • Sommerville I. Software engineering, 9th ed. — Boston, Massachusetts: Addison-Wesley. — 2011. — 790 p.
  • Tian J. Software quality engineering. — Hoboken, New Jersey: John Wiley & Sons. — 2005. — 440 p.
  • Pressman R.S. Software engineering: a practitioner’s approach. — Basingstoke: Palgrave Macmillan. — 2005. — 880 p.
  • Pfleeger S.L., Atlee J.M. Software engineering: theory and practice. — Upper Saddle River, New Jersey: Prentice Hall. — 2010. — 756 p.
  • Duvall P.M., Matyas S., Glover A. Continuous integration: improving software quality and reducing risk. — Pearson Education. — 2007. — 336 p.
  • Smart J.F. Jenkins: the definitive guide. — O’Reilly Media. — 2011. — 404 p.
  • Sonatype Company. Maven: the definitive guide. — O’Reilly Media. — 2008. — 470 p.
  • Chacon S. Pro Git. — Apress. — 2009. — 288 p.
  • O’Sullivan B. Mercurial: the definitive guide. — O’Reilly Media. — 2009. — 284 p.
  • Javadoc Tool
  • Doxygen
  • CMMI for development, version 1.3
  • Grunt: the JavaScript task runner
  • Npm