Научная статья на тему 'Соответствие последовательной и спиральной модели создания программных продуктов при оценке затрат по модели Cocomo II'

Соответствие последовательной и спиральной модели создания программных продуктов при оценке затрат по модели Cocomo II Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
143
39
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПРОГРАММНЫЙ ПРОДУКТ / МОДЕЛЬ COCOMO II / ЖИЗНЕННЫЙ ЦИКЛ / ПОСЛЕДОВАТЕЛЬНАЯ МОДЕЛЬ / СПИРАЛЬНАЯ МОДЕЛЬ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Тютюнников Н. Н.

В статье рассмотрены вопросы создания программных продуктов с использованием модели COCOMO II, которая позволяет оценить затраты на их разработку по этапам жизненного цикла. Проанализированы последовательная (waterfall) и спиральная (spiral) модели жизненного цикла программного обеспечения и выявлено их соответствие для проведения оценок.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Соответствие последовательной и спиральной модели создания программных продуктов при оценке затрат по модели Cocomo II»

СООТВЕТСТВИЕ ПОСЛЕДОВАТЕЛЬНОЙ И СПИРАЛЬНОЙ МОДЕЛИ СОЗДАНИЯ ПРОГРАММНЫХ ПРОДУКТОВ ПРИ ОЦЕНКЕ ЗАТРАТ ПО МОДЕЛИ COCOMO II

© Тютюнников Н.Н.*

Центральный научно-исследовательский институт экономики, информатики и систем управления, г. Москва

В статье рассмотрены вопросы создания программных продуктов с использованием модели COCOMO II, которая позволяет оценить затраты на их разработку по этапам жизненного цикла. Проанализированы последовательная (waterfall) и спиральная (spiral) модели жизненного цикла программного обеспечения и выявлено их соответствие для проведения оценок.

Ключевые слова программный продукт, модель COCOMO II, жизненный цикл, последовательная модель, спиральная модель.

Модель COCOMO II позволяет оценить затраты на создание программного продукта по этапам его жизненного цикла. Эта модель была разработана для применения в программных проектах, использующих последовательную (водопадную, каскадную - waterfall model) или спиральную (spiral model) модель жизненного цикла программного обеспечения. Эти модели достаточно совместимы между собой, за исключением того, что в последовательной модели велик риск большого объема переделок из-за учета не формализованных в техническом задании различных пожеланий заказчика. В спиральной модели такой риск сводится к минимуму и уменьшается на каждой итерации проекта.

Последовательная модель жизненного цикла изделия была выбрана в качестве базовой модели [1] в модели COCOMO 81. В модели COCOMO II [2]

* Ведущий научный сотрудник Центра информационных ресурсов, кандидат технических наук, старший научный сотрудник.

было реализовано применение спиральной модели жизненного цикла при создании программного обеспечения с учетом одной особенности: выделение четко определенных этапов, служащих конечными точками, в которых фактическое значение затрат на разработку программного обеспечения сравнивается с оценками по модели COCOMO, полученными в начале этапа. Результатом стало множество конечных точек этапов: LCO (Life Cycle Objectives, жизненный цикл целей), LCA (Life Cycle Architecture, жизненный цикл архитектуры) и IOC (Initial Operation Capability, начальные функциональные возможности). Эти этапы хорошо подходят к ключевым контрольным точкам (milestones) жизненного цикла программных проектов, используемого как коммерческими, так и государственными разработчиками. Конечные точки этапов LCO и LCA скорее одновременно, а не последовательно включают разработку и уточнение концепции функционирования системы, требований, архитектуры, прототипов, календарного плана и технико-экономического обоснования.

Данные конечные точки стали, по мнению авторов модели COCOMO II, беспроигрышным расширением спиральной модели жизненного цикла программного обеспечения и легли в основу разработанной ими модели процесса жизненного цикла MBASE (Model-Based (System) Architecting and Software Engineering, базовая модель (система) проектирования и разработки программного обеспечения). В процессе сотрудничества авторов модели с кампанией Rational Inc. была обеспечена совместимость MBASE и RUF (Rational Unified Process, унифицированный процесс фирмы Rational). В результате был принят подход фирмы Rational с четырьмя основными этапами спиральной модели: Inception (обследование), Elaboration (детализация и уточнение), Construction (конструирование), Transition (развитие с переходом на следующую итерацию). Конечные точки этапов LCO, LCA и IOC стали контрольными точками, между окончанием одного и началом следующего этапа [3].

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

