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


Скачать 3.64 Mb.
Название Чем программирование отличается от программной инженерии? Тем, что первое является некоторой абстрактной деятельностью и может происходить во многих различных
страница 9/47
Тип Документы
rykovodstvo.ru > Руководство эксплуатация > Документы
1   ...   5   6   7   8   9   10   11   12   ...   47

1.8Контекст задачи анализа требований

1.8.1Анализ требований, бизнес-анализ, анализ проблемной области


В настоящее время существуют уже сотни методик, методологий, процессов, стандартов, регламентирующих те или иные детали выбора и комплексирования потоков работ при разработке автоматизированных информационных систем. То, что в АТ стоит в начале цепочки работ и что ее результаты во многом определяют успех проекта мало у кого вызывает сомнения. Другое дело - работы, связанные с бизнес-анализом и бизнес-моделированием. Их роль не столь очевидна и принимается далеко не всеми методологиями. Итак, стоит ли собирать информацию о предприятии, для которого разрабатывается (выбирается) АИС в виде бизнес-моделей или стоит пропустить этот этап и сразу формировать артефакты АТ?

Авторы [5.1], "отцы-основатели" RUP и UML, в этом вопросе дают определенную свободу: можно создавать бизнес-модели при помощи соответствующих расширений UML и рекомендаций RUP, а можно ограничиться выработкой глоссария объектов предметной области. Как и в вопросе выбора глубины проработки артефактов АТ, вопрос - проводить или не проводить бизнес-анализ (или, точнее говоря, анализ проблемной области), решается в зависимости от конкретной задачи.

Роль глоссария при АТ.


Несколько утрируя, можно сказать, что Заказчик и Разработчик всегда говорят на разных языках. Общее понимание вырабатывается с трудом, этот процесс занимает время, но важность его трудно переоценить: ведь успешная реализация проекта в области и внедрения АИС во многом зависит от того, удастся ли выработать и документировать их общее представление о предмете разработки. Если же Разработчик идет еще дальше и вникает в особенности ведения дел на предприятии Заказчика - он, во-первых, сможет добиться лучшего понимания требований к АИС и, во-вторых, участвовать наряду с Заказчиком в формулировке этих требований, анализе пропущенных требований и пр. Глоссарий (подробнее см. в лекции 8) можно рассматривать, как документ, удостоверяющий общее понимание основной терминологии Заказчиком и Разработчиком.

Задачу анализа бизнес-процессов (деловое моделирование), столь популярную в последние десятилетия ввиду устойчивой конъюнктуры, следует рассматривать, как часть более общей задачи, анализа проблемной области. Работы, посвященные анализу проблемной области, появились в отечественной литературе в середине прошлого века; данная тематика неразрывно связана с задачным подходом и инженерией экспертных систем. Применимы ли методы, принятые при построении интеллектуальных систем для такой "более приземленной" задачи, как задача построения АИС - безусловно, да. Так, стратегии извлечения знаний, рассмотренные в [5.2], во многом пересекаются с рекомендациями по работе аналитика [5.3], методы решения задачи путем редукции на подзадачи и поиска в пространстве состояний нашли свое отражение во множестве методик бизнес-анализа, анализа и синтеза программных систем и этот список можно продолжать. Другой вопрос - насколько результативно применение тех или иных моделей и методов при описании организационных систем.

Ключ к решению этого вопроса лежит в следующем: вначале надо определить цели и задачи самого бизнес-анализа, как этапа построения КИС.

С позиций моделирования, анализ требований (АТ) и анализ проблемной области (АПО) - принципиально разные процессы.

АПО преследует классические цели создания модели: налицо объект (автоматизируемое предприятие или организационная система, ОС) и задача аналитика - отразить этот объект в создаваемой модели с требуемой степенью точности (рис. 5.1).

Анализ требований, напротив, направлен на моделирование воображаемого, еще не существующего объекта (АИС) (рис. 5.2). Т.е. сначала создается модель, а затем, на ее основании, синтезируется объект.

