Рассматриваются основные понятия и определения, классификация программного обеспечения, этапы создания программного продукта в рамках жизненного цикла, освещается современное состояние технологий разработки программных продуктов. Изложены существующие подходы к оценке качества процессов создания программного обеспечения, произведен анализ требований и определение спецификаций программного обеспечения. Большое внимание уделено вопросам проектирования ПО, его надежности, коллективной разработки с помощью современных систем контроля версий. Теоретический материал сопровождается практикумом в виде лабораторных работ по изложенной тематике. Предназначено для студентов и преподавателей высших учебных заведений технического профиля, а также для специалистов любой предметной области, проявивших интерес к современному состоянию методов и средств программирования.