фиком работ. Именно эти точки, начиная с модели COCOMO 81, используются для получения оценок трудоемкости каждого этапа работ.

Этапы разработки программ в последовательной модели жизненного цикла программного обеспечения немного отличаются от принятых в российской практике. Для применения конечных точек модели COCOMO при создании программного обеспечения в соответствии с требованиями национальных стандартов в таблице 1 поставлено соответствие этапов (фаз) последовательной модели (Waterfall):

- стадиям разработки программ и программной документации по ГОСТ 19.102-77 [4] в случае выполнения программного проекта в соответствии с требованиями Единой системы программной документации;

- стадиям создания автоматизированной системы по ГОСТ 34.60190 [5] в случае разработки программного обеспечения автоматизированной системы (АС).

Как видно из таблицы в модели COCOMO II применяются следующие контрольные точки, отмечающие конец очередного и начало следующего этапа последовательной модели жизненного цикла программного обеспечения:

1. LCR (Completion of Life Cycle Concept Review) - завершение обзора общего представления жизненного цикла, соответствующее в российской практике завершению научно-исследовательской работы (НИР).

2. SRR (Completion of Software Requirements Review) - завершение обзора требований к программному обеспечению, соответствующее в российской практике утверждению технического задания на опытно-конструкторскую работу.

3. PDR (Completion of Product Design Review) - завершение обзора облика (проекта) продукта, соответствующее в российской практике окончанию эскизного проекта.

4. CDR (Completion of design walkthrough or Critical Design Review for unit) - завершение сквозного контроля или критического обзора проекта, соответствующее в российской практике окончанию технического проекта.

Таблица 1

Соответствие этапов (фаз) последовательной модели жизненного цикла программного обеспечения с конечными точками модели СОСОМО стадиям (этапам) разработки программ в российской практике

Конечная точка Этапы (фазы) Waterfall Стадии по ГОСТ 19.102 Стадии по ГОСТ 34.601

Общее представление жизненного цикла 1. Техническое задание (этапы обоснования и НИР) 1. Формирование требований к АС 2. Разработка концепции АС

LCR

1. Планирование и установление требований 1. Техническое задание (этап разработки и утверждения) 3. Техническое задание

SRR

2. Проектирование продукта 2. Эскизный проект 4. Эскизный проект

PDR

3. Детальное проектирование 3. Технический проекта 5. Технический проект

CDR

4. Кодирование и тестирование модулей 4. Рабочий проект (этапы разработки программы и программной документации) 6. Рабочая документация

UTC

5. Интеграция и тестирование 4. Рабочий проект(этап испытания программы) 7. Ввод в действие (включая этап предварительных испытаний)

SAR

6. Внедрение 5. Внедрение 7. Ввод в действие (этапы проведения опытной эксплуатации и приемочных испытаний)

7. Функционирование и сопровождение 8. Сопровождение автоматизированной системы

5. UTC (Satisfaction of Unit Test criteria for unit) - проверка соответствия модулей программного обеспечения установленным для них критериям тестирования, соответствующая в российской практике окончанию рабочего проектирования или разработки рабочей (рабочей конструкторской) документации.

6. SAR (Completion of Software Acceptance Review) - завершение обзора результатов приемки программного обеспечения, соответствующая в российской практике окончанию изготовления опытного образца программного изделия и проведения различных испытаний (предварительных, государственных, межведомственных, приемо-сдаточных и др.).

7. Completion of System Acceptance Review - завершение обзора результатов приемки системы. Конечная точка не предусмотрена.

8. Phaseout - свертывание работ. Конечная точка не предусмотрена.

Ниже определяются контрольные точки, которые используются в качестве конечных точек при оценке затрат и времени на каждом этапе по модели COCOMO II MBASE/RUF. Кроме точек, описанных ранее, добавлены еще две точки IRR и PRR, обеспечивающие совместимость с RUF.

