БИЗНЕС-ИНФОРМАТИКА
УДК 330.47
СРАВНИТЕЛЬНЫЙ АНАЛИЗ МЕТОДИК ВЫБОРА МОДЕЛИ ЖИЗНЕННОГО ЦИКЛА
Н.Н. Савиных, Л.К. Бобров
Новосибирский государственный университет экономики и управления «НИНХ» e-mail: [email protected], [email protected]
Приведен краткий обзор известных моделей жизненного цикла программных продуктов, в частности, каскадной, прототипирования, инкрементной, спиральной, модели быстрой разработки приложений. Рассматриваются распространенные подходы и методики выбора модели жизненного цикла. Дается математическая постановка задачи выбора модели и сравнительный анализ существующих методик. Предложено создание методики, суммирующей положительные особенности и нивелирующей недостатки рассмотренных методик.
Ключевые слова: информационные системы, жизненный цикл, модели.
COMPARATIVE ANALYSIS OF LIFE CYCLE MODEL SELECTION PROCEDURES
N.N. Savinykh, L.K. Bobrov
Novosibirsk State University of Economics and Management e-mail: [email protected], [email protected]
A brief review of known life cycle models of software products (cascade, prototyping, increment, spiral, rapid application development) is presented. Accepted approaches and life cycle model selections procedures are considered. Mathematical statement of the problem of model selection and comparative analysis of the existing methodologies is given. A creation of methodology that summarizes positive features and aligns shortfalls of the examined methodologies was offered.
Key words: information systems, life cycle, models.
Введение
Известная исследовательская компания Standish Group, регулярно выпускающая отчет о состоянии дела в ИТ-индустрии, из года в год своими исследованиями подтверждает, что доля ИТ-проектов, завершившихся успешно, незначительно больше доли провалившихся проектов (например, в 2008 г. 32% ИТ-проектов завершились успешно, 44% испытали различные трудности (превысили бюджет, выпали из сроков и пр.), 24% проектов просто провалились) [7].
© Савиных Н.Н., Бобров Л.К., 2012
Факторов, влияющих на успешность выполнения проекта, очень много. Основные ошибки, которые позднее приводят к провалу проекта, совершаются на ранней стадии, когда определяются участники проекта, выбираются средства реализации, анализируются риски [2] и т.д. В том числе на этой стадии принимается решение о модели жизненного цикла, которая определяет, каким образом будут выполняться действия по разработке программного продукта, в какой последовательности должны выполняться эти действия, регламентирует методы и процедуры выполнения самих работ, а также определяет состав и содержание документации.
Выбор модели жизненного цикла, подходящей для реализации конкретного проекта, может существенно повлиять на такие его значимые показатели как бюджет, сроки и качество. Модель жизненного цикла определяет эффективность процесса разработки, правильность организации управления этим процессом, планирования и контроля сроков реализации, распределения работ между разработчиками и т.п., и таким образом уменьшить риски провала проекта, связанные со сроками и бюджетом. Что касается влияния выбора модели жизненного цикла на качество программного продукта, то поскольку все действия по обеспечению качества планируются и осуществляются с учетом особенностей выбранной модели, неправильный ее выбор может привести к выпуску продукции, которая не будет удовлетворять требованиям заказчика, а из-за несоответствующего качества станет неконкурентоспособной на рынке программной продукции [6].
Таким образом, корректно выбранная модель жизненного цикла является основой для эффективной и качественной организации процесса разработки, а в результате и для качественно разработанной программной продукции.
Краткий обзор известных моделей жизненного цикла
В настоящее время известно большое количество моделей жизненного цикла, но наиболее распространенными являются: каскадная, прототипная, инкрементная, спиральная и модель быстрой разработки приложений.
Каскадная модель жизненного цикла. Процесс создания программного продукта разбит на последовательные этапы: планирование, формирование требований, анализ и проектирование, конструирование, интеграция и тестирование, поддержка и эксплуатация. Для участников проекта модель хороша тем, что позволяет им, завершив работу на своем этапе, принять участие в реализации других проектов. Но при использовании данной модели полностью готовый продукт появляется лишь на последних этапах разработки, когда внести какие-либо изменения в проект без существенных дополнительных затрат практически невозможно.
Модель прототипирования. Особенностью данной модели является то, что заказчик начинает знакомиться с системой на ранних этапах разработки. Создание прототипов позволяет улучшить взаимопонимание между всеми участниками процесса и свести к минимуму риск получения продукта, не соответствующего выдвигаемым требованиям. Но в то же время существует опасность затягивания фазы прототипирования, что может привести к удорожанию проекта за счет включения незапланированных дорогостоящих итераций прототипирования.
Инкрементная модель жизненного цикла. Инкремент представляет собой полный цикл работ от детализации проекта до эксплуатации и сопровождения. В результате выполнения каждого инкремента получается готовый продукт, при этом сначала осуществляется реализация основных функциональных задач, что снижает риски неудачи и изменения требований. В то же время деление на функциональные блоки в целом замедляет процесс, так как возникает необходимость обеспечения их взаимодействия.
Спиральная модель жизненного цикла. Данная модель ориентирована на разрешение проблем, связанных с внесением изменений в требования заказчика. Отличительной особенностью данной модели является повышенное внимание к анализу рисков, влияющих на организацию жизненного цикла, что является и недостатком данной модели, так как оценка рисков после прохождения каждой спирали связана с большими затратами и для качественной оценки рисков необходимы высокопрофессиональные знания.
Модель быстрой разработки приложений (Rapid application development). Использование данной модели предусматривает активное участие пользователя на всех этапах жизненного цикла разработки приложения, что в свою очередь позволяет минимизировать риск его неудовлетворенности полученным результатом. Данная модель применяется преимущественно в очень крупных проектах, где уделяется большое внимание этапам анализа и проектирования, а также жестко контролируется соблюдение разработчиками установленных правил и требований.
Все модели жизненного цикла имеют свои достоинства и недостатки, поэтому очень важно выбрать для реализации проекта такую модель, которая в наибольшей степени отвечает характеру проекта и реальным условиям его реализации. При этом необходимо иметь в виду, что для каждого конкретного проекта состав и последовательность этапов разработки могут существенно отличаться, поскольку необходимо учитывать многие факторы, например, такие как особенности эксплуатации, окружение проекта, наличие различных ограничений, численность и квалификация персонала и т.д. [6].
Выбор модели жизненного цикла: подходы и методики
Рассмотрим два основных подхода к выбору модели жизненного цикла: анализ рынка (Trade Analysis) и аддитивный подход с использованием весовых коэффициентов (Basic Additive Weighting) [5].
В основе первого подхода лежит оценка альтернатив на основе использования равнозначных критериев. Все критерии делятся на «обязательные» (да/ нет) и «желательные». Если альтернативное предложение не выполняет требования хотя бы одного из «обязательных» критериев, эта альтернатива автоматически убирается из рассмотрения. Оставшиеся варианты оцениваются по «желательным» критериям, и предложение, набравшее наибольшее количество баллов, «побеждает». Плюсом такого подхода является его простота, однако без определения степени важности критериев выбора может сложиться ситуация, когда решение будет принято на основании второстепенных критериев. На таком подходе базируются:
• методика выбора модели жизненного цикла на основе анализа критериев;
• методика выбора на основе анализа отличительных категорий проектов;
• методика выбора при нечетких данных.
Аддитивный подход предполагает последовательную реализацию следующих шагов: выбор критериев оценки и оцениваемых альтернатив, ранжирование относительной важности каждого критерия и определение весовых коэффициентов, оценка критериев для альтернатив, подсчет сумм взвешенных значений критериальных оценок. Согласно данному подходу выбирается та альтернатива, которая доставляет максимум суммы взвешенных критериальных оценок.
Данный подход хорош тем, что принятие решения происходит на основании оцифрованного результата, но сама расстановка весовых коэффициентов может вызывать существенные трудности, один из путей преодоления которых состоит в применении экспертных оценок. На описанном подходе базируется методика выбора модели жизненного цикла на основе анализа весовых коэффициентов.
Рассмотрим указанные методики подробнее.
Методика выбора на основе анализа критериев.
В основе данной методики [6] лежит использование таблицы, где по заданным критериям даются качественные оценки четырех моделей жизненного цикла - каскадной, У-образной, спиральной и прототипной (табл. 1). Согласно данной методике наиболее приемлемой моделью жизненного цикла будет являться та, в соответствующем столбце которой выбрано большее число оценок.
Таблица 1
Иллюстрация методики выбора модели жизненного цикла на основе анализа критериев
Критерии выбора Каскадная У-образная Спиральная Прототипная
Длительность приложений Средняя Средняя Длинная Краткая
Дискретность изменений требований Большая Большая Малая Малая
Доступность ресурсов Высокая Низкая Некая Некая
Легкость использования Просто Просто Сложно Просто
Качество результатов Заново Заново Сохраняемое Сохраняемое
Изменчивость требований Низкая Низкая Высокая Низкая
Неизвестные требования Нет Нет Да Да
Непрерывность изменений требований Малая Малая Большая Малая
Неопределенность требований Нет Нет Да Да
Продуктивность приложений Высокая Высокая Высокая Низкая
Повторная используемость Низкая Низкая Высокая Низкая
Сложность проекта Низкая Низкая Высокая Средняя
Стоимость будущих версий Высокая Высокая Низкая Низкая
Стоимость приложений Низкая Низкая Высокая Низкая
Технология производства Готовая Готовая Новая Новая
Управление рисками Нет Нет Да Да
Функциональные потребности приложения Конкретные Конкретные Неопределенные Неопределенные
Основным недостатком данной методики является краткая формулировка критериев, из-за неверной интерпретации которых может быть выбран неверный ответ. Кроме того, эксперт может быть не согласен с оценками моделей жизненного цикла, предложенными авторами. Неопределенность некоторых оценок также усложняет выбор модели.
Методика выбора на основе анализа отличительных категорий проектов - самая известная методика выбора приемлемой модели жизненного цикла разработки информационных систем [4]. Авторы методики выделили 4 категории, по которым предполагается анализировать проект: требования, команда разработчиков, коллектив пользователей, тип проекта и риски.
В данной методике каждый критерий сформулирован в виде вопроса, на который возможно ответить только положительно (да) или отрицательно (нет). Здесь рассматривается 6 моделей жизненного цикла: каскадная, V-образная, прототипная, спиральная, RAD-модель, инкрементная. Все модели по разработанным авторами критериям ими уже оценены, а результаты оценки, сформулированные в виде слов «да» и «нет» расположены на пересечении строк и столбцов таблиц всех соответствующих категорий (табл. 2). По завершении оценки каждой категории авторы методики предлагают ранжировать по степени важности для лица, принимающего решение, сами категории или критерии каждой категории. Данное упорядочивание предлагается ими для разрешения возможных противоречий, возникающих в случае получения сходных показателей по нескольким моделям.
Таблица 2
Выбор модели жизненного цикла на основе анализа категории «Коллектив пользователей»
Критерий Модель
Каскадная V-образ-ная Прототипная Спиральная RAD Инкрементная
Будет ли присутствие пользователей ограничено в жизненном цикле? Да Да Нет Да Нет Да
Будут ли пользователи знакомы с определением системы? Нет Нет Да Да Нет Да
Будут ли пользователи ознакомлены с проблемами предметной области? Нет Нет Да Нет Да Да
Будут ли пользователи вовлечены во все фазы жизненного цикла? Нет Нет Да Нет Да Нет
Будет ли заказчик отслеживать ход выполнения проекта? Нет Нет Да Да Нет Нет
Основным недостатком данной методики является то, что в ряде случаев нельзя однозначно ответить на какой-либо вопрос при анализе категории и в результате может возникнуть ситуация, когда несколько моделей будут рекомендованы как наиболее подходящие для реализации проекта, т.е. между ними также необходимо будет делать выбор. Кроме того, список критериев оценки ограничен определенным кругом вопросов, который в случае анализа некоторых проектов может оказаться недостаточно полным.
Формальная постановка задачи выбора модели на основе анализа отличительных категорий проектов. В общем случае задачу выбора приемлемой модели жизненного цикла в соответствии с приведенной методикой можно представить следующим образом.
Пусть имеется множество альтернатив решения проблемы А = {а1, a2, ... ai, ..., am}, которое в нашем случае можно трактовать как множество моделей жизненного цикла разработки информационной системы. Также известно и множество критериев оценки альтернатив (моделей) Q = q2, ..., qj, ..., qn}.
Введем переменную Х/ - оценка/-й альтернативы по г-му критерию.
Тогда для каждой анализируемой категории критериев получаем матрицу решений, представленную на рис. 1.
а1 а2 ат
ql х11 х12 . х1т
q2 Х21 х22 . х2т
qn Хп1 хп2 хпт
Рис. 1. Матрица решений
Поскольку каждой альтернативе аг авторами методики уже выставлена оценка х/ по всему множеству критериев Q, то пусть
хч
\ 1, 1 0,
Тогда Р^ = / Хц - суммарная оценка /-й альтернативы ^й категории кри-
если ответ эксперта совпадает с выставленной оценкой (см. табл. 2), если ответ эксперта не совпадает с выставленной оценкой.
териев. То есть таблица анализа по категории критериев «Коллектив пользователей» будет иметь следующий вид (табл. 3).
Таблица 3
Матрица решений на основе анализа категории «Коллектив пользователей»
Критерий Модель
Каскадная (а1) У-об-разная (а2) Прототипная ы Спиральная м RAD (а5) Инкре-ментная Ы
1 Будет ли присутствие пользователей ограничено в жизненном цикле? 1 1 0 1 0 1
2 Будут ли пользователи знакомы с определением системы? 1 1 0 0 1 0
3 Будут ли пользователи ознакомлены с проблемами предметной области? 0 0 1 0 1 1
4 Будут ли пользователи вовлечены во все фазы жизненного цикла? 1 1 0 1 0 1
5 Будет ли заказчик отслеживать ход выполнения проекта? 0 0 1 1 0 0
То есть по результатам анализа по г-й категории критериев наиболее подходящей альтернативой aj будет та, для которой выполняется условие: max Pkj. Соответственно, в результате анализа по всем категориям критериев наибо-
4
лее подходящей будет та j-я альтернатива, которая доставляет max = / Pkj.
k = i
Методика выбора на основе анализа весовых коэффициентов. Данная методика позволяет устранить недостатки описанной выше методики на основе анализа четырех отличительных категорий проекта [1]. Прежде всего, чтобы сделать выбор модели жизненного цикла более обоснованным, авторы предлагают расширить список критериев для категории «Тип проекта и риски», включив в него некоторые критерии из стандарта ГОСТ Р ИСО/МЭК ТО 12182-2002, например, такие как масштаб и стабильность продукта проекта.
Методику выбора модели жизненного цикла на основе анализа весовых коэффициентов предлагают применять на заключительном этапе выбора на основе анализа 4 категорий критериев, когда после ранжирования всех критериев мы получаем сходные или одинаковые результаты для нескольких моделей. В такой ситуации авторы предлагают проводить процедуру выбора следующим образом.
1. Прежде всего, необходимо каждой из четырех категорий критериев присвоить значение весового коэффициента Wk (где к - номер категории критериев), причем сумма всех коэффициентов должна равняться единице, т.е.
4
/Wk = 1. Все значения весовых коэффициентов должны расставляться с уче-
к = 1
том особенностей конкретного проекта.
2. Затем необходимо присвоить значение весовых коэффициентов Vkj каждому критерию в рамках каждой категории, причем сумма всех коэффициен-
nk
тов внутри каждой категории также должна равняться единице, т.е. / Vkj = 1
j =i
(где nk - количество критериев в k-й категории, j - порядковый номер критерия к-й категории). Таким образом, авторы модифицирует таблицу критериев по сравнению с исходным методом (табл. 4).
Таблица 4
Модифицированная таблица критериев категории «Коллектив пользователей» (к = 3)
№ п/п Критерий Вес критериев V3j Модель
Каскадная V-об-разная Прототип-ная Спираль-ная RAD Инкремент-ная
1 Будет ли присутствие пользователей ограничено в жизненном цикле? 0,15 Да Да Нет Да Нет Да
2 Будут ли пользователи знакомы с определением системы? 0,13 Нет Нет Да Да Нет Да
j
n4 - 1 Будут ли пользователи вовлечены во все фазы жизненного цикла? 0,05 Нет Нет Да Нет Да Нет
n4 Будет ли заказчик отслеживать ход выполнения проекта? 0,03 Нет Нет Да Да Нет Нет
Суммарный вес Рт4 1 0,18 0,40 0,61 0,70 0,28 0,55
3. На следующем шаге необходимо подсчитать суммарный вес Рт-й модели жизненного цикла для анализируемой ^й категории критериев как сумму весовых коэффициентов строк соответствующей таблицы, в которой для
"к
данной модели отмечен ответ, т.е. Ртк = / Vkj ■ Ьтщ, где Ътк/ - признак выбора
] = 1
/-го критерия ^й категории т-й модели, причем
ь =\ 1, если ответ по критерию выделен экспертом (см. табл. 4),
ьшк] )
0, если ответ по критерию не выделен.
4. Далее необходимо посчитать средневзвешенную сумму весов по всем
4
категориям критериев для каждой модели: Pm = / Wk ■ Pmk.
к = 1
5. На последнем шаге необходимо сравнить между собой получившиеся суммарные веса моделей. Наиболее приемлемой моделью жизненного цикла (МЖЦ) анализируемого проекта будет являться модель с наибольшим суммарным весом, т.е. max Pm.
Следует отметить, что данная методика также имеет ряд недостатков. Процесс расстановки весовых коэффициентов является весьма ответственным, поэтому для его осуществления требуются высококвалифицированные эксперты.
Методика выбора при нечетких данных. Эта методика также была разработана для устранения недостатков описанной выше методики на основе анализа четырех отличительных категорий проектов, а именно того недостатка, что нельзя однозначно ответить на все вопросы категорий [3]. Данная методика предлагает представлять все показатели в виде элементов нечетких множеств для высокого, среднего и низкого уровней, соответствующих понятиям «близко к нулю», «близко к 0,5», «близко к 1». Сама процедура выбора состоит из следующих этапов.
1. Сначала случайным образом моделируются нечеткие данные по каждому показателю с приведенными функциями принадлежности.
2. Затем идет этап кластеризации методом с-средних, на котором устанавливается принадлежность каждой модельной выборки к каждому из кластеров по числу возможных типов жизненного цикла.
3. Далее полученные результаты используются для обучения нейронной сети и этапа распознавания, на котором устанавливаются путем экспертного опроса значения каждого из показателей реального проекта.
4. На следующем этапе вычисляется принадлежность такой выборки к каждому из кластеров, определяющих тип жизненного цикла методом с-средних.
5. На заключительном этапе полученные результаты подаются на вход нейронной сети для соотнесения с определенным типом жизненного цикла.
К недостаткам данной методики можно отнести ее трудоемкость и большие временные затраты на получение рекомендаций по выбору приемлемой МЖЦ. Кроме того, если реализацией проекта занимается небольшая команда специалистов, то для использования описанной выше методики необходимы специальные знания, которых у них может и не быть.
Выводы
Проанализировав приведенные методики, можно сделать вывод о том, что все они достаточно трудоемки и успех их применения зависит от знаний и умений того специалиста, который осуществляет процедуру выбора (табл. 5).
Таблица 5
Сравнение методик выбора МЖЦ
Критерии Методики
на основе анализа критериев на основе анализа категорий проектов на основе анализа весовых коэффициентов при нечетких данных
Рассматриваются ли в методике современные модели ЖЦ? Нет Нет Нет Возможно их рассмотрение
Необходимы специальные знания для использования методики? Нет Нет Нет Да
Оценки МЖЦ по критериям (ответы на вопросы) сформулированы однозначно? Нет Да Да Нет
Необходимо ранжирование критериев? Нет Да Да Нет
Процедура ранжирования проста? Нет Да
Процедура ранжирования трудоемка? Да Да
Критерии сформулированы четко и ясно? Нет Да Да Да
Возможность однозначного выбора, если на выходе получается более одной модели Нет Нет Да Да
Легкость в процедуре оценки важности критерия Нет Да Да Да
Во всех методиках анализ характеристик проекта проводится относительно классических МЖЦ, в то время как сейчас известно очень много других моделей, в том числе комбинированных. Другим недостатком описанных выше методик является то, что критерии, по которым анализируется проект, не всегда четко сформулированы, из-за чего эксперты либо люди, отвечающие за выбор МЖЦ, могут неверно их интерпретировать, а кроме того, исходя из современного опыта разработок, список критериев можно расширить.
Таким образом, актуальной задачей является создание методики, которая суммировала бы положительные особенности и нивелировала недостатки рассмотренных методик. В частности, представляется немаловажным, чтобы данная методика была бы реализована в виде программного продукта, рассматривала гибридные модели жизненного цикла, имела четко и ясно сформулированные критерии, прозрачную процедура выбора модели и т.п. В заключение следует отметить, что какая бы методика выбора модели жизненного цикла не использовалась, любую рекомендуемую по результатам процедуры выбора модель необходимо адаптировать под конкретный проект.
Литература
1. Бахтизин В.В., Глухова Л.А. Выбор модели жизненного цикла разработки программных средств и систем на основе весовых коэффициентов категорий и критериев классификации проекта // Информатизация образования. 2004. № 4. C. 71-78.
2. БобровЛ.К., Щеглов Ю.А. Учет рисков при выборе стратегий управления информационными продуктами и услугами // Вестник НГУЭУ 2012. № 2. С. 233-243.
3. Долгов В.М., Новикова ГЮ. Выбор приемлемой модели жизненного цикла программного обеспечения при нечетких данных // Вестник Днепропетровского университета, серия «Физика. Радиоэлектроника». 2008. Вып. 15. № 2/1. С. 172-177.
4. Шафер Д., Фатрелл Р. Т., Шафер Л.И. Управление программными проектами: достижение оптимального качества при минимуме затрат / Пер. с англ. М.: Вильямс, 2003. 1136 с.
5. Бабкин А., Беляева Е. Методики принятия решений при разработке ПО // Открытые системы [Электронный ресурс]. 2007. № 7 URL: http://www.osp.ru/os/2007/07/4392204/
6. Жарко Е.Ф. Проблемы управления качеством программного обеспечения [Электронный ресурс]. URL: http://www31.ipu.rssi.ru/0887pdf
7. Standish Group Report «CHAOS Summary 2009» [Электронный ресурс]. URL: http:// www.standishgroup.com/newsroom/chaos_2009.php
Bibliography
1. Bahtizin VV, Gluhova L.A. Vybor modeli zhiznennogo cikla razrabotki programmnyh sredstv i sistem na osnove vesovyh kojefficientov kategorij i kriteriev klassifikacii pro-ekta // Informatizacija obrazovanija. 2004. № 4. P 71-78.
2. Bobrov L.K., Weglov Ju.A. Uchet riskov pri vybore strategij upravlenija informacionnymi produktami i uslugami // Vestnik NGUJeU. 2012. № 2. P 233-243.
3. DolgovV.M., Novikova G.Ju. Vybor priemlemoj modeli zhiznennogo cikla programmnogo obespechenija pri nechetkih dannyh // Vestnik Dnepropetrovskogo universiteta, serija «Fizika. Radiojelektronika». 2008. Vyp. 15. № 2/1. P 172-177.
4. Shafer D., Fatrell R.T., Shafer L.I. Upravlenie programmnymi proektami: dostizhenie optimal'nogo kachestva pri minimume zatrat / Per. s angl. M.: Vil'jams, 2003. 1136 p.
5. Babkin A., Beljaeva E. Metodiki prinjatija reshenij pri razrabotke PO // Otkrytye sistemy [Jelektronnyj resurs]. 2007. № 7 URL: http://www.osp.ru/os/2007/07/4392204/
6. Zharko E.F. Problemy upravlenija kachestvom programmnogo obespechenija [Jelektronnyj resurs]. URL: http://www31.ipu.rssi.ru/0887pdf
7. Standish Group Report «CHAOS Summary 2009» [Jelektronnyj resurs]. URL: http:// www.standishgroup.com/newsroom/chaos_2009.php