Для того, чтобы прояснить связь между этими процессами, необходимо заметить, что создаваемая АИС также является моделью, по отношении к ОС. Таким образом, создавая документ АТ, мы тем самым порождаем как бы "модель второго порядка", т.к. документ АТ является ничем иным, как моделью модели ОС. Не обладая моделью АПО, мы, конечно, можем создать модель АТ. Но при этом мы рискуем тем, что при синтезе оригинала модели (т.е. АИС), не обладая знаниями об ОС, мы можем попасть в ситуацию рассогласования: результирующая АИС не будет ингерентна (согласована с) ОС и, тем самым, не станет жизнеспособной.




Рис. 5.1. 

Следует ли из этого, что этап АПО является необходимым звеном создания КИС? Нет, не всегда. Здесь уместно обратиться к классификации задач и методологий А. Коберна [5.4]. Кроме того, это зависит от состава третьей компоненты "треугольника моделирования" - моделирующего субъекта, в нашем случае - коллектива Разработчика. Если моделирующий субъект обладает неявными знаниями об ОС в достаточном объеме - значит, АПО можно исключить. На практике это возможно в следующих случаях:

  • Разработчик является частью (структурным подразделением, дочерним предприятием и т.д.) ОС, в коллектив Разработчика входят эксперты, хорошо знающие предметную область;

  • Заказчик наравне с Разработчиком участвует в создании документа АТ и разделяет с ним ответственность за принятие решений. Это - путь "agile методологий" (см. материалы лекции 15).

Рассмотрим теперь обобщенную "формулу" создания АИС. ОС->М(ОС)->М(АИС)->М’(АИС)->М’’(АИС)->М’’’(АИС)->АИС (рис. 5.1).

Анализ организационной системы позволяет создать ее модель М(ОС). Это - модель бизнес-анализа (проблемной области).

Анализируя модель проблемной области, в ней можно вычленить,

  • с одной стороны, задачи и функции, реализуемые внутри ОС и функции коммуникации ОС и среды,

  • с другой - устройство предметной области (в начале - на уровне концептуальной модели),

  • с третьей - требования к информации и ее обработке.

Выделив среди функций те, которые подлежат автоматизации, мы получаем основу для выявления функциональных требований к системе. Остальная, собранная на этапе АПО, информация служит для поиска нефункциональных требований. В результате получаем модель АТ, как первое приближение модели АИС, М(АИС).

Затем, путем углубленного анализа и проектирования, формируются, соответственно, аналитическая модель М’(АИС), проектная модель М’’(АИС) и модель реализации М’’’(АИС).

Модель уровня реализации позволяет синтезировать собственно АИС, как совокупность программных, информационных, организационных и др. артефактов.

АИС в свою очередь представляет собой модель организационной системы М’(ОС), замыкая цикл моделирования.

1.8.2Методологии бизнес-анализа


Методологии бизнес анализа можно разделить на три категории по типам моделей:

  • модели, преследующие цель анализа и улучшения организационной системы (например, SWOT , VCM, BPR, CPI/TQM/ISO9000, BSC),

  • модели общего назначения, такие, как SADT, DFD, IDEF1, IDEF3, IDEF5 и другие,

  • модели, специально разработанные для использования при автоматизации (например, ISA, BSP, ARIS, RUP).

Наиболее развитая модель описания проблемной области предлагается в методологии ARIS.

Архитектура ARIS [5.5] выделяет в организации следующие подсистемы.

  • Организационная. Определяет структуру организации - иерархию подразделений, должностей и конкретных лиц, многообразие связей между ними, а также территориальную привязку структурных подразделений.

  • Функциональная. Определяет функции, выполняемые в организации.

  • Подсистемы входов/выходов. Определяют потоки используемых и производимых продуктов и услуг.

  • Информационная (подсистема данных). Описывает получение, распространение и доступ к информации (данным).

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

  • Подсистема целей организации. Описывает иерархию целей, достигаемых в ходе выполнения того или иного процесса.

  • Подсистема средств производства. Описывает жизненный цикл основных и вспомогательных средств производства.

  • Подсистема человеческих ресурсов. Описывает прием на работу, обучение и продвижение по службе персонала организации.

  • Подсистема расположения организационных структур. Описывает территориальное расположение организационных единиц.

Данное разделение является в определенной мере условным; выделенные "подсистемы" не являются подсистемами в смысле системного анализа, т.к. взаимопроникают и пересекаются. Они представляют скорее совокупность предметов исследования, разных взглядов на исследуемый объект.

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

