Ис. Конспект лекций Маглинец Ю. А. Красноярск сфу 2007 Введение. Понятие и классификация требований
Скачать 0.88 Mb.
|
Кто создаёт и использует требования Как и кем используются требования? Специалист по АТ – постановка задачи, определение рамок проекта, Представитель заказчика – постановка задачи, определение рамок проекта, контроль работы исполнителя, приёмка результатов работы. Архитектор системы – разработка архитектуры, проектирование подсистем Программист – разработка программного кода. Тестировщик – составление тест-плана, тестовых сценариев. Менеджер проекта – планирование и контроль исполнения работ. В рамках курса лекций для всех упомянутых выше лиц будем использовать обобщающий термин «Совладельцы (заинтересованные стороны)» (stakeholders). Совладельцами, вслед за разработчиками RUP и MSF (см., например, [9,13]), будем называть всех участников проекта создания программной системы, прямо или косвенно заинтересованных в его успехе. Авторы большинства современных методологий разработки программных систем сходятся том, что в группе совладельцев ключевую роль играют две группы представителей Заказчика – те, кто ставит стратегические цели и выделяет финансирование и те, кто будет непосредственно использовать разработанный продукт. Причём, в отличие от каскадных методов, где Заказчик подключался в начальной фазе – составлении технического задания и конечной – приёмке готовой работы, в современных методологиях Заказчик, действительно заинтересованный в успехе проекта автоматизации, должен участвовать в нём непрерывно. Организация работы с требованиями на примере MSF В MSF для обозначения роли участников команды софтверного проекта используется понятие ролевых кластеров [4]. MSF основан на постулате о шести качественных целях, достижение которых определяет успешность проекта. Эти цели обуславливают модель проектной группы. В то время как за успех проекта ответственна вся команда, каждый из ее ролевых кластеров, определяемых моделью, ассоциирован с одной из упомянутых шести целей и работает над ее достижением. Шесть ролевых кластеров модели проектной группы – это “Управление продуктом” (product management), “Управление программой” (program management), “Разработка” (development), “Тестирование” (test), “Удовлетворение потребителя” (user experience) и “Управление выпуском” (release management). Они ответственны за различные области компетенции (functional areas) и связанные с ними цели и задачи. MSF организован на базе комбинации каскадной и спиральной моделей. Отдельная стадия работы содержит в себе 5 фаз: Envisioning (выработка концепции), Planning (планирование), Developing (разработка), Stabilizing (стабилизация), Deploying (внедрение). В фазе выработки концепции работа с требованиями наиболее интенсивна (см. табл. 1). Табл. 1. Ролевой кластер Фокус Управление продуктом Общие цели проекта; выявление нужд и требований заказчика; документ общего описания и рамок проекта. Управление программой Цели дизайна; концепция решения; структура проекта. Разработка Прототипирование; анализ технологических возможностей; анализ осуществимости. Удовлетворение потребителя Необходимые эксплуатационные характеристики решения и их влияние на его разработку. Тестирование Стратегии тестирования; критерии приемлемости, их влияние на разработку решения. Управление выпуском Требования внедрения и их влияние на разработку решения; требования сопровождения. Как видно из таблицы, все 6 кластеров работают со своими группами требований. Продолжается плотная работа с требованиями и на следующей фазе – фазе планирования, см. табл. 2. Табл. 2. Ролевой кластер Фокус Управление продуктом Анализ бизнес-требований Управление программой Функциональная спецификация Удовлетворение потребителя Сценарии/примеры использования, пользовательские требования, требования локализации и общедоступности (accessibility). Тестирование Требования тестирования. Управление выпуском Эксплуатационные требования. В фазах разработки и внедрения работа с требованиями сосредотачивается в кластерах управления продуктом и программой, см., соответственно, табл. 3,4. Табл. 3. Ролевой кластер Фокус Управление продуктом Ожидания заказчика. Управление программой Управление функциональной спецификацией. Табл. 4. Ролевой кластер Фокус Управление продуктом Получение отзывов и оценок заказчика; акт о приеме выполненной работы. Управление программой Сопоставление рамок проекта с поставленным решением; управление стабилизацией. Литература к лекции 1. IEEE Standard 830-1998, «IEEE Recommended Practice for Software Requirements Specifications» 2. Петров В. Н. Информационные системы. – СПб.: Питер, 2002. - 688 с. 3. Вигерс Карл Разработка требований к программному обеспечению/Пер, с англ. — М.:Издательско-торговый дом «Русская Редакция», 2004. —576с.: ил. 4. Microsoft Solutions Framework. Модель процессов MSF, версия 3.1 http://www.microsoft.com/Rus/Download.aspx?file=/Msdn/Msf/MSF_process_model_rus.doc 5. Леффингуелл Д., Уидриг Д. Принципы работы с требованиями к программному обеспечению. М.: ИД “Вильямс”, 2002. 6. Введение в Rational Unified Process/ Ф. Кратчен – СПб.: Вильямс, 2002. – 240 с. 7. Каменова, Громов. Моделирование бизнеса. Методология ARIS. — М.: Весть- МетаТехнология, 2001. 8. Коберн А. Быстрая разработка программного обеспечения. – М.: Лори, 2002. 314 с. 9. Белые страницы MSF. http://www.microsoft.com/rus/msf 10. Орлик С., Булуй Ю. Введение в программную инженерию и управление жизненным циклом ПО Программная инженерия. Программные требования. Copyright © Сергей Орлик, 2004-2005. http://www.sorlik.ru/swebok/3-1-software_engineering_requirements.pdf 11. Мацяшек Лешек, А. Анализ требований и проектирование систем. Разработка информационных систем с использованием UML.: Пер. с англ. - М.: Издательский дом "Вильямс", 2002. - 432 с.: ил. - Парал. тит. Англ. 12. Брауде Э. Технологии разработки программного обеспечения. – СПб: Питер, 2004. – 655 с.: ил. 13. Унифицированный процесс разработки программного обеспечения/ А. Якобсон, Г. Буч, Дж. Рамбо – СПб.: Питер , 2002. – 496 с. 3. Контекст задачи анализа требований. Выявление требований. План лекции Свойства требований Анализ требований, бизнес-анализ, анализ проблемной области Методологии бизнес-анализа Требования и архитектура АИС Анализ требований и другие рабочие потоки программной инженерии Анализ требований, бизнес-анализ, анализ проблемной области Источники требований Стратегии выявления требований Интервью Анкетирование Наблюдение Самостоятельное описание требований Совместные семинары Прототипирование В настоящее время существуют уже сотни методик, методологий, процессов, стандартов, регламентирующих те или иные детали выбора и комплексирования потоков работ при разработке автоматизированных информационных систем. То, что в АТ стоит в начале цепочки работ и что её результаты во многом определяют успех проекта мало у кого вызывает сомнения. Другое дело – работы, связанные с бизнес-анализом и бизнес- моделированием. Их роль не столь очевидна и принимается далеко не всеми методологиями. Итак, стоит ли собирать информацию о предприятии, для которого разрабатывается (выбирается) АИС в виде бизнес-моделей или стоит пропустить этот этап и сразу формировать артефакты АТ? Авторы [1], «отцы-основатели» RUP и UML, в этом вопросе дают определённую свободу: можно создавать бизнес-модели при помощи соответствующих расширений UML и рекомендаций RUP, а можно ограничиться выработкой глоссария объектов предметной области. Как и в вопросе выбора глубины проработки артефактов АТ, вопрос – проводить или не проводить бизнес-анализ (или, точнее говоря, анализ проблемной области), решается в зависимости от конкретной задачи. Роль глоссария при АТ. Несколько утрируя, можно сказать, что Заказчик и Разработчик всегда говорят на разных языках. Общее понимание вырабатывается с трудом, этот процесс занимает время, но важность его трудно переоценить: ведь успешная реализация проекта в области и внедрения АИС во многом зависит от того, удастся ли выработать и документировать их общее представление о предмете разработки. Если же Разработчик идёт ещё дальше и вникает в особенности ведения дел на предприятии Заказчика – он, во-первых, сможет добиться лучшего понимания требований к АИС и, во- вторых, участвовать наряду с Заказчиком в формулировке этих требований, анализе пропущенных требований и пр. Глоссарий (подробнее см. в. лекции 4 ) можно рассматривать, как документ, удостоверяющий общее понимание основной терминологии Заказчиком и Разработчиком. Задачу анализа бизнес-процессов (деловое моделирование), столь популярную в последние десятилетия ввиду устойчивой конъюнктуры, следует рассматривать, как часть более общей задачи, анализа проблемной области. Работы, посвящённые анализу проблемной области, появились в отечественной литературе в середине прошлого века; данная тематика неразрывно связано с задачным подходом и инженерией экспертных систем. Применимы ли методы, принятые при построении интеллектуальных систем для такой «более приземлённой» задачи, как задача построения АИС – безусловно, да. Так, стратегии извлечения знаний, рассмотренные в [2], во многом пересекаются с рекомендациями по работе аналитика [3], методы решения задачи путём редукции на подзадачи и поиска в пространстве состояний нашли своё отражение во множестве методик бизнес-анализа, анализа и синтеза программных систем и этот список можно продолжать. Другой вопрос – насколько результативно применение тех или иных моделей и методов при описании организационных систем. Ключ к решению этого вопроса лежит в следующем: вначале надо определить цели и задачи самого бизнес-анализа, как этапа построения КИС. С позиций моделирования, анализ требований (АТ) и анализ проблемной области (АПО) – принципиально разные процессы. АПО преследует классические цели создания модели: налицо объект (автоматизируемое предприятие или организационная система, ОС) и задача аналитика – отразить этот объект в создаваемой модели с требуемой степенью точности (рис. 5-1). Анализ требований, напротив, направлен на моделирование воображаемого, ещё не существующего объекта (АИС) (рис. 2). Т.е. сначала создаётся модель, а затем, на её основании, синтезируется объект. Для того, чтобы прояснить связь между этими процессами, необходимо заметить, что создаваемая АИС также является моделью, по отношении к ОС. Таким образом, создавая документ АТ, мы тем самым порождаем как бы «модель второго порядка», т.к. документ АТ является ничем иным, как моделью модели ОС. Не обладая моделью АПО, мы, конечно, можем создать модель АТ. Но при этом мы рискуем тем, что при синтезе оригинала модели (т.е. АИС), не обладая знаниями об ОС, мы можем попасть в ситуацию рассогласования: результирующая АИС не будет ингерентна (согласована с) ОС и, тем самым, не станет жизнеспособной. Рис. 5-1. Следует ли из этого, что этап АПО является необходимым звеном создания КИС? Нет, не всегда. Здесь уместно обратиться к классификации задач и методологий А. Коберна [8]. Кроме того, это зависит от состава третьей компоненты «треугольника моделирования» – моделирующего субъекта, в нашем случае – коллектива Разработчика. Предприятие (организационная система, ОС) Модель бизнес-анализа М(ОС) Модель анализа требований М(АИС) Аналити- ческая модель М’(АИС) Проектная модель М’’(АИС) Модель реализации М’’’(АИС) АИС моделирует моделирует зависит зависит зависит зависит зависит моделирует моделирует моделирует моделирует Если моделирующий субъект обладает неявными знаниями об ОС в достаточном объёме – значит, АПО можно исключить. На практике это возможно в следующих случаях: а) Разработчик является частью (структурным подразделением, дочерним предприятием и т.д.) ОС, в коллектив Разработчика входят эксперты, хорошо знающие предметную область; б) Заказчик наравне и Разработчиком участвует в создании документа АТ и разделяет с ним ответственность за принятие решений. Это – путь «agile методологий» (см. материалы заключительной лекции ). Рассмотрим теперь обобщённую «формулу» создания АИС. ОС М(ОС) М(АИС) М’(АИС) М’’(АИС) М’’’(АИС) АИС (рис. 5-1). Анализ организационной системы позволяет создать модель её модель М(ОС). Это – модель бизнес-анализа (проблемной области). Анализируя модель проблемной области, в ней можно вычленить, с одной стороны, задачи и функции, реализуемые внутри ОС и функции коммуникации ОС и среды, с другой – устройство предметной области (в начале – на уровне концептуальной модели), с третьей – требования к информации и её обработке. Выделив среди функций те, которые подлежат автоматизации, мы получаем основу для выявления функциональных требований к системе. Остальная, собранная на этапе АПО, информация служит для поиска нефункциональных требований. В результате получаем модель АТ, как первое приближение модели АИС, М(АИС). Затем, путём углублённого анализа и проектирования, формируются, соответственно, аналитическая модель М’(АИС), проектная модель М’’(АИС) и модель реализации М’’’(АИС). Модель уровня реализации позволяет синтезировать собственно АИС, как совокупность программных, информационных, организационных и др. артефактов. АИС в свою очередь представляет собой модель организационной системы М’(ОС), замыкая цикл моделирования. Методологии бизнес-анализа Методологии бизнес анализа можно разделить на три категории по типам моделей: модели, преследующие цель анализа и улучшения организационной системы (например, SWOT , VCM, BPR, CPI/TQM/ISO9000, BSC), модели общего назначения, такие, как SADT, DFD, IDEF1, IDEF3, IDEF5 и другие. модели, специально разработанные для использования при автоматизации (например, ISA, BSP, ARIS, RUP). Наиболее развитая модель описания проблемной области предлагается в методологии ARIS. Архитектура ARIS [5] выделяет в организации следующие подсистемы. Организационная. Определяет структуру организации — иерархию подразделений, должностей и конкретных лиц, многообразие связей между ними, а также территориальную привязку структурных подразделений. Функциональная. Определяет функции, выполняемые в организации. Подсистемы входов/выходов. Определяют потоки используемых и производимых продуктов и услуг. Информационная (подсистема данных). Описывает получение, распространение и доступ к информации (данным). Подсистема процессов управления. Определяет логическую последовательность выполнения функций посредством событий и сообщений. Можно сказать, что подсистема управления — это совокупность разнесенных во времени сообщений разного рода. Подсистема целей организации. Описывает иерархию целей, достигаемых в ходе выполнения того или иного процесса. Подсистема средств производства. Описывает жизненный цикл основных и вспомогательных средств производства. Подсистема человеческих ресурсов. Описывает прием на работу, обучение и продвижение по службе персонала организации. Подсистема расположения организационных структур. Описывает территориальное расположение организационных единиц (конец цитаты). Данное разделение является в определённой мере условным; выделенные «подсистемы» не являются подсистемами в смысле системного анализа, т.к. взаимопроникают и пересекаются. Они представляют скорее совокупность предметов исследования, разных взглядов на исследуемый объект. Слушателю курса предлагается самостоятельно проанализировать, какие группы и категории требований к системе позволяет прояснить та или иная компонента принятой в ARIS структуризации объекта исследования. Требования и архитектура АИС Говоря об архитектуре АИС, обычно подчёркивают деление на аппаратные, программные, информационные, организационные компоненты, их связность и детализацию. Метафора архитектуры RUP описывается в виде 4+1 представлений: логическое, представление процессов, представление реализации и физическое представление связываются между собой представлением вариантов использования (use case), которое играет центральную роль в выработке архитектуры системы (рис. 5-2). Требования первичны по отношению к архитектуре. Но это не значит, что требования и архитектура должны разрабатываться последовательно. Рис. 5-2 Напротив, эти процессы взаимоувязаны и должны быть существенно запараллелены. Как только собран минимальный набор ключевых требований, дающих понимание о том, что нужно делать – должна быть найдена архитектура, объясняющая, как это может быть реализовано. В крупных, ответственных проектах обычно рассматривается несколько альтернативных архитектур, их достоинства и недостатки применительно к исходным требованиям. В процессе работы с требованиями они детализируется, детализируется и архитектура. В случае множественности альтернативных архитектур на определённом уровне детализации необходимо остановиться на одной, чтобы не распылять ресурсы. Но природа требований такова, что, помимо детализации они ещё и изменяются. С изменением требований изменяются и детали архитектуры. Устойчивость архитектуры проявляется в незначительных её изменениях при добавлении, детализации и изменении Представление процессов Логическое представление Физическое представление Представление реализации Представление прецедентов требований. Если наступил момент, при котором появление новой информации о требованиях перестала оказывать влияние на архитектуру – значит, архитектура стабилизировалась. Это – нормальный, естественный путь развития требований и архитектуры. Но что делать, если требования изменились настолько, что архитектура перестала им соответствовать? Причин тому могут быть разные, например: неопытная архитектурная группа не проявила достаточно дальновидности; группа по сбору требований пропустила на ранних стадиях критичные, архитектурно значимые требования; в бизнес-сфере Заказчика произошли большие перемены, вызвавшие коренное изменение требований к системе. Следствия также могут быть различными: договорённость об увеличении сроков и сумм по контракту; исправление ситуации за счёт Разработчика; разрыв контракта. Альтернативный выход предлагается в методологии XP: архитектура – не догма, а всего лишь метафора. Если требования вошли вразрез с существующей архитектурой – значит, архитектуру нужно просто изменить. Следует понимать, что путь и рецепты XP при кажущейся простоте ориентированы далеко не на любой коллектив. Команда XP состоит их профессионалов, имеющих позитивный опыт работы в этой методологии. |