- •Введение
- •Содержание
- •1.1 Анализ и характеристика областей знаний swebok
- •1.1.1. Требования к по (Software Requirements)
- •1.1.2. Проектирование по (Software design)
- •1.1.3. Конструирование по (Software Construction)
- •1.1.4. Тестирование по (Software Testing)
- •1.1.5. Сопровождение по (Software maintenance)
- •1.1.6. Управление конфигурацией по
- •1.1.7. Управление инженерией по
- •1.1.8. Процесс инженерии по (Software Engineering Process)
- •1.1.9. Методы и инструменты инженерии по
- •1.1.10. Качество по (Software Quality)
- •1.2. Жизненный цикл пс, связь с ядром знаний swebok
- •Контрольные вопросы и задания
- •Лекция 2: Модели жизненного цикла для разработки программных систем Содержание
- •2.1. Процессы жц стандарта iso/iec 12207
- •2.2. Типы моделей жц
- •2.2.1. Каскадная модель жц
- •2.2.2. Инкрементная модель жц
- •2.2.3. Спиральная модель
- •2.2.5. Стандартизация модели жц
- •2.3. Сопоставление жц стандарта iso/iec 12207 и областей swebok
- •2.3.1. Характеристика процессов стандарта iso/iec 12207
- •2.3.2. Характеристика областей знаний swebok
- •Контрольные вопросы и задания
- •Лекция 3: Методы определения требований в программной инженерии Содержание
- •3.1. Общие подходы к определению требований
- •3.1.1. Классификация требований
- •3.1.2. Анализ и сбор требований
- •3.1.3. Инженерия требований
- •3.1.4. Фиксация требований
- •3.1.5. Трассировка требований
- •Сложность программного обеспечения
- •1.8.1. Каскадная (водопадная) модель
- •1.8.2. Итеративная и инкрементальная модель
- •1.8.3. Спиральная модель Боэма
- •1.9.1. Методология Rational Unified Process (rup)
- •2. Проектирование (Elaboration)
- •3. Построение (Construction)
- •4. Внедрение (Transition)
- •1.9.2. Экстремальное программирование
- •Живое планирование (planning game)
- •Программирование парами (pair programming)
- •Включение заказчика в команду (on-site customer)
- •Использование кода как средства коммуникации
- •Открытое рабочее пространство (open workspace)
- •Изменение правил по необходимости (just rules)
1.1.7. Управление инженерией по
Управление инженерией ПО (Software Engineering Management) - руководство работами команды разработчиков ПО в процессе выполнения плана проекта, определение критериев эффективности работы команды и оценка процессов и продуктов проекта с использованием общих методов управления, планирования и контроля работ.
Как любое управление, менеджмент ПО базируется на планировании, координации, измерении, контроле и учете процесса управления проектом. Координацию людских, финансовых и технических ресурсов при реализации задач программного проекта выполняет менеджер проекта, аналогично тому, как это делается в технических проектах. В его обязанности входит соблюдение запланированных бюджетных и временных характеристик и ограничений, стандартов и сформулированных требований. Общие вопросы управления проектом содержатся в ядре знаний РMBOK [1.21] в разделе Management Process Activities, а также в стандарте ISO/IEC 12207 - Software life cycle processes [1.14], где управление проектом рассматривается как дополнительный и организационный процесс ЖЦ.
Область знаний "Управление инженерией ПО (Software Engineering Management)" состоит из следующих разделов:
организационное управление (Organizational Management),
управление процессом и проектом (Process/Project Management),
инженерия измерений ПО (Software Engineering Measurement).
Организационное управление - это планирование и составление графика работ, оценка стоимости работ, подбор и управление персоналом, контроль за выполнением работ согласно принятым стандартам и планам. Главными проблемами организационного управления проектом являются: управление персоналом (обучение, мотивация и др.), коммуникации между сотрудниками (сценарии, встречи, презентации и др.), а также риски (минимизация риска, техники определения риска и др.). Для управления проектом создается определенная структура коллектива, специалисты распределяются по работам и решают задачи проекта под руководством менеджера с учетом заданной стоимости и сроков разработки. Для задач проекта подбираются также необходимые программные, инструментальные и аппаратные средства.
Управление проектом/процессом включает: составление плана проекта, построение графиков работ (сетевых или временных диаграмм) с учетом имеющихся ресурсов, распределение персонала по работам проекта, исходя из заданных сроков и стоимости их выполнения. Для эффективного управления проектом проводится анализ финансовой, технической, операционной и социальной политики организации разработчика для выбора правильной стратегии выполнения плана, контроля процесса управления планами и выпуском промежуточных продуктов (проектных решений, диаграмм UML, алгоритмов и др.).
В задачи управления проектом входят также уточнение требований, проверка их на соответствие заданным спецификациям характеристик качества, а также верификация функций отдельных продуктов проекта. Процесс управления проектом базируется на плановых сроках выполнения работ. Результаты планирования отображаются в сетевых диаграммах PERT (Program Evaluation and Review Technique), CРM (Сritical Path Method) и др., предназначенных для отображения всех аспектов работ, в частности, времени их выполнения и связей между разными работами в проекте.
На сегодняшний день наиболее распространенным представлением сети для управления разными видами работ является сетевая диаграмма PERT - граф, в вершинах которого располагаются работы, а дуги задают взаимные связи между этими работами. Другой тип сетевой диаграммы, CPМ, является событийным. В вершинах такой диаграммы указываются события, а работы задаются линиями между двумя узлами событиями. Ожидаемое время выполнения работы для сетевых диаграмм оценивается с помощью среднего весового значения трех оценок: оптимистической, пессимистической и ожидаемой, т.е. вероятностной. Эти оценки берутся из заданного времени на разработку и заключений экспертов, оценивающих как отдельные работы, так и весь комплекс работ. Есть и другие методы оценок.
После составления плана решается вопрос управления проектом и контроля работ в соответствии с планом, выбранным процессом и сущностью проекта. Корректно составленный план обеспечивает выполнение требований и целей проекта. Контроль осуществляется при внесении изменений в проект, направлен на оценку риска и принимаемых решений по минимизации рисков.
Важной проблемой выполнения проекта является процесс определения рисков и разработки мероприятий по уменьшению их влияния на ход выполнения проекта. Под риском понимается вероятность проявления неблагоприятных обстоятельств, которые могут повлиять негативно на управление разработкой (например, увольнение сотрудника и отсутствие замены для продолжения работ и др.). При составлении плана проекта проводится идентификация и анализ риска, планирование непредвиденных ситуаций, касающихся рисков. Предотвращение риска заключается в выполнении действий, которые снимают риск (например, увеличение времени разработки и др.), что уменьшает вероятность появления нового риска при реорганизации проекта, БД или транзакций, а также при выполнении ПО.
Инженерия измерений ПО проводится в целях определения отдельных характеристик продуктов и процессов, инженерии планирования и измерения этих характеристик (например, количество строк в продукте, ошибок в спецификациях и т.п.). Предварительно проводятся работы по выбору метрик процессов и продуктов с учетом обстоятельств и зависимостей, влияющих на измерение их характеристик. К аспектам инженерии измерений относятся совершенствование процессов управления проектом; оценки временных затрат и стоимости ПО, их регулирование; определение категорий рисков и отслеживание факторов для регулярного расчета вероятностей их возникновения; проверка заданных в требованиях показателей качества отдельных продуктов и проекта в целом [1.15].
Проведение разного рода измерений является важным принципом любой инженерной деятельности. В программном проекте результаты измерений необходимы заказчику и потребителям, чтобы установить, действительно ли проект был реализован правильно. Без измерений в инженерии ПО процесс управления становится неэффективным и превращается в самоцель.
