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


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

1.7Процесс анализа требований

1.7.1Рабочий поток анализа требований


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

Для его обозначения в англоязычной литературе, как правило, используется понятие "Requirement Process". В отечественной практике, наряду с обобщающим термином "анализ требований", принятым, в частности, в ГОСТ Р ИСО/МЭК 12207-99, встречаются также такие термины, как "поток работ "требования", "работа с требованиями", "определение требований" и т.д., что вносит изрядную путаницу. Для того, чтобы внести некоторую ясность, рассмотрим декомпозицию рабочего потока Requirement Process на составляющие, принятую в SWEBOK, и введем терминологию, которой будем придерживаться на протяжении лекционного курса.

SWEBOK предлагает выделить в Requirement Process следующие основные составляющие:

  • Requirements Elicitation (Извлечение требований),

  • Requirements Analysis (Анализ требований в узком смысле),

  • Requirements Specification (Специфицирование требований),

  • Requirements Validation (Проверка требований).

В качестве примера альтернативной декомпозиции потока работ можно рассмотреть взгляд, предложенный в RUP [4.1]. RUP предлагает выделить в основном потоке анализа требований такие компоненты, как:

  • Analyze the Problem (Анализ проблемы),

  • Understand Stakeholder Needs (Понимание потребностей совладельцев),

  • Define the System (Определение системы),

  • Manage the Scope of the System (Управление контекстом системы),

  • Refine the System Definition (Уточнение определения системы).

Обобщая указанные выше декомпозиции, а также подходы, описанные в [4.4,4.5-4.7], далее будем придерживаться следующей, более удобной в методическом плане схемой декомпозиции потока работ "Работа с требованиями":

  • Формирование видения;

  • Выявление требований;

  • Классификация и спецификация требований;

  • Расширенный анализ требований (моделирование и прототипирование);

  • Документирование требований;

  • Проверка требований;

  • Управление требованиями;

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

Первые 6 работ в лекционном курсе рассматриваются, как компоненты процесса анализа требований.

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

Найти ответ на первый вопрос может помочь общая классификация задач, работ и операций программной инженерии, представленная в ГОСТ Р ИСО/МЭК 12207-99. Другая, более поздняя по времени классификация, присутствует в SWEBOK. Однако нужно отметить, что данные руководящие документы рассматривают общий случай, а в частном проекте может быть задействован далеко не весь арсенал работ.

Сложнее - с решением второго вопроса. На сегодня существуют и имеют примеры успешного применения десятки и сотни различных методологий (процессов), среди наиболее известных - MSF, RUP, Oracle PJM, XP, FDD, SCRUM, PSP, Crystal, DSDM. Методологии подразделяются на 3 "волны": каскадные (исторически первые), прогнозирующие (например, RUP) и "быстрые" (agile), вошедшие в широкую практику на рубеже тысячелетий [4.3].

Описания методологий существенно разнятся объемом (от десятков до тысяч страниц текста), наборами базовых работ и рабочих квалификаций, акцентами (работа с моделями, управление рисками, построение команды и пр.). Но авторы их описаний обычно сходятся в одном: лучшая из методологий, которой нужно следовать, чтобы добиться успеха - именно та, которую предлагает (описывает, рекламирует) автор. Редким исключением являются работы А. Коберна, автора группы методологий Crystal (см., в частности, [4.3]), где он предлагает брать за основу не "самый лучший" из процессов, а тот, который, во-первых, наилучшим образом соответствует проектной задаче, а во вторых - команде, которая будет его реализовывать. В [4.3] вводится несколько метрик, позволяющих частично формализовать процесс подбора методологии.

1.7.2Почему нужно анализировать требования?


Из сказанного выше следует, что не все работы и операции, известные в программной инженерии, используются в той или иной методологии и, тем более, конкретном проекте. Возникает вопрос: является ли рабочий поток АТ необходимым в цепочке рабочих потоков создания информационной системы, стоит ли тратить на него время? Каков требуемый объем результатов, ожидаемых от АТ?

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

  • выработать общее понимание между Заказчиком и Разработчиком;

  • определить рамки проекта;

  • более точно определить финансовые и временные характеристики проекта;

  • обезопасить Заказчика от риска получить продукт, в котором он не сможет работать,

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

Анализ требований - это процесс (бизнес-процесс) и, следовательно, к нему подходят методы и средства процессного подхода к управлению (см., например, [1]).

