Материал: u_lectures

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

требования не были потеряны или упущены. После утверждения базовой версии набора требований придерживайтесь этого порядка для внесения всех предлагаемых изменений в нее.

Клиенты и другие заинтересованные лица часто уклоняются от нового процесса, однако процесс контроля изменений — не препятствие для модификации. Это механизм суммирования и фильтрации, дающий уверенность, что в проект включены наиболее ценные изменение.

Если предложенное изменение не настолько важно, чтобы заинтересованное в проекте лицо потратило пару минут на передачу его через стандартные, простые каналы, то стоит задуматься о его ценности вообще. Процесс управления должен быть тщательно задокументирован, максимально прост и, что важнее всего, эффективен.

После регистрации запроса на изменение необходимо принять решение о его дальнейшей судьбе. Совет по управлению изменениями (change control board, CCB) (иногда его называют советом по управлению конфигурацией) был признан лучшим практическим решением при разработке ПО27. На практике функции Совета могут быть делегированы и одному человеку (в зависимости от размеров проекта).

Запрос на изменение может быть принят, либо отклонён. В первом случае его необходимо включить в план работ над проектом, во втором – сформулировать мотивированный отказ. При принятии решения по запросу необходимо исходить: а) из степени важности запроса для Заказчика и б) из его стоимости для Разработчика. Стоимость определяется на основании анализа влияния изменения.

Анализ влияния изменения

Анализ влияния обеспечивает точное понимание подтекста предложенного изменения, что помогает команде принимать информированные бизнес-решения о том, какое изменение одобрить. Анализ позволяет выявить компоненты, которые может понадобиться создать, изменить или отклонить, и оценить затраты, связанные с реализацией изменения. До того, как разработчик ответит: «Конечно, без проблем», он должен потратить время на анализ результата изменения.

Председатель совета по управлению изменениями обычно просит опытного разработчика выполнить анализ результата определенного.

Анализа результатов изменений затрагивает три аспекта [8].

1. Определите возможные последствия изменения. Часто они вызывают значительный волновой эффект. Включение множества функций в продукт может снизить

27 McConnell, 1996

его производительность до неприемлемого уровня, например, когда системе, запускаемой ежедневно, потребуется 24 часа для завершения одного запуска.

2.Определите все файлы, модели и документы, которые, возможно, придется изменить, если команда включит все запрошенные изменения.

3.Определите задачи, необходимые для реализации изменения, и оцените усилия, необходимые для выполнения этих задач.

Трассируемость требований

Связи трассируемости помогают следить за развитием требования в обоих направлениях— от первоисточника к реализации и наоборот. Трассируемость представляет собой одну из качеств хороших требований, см. материалы лекции 2

Для осуществления анализа трассируемости каждое требование должно быть уникально идентифицировано.

Требования пользователей

Функциональные требования

Артефакты системы

Рис. 13-1. Основные типы трассируемости требований

Требования пользователей отслеживаются в направлении к формально специфицированным функциям системы, чтобы понять, которые требования будут затронуты, если потребности клиентов изменятся. Это также позволяет убедиться в том, что в спецификации требований отражены все потребности клиента. Можно осуществить анализ и в обратном направлении, чтобы определить происхождение каждого требования к ПО.

В процессе анализа, проектирования и реализации компонент системы можно отслеживать связи, ведущие от требований к артефактам (документам, моделям, программным модулям и т.п.) системы. Этот тип связи гарантирует, что каждое требование удовлетворено, поскольку вы знаете, какой компонент соответствует каждому требованию.

Четвертый тип связи контролирует отдельные артефакты в направлении к требованиям для того, чтобы вы знали причину созданию каждого из них.

Предположим, тестеровщик обнаружит незапланированную функциональность при отсутствии соответствующего требования. Этот фрагмент кода может свидетельствовать, что разработчик реализовал официальное требование, которое аналитик теперь может добавить к спецификации. Или же это может быть код-«сирота», украшающий фрагмент, который не относится к продукту. Связи трассируемости помогут вам отсортировать подобные ситуации и получить более полное представление о том, как именно фрагменты вашей системы составляют одно целое. И наоборот, варианты тестирования, которые созданы на основе отдельных требований и которые можно проследить до этих требований, также представляют собой механизм выявления нереализованных требований, поскольку ожидаемой функциональности не будет.

Наиболее типичный способ представления связей между требованиями и другими элементами системами — матрица трассируемости требований, которую также называют матрицей отслеживания требований или таблицей трассируемости (requirements traceability matrix). В табл. 13-2 показана иллюстрация части такой матрицы из [8].

Табл. 13-2.

Другая форма представления связей трассируемости – дерево трассировок [15].

Литература к лекции

34.Вигерс Карл Разработка требований к программному обеспечению/Пер, с англ.

— М.:Издательско-торговый дом «Русская Редакция», 2004. —576с.: ил.

35.Л.Новиков. Введение в Rational Unified Process.

http://www.interface.ru/rational/interface/151199/rup/main.htm

36.Леффингуелл Д., Уидриг Д. Принципы работы с требованиями к программному обеспечению. М.: ИД “Вильямс”, 2002.

37.Соммервилл, Иан. Инженерия программного обеспечения, 6-е издание. : Пер. с англ. – М.: Издательский дом «Вильямс», 2002. – 624 с.: ил. – Парал. тит. англ.

38.Орлик С., Булуй Ю. Введение в программную инженерию и управление жизненным циклом ПО Программная инженерия. Программные требования. Copyright © Сергей Орлик, 2004-2005.

http://www.sorlik.ru/swebok/3-1-software_engineering_requirements.pdf

8. Совершенствование процессов работы с требованиями

План лекции

Модели совершенствования

ISO9000

SEI-CMM, SEI-CMMI

Принципы совершенствования Процесс совершенствования

Оценка текущих приёмов Планирование

Создание и апробация новых процессов Оценка результатов и приятие решений

Парадигма управления качеством, как способ организации производства, появилась давно. Идеи, заложенные в группе стандартов ISO900028, уходят корнями, в частности, и в такие «советские» изобретения, как поддержка рационализаторских предложений, наставничества и др.

В современной концепции процессно-ориентированной организации бизнеса процесс непрерывного совершенствования качества занимает одну из ключевых позиций.

Применительно к софтверной индустрии, помимо серии ISO9000, наиболее успешно себя зарекомендовавшими стандартами качества являются SEI CMM, SEI CMMI, ISO/IEC 15504 (SPICE), Bootstrap, TickIT.

Модели совершенствования

ISO9000

Активное внедрение методов управления качеством на Западе началось в начале 1960-х годов. В основу стандартов серии ISO9000 легла философия подходов CPI (Continuous Process Improvement) и TQM (Total Quality Management) [39]. Подъём экономики послевоенной Японии во многом был обусловлен идеям, заложенным в TQM.

Качество – термин, который для одних означает необходимость делать то, что желает потребитель, для других — то, что отвечает его потребностям. Менеджмент качества, как он определен в ИСО 9001:2000, исходит прежде всего из того, что люди работают лучше, если им известно то, чем они занимаются. [39].

Поэтому прежде, чем приступить к какому-либо действию, следует получить ответы на вопросы: что нужно делать, кто будет проверять сделанное, как это нужно делать и как определить, что работа завершена? Необходимо также продумать, как вы собираетесь управлять данным процессом и как его можно усовершенствовать.

28 Наиболее распространённые стандарты в области управления качеством