1.8.3Требования и архитектура АИС


Говоря об архитектуре АИС, обычно подчеркивают деление на аппаратные, программные, информационные, организационные компоненты, их связность и детализацию.

Метафора архитектуры RUP описывается в виде 4+1 представлений: логическое, представление процессов, представление реализации и физическое представление связываются между собой представлением вариантов использования (use case), которое играет центральную роль в выработке архитектуры системы (рис. 5.2).

Требования первичны по отношению к архитектуре. Но это не значит, что требования и архитектура должны разрабатываться последовательно.




Рис. 5.2. 

Напротив, эти процессы взаимоувязаны и должны быть существенно запараллелены. Как только собран минимальный набор ключевых требований, дающих понимание о том, что нужно делать - должна быть найдена архитектура, объясняющая, как это может быть реализовано. В крупных, ответственных проектах обычно рассматривается несколько альтернативных архитектур, их достоинства и недостатки применительно к исходным требованиям.

В процессе работы с требованиями они детализируются, детализируется и архитектура. В случае множественности альтернативных архитектур на определенном уровне детализации необходимо остановиться на одной, чтобы не распылять ресурсы. Но природа требований такова, что, помимо детализации они еще и изменяются. С изменением требований изменяются и детали архитектуры. Устойчивость архитектуры проявляется в незначительных ее изменениях при добавлении, детализации и изменении требований. Если наступил момент, при котором появление новой информации о требованиях перестала оказывать влияние на архитектуру - значит, архитектура стабилизировалась.

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

Альтернативный выход предлагается в методологии XP: архитектура - не догма, а всего лишь метафора. Если требования вошли вразрез с существующей архитектурой - значит, архитектуру нужно просто изменить. Следует понимать, что путь и рецепты XP при кажущейся простоте ориентированы далеко не на любой коллектив. Команда XP состоит из профессионалов, имеющих позитивный опыт работы в этой методологии.

1.8.4Анализ требований и другие рабочие потоки программной инженерии


Рассмотрим краткий обзор рабочих потоков RUP и их связь с потоком работ АТ (рис. 5.3).




Рис. 5.3. 

Поток работ "деловое моделирование" служит основой для анализа и формирования требований к АИС, позволяет избежать ошибок.

Поток работ "управление средой" предоставляет исходную информацию для рабочей группы АТ, регламентирующую форматы оформления, CASE-средства, регламенты работы.

Поток работ "управление проектом" основывается на спецификации требований. Стратегическое и тактическое планирование, формирование промежуточных вех (ожидаемых результатов) тесно увязано с требованиями к системе.

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

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

Для потока работ "реализация" связь с требованиями не указана. Между тем автор считает, что требования должны анализироваться и учитываться во ВСЕХ рабочих потоках проекта, даже если это формально не предусмотрено выбранным группой процессом. Людям свойственно ошибаться и ошибки, совершенные на ранних стадиях проекта, при движении от этапа к этапу нарастают, как снежный ком. Поэтому любому участнику команды, заинтересованному в успехе проекта, нелишне заглянуть в спецификацию требований и убедиться в том, что та работа, которая ему поручена, соответствует тому или иному требованию. Это позволяет организовать обратную связь, позволяющую отследить ошибки в спецификациях. Многие проекты зашли в тупик именно из-за оторванности группы, отвечающей за реализацию от группы сбора и анализа требований.
1   ...   5   6   7   8   9   10   11   12   ...   47

Похожие:

Чем программирование отличается от программной инженерии? Тем, что первое является некоторой абстрактной деятельностью и может происходить во многих различных icon Кодекс этики и профессиональной деятельности в области программной инженерии (версия 2)