Один из ключевых вопросов, позволяющих оценить результативность процесса - что является выходом (результатом) процесса. В чем результат АТ? Результатом рабочего потока "анализ требований" является набор артефактов. Это могут быть текстовые документы, модели UML, либо других языков моделирования, прототипы программного обеспечения.

Другой важный вопрос - какие цели преследует процесс.

RUP предлагает следующие цели для потока работ АТ:

  • добиться одинакового понимания с заказчиком и пользователями о том, что должна делать система;

  • дать разработчикам наилучшее понимание требований к системе;

  • определить границы системы;

  • определить интерфейс пользователя и системы.

1.7.3Кто создает и использует требования


Как и кем используются требования?

  • Специалист по АТ - постановка задачи, определение рамок проекта;

  • Представитель заказчика - постановка задачи, определение рамок проекта, контроль работы исполнителя, приемка результатов работы;

  • Архитектор системы - разработка архитектуры, проектирование подсистем;

  • Программист - разработка программного кода;

  • Тестировщик - составление тест-плана, тестовых сценариев;

  • Менеджер проекта - планирование и контроль исполнения работ.

В рамках курса лекций для всех упомянутых выше лиц будем использовать обобщающий термин "Совладельцы (заинтересованные стороны)" (stakeholders). Совладельцами, вслед за разработчиками RUP и MSF (см., например, [4.4,4.8]), будем называть всех участников проекта создания программной системы, прямо или косвенно заинтересованных в его успехе. Авторы большинства современных методологий разработки программных систем сходятся в том, что в группе совладельцев ключевую роль играют две группы представителей Заказчика - те, кто ставит стратегические цели и выделяет финансирование и те, кто будет непосредственно использовать разработанный продукт. Причем, в отличие от каскадных методов, где Заказчик подключался в начальной фазе - составлении технического задания и конечной - приемке готовой работы, в современных методологиях Заказчик, действительно заинтересованный в успехе проекта автоматизации, должен участвовать в нем непрерывно.

1.7.4Организация работы с требованиями на примере MSF


В MSF для обозначения роли участников команды софтверного проекта используется понятие ролевых кластеров [4.9].

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

Шесть ролевых кластеров модели проектной группы - это "Управление продуктом" (product management), "Управление программой" (program management), "Разработка" (development), "Тестирование" (test), "Удовлетворение потребителя" (user experience) и "Управление выпуском" (release management). Они ответственны за различные области компетенции (functional areas) и связанные с ними цели и задачи.

MSF организован на базе комбинации каскадной и спиральной моделей. Отдельная стадия работы содержит в себе 5 фаз:

  • Envisioning (выработка концепции),

  • Planning (планирование),

  • Developing (разработка),

  • Stabilizing (стабилизация),

  • Deploying (внедрение).

В фазе выработки концепции работа с требованиями наиболее интенсивна (см. табл. 4.1).

Таблица 4.1.

Ролевой кластер

Фокус

Управление продуктом

Общие цели проекта; выявление нужд и требований заказчика; документ общего описания и рамок проекта.

Управление программой

Цели дизайна; концепция решения; структура проекта.

Разработка

Прототипирование; анализ технологических возможностей; анализ осуществимости.

Удовлетворение потребителя

Необходимые эксплуатационные характеристики решения и их влияние на его разработку.

Тестирование

Стратегии тестирования; критерии приемлемости, их влияние на разработку решения.

Управление выпуском

Требования внедрения и их влияние на разработку решения; требования сопровождения.

Как видно из таблицы, все 6 кластеров работают со своими группами требований.

Продолжается плотная работа с требованиями и на следующей фазе - фазе планирования, см. табл. 4.2.

Таблица 4.2.

Ролевой кластер

Фокус

Управление продуктом

Анализ бизнес-требований

Управление программой

Функциональная спецификация

Удовлетворение потребителя

Сценарии/примеры использования, пользовательские требования, требования локализации и общедоступности (accessibility).

Тестирование

Требования тестирования.

Управление выпуском

Эксплуатационные требования.

В фазах разработки и внедрения работа с требованиями сосредотачивается в кластерах управления продуктом и программой, см., соответственно, табл. 4.3,4.4.

Таблица 4.3.




Ролевой кластер

Фокус




Управление продуктом

Ожидания заказчика.




Управление программой

Управление функциональной спецификацией.




Таблица 4.4.

Ролевой кластер

Фокус

Управление продуктом

Получение отзывов и оценок заказчика; акт о приеме выполненной работы.

Управление программой

Сопоставление рамок проекта с поставленным решением; управление стабилизацией.



1   ...   4   5   6   7   8   9   10   11   ...   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
Поиск