Практика и подходы к восстановлению требований к ИСИсточник: IBM Rational
В статье рассмотрены подходы к восстановлению проектной документации на эксплуатируемые системы в части дисциплины "Управление требованиями". Описаны аспекты организации процесса, объема восстанавливаемой информации и типичные ошибки, встречающиеся в ходе работ. Что такое "восстановление требований"? В ходе своей работы консультанта, который в большей степени занимается сферой управления требованиями, очень часто приходится сталкиваться со словосочетанием "восстановление требований". Давайте посмотрим, что это за зверь и как с ним справиться. Прежде всего разберемся с существительными. Что же такое требование? Итак: Требование к программному обеспечению - Спецификация наблюдаемого поведения системы, например, входных и выходных данных, функций или атрибутов системы или атрибутов внешней среды системы - такое определение термину дано в последней версии RUP. Ещё одно определение возьмем из более старой версии RUP (в последней версии его нет): Требование - это условие, которому должна удовлетворять создаваемая система. Оно может быть получено непосредственно из запросов пользователей, оговорено в контракте, стандарте или в другом формальном документе. Если взять второе определение, то восстановление "условий, которым должна удовлетворять создаваемая система" в принципе не нужно, система-то уже есть. А вот если посмотреть на первое определение, то тут ответ далеко не так очевиден. Нужно ли для функционирующей системы иметь "спецификации наблюдаемого поведения"? В той или иной степени ответ "Да". Теперь действие - восстановление. В толковом словаре одно из толкований звучит так: воссоздание в сознании, в воображении, в памяти чего-либо забытого. Так как воссоздания в памяти для процесса разработки явно недостаточно, то восстанавливать необходимо в проектных артефактах. Исходя из сказанного выше, получаем определение: Восстановление требований - это работа по воссозданию спецификаций наблюдаемого поведения функционирующих систем. Вопрос "в каком объеме восстанавливать требования" пока остался за кадром, займемся им позже. Ответ на него зависит от многих аспектов, которые мы сейчас и рассмотрим. Как мы попали в эту ситуацию и почему хотим выбраться? Ситуация отсутствия проектной документации бывает разной степени тяжести и возникает по многим причинам. Наиболее характерные из них следующие:
Как вы поняли, список отсортирован по возрастанию сложности процедуры восстановления. Первый вопрос, который нужно поставить перед собой в случае недостатка документации, следующий: "А нужно ли вообще её восстанавливать?" Давайте разберемся, зачем могут понадобиться требования к уже функционирующим системам:
Представленные списки не претендуют на полный охват причин и целей задачи восстановления проектной документации. Но если вы читаете эту статью, то, видимо, по какой-то причине с этим столкнулись. Если внимательно присмотреться к последнему списку, то в нем явно или не явно возникают вопросы: "Для кого мы хотим восстановить требования?", "Кто будет пользоваться восстановленной документацией?". Это могут быть: служба поддержки; команда проекта, развивающего систему; потенциальный клиент. Таким образом, одним из аспектов ответа на вопрос "Нужно ли восстанавливать… " будет: если есть потребители восстанавливаемой документации, то это важный аргумент для того чтобы начать этим заняться. Вторым из аспектов как всегда является фактор экономической целесообразности. Но если явно не просматривается потребитель восстанавливаемой информации, то в ней явно нет потребности. Если для вас стало окончательно ясно, что требования восстанавливать нужно, то встает следующий вопрос:
Какой объем требований достаточен? Ответ на этот вопрос следует непосредственно из ответа на вопрос "Кто будет потребителем?". Если это служба поддержки, то для неё скорее всего будут важны следующие аспекты:
Если это команда проекта, развивающего систему, то для неё будут важны вопросы:
В том случае, если систему развивать не предполагается, а производится портирование функционала на новую платформу, то архитектура существующей системы не требуется. Ну, и если вы готовите документацию для потенциального клиента, то стоит вначале ограничиться описанием функциональности и описанием ролей. Ещё один важный фактор необходимо отметить. Кроме описания функций системы нужно зафиксировать, какие цели решаются при использовании этого ПО и какие проблемы бизнеса были решены при внедрении системы. Сразу же хочу определиться. Архитектурный взгляд на систему, несомненно, является одним из самых важных в комплекте проектной документации. Но… с точки зрения RUP это отдельная дисциплина, поэтому касаться её в этой статье мы не будем. Оставим лишь "спецификации наблюдаемого поведения системы". Документацию по установке и настройке анализируемой системы также оставим за рамками статьи. Эти артефакты относятся не к проектной, а к пользовательской документации. Теперь нужно определить:
Рассмотрим набор артефактов дисциплины "Управление требованиями" из RUP. Это:
Из списка необходимых при восстановлении артефактов сразу же можно исключить Запросы заинтересованных лиц - запросы к разработанной системе собирать бессмысленно. Концепция системы - необходимый артефакт. Если нет ресурсов на восстановление, то самое правильное - восстановить только концепцию. Глоссарий - очень полезный артефакт. Удобнее иметь один глоссарий на предметную область, а не отдельный документ на систему. Дополнительные спецификации - нефункциональные требования к анализируемой системе - восстанавливать необходимо. Если система небольшая, то нефункциональные требования можно фиксировать отдельным разделом в Концепции. Модель прецедентов - если планируется дальнейшая разработка системы, то модель нужна. Описание прецедента (раскадровка) - если планируется дальнейшая разработка системы, то раскадровка нужна. Кроме того, хорошо иметь поведенческие диаграммы прецедентов: диаграммы активности, последовательности, состояний. Если имеется руководство пользователя системой, то оно может заменить описания прецедентов. План управления требованиями - необходим. В нем нужно определить границы восстанавливаемых требований и организацию процесса. Что касается атрибутов требований, то их можно использовать для организации процесса. Кроме артефактов требований может оказаться полезным восстановить некоторые аспекты бизнес-модели:
Довольно часто для фиксации требований в организациях используют документ "Техническое задание". Стандарт его содержания изложен в ГОСТ 34.602-89. Он говорит о том, что в документе должны быть следующие разделы:
С точки зрения RUP, разделы 5, 6, 7 относятся к другим дисциплинам: управление проектом, тестирование. Для уже существующих систем проектно-экономические показатели, планы и порядок тестирования восстанавливать не имеет смысла. Информация, содержащаяся в разделе "Общие сведения", обычно содержится в контрактных документах. Для существующих систем она не требуется. Подытоживая, можно сказать, что в Техническом задании следует восстанавливать только те разделы, которые описывают свойства анализируемой системы. Причем в том объеме, который востребован потребителем этого документа. Итак, мы определили состав восстанавливаемых артефактов, статическую модель. Теперь нам нужно определиться с динамикой - как этот процесс лучше всего организовать.
Как управлять восстановлением требований Наверное, многие уже поняли, что процесс восстановления требований (или в более общем виде - проектной документации) - это внутренний проект организации. И он должен быть организован как стандартный проект с некоторыми особенностями. Рабочими продуктами проекта будут являться документы и модели, а не код. Заинтересованными лицами проекта будут члены проектной команды, персонал поддержки, а не внешний заказчик (считаем маркетинг входящим в проектную команду). Непосредственно проект не принесет прибыли, так как он внутренний. Однако другие проекты (или сервисы), используя его результаты, должны сократить издержки. Нужно отметить, что восстановление требований нужно организовывать как отдельный проект, а не встраивать его в какой либо проект по разработке. Почему? У этих проектов разные цели. Кроме того, легче управлять ресурсами. Фактически такой проект мы заканчиваем после выполнения двух фаз RUP: Начало и Уточнение. В течение фазы Начало нам нужно принять решение о необходимости восстановления данных. Для этого нужно определить заинтересованных лиц и выяснить, в каком объеме им необходима проектная документация. Как и в стандартном процессе управления требованиями, эту задачу можно назвать "Определение запросов заинтересованных лиц". При решении задачи также необходимо выяснять "проблемы за проблемами", почему потребовалось восстановление требований и как это влияет на бизнес. Ещё раз хочу отметить, что собираются не запросы к системе, а запросы к восстанавливаемой проектной документации. Далее в фазе Начало необходимо выполнить экономическое обоснование проекта. Форма и глубина анализа зависят от уровня инвестиций, требуемых для проекта. Параллельно с уточнением запросов заинтересованных лиц следует разработать План восстановления требований. Если в проекте разработки ПО план имеет целью описать артефакты требований, типы требований, атрибуты требований, как будет выполняться управление трассируемостью, то для проекта восстановления в первую очередь важны: заинтересованные лица проекта, цели проекта, артефакты требований в привязке к заинтересованным лицам, типы требований, границы восстановления, описание процесса восстановления, источники данных. Если посмотреть внимательно, то в План восстановления требований мы включили разделы документа Концепция (описали концепцию восстановления). Сделано это для того чтобы не размножать Концепции. Всё управленческое - в план, а Концепция относится к восстанавливаемым требованиям. Если анализируемая система будет развиваться, то для этого проекта потребуется План управления требованиями, а для развивающихся систем могут быть актуальны одновременно оба документа. Если решение о начале работ принято, то проект переходит в фазу Уточнение. Удобнее всего начать с восстановления диаграммы прецедентов. Источником информации для этой диаграммы являются: Руководство пользователя, Руководство администратора, меню системы, список ролей в системе (например, в настройках системы). На основании диаграммы прецедентов восстанавливается Концепция. Есть несколько аспектов этой работы. Если вы восстанавливаете документацию к большому количеству небольших утилит для последующего переноса их на новую платформу, то имеет смысл группировать их и создавать Концепцию на группу. Группировка производится таким образом, чтобы в последующих проектах разработки вся группа стала частями одной будущей системы. При восстановлении Концепции к большой системе можно разбить её на подсистемы и восстанавливать Концепцию для каждой подсистемы. Правило разбиения остается таким же, как и для проектов разработки: в документе должно быть описано от 25 до 99 функциональных возможностей. В ходе работы над Концепцией необходимо, насколько это возможно, понять и зафиксировать бизнес-цели, решаемые при помощи анализируемой системы. Параллельно с восстановлением Концепции можно восстанавливать Дополнительную спецификацию. В этом артефакте следует фиксировать фактические параметры функционирования системы: аспекты надежности, производительности и прочие нефункциональные свойства системы. Источником данных для этого документа может быть статистика, замеры производительности, результаты нагрузочного тестирования и т. д. Этот документ может быть полезен службе поддержки и потенциальным клиентам. Разработчики могут использовать этот документ для оценки изменения параметров системы после доработки. Одной из наиболее трудоемких задач является восстановление бизнес-правил функционирующей системы. Источниками данных для этого артефакта являются алгоритмы системы и специалисты бизнес-подразделений организации. По возможности в этом документе нужно изложить, почему в системе используется именно такое бизнес-правило или ограничение. Этот артефакт можно не восстанавливать, если алгоритмы и ограничения системы будут описаны в соответствующих описаниях прецедентов. Иными словами, если описания прецедентов восстанавливаться не будут, то нужно восстановить все бизнес-правила в одном документе. Если описания прецедентов будут восстанавливаться, то в них нужно включить бизнес-правила и отдельный документ для них не создавать. Источниками данных для модели сущностей предметной области служат результаты реверс-инжиниринга исходного кода и руководство пользователя. Для описания прецедентов модели поведения предметной области источниками данных служат руководство пользователя и алгоритмы функционирования системы.
Витязь на распутье (или кто всем этим займется?) Как показывает практика, главный вопрос при восстановлении требований: "Кому все это поручить, когда все заняты?". Как и все подобного рода вопросы, это вопрос ресурсных приоритетов. Где взять ресурс? У этой проблемы существуют три основных варианта решения.
Однако все три подхода имеют право на жизнь. Первый вариант предпочтителен в том случае, когда ПС изменяется мало, но требования по каким-то причинам нужны. Он также полезен при расширении проектной команды. Новые специалисты осваивают систему и производят полезный продукт. Второй вариант предпочтителен в том случае, когда ПС меняется интенсивно, команда проекта стабильна. Требования можно восстановить более качественно. Удобно применять в том случае, когда разработчики анализируемого ПО доступны и продолжают его разработку. Третий вариант предпочтителен в том случае, когда имеется возможность задействовать разработчика анализируемого ПО. Например, когда специалист уволился, но доступен в качестве стороннего ресурса.
Хуже граблей только детские грабли. Ошибки и как их избежать Наиболее часто встречаются следующие ошибки.
|