- •Вопросы для подготовки к экзамену:
- •Краткое изложение программного материала
- •Тема «Программная инженерия в жизненном цикле программных средств»
- •Тема «Модели и профили жизненного цикла программных средств»
- •Тема «Модели и процессы управлении проектами программных средств»
- •Тема «Управление требованиями к программному обеспечению»
- •Тема «Проектирование программного обеспечения»
- •Тема «Конструирование (детальное проектирование) программного обеспечения»
- •Тема «Тестирование программного обеспечения»
- •Тема «Сопровождение программного обеспечения»
- •Тема «Конфигурационное управление»
- •Тема «Управление программной инженерией»
- •Тема «Процесс программной инженерии»:
- •Тема «Качество программного обеспечения»
- •Тема «Удостоверение качества и сертификация программных продуктов»
- •Тема «Документирование программного обеспечения»
- •Тема «Технико-экономическое обоснование проектов программных средств»
Тема «Управление требованиями к программному обеспечению»
Проекты программных средств различаются по уровню сложности, масштабу и необходимому качеству. Они имеют различное назначение, содержание и относятся к разным областям применения. Поэтому существует потребность в четко организованном процессе, методах формализации и управления требованиями к конкретным программным продуктам. Чаще всего проблемами, с которыми встретились не достигшие своих целей проекты программных продуктов, являются: недостаток информации от пользователя или заказчика о функциях проекта, неполные, некорректные требования, а также многочисленные изменения требований и спецификаций. Это происходит потому, что зачастую разработчики и заказчики считают, что “даже если мы не очень точно знаем, чего хотим достичь, лучше быстрее приступить к реализации проекта, так как мы и так выбились из графика и нам некогда размышлять. Мы можем уточнить требования позднее”. Подобный подход приводит к хаотическим, неупорядоченным действиям при разработке ПС, когда никто не знает, что на самом деле хочет заказчик и пользователь, и как в действительности функционирует созданная на данный момент система и/или программный продукт.
Формализация и управление требованиями это систематический метод выявления, организации и документирования требований к системе и/или ПС, а также процесс, в ходе которого вырабатывается и обеспечивается соглашение между заказчиком и выполняющими проект специалистами, в условиях меняющихся требований к системе рис. 6.1. Развитие программной инженерии, её обозримое будущее, связаны с непрерывным возрастанием сложности, поэтому разработкой ПС должны заниматься хорошо организованные и обученные коллективы команды разработчиков. Каждый член команды в той или иной степени должен привлекаться к управлению и формализации требований к проекту. Команде необходимо выработать профессиональные приемы для понимания потребностей пользователей, управления масштабом ПС, структурой и построением системы, удовлетворяющей эти потребности.
Команда должна применить методы и процессы для того, чтобы понять решаемую проблему заказчика до начала разработки ПС. Для этого следует использовать метод анализа, выявления и освоения проблемы и интересов заказчика: достигнуть соглашения между заказчиком и разработчиком по определению проблемы, целей и задач проекта; выделить основные причины проблемы, являющиеся её источниками и стоящие за основной проблемой проекта системы и ПС; выявить заинтересованных лиц и пользователей, чье коллективное мнение и оценка в конечном итоге определяет успех или неудачу проекта; определить, где приблизительно находятся область и границы возможных решений проблем; понять ограничения, которые будут наложены на проект, команду и решения проблем.
Тема «Проектирование программного обеспечения»
Комплекс формально организованных мероприятий по достижению единой цели создания сложной системы с требуемыми характеристиками качества при ограниченных ресурсах получил название проект. Цель управления проектом рациональное использование и предупреждение потери ресурсов путем сбалансированного распределения их по частным работам на протяжении всего жизненного цикла объекта с заданным качеством. Управление проектом это особый вид деятельности, включающий постановку задач, подготовку решений, планирование, организацию и стимулирование специалистов, контроль хода работ и использования ресурсов при создании сложных систем.
Целевое управление проектами возникло из необходимости разрабатывать и реализовывать сложные системы с заданными функциями в максимально короткие сроки при ограниченных ресурсах. Критическим параметром планирования и управления проектами обычно является время. Поэтому в лекциях по программной инженерии большое внимание сосредоточено на конкретном планировании сложных проектов, длительность разработки которых могут составлять несколько месяцев или даже годы. Задачи целевого управления такими работами сводить воедино усилия исполнителей специалистов разной квалификации, подрядчиков и субподрядчиков, добиваясь, чтобы они выступали как команда при создании компонентов систем, а не как разрозненная группа функциональных специалистов. В результате должны обеспечиваться концептуальная целостность системы и высокое качество решения главных задач при сбалансированном использовании ресурсов на все функциональные задачи.
Для интеграции усилий специалистов и эффективного использования ресурсов проекта должен выделяться лидер менеджер, управляющий проектом. Он должен активно участвовать в планировании, организации и контроле основных внутренних и внешних организационных мероприятий, необходимых для достижения основной цели проекта. Все ресурсы и исходные данные, необходимые для эффективного выполнения проекта, управляющий получает от функциональных подразделений и специалистов. Задача менеджера проекта наряду с прямыми воздействиями на подчиненных и координацией их работ стимулировать и контролировать активность прямых горизонтальных связей между исполнителями частных работ. Для того чтобы процесс достижения целей был рациональным, лицо, принимающее решение (управляющий) должно иметь выбор среди альтернативных действий, ведущих к цели. Наличие альтернатив и сомнения по поводу того, какая из них лучше, определяют возможность эффективного решения проблем и оптимизации путей их достижения.