Учебник посвящен систематическому изложению принципов, моделей и методов, используемых в инженерном цикле разработки сложных программных продуктов. Изложены классические основы программной инженерии, показаны последние научные и практические достижения, характеризующие динамику развития этой области; продемонстрирован комплексный подход к решению наиболее важных вопросов, возникающих в больших программных проектах. В основу материала положен двенадцатилетний опыт преподавания автором соответствующих дисциплин. Книга допущена Министерством образования РФ в качестве учебного пособия для студентов высших учебных заведений, обучающихся по направлению подготовки бакалавров и магистров `Информатика и вычислительная техника`.