Определение и обсуждение требований (Determination and Negotiation of Requirements)
Лекция 6. Управление программной инженерией (Software Engineering Management) Программная инженерия это, по сути, сложный комплексный процесс создания, поддержки и эксплуатации программных систем. Следовательно, логично предположить, что возможно управлять программной инженерией так же, как и любым другим комплексным процессом. Управление программной инженерией может быть определено, как приложение вопросов управления, а именно – планирования, координации, количественной оценки, мониторинга, контроля и отчетности – к инженерной деятельности. Цель - систематическое, упорядоченное, количественно измеряемое обеспечение разработки и сопровождения программных систем (IEEE 610.12-90, Standard Glossary for Software Engineering Terminology). В то же время, существуют факторы, специфичные для программных продуктов, понижающие эффективность управления, это: · Со стороны клиентов (потребителей, заказчиков) часто отсутствует понимание сложности, порожденной самой природой программной инженерии, в частности связанной с влиянием изменяющихся требований. · Зачастую, заказчики сами толком не знают чего хотят. · В результате, программные системы часто строятся с применением итеративных процессов, вместо последовательного выполнения и закрытия работ. · Уровень новизны и сложности программных систем весьма высок (и не достаточно применять уже существующие наработки и опыт). · Применяемые технологии обладают высокой скоростью изменения, обновления и старения.
В программной инженерии, управленческая деятельность происходит на трех уровнях: 1. Организационное управление и управление инфраструктурой. 2. Управление проектами. 3. Планирование и контроль программ количественной
оценки. Вопросы организационного менеджмента важны с точки зрения влияния на программную инженерию в контексте управления полномочиями сотрудников или корпоративными политиками (например безопасности). На практике, бывает необходимо адаптировать общие и создать специальные внутренние организационные стандарты, обеспечивающие эффективное управление программной инженерией. Это является основой для решения долгосрочных задач улучшения процессов и повышения производительности труда специалистов, вовлеченных в работы по созданию и сопровождению программного обеспечения. Другим важным аспектом управления является управление найма и приема на работу, обучения, и мотивации специалистов, помощи в развитии навыков для дальнейшего карьерного роста. Все это требует внимания не только в контексте проекта, но и в рамках всей организации. В большой степени это связано с постоянно развивающимися технологиями и потребностью в обновлении и расширении знаний для эффективного решения поставленных задач. Необходимо уделять особое внимание вопросам коммуникаций между сотрудниками, заказчиками, пользователями. Управление коммуникациями, создание естественных условий для их развития – один из ключевых элементов успеха. Правильно построенное управление коммуникациями обеспечивает высокую продуктивность коллективов разработки и сопровождения, точность получаемых от пользователей требований и запросов на изменения. Наконец, управление портфелями (проектов разработки и работ по сопровождению) позволяет сформировать и развивать общее видение в отношении всех существующих, обновляемых и создаваемых программных активов на уровне ИТ - подразделения и организации, в целом. Все это, в конечном счете, обеспечивает более эффективное управление ресурсами, а, значит, и возможность интенсивного, а не экстенсивного развития организации.
Вместе с осознанием специфики управленческой деятельности в приложении к программной инженерии, ИТ - специалистам необходимо понимать и ключевые аспекты общего менеджмента и управления проектами. Организационная культура, нормы поведения, аспекты корпоративного управления в вопросах приобретения и поставки, управления цепочками поставок, маркетинг, продажи, партнерство и т.п. – все это влияет на организационные процессы программной инженерии. Особое значение имеет управление проектами, так как конструирование имеющих практическую ценность программных артефактов (к которым относятся требования, модели, документация, тесты и т.п.) обычно ведется в форме проектов. В контексте управления программной инженерией особую важность имеют следующие направления. Управление: · Интеграцией проекта. · Содержанием проекта. · Сроками проекта. · Стоимостью проекта. · Качеством проекта. · Человеческими ресурсами проекта. · Коммуникациями проекта. · Рисками проекта. · Поставками проекта.
Перейдем к рассмотрению
Данная область знаний состоит из пяти секций, посвященных процессам управления программной инженерией и еще одной секции, касающейся вопросов измерений и количественных оценок в управлении, как показано на рис.6.1. Управление, ориентированное на измерения, как один из основных принципов любой инженерной деятельности, может серьезно помочь в развитии программной индустрии. По-сути, управление без измерений, количественных или качественных, приводит к отсутствию прогресса в достижении целей. Однако управление и измерения без необходимого и достаточного уровня знаний становится неэффективным и, часто, превращается в самоцель (что приводит к излишней бюрократизации и неадекватной загруженности ресурсов). Все блоки на рисунке пронумерованы для удобства ссылок по ходу изложения. Далее, как и всегда, будем вести изложение в соответствие с рис.6.1.
Рис.6.1. Управление программной инженерией
1. Инициирование и управление содержанием Данная секция посвящена действиям, связанным с эффективным определением требований к программному обеспечению, с использованием различных методов извлечения требований, а также оценкой осуществимости проекта с различных точек зрения.
Если проект признан осуществимым, следующей задачей является специфицирование процедур проверки и изменения требований (см. Лекция 1 «Требования к программному обеспечению» – Software Requirements).
Определение и обсуждение требований (Determination and Negotiation of Requirements)
Первичными работами, необходимыми для определения содержания, целей и ограничений проекта являются выбор и применение методов: · определения (извлечения) требований; · анализа их (например, моделирование сценариев); · специфицирования и проверки (например, прототипирования).
Данные работы важны всегда, так как позволяют определить четкие границы задач, необходимых для успешного выполнения проекта. В частности, это особенно заметно для проектов, обладающих большой степенью новизны (технологические аспекты проекта, его масштабы, методы и т.п.).
Воспользуйтесь поиском по сайту: ©2015 - 2025 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|