Раздел 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