Чем программирование отличается от программной инженерии? Тем, что первое является некоторой абстрактной деятельностью и может происходить во многих различных icon Рассказ о почве воспитателя
Динозаврик отличается от слона тем, что у него длинная шея, короткие ноги, длинный и толстый хвост, а ещё он зелёного цвета
Чем программирование отличается от программной инженерии? Тем, что первое является некоторой абстрактной деятельностью и может происходить во многих различных icon Содержание
ПО. По данным Института программной инженерии (Software Engineering Institute, sei) в последние годы до 80% всего эксплуатируемого...
Чем программирование отличается от программной инженерии? Тем, что первое является некоторой абстрактной деятельностью и может происходить во многих различных icon Национальный исследовательский университет «высшая школа экономики»...
Библиотека распространяется как проект на C#. Для ее использования необходимо добавить этот проект в существующее решение
Чем программирование отличается от программной инженерии? Тем, что первое является некоторой абстрактной деятельностью и может происходить во многих различных icon Эрнест Цветков Ловушка для человека, или Путеводитель по внутренним...
В последнее время как-то сама собой стерлась грань | между тем, что я пишу, тем, что я говорю и тем, что я делаю
Чем программирование отличается от программной инженерии? Тем, что первое является некоторой абстрактной деятельностью и может происходить во многих различных icon 1. Спецификация метамодели программной и системной инженерии процессов, версия 0 (spem 0)
В данном сокращенном переводе приведены те фрагменты текста, которые соответстсвуют понятийной части метамодели и не затрагивают...
Чем программирование отличается от программной инженерии? Тем, что первое является некоторой абстрактной деятельностью и может происходить во многих различных icon Что это такое рпд?
В роторном же двигателе каждый процесс выполняется в отдельном отсеке камеры. Эффект мало чем отличается от разделения цилиндра на...
Чем программирование отличается от программной инженерии? Тем, что первое является некоторой абстрактной деятельностью и может происходить во многих различных icon Законодательство об охране труда
Мы осуществляем печать учебных плакатов различной тематики, а также изготовление стендов. Наша продукция отличается высоким качеством...
Чем программирование отличается от программной инженерии? Тем, что первое является некоторой абстрактной деятельностью и может происходить во многих различных icon Инструкция по применению и техническому обслуживанию порошковых огнетушителей...
Огнетушители порошковые ручные опу-5, 10; опг- 5, 7; оп-5Ф, 7Ф, 10Ф предназначены для тушения загораний различных веществ, горение...
Чем программирование отличается от программной инженерии? Тем, что первое является некоторой абстрактной деятельностью и может происходить во многих различных icon Илии Шугаева "Один раз на всю жизнь"
В книге рассматриваются основы семейной жизни и решается целый ряд вопросов: чем отличается любовь от влюбленности, что такое первая...
Чем программирование отличается от программной инженерии? Тем, что первое является некоторой абстрактной деятельностью и может происходить во многих различных icon Программа психологического сопровождения и подготовки выпускников...
Егэ как форма экзамена появился сравнительно недавно и ввиду внедрения каждый год меняются требования к проведению экзамена, и с...
Чем программирование отличается от программной инженерии? Тем, что первое является некоторой абстрактной деятельностью и может происходить во многих различных icon “Бизнес и Евангелие” с незамысловатой идеей о том, что только истинно-евангельская...
От того, кто призывает к жизненной серьезности, слушатель требует не менее дотошного обоснования выводов, чем требуется от соискателя...
Чем программирование отличается от программной инженерии? Тем, что первое является некоторой абстрактной деятельностью и может происходить во многих различных icon Рцмо в 2014/15 учебном году предлагает проведение мониторингов
Данный мониторинг отличается от предыдущих тем, что третий этап (итоговый) проводится по аналогии с гиа и егэ (индивидуальные пакеты,...
Чем программирование отличается от программной инженерии? Тем, что первое является некоторой абстрактной деятельностью и может происходить во многих различных icon Законы. 100
Каково же христианское понимание брака? Чем оно отличается от других религий и верований? Как совмещаются идеалы девства и супружества?...
Чем программирование отличается от программной инженерии? Тем, что первое является некоторой абстрактной деятельностью и может происходить во многих различных icon Мы благодарим Вас за поддержку! Сделав выбор в пользу нашего оборудования,...
Олее важным качеством данной машины является то, что она может использоваться для упаковывания в вакууме или при подкачке азота при...
Чем программирование отличается от программной инженерии? Тем, что первое является некоторой абстрактной деятельностью и может происходить во многих различных icon 2. Инструкции по технике безопасности
Генератор может использоваться во многих областях и является превосходной поддержкой для работы осветительного оборудования

Руководство, инструкция по применению




При копировании материала укажите ссылку © 2024
контакты
rykovodstvo.ru
Поиск