1. IRR (Inception Readiness Review) - обзор начальной готовности, включающий в себя: варианты назначения, области применения и границы использования системы; выбранные основные заинтересованные стороны; утвержденные средства для успешного достижения комплекта, необходимого в точке LCO.

2. LCO (Life Cycle Objectives Review) - обзор жизненного цикла целей, включающий в себя: комплект для LCO (в т.ч. основные элементы концепции функционирования, прототипа, требований, архитектуры, плана жизненного цикла и технико-экономического обоснования); гарантированно реализуемая, по крайней мере, одна архитектура; подтверждение выполнимости ARB (Architecture Review Board, обзор границ архитектуры); утвержденные средства для успешного достижения комплекта, необходимого в точке LCA.

3. LCA (Life Cycle Architecture Review) - обзор жизненного цикла архитектуры, включающий в себя: комплект для LCA; гарантированно реализуемая выбранная архитектура с учетом показателей, полученных в точке LCO; подтверждение выполнимости ARB; утвержденные средства для достижения точки IOC и поддержки жизненного цикла.

4. IOC (Initial Operation Capability) - начальные функциональные возможности, включающие в себя: изготовленное программное обеспечение; опытный участок; первых подготовленных пользователей, операторов и пр.; обзор готовности к успешному внедрению.

5. PRR (Product Release Review) - обзор выпуска новой версии продукта, включающий в себя: обеспечение успешного переподключения со старой версии системы на новую для всех основных объектов автоматизации; персонал, который полностью компетентен (квалифицирован) для эксплуатации и обслуживания новой системы; результаты приемки системы.

МВАБЕ^иР (спиральная модель)

I

R R

Vi

Inception (обследование)

Конечные точки при оценке по модели

А

Elaboration (детализация и уточнение)

Construction (конструирование)

С

Construction (переходный период)

Waterfall (последовательная модель)

Plans and Requirements (планирование и установление требований) Preliminary (Product) Design (предварительное проектирование продукта) Detailed Design (детальное проектирование) Code and Unit Test (кодирование и тестирование модулей) Integration and Test (интеграция и тестирование)

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

Early Design Model (модель ранней стадии проектирования)

Post-Architecture Model (модель стадии разработки)

СОСОМО II

Рис. 1. Соответствие последовательной и спиральной модели создания программных продуктов при оценке затрат по модели СОСОМО II

На рис. 1 показана взаимосвязь последовательной модели жизненного цикла программного обеспечения и этапов MBASE/RUP с наиболее вероятной моделью COCOMO II, которая будет использоваться для оценки трудоемкости и длительности этапов разработки программного проекта. Контрольные точки немного отличаются в связи с различиями в распределении работ и планировании между этими двумя моделями.

Таким образом, несмотря на то, что последовательная и спиральная модели жизненного цикла отличаются принципиально разным подходом к созданию программного обеспечения и этапами его проектирования, разработки и внедрения, эти модели достаточно совместимы между собой. Установленное соответствие между этапами последовательной модели и этапами одного цикла спиральной модели, а также привязка к началу и концу каждого этапа контрольных точек жизненного цикла проекта позволяют оценить затраты на разработку по каждому этапу. Данный подход применим и стадиям разработки программного обеспечения, определенным российскими стандартами, которые немного отличаются от описанных в модели COCOMO II.

Список литературы:

1. Boehm, Barry W. Software engineering economics. - Englewood Cliffs, N.J.: Prentice-Hall, 1981. - 767 p.

2. Software Cost Estimation with Cocomo II / by Barry W. Boehm ... [et al.]. -N.J.: Prentice-Hall, 2000. - 544 p.

3. Cocomo II. Model Definition Manual. Version 2.1. - USC: Center for Software Engineering, 2000. - 86 p.

4. ГОСТ 19.102-77. Единая система программной документации. Стадии разработки. - М.: Изд-во стандартов, 1982. - 3 с.

5. ГОСТ 34.601-90. Информационная технология. Комплекс стандартов на автоматизированные системы. Автоматизированные системы. Стадии создания. - М.: Изд-во стандартов, 1991. - 8 с.

i Надоели баннеры? Вы всегда можете отключить рекламу.