В первой лекции говорилось о том, что сложную программную систему построить "простыми" методами невозможно. Ее разработка с неизбежностью будет тоже сложной деятельностью.
Привести такое предприятие к успеху возможно на основе общих принципов работы со сложными системами: организовав его в виде набора модулей, используя разные уровни абстракции, переиспользуя отдельные элементы в разных местах так, чтобы изменения в таком элементе автоматически отражались всюду, где он используется.
Разработка ПО — разновидность человеческой деятельности. Выделить ее компоненты можно, определив набор задач, которые нужно решить для достижения конечной цели — построения достаточно качественной системы в рамках заданных сроков и ресурсов. Для решения каждой такой задачи организуется вспомогательная деятельность, к которой можно также применить декомпозицию на отдельные, более мелкие деятельности, и т.д. В итоге должно стать понятно, как решать каждую отдельную подзадачу и всю задачу целиком на основе имеющихся решений для подзадач.
В качестве примеров деятельностей, которые нужно проводить для построения программной системы, можно привести проектирование — выделение отдельных модулей и определение связей между ними с целью минимизации зависимостей между частями проекта и достижения лучшей его обозримости в целом, кодирование — разработку кода отдельных модулей, разработку пользовательской документации, которая необходима для достаточно сложной системы.
Однако для корректного с точки зрения инженерии и экономики рассмотрения вопросов создания сложных систем необходимо, чтобы были затронуты и вопросы эксплуатации системы, внесения в нее изменений, а также самые первые действия в ходе ее создания — анализ потребностей пользователей и выработка решений, "изобретение" функций, удовлетворяющих эти потребности. Без этого невозможно, с одной стороны, учесть реальную эффективность системы в виде отношения полученных результатов ко всем сделанным затратам и, с другой стороны, правильно оценивать в ходе разработки степень соответствия системы реальным нуждам пользователей и заказчиков.
Все эти факторы приводят к необходимости рассмотрения всей совокупности деятельностей, связанных с созданием и использованием ПО, начиная с возникновения идеи о новом продукте и заканчивая удалением его последней копии. Весь период существования ПО, связанный с подготовкой к его разработке, разработкой, использованием и модификациями, начиная с того момента, когда принимается решение разработать/приобрести/собрать из имеющихся компонентов новую систему или приходит сама идея о необходимости программы определенного рода, до того момента, когда полностью прекращается всякое ее использование, называют
В ходе
При этом создаются и перерабатываются различного рода артефакты — создаваемые человеком информационные сущности, документы в достаточно общем смысле, участвующие в качестве входных данных и получающиеся в качестве результатов различных деятельностей. Примерами артефактов являются: модель предметной области, описание требований, техническое задание, архитектура системы, проектная документация на систему в целом и на ее компоненты, прототипы системы и компонентов, собственно, исходный код, пользовательская документация, документация администратора системы, руководство по развертыванию, база пользовательских запросов, план проекта и пр.
На различных этапах в создание и эксплуатацию ПО вовлекаются люди, выполняющие различные
Похоже, что общую структуру
Существует набор стандартов, определяющих различные элементы в структуре
Стоит отметить, что процессом (или технологическим процессом) называют и набор процессов, увязанных для совместного решения более крупной задачи, например, всей совокупности деятельностей, входящих в
Чтобы получить представление о возможной структуре
а также некоторыми национальными и региональными институтами и организациями (в основном, американскими и европейскими, поскольку именно они оказывают наибольшее влияние на развитие технологий разработки ПО во всем мире):
разработан набор стандартов, регламентирующих различные аспекты
Определяет общую структуру
Самыми крупными элементами являются
| Основные процессы | Поддерживающие процессы | Организационные процессы | Адаптация |
|---|---|---|---|
Приобретение ПО; Передача ПО (в использование); Разработка ПО; Эксплуатация ПО; |
Поддержка ПО Документирование; Управление конфигурациями; Обеспечение качества; Верификация; Валидация; Совместные экспертизы; Аудит; Разрешение проблем |
Управление проектом; Управление инфраструктурой; Усовершенствование процессов; Управление персоналом |
Адаптация описываемых стандартом процессов под нужды конкретного проекта |
Процессы строятся из отдельных
Стандартом определены 74
Каждый
Отличается от предыдущего нацеленностью на рассмотрение программно-аппаратных систем в целом.
В данный момент продолжается работа по приведению этого стандарта в соответствие с предыдущим.
ISO/IEC 15288 предлагает похожую схему рассмотрения жизненного цикла системы в виде набора процессов. Каждый процесс описывается набором его результатов (outcomes), которые достигаются при помощи различных
Всего выделено 26 процессов, объединяемых в 5 групп.
| Процессы выработки соглашений | Процессы уровня организации | Процессы уровня проекта | Технические процессы | Специальные процессы |
|---|---|---|---|---|
Приобретение системы; Поставка системы |
Управление окружением; Управление инвестициями; Управление процессами; Управление ресурсами; Управление качеством |
Планирование; Оценивание; Мониторинг; Управление рисками; Управление конфигурацией; Управление информацией; Выработка решений |
Определение требований; Анализ требований; Проектирование архитектуры; Реализация; Интеграция; Верификация; Валидация; Передача в использование; Эксплуатация; Поддержка; Изъятие из эксплуатации |
Адаптация описываемых стандартом процессов под нужды конкретного проекта |
Помимо процессов, определено 123 различных результата и 208
Деятельности в рамках этого процесса следующие.
Определяет правила оценки
В качестве основы для
Определяются 5 категорий, включающих 35 процессов и 201
| Отношения "заказчик-поставщик" | Процессы уровня организации | Процессы уровня проекта | Инженерные процессы | Процессы поддержки |
|---|---|---|---|---|
Приобретение ПО; Составление контракта; Определение нужд заказчика; Проведение совместных экспертиз и аудитов; Подготовка к передаче; Поставка и развертывание; Поддержка эксплуатации; Предоставление услуг; Оценка удовлетворенности заказчиков |
Развитие бизнеса; Определение процессов; Усовершенствование процессов; Обучение; Обеспечение переиспользования; Обеспечение инструментами; Обеспечение среды для работы |
Планирование жизненного цикла; Планирование проекта; Построение команды; Управление требованиями; Управление качеством; Управление рисками; Управление ресурсами и графиком работ; Управление подрядчиками |
Выделение системных требований и проектирование системы в целом; Выделение требований к ПО; Проектирование ПО; Реализация, интеграция и тестирование ПО; Интеграция и тестирование системы; Сопровождение системы и ПО |
Разработка документации; Управление конфигурацией; Обеспечение качества; Разрешение проблем; Проведение экспертиз |
Например, приобретение ПО включает такие
Нацелен на описание того, как создать специализированный
Например, подпроцесс разработки состоит из групп деятельностей по выделению требований, по проектированию и по реализации. Группа деятельностей по проектированию включает архитектурное проектирование, проектирование баз данных, проектирование интерфейсов, детальное проектирование компонентов.
Аналог ISO/IEC 12207, сменил ранее использовавшиеся стандарты J-Std-016-1995
CMM описывает различные степени зрелости процессов в организациях, определяя 5 уровней организаций.
Организации, разрабатывающие ПО, но не имеющие осознанного
В таких организациях ведется учет затрат ресурсов и отслеживается ход проектов, установлены правила управления проектами, основанные на имеющемся опыте.
В таких организациях имеется принятый, полностью документированный, соответствующий реальному положению дел и доступный персоналу
В этих организациях, помимо установленного и описанного процесса, используются измеримые показатели качества продуктов и результативности процессов, которые позволяют достаточно точно предсказывать объем ресурсов (времени, денег, персонала), необходимый для разработки продукта с определенным качеством.
В таких организациях, помимо процессов и методов их оценки, имеются методы определения слабых мест, определены процедуры поиска и оценки новых методов и техник разработки, обучения персонала работе с ними и их включения в общий процесс организации в случае повышения эффективности производства.
Согласно CMM, уровни зрелости организации можно определять по использованию четко определенных техник и процедур, относящихся к различным ключевым областям процесса. Каждая такая область представляет собой набор связанных
Ключевые области процесса описываются с помощью наборов ключевых практик. Ключевые практики классифицированы на несколько видов: обязательства (commitments to perform), возможности (abilities to perform), деятельности (activities performed), измерения (measurements and analysis) и проверки (verifying implementations).
Например, управление требованиями связано со следующими практиками:
Проекты должны следовать определенной политике организации по управлению требованиями.
В каждом проекте должен определяться ответственный за анализ системных требований и привязку их к аппаратному, программному обеспечению и другим компонентам системы.
Требования должны быть документированы.
Для управления требованиями должны быть выделены адекватные ресурсы и бюджет.
Персонал должен проходить обучение в области управления требованиями.
Прежде чем быть включенными в проект, требования подвергаются анализу на полноту, адекватность, непротиворечивость и пр.
Выделенные требования используются в качестве основы для планирования и выполнения других работ.
Изменения в требованиях анализируются и включаются в проект.
Производится периодическое определение статуса требований и статуса деятельности по управлению ими.
Деятельность по управлению требованиями периодически анализируется старшими менеджерами.
Деятельность по управлению требованиями периодически и на основании значимых событий анализируется менеджером проекта.
Группа обеспечения качества проводит анализ и аудит деятельности по управлению требованиями и отчитывается по результатам этого анализа.
Таблица 2.4 суммирует информацию о количестве практик различных видов, приписанных к разным ключевым областям процесса.
| Уровни | Область процесса | Обязательства | Возможности | Деятельности | Измерения | Проверки |
|---|---|---|---|---|---|---|
| 2 | Управление требованиями | 1 | 4 | 3 | 1 | 3 |
| Планирование проектов | 2 | 4 | 15 | 1 | 3 | |
| Надзор за ходом проекта | 2 | 5 | 13 | 1 | 3 | |
| Управление подрядчиками | 2 | 3 | 13 | 1 | 3 | |
| Обеспечение качества ПО | 1 | 4 | 8 | 1 | 3 | |
| Управление конфигурацией | 1 | 5 | 10 | 1 | 4 | |
| 3 | Контроль соблюдения технологического процесса | 3 | 4 | 7 | 1 | 1 |
| Выработка и поддержка технологического процесса | 1 | 2 | 6 | 1 | 1 | |
| Обучение персонала | 1 | 4 | 6 | 2 | 3 | |
| Интегрированное управление | 1 | 3 | 11 | 1 | 3 | |
| Разработка программного продукта | 1 | 4 | 10 | 2 | 3 | |
| Координация деятельности групп | 1 | 5 | 7 | 1 | 3 | |
| Проведение экспертиз | 1 | 3 | 3 | 1 | 1 | |
| 4 | Управление процессом на основе метрик | 2 | 5 | 7 | 1 | 3 |
| Управление качеством ПО | 1 | 3 | 5 | 1 | 3 | |
| 5 | Предотвращение дефектов | 2 | 4 | 8 | 1 | 3 |
| Управление изменениями технологий | 3 | 5 | 8 | 1 | 2 | |
| Управление изменениями процесса | 2 | 4 | 10 | 1 | 2 |
Эта модель представляет собой результат интеграции моделей CMM для продуктов и процессов, а также для разработки ПО и разработки программно-аппаратных систем.
Основные изменения по сравнению с CMM следующие.
Все области процесса делятся на 4 категории. В приводимом ниже списке области процесса помечены номером уровня, начиная с которого они должны поддерживаться согласно CMMI.
Включает выработку и поддержку процесса (3), контроль соблюдения процесса (3), обучение (3), измерение показателей процесса (4), внедрение инноваций (5).
Включает планирование проектов (2), контроль хода проекта (2), управление соглашениями с поставщиками (2), интегрированное управление проектами (3), управление рисками (3), построение команд (3), управление поставщиками (3) и измерение показателей результативности и хода проекта (4).
Включают выработку требований (3), управление требованиями (2), выработку технических решений (3), интеграцию продуктов (3), верификацию (3) и валидацию (3).
Включают управление конфигурацией (2), обеспечение качества продуктов и процессов (2), проведение измерений и анализ их результатов (2), управление окружением (3), анализ и принятие решений (3), анализ, разрешение и предотвращение проблем (5).
В целом перечисленные стандарты связаны так, как показано на рис. 2.1 (сплошные стрелки указывают направления исторического развития, жирная стрелка обозначает идентичность, пунктирные стрелки показывают влияние одних стандартов на другие).
(рис 2.1) Стандарты, описывающие структуру жизненного цикла ПОСтандарты являются суммой опыта, который был накоплен экспертами в инженерии ПО на основе огромного количества проектов, проводившихся в рамках коммерческих структур США и Европы и в рамках военных контрактов. Большая часть стандартов создавалась как набор критериев отбора поставщиков программного обеспечения для министерства обороны США, и эту задачу они решают достаточно успешно.
Все рассмотренные стандарты определяют некоторый набор
Кроме того, данные стандарты не предписывают четких и однозначных схем построения
Стоит заметить, что стандарты могут достаточно сильно разойтись с реальной разработкой, если в ней используются новейшие методы автоматизации разработки и сопровождения ПО. Стандарты организаций ISO и IEEE построены на основе имеющегося эмпирического опыта разработки, полученного в рамках распространенных некоторое время назад парадигм и инструментальных средств. Это не значит, что они устарели, поскольку их авторы имеют достаточно хорошее представление о новых методах и технологиях разработки и пытались смотреть вперед. Но при использовании новаторских технологий в создании ПО часть требований стандарта может обеспечиваться совершенно иными способами, чем это предусмотрено в нем, а часть артефактов может отсутствовать в рамках данной технологии, исчезнув внутри автоматизированных процессов.
Все обсуждаемые стандарты так или иначе пытаются описать, как должен выглядеть любой
В рамках специфических
Наиболее широко известной и применяемой долгое время оставалась так называемая
(рис 2.2) Последовательность разработки согласно "классической" каскадной моделиОднако, если внимательно прочитать статью [16], оказывается, что она не предписывает следование именно этому порядку работ, а, скорее, представляет модель итеративного процесса (см. рис.2.3) — в ее последовательном виде эта модель закрепилась, по-видимому, в представлении чиновников из министерств и управленцев компаний, работающих с этими министерствами по контрактам. При реальной работе в соответствии с моделью, допускающей движение только в одну сторону, обычно возникают проблемы при обнаружении недоработок и ошибок, сделанных на ранних этапах. Но еще более тяжело иметь дело с изменениями окружения, в котором разрабатывается ПО (это могут быть изменения требований, смена подрядчиков, изменения политик разрабатывающей или эксплуатирующей организации, изменения отраслевых стандартов, появление конкурирующих продуктов и пр.).
Работать в соответствии с этой моделью можно, только если удается предвидеть заранее возможные перипетии хода проекта и тщательно собирать и интегрировать информацию на первых этапах, с тем чтобы впоследствии можно было пользоваться их результатами без оглядки на возможные изменения.
(рис 2.3) Ход разработки, предлагаемый в статьеСреди разработчиков и исследователей, имевших дело с разработкой сложного ПО, практически с самого зарождения индустрии производства программ (см., например, [17]) большую популярность имели модели эволюционных или итеративных процессов, поскольку они обладают большей гибкостью и способностью работать в меняющемся окружении.
На первой итерации разрабатывается кусок системы, не зависящий от других. При этом большая часть или даже полный цикл работ проходится на нем, затем оцениваются результаты и на следующей итерации либо первый кусок переделывается, либо разрабатывается следующий, который может зависеть от первого, либо как-то совмещается доработка первого куска с добавлением новых функций. В результате на каждой итерации можно анализировать промежуточные результаты работ и реакцию на них всех заинтересованных лиц, включая пользователей, и вносить корректирующие изменения на следующих итерациях. Каждая итерация может содержать полный набор
(рис 2.4) Возможный ход работ по итеративной моделиИтеративный процесс предполагает, что разные
Вместе с гибкостью и возможностью быстро реагировать на изменения,
Развитием идеи итераций является
Основным ее новым элементом является общая структура действий на каждой итерации — планирование, определение задач, ограничений и вариантов решений, оценка предложенных решений и рисков, выполнение основных работ итерации и оценка их результатов.
Название "
(рис 2.5) Изображение хода работ по спиральной модели согласно БоемуРис. 2.5 показывает возможное развитие проекта по
На следующей лекции мы рассмотрим в деталях два современных итеративных
В первой лекции говорилось о том, что сложную программную систему построить "простыми" методами невозможно. Ее разработка с неизбежностью будет тоже сложной деятельностью.
Привести такое предприятие к успеху возможно на основе общих принципов работы со сложными системами: организовав его в виде набора модулей, используя разные уровни абстракции, переиспользуя отдельные элементы в разных местах так, чтобы изменения в таком элементе автоматически отражались всюду, где он используется.
Разработка ПО — разновидность человеческой деятельности. Выделить ее компоненты можно, определив набор задач, которые нужно решить для достижения конечной цели — построения достаточно качественной системы в рамках заданных сроков и ресурсов. Для решения каждой такой задачи организуется вспомогательная деятельность, к которой можно также применить декомпозицию на отдельные, более мелкие деятельности, и т.д. В итоге должно стать понятно, как решать каждую отдельную подзадачу и всю задачу целиком на основе имеющихся решений для подзадач.
В качестве примеров деятельностей, которые нужно проводить для построения программной системы, можно привести проектирование — выделение отдельных модулей и определение связей между ними с целью минимизации зависимостей между частями проекта и достижения лучшей его обозримости в целом, кодирование — разработку кода отдельных модулей, разработку пользовательской документации, которая необходима для достаточно сложной системы.
Однако для корректного с точки зрения инженерии и экономики рассмотрения вопросов создания сложных систем необходимо, чтобы были затронуты и вопросы эксплуатации системы, внесения в нее изменений, а также самые первые действия в ходе ее создания — анализ потребностей пользователей и выработка решений, "изобретение" функций, удовлетворяющих эти потребности. Без этого невозможно, с одной стороны, учесть реальную эффективность системы в виде отношения полученных результатов ко всем сделанным затратам и, с другой стороны, правильно оценивать в ходе разработки степень соответствия системы реальным нуждам пользователей и заказчиков.
Все эти факторы приводят к необходимости рассмотрения всей совокупности деятельностей, связанных с созданием и использованием ПО, начиная с возникновения идеи о новом продукте и заканчивая удалением его последней копии. Весь период существования ПО, связанный с подготовкой к его разработке, разработкой, использованием и модификациями, начиная с того момента, когда принимается решение разработать/приобрести/собрать из имеющихся компонентов новую систему или приходит сама идея о необходимости программы определенного рода, до того момента, когда полностью прекращается всякое ее использование, называют
В ходе
При этом создаются и перерабатываются различного рода артефакты — создаваемые человеком информационные сущности, документы в достаточно общем смысле, участвующие в качестве входных данных и получающиеся в качестве результатов различных деятельностей. Примерами артефактов являются: модель предметной области, описание требований, техническое задание, архитектура системы, проектная документация на систему в целом и на ее компоненты, прототипы системы и компонентов, собственно, исходный код, пользовательская документация, документация администратора системы, руководство по развертыванию, база пользовательских запросов, план проекта и пр.
На различных этапах в создание и эксплуатацию ПО вовлекаются люди, выполняющие различные
Похоже, что общую структуру
Существует набор стандартов, определяющих различные элементы в структуре
Стоит отметить, что процессом (или технологическим процессом) называют и набор процессов, увязанных для совместного решения более крупной задачи, например, всей совокупности деятельностей, входящих в
Чтобы получить представление о возможной структуре
а также некоторыми национальными и региональными институтами и организациями (в основном, американскими и европейскими, поскольку именно они оказывают наибольшее влияние на развитие технологий разработки ПО во всем мире):
разработан набор стандартов, регламентирующих различные аспекты
Определяет общую структуру
Самыми крупными элементами являются
| Основные процессы | Поддерживающие процессы | Организационные процессы | Адаптация |
|---|---|---|---|
Приобретение ПО; Передача ПО (в использование); Разработка ПО; Эксплуатация ПО; |
Поддержка ПО Документирование; Управление конфигурациями; Обеспечение качества; Верификация; Валидация; Совместные экспертизы; Аудит; Разрешение проблем |
Управление проектом; Управление инфраструктурой; Усовершенствование процессов; Управление персоналом |
Адаптация описываемых стандартом процессов под нужды конкретного проекта |
Процессы строятся из отдельных
Стандартом определены 74
Каждый
Отличается от предыдущего нацеленностью на рассмотрение программно-аппаратных систем в целом.
В данный момент продолжается работа по приведению этого стандарта в соответствие с предыдущим.
ISO/IEC 15288 предлагает похожую схему рассмотрения жизненного цикла системы в виде набора процессов. Каждый процесс описывается набором его результатов (outcomes), которые достигаются при помощи различных
Всего выделено 26 процессов, объединяемых в 5 групп.
| Процессы выработки соглашений | Процессы уровня организации | Процессы уровня проекта | Технические процессы | Специальные процессы |
|---|---|---|---|---|
Приобретение системы; Поставка системы |
Управление окружением; Управление инвестициями; Управление процессами; Управление ресурсами; Управление качеством |
Планирование; Оценивание; Мониторинг; Управление рисками; Управление конфигурацией; Управление информацией; Выработка решений |
Определение требований; Анализ требований; Проектирование архитектуры; Реализация; Интеграция; Верификация; Валидация; Передача в использование; Эксплуатация; Поддержка; Изъятие из эксплуатации |
Адаптация описываемых стандартом процессов под нужды конкретного проекта |
Помимо процессов, определено 123 различных результата и 208
Деятельности в рамках этого процесса следующие.
Определяет правила оценки
В качестве основы для
Определяются 5 категорий, включающих 35 процессов и 201
| Отношения "заказчик-поставщик" | Процессы уровня организации | Процессы уровня проекта | Инженерные процессы | Процессы поддержки |
|---|---|---|---|---|
Приобретение ПО; Составление контракта; Определение нужд заказчика; Проведение совместных экспертиз и аудитов; Подготовка к передаче; Поставка и развертывание; Поддержка эксплуатации; Предоставление услуг; Оценка удовлетворенности заказчиков |
Развитие бизнеса; Определение процессов; Усовершенствование процессов; Обучение; Обеспечение переиспользования; Обеспечение инструментами; Обеспечение среды для работы |
Планирование жизненного цикла; Планирование проекта; Построение команды; Управление требованиями; Управление качеством; Управление рисками; Управление ресурсами и графиком работ; Управление подрядчиками |
Выделение системных требований и проектирование системы в целом; Выделение требований к ПО; Проектирование ПО; Реализация, интеграция и тестирование ПО; Интеграция и тестирование системы; Сопровождение системы и ПО |
Разработка документации; Управление конфигурацией; Обеспечение качества; Разрешение проблем; Проведение экспертиз |
Например, приобретение ПО включает такие
Нацелен на описание того, как создать специализированный
Например, подпроцесс разработки состоит из групп деятельностей по выделению требований, по проектированию и по реализации. Группа деятельностей по проектированию включает архитектурное проектирование, проектирование баз данных, проектирование интерфейсов, детальное проектирование компонентов.
Аналог ISO/IEC 12207, сменил ранее использовавшиеся стандарты J-Std-016-1995
CMM описывает различные степени зрелости процессов в организациях, определяя 5 уровней организаций.
Организации, разрабатывающие ПО, но не имеющие осознанного
В таких организациях ведется учет затрат ресурсов и отслеживается ход проектов, установлены правила управления проектами, основанные на имеющемся опыте.
В таких организациях имеется принятый, полностью документированный, соответствующий реальному положению дел и доступный персоналу
В этих организациях, помимо установленного и описанного процесса, используются измеримые показатели качества продуктов и результативности процессов, которые позволяют достаточно точно предсказывать объем ресурсов (времени, денег, персонала), необходимый для разработки продукта с определенным качеством.
В таких организациях, помимо процессов и методов их оценки, имеются методы определения слабых мест, определены процедуры поиска и оценки новых методов и техник разработки, обучения персонала работе с ними и их включения в общий процесс организации в случае повышения эффективности производства.
Согласно CMM, уровни зрелости организации можно определять по использованию четко определенных техник и процедур, относящихся к различным ключевым областям процесса. Каждая такая область представляет собой набор связанных
Ключевые области процесса описываются с помощью наборов ключевых практик. Ключевые практики классифицированы на несколько видов: обязательства (commitments to perform), возможности (abilities to perform), деятельности (activities performed), измерения (measurements and analysis) и проверки (verifying implementations).
Например, управление требованиями связано со следующими практиками:
Проекты должны следовать определенной политике организации по управлению требованиями.
В каждом проекте должен определяться ответственный за анализ системных требований и привязку их к аппаратному, программному обеспечению и другим компонентам системы.
Требования должны быть документированы.
Для управления требованиями должны быть выделены адекватные ресурсы и бюджет.
Персонал должен проходить обучение в области управления требованиями.
Прежде чем быть включенными в проект, требования подвергаются анализу на полноту, адекватность, непротиворечивость и пр.
Выделенные требования используются в качестве основы для планирования и выполнения других работ.
Изменения в требованиях анализируются и включаются в проект.
Производится периодическое определение статуса требований и статуса деятельности по управлению ими.
Деятельность по управлению требованиями периодически анализируется старшими менеджерами.
Деятельность по управлению требованиями периодически и на основании значимых событий анализируется менеджером проекта.
Группа обеспечения качества проводит анализ и аудит деятельности по управлению требованиями и отчитывается по результатам этого анализа.
Таблица 2.4 суммирует информацию о количестве практик различных видов, приписанных к разным ключевым областям процесса.
| Уровни | Область процесса | Обязательства | Возможности | Деятельности | Измерения | Проверки |
|---|---|---|---|---|---|---|
| 2 | Управление требованиями | 1 | 4 | 3 | 1 | 3 |
| Планирование проектов | 2 | 4 | 15 | 1 | 3 | |
| Надзор за ходом проекта | 2 | 5 | 13 | 1 | 3 | |
| Управление подрядчиками | 2 | 3 | 13 | 1 | 3 | |
| Обеспечение качества ПО | 1 | 4 | 8 | 1 | 3 | |
| Управление конфигурацией | 1 | 5 | 10 | 1 | 4 | |
| 3 | Контроль соблюдения технологического процесса | 3 | 4 | 7 | 1 | 1 |
| Выработка и поддержка технологического процесса | 1 | 2 | 6 | 1 | 1 | |
| Обучение персонала | 1 | 4 | 6 | 2 | 3 | |
| Интегрированное управление | 1 | 3 | 11 | 1 | 3 | |
| Разработка программного продукта | 1 | 4 | 10 | 2 | 3 | |
| Координация деятельности групп | 1 | 5 | 7 | 1 | 3 | |
| Проведение экспертиз | 1 | 3 | 3 | 1 | 1 | |
| 4 | Управление процессом на основе метрик | 2 | 5 | 7 | 1 | 3 |
| Управление качеством ПО | 1 | 3 | 5 | 1 | 3 | |
| 5 | Предотвращение дефектов | 2 | 4 | 8 | 1 | 3 |
| Управление изменениями технологий | 3 | 5 | 8 | 1 | 2 | |
| Управление изменениями процесса | 2 | 4 | 10 | 1 | 2 |
Эта модель представляет собой результат интеграции моделей CMM для продуктов и процессов, а также для разработки ПО и разработки программно-аппаратных систем.
Основные изменения по сравнению с CMM следующие.
Все области процесса делятся на 4 категории. В приводимом ниже списке области процесса помечены номером уровня, начиная с которого они должны поддерживаться согласно CMMI.
Включает выработку и поддержку процесса (3), контроль соблюдения процесса (3), обучение (3), измерение показателей процесса (4), внедрение инноваций (5).
Включает планирование проектов (2), контроль хода проекта (2), управление соглашениями с поставщиками (2), интегрированное управление проектами (3), управление рисками (3), построение команд (3), управление поставщиками (3) и измерение показателей результативности и хода проекта (4).
Включают выработку требований (3), управление требованиями (2), выработку технических решений (3), интеграцию продуктов (3), верификацию (3) и валидацию (3).
Включают управление конфигурацией (2), обеспечение качества продуктов и процессов (2), проведение измерений и анализ их результатов (2), управление окружением (3), анализ и принятие решений (3), анализ, разрешение и предотвращение проблем (5).
В целом перечисленные стандарты связаны так, как показано на рис. 2.1 (сплошные стрелки указывают направления исторического развития, жирная стрелка обозначает идентичность, пунктирные стрелки показывают влияние одних стандартов на другие).
(рис 2.1) Стандарты, описывающие структуру жизненного цикла ПОСтандарты являются суммой опыта, который был накоплен экспертами в инженерии ПО на основе огромного количества проектов, проводившихся в рамках коммерческих структур США и Европы и в рамках военных контрактов. Большая часть стандартов создавалась как набор критериев отбора поставщиков программного обеспечения для министерства обороны США, и эту задачу они решают достаточно успешно.
Все рассмотренные стандарты определяют некоторый набор
Кроме того, данные стандарты не предписывают четких и однозначных схем построения
Стоит заметить, что стандарты могут достаточно сильно разойтись с реальной разработкой, если в ней используются новейшие методы автоматизации разработки и сопровождения ПО. Стандарты организаций ISO и IEEE построены на основе имеющегося эмпирического опыта разработки, полученного в рамках распространенных некоторое время назад парадигм и инструментальных средств. Это не значит, что они устарели, поскольку их авторы имеют достаточно хорошее представление о новых методах и технологиях разработки и пытались смотреть вперед. Но при использовании новаторских технологий в создании ПО часть требований стандарта может обеспечиваться совершенно иными способами, чем это предусмотрено в нем, а часть артефактов может отсутствовать в рамках данной технологии, исчезнув внутри автоматизированных процессов.
Все обсуждаемые стандарты так или иначе пытаются описать, как должен выглядеть любой
В рамках специфических
Наиболее широко известной и применяемой долгое время оставалась так называемая
(рис 2.2) Последовательность разработки согласно "классической" каскадной моделиОднако, если внимательно прочитать статью [16], оказывается, что она не предписывает следование именно этому порядку работ, а, скорее, представляет модель итеративного процесса (см. рис.2.3) — в ее последовательном виде эта модель закрепилась, по-видимому, в представлении чиновников из министерств и управленцев компаний, работающих с этими министерствами по контрактам. При реальной работе в соответствии с моделью, допускающей движение только в одну сторону, обычно возникают проблемы при обнаружении недоработок и ошибок, сделанных на ранних этапах. Но еще более тяжело иметь дело с изменениями окружения, в котором разрабатывается ПО (это могут быть изменения требований, смена подрядчиков, изменения политик разрабатывающей или эксплуатирующей организации, изменения отраслевых стандартов, появление конкурирующих продуктов и пр.).
Работать в соответствии с этой моделью можно, только если удается предвидеть заранее возможные перипетии хода проекта и тщательно собирать и интегрировать информацию на первых этапах, с тем чтобы впоследствии можно было пользоваться их результатами без оглядки на возможные изменения.
(рис 2.3) Ход разработки, предлагаемый в статьеСреди разработчиков и исследователей, имевших дело с разработкой сложного ПО, практически с самого зарождения индустрии производства программ (см., например, [17]) большую популярность имели модели эволюционных или итеративных процессов, поскольку они обладают большей гибкостью и способностью работать в меняющемся окружении.
На первой итерации разрабатывается кусок системы, не зависящий от других. При этом большая часть или даже полный цикл работ проходится на нем, затем оцениваются результаты и на следующей итерации либо первый кусок переделывается, либо разрабатывается следующий, который может зависеть от первого, либо как-то совмещается доработка первого куска с добавлением новых функций. В результате на каждой итерации можно анализировать промежуточные результаты работ и реакцию на них всех заинтересованных лиц, включая пользователей, и вносить корректирующие изменения на следующих итерациях. Каждая итерация может содержать полный набор
(рис 2.4) Возможный ход работ по итеративной моделиИтеративный процесс предполагает, что разные
Вместе с гибкостью и возможностью быстро реагировать на изменения,
Развитием идеи итераций является
Основным ее новым элементом является общая структура действий на каждой итерации — планирование, определение задач, ограничений и вариантов решений, оценка предложенных решений и рисков, выполнение основных работ итерации и оценка их результатов.
Название "
(рис 2.5) Изображение хода работ по спиральной модели согласно БоемуРис. 2.5 показывает возможное развитие проекта по
На следующей лекции мы рассмотрим в деталях два современных итеративных
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.