Модель процесса разработки программного обеспечения

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

Повний опис

Збережено в:
Бібліографічні деталі
Дата:2006
Автори: Вершина, А.И., Семерюк, Т.Н., Солдатов, Б.Т.
Формат: Стаття
Мова:Російська
Опубліковано: Інститут програмних систем НАН України 2006
Теми:
Онлайн доступ:https://nasplib.isofts.kiev.ua/handle/123456789/1550
Теги: Додати тег
Немає тегів, Будьте першим, хто поставить тег для цього запису!
Назва журналу:Digital Library of Periodicals of National Academy of Sciences of Ukraine
Цитувати:Модель процесса разработки программного обеспечения / А.И. Вершина, Т.Н. Семерюк, Б.Т. Солдатов // Проблеми програмування. — 2006. — N 2-3. — С. 269-274. — Бібліогр.: 8 назв. — рос.

Репозитарії

Digital Library of Periodicals of National Academy of Sciences of Ukraine
_version_ 1860094779506819072
author Вершина, А.И.
Семерюк, Т.Н.
Солдатов, Б.Т.
author_facet Вершина, А.И.
Семерюк, Т.Н.
Солдатов, Б.Т.
citation_txt Модель процесса разработки программного обеспечения / А.И. Вершина, Т.Н. Семерюк, Б.Т. Солдатов // Проблеми програмування. — 2006. — N 2-3. — С. 269-274. — Бібліогр.: 8 назв. — рос.
collection DSpace DC
description Предлагаемая модель разработки программного обеспечения, основанная на припускании, что ймоверность качественной
 разработки программного обеспечения в неокончено малом промежутке времени пропорциональна этому промежутку.
 Рассмотрены условия, при которых процесс разработки программ можно описать как марковский. The model of process of development of the software based on the assumption is offered, that the probability of qualitative development of
 the program in infinitesimal an interval of time is proportional to this interval. The conditions are considered, at which the process of
 development of the programs can be described as markovskiy
first_indexed 2025-12-07T17:25:41Z
format Article
fulltext Методи та засоби програмної інженерії УДК 519.2 МОДЕЛЬ ПРОЦЕССА РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ А.И. Вершина, Т.Н. Семерюк, Б.Т. Солдатов Запорожский национальный технический университет 69063, Запорожье, Жуковского 64, тел. (380)(612) 69 8508, E-mail: pej@mail.ru Предлагаемая модель разработки программного обеспечения, основанная на припускании, что ймоверность качественной разработки программного обеспечения в неокончено малом промежутке времени пропорциональна этому промежутку. Рассмотрены условия, при которых процесс разработки программ можно описать как марковский. The model of process of development of the software based on the assumption is offered, that the probability of qualitative development of the program in infinitesimal an interval of time is proportional to this interval. The conditions are considered, at which the process of development of the programs can be described as markovskiy Модели и процессы жизненного цикла программного обеспечения Качество разработки программного обеспечения зависит от многих факторов. Поиск новых методов повышения качества программного обеспечения является актуальной задачей. Эта проблема связана с необходимостью создания математической модели. Предлагается один из возможных путей создания этой модели. Процесс разработки программ можно разбить на два этапа, первый из которых состоит в разработке определенной последовательности операторов, а второй – в проверке полученных результатов поставленным требованиям. В случае отсутствия соответствия результатов поставленным требованиям, осуществляется доработка разработанной программы. Результаты программирования зависят от многих субъективных и объективных факторов и, в общем случае, представляют собой случайный процесс. Если считать, что существует оценка качества программирования как вероятность того, что программа соответствует предъявляемым к ней требованиям, то процесс разработки программ можно описывать вероятностными характеристиками. Это позволяет поставить задачу построения математической модели процесса разработки программного обеспечения, как случайного процесса. Пусть вероятность )(tk∆ разработки элемента программного обеспечения в малом промежутке времени t∆ пропорциональна величине этого промежутка, ttktkttktk ∆−=−∆+=∆ λ)](1[)()()( , (1) где )(tk - вероятность того, что элемент программного обеспечения за время разработки t соответствует предъявляемым требованиям; λ - коэффициент пропорциональности, который отражает интенсивность разработки программного обеспечения. Переходя к пределу 0→∆t , получаем дифференциальное уравнение [ ] dttktdk λ)(1)( −= , (2) решение которого имеет вид tetk λ−−= 1)( . (3) Плотность распределения времени разработки элемента программного обеспечения определяется выражением t k e dt tdk tp λλ −== )( )( , (4) т. е. подчиняется экспоненциальному закону. Разработка программы представляет собой совокупность α элементов программы, это приводит к композиции законов распределения. Так как показательная плотность является частным случаем гамма- распределения [1, 2], а семейство гамма-плотностей замкнуто относительно операции свертки, то плотность распределения времени на разработку программы имеет вид 270 tettp λα α α λ −− Γ = 1 )( )( , (5) где ∫ ∞ −−=Γ 0 1)( dtet tαα - гамма-функция Эйлера. Для произвольного времени T , затраченного на разработку программы, вероятность )(TK того, что программа соответствует поставленным требованиям, определяется выражением ∫ ∫ −− Γ == T T t dtetdttpTK 0 0 1 )( )()( λα α α λ . (6) Ожидаемое время на разработку равно ∫ ∫ ∞ ∞ − = Γ == 0 0)( )( λ α α λ λα α dtetdtttpT t ус . (7) Как правило, время на разработку 0T ограничено и оно пропорционально ожидаемому времени на разработку усT : λ αµµ == усTT0 , (8) где µ - коэффициент пропорциональности. В этом случае имеем ∫ ∫ −− Γ == λ αµ λ αµ λα α α λ 0 0 1 0 )( )()( dtetdttpTK t . (9) После внесения αλ под знак интеграла, замены переменной tz *λ= и изменения пределов интегрирования получаем ),( )( 1 )( 0 1 0 αµ α µα α KdzezTK z = Γ = ∫ −− . (10) Из этого следует, что вероятность качественной разработки в случае выделения времени на создание программы пропорционально ожидаемому времени T не зависит от значения λ . Если за заданное время 0T результат разработки не удовлетворяет поставленным требованиям, то необходимо выделить дополнительное время дT . Это время разумно также выделять пропорционально ожидаемому времени теперь уже на доработку. Если считать, что производимые доработки в одинаковой мере затрагивают каждый элемент программного обеспечения, то количество элементов α останется прежним, а изменится значение λ . В соответствии с полученным выражением (10), вероятность качественной доработки за дополнительное время не изменится. Можно также сказать, что время, выделяемое на разработку определенного объема программного обеспечения, определяется заданным уровнем качества. Оценим ожидаемое дополнительное время дT , которое необходимо выделить на проведение доработок: ∫ ∫∫∫ ∞ ∞ −−− ∞ −− ∞ − Γ =− Γ =−= 0 000 ][ )( )( )( )()( 1 0 1 00 T T tt T t T д dtetTdtetdtetTtdttpTtT λαλα α λα α α λ α λ . (11) Используя для первого слагаемого в квадратных скобках метод интегрирования по частям, вводя функции αtu = и dtedv tλ−= , для которых имеем dttdu 1−= αα и ∫ −− −== tt edtev λλ λ 1 , с учетом того, что ∫ ∞ −− −= Γ 0 )(1 )( 0 1 T t TKdtet λα α α λ , получаем Методи та засоби програмної інженерії 271 ∫ ∫ ∞ ∞ −−−− ∞ − −+− Γ = 0 0 0 ]| 1 [ )( 1 0 1 T T tt T t д dtetTdtetetT λαλαλα α λ α λα λ )](1)[(* 1 )( 000 0 TKTeT T −−+ Γ = − λ α λα λ λα α .(12) Подставляя 0T из формулы (8) в данное выражение, получаем =−−+ Γ = − )](1[)1()( 1 )( λ αµ λ αµ λ αµ λα λ λ αλµα α KeTд )],(1[)1()( )( 1 αµ λ αµµα αλ µαα Ke −−+ Γ − . (13) Будем считать, что дополнительное время выделяется также пропорционально ожидаемому времени: дд TT µ=0 . (14) Отсюда отношение δ дополнительного времени на доработку программы ко времени, первоначально выделенному, равно = −−+ Γ== − λ αµ αµ λ αµµα αλ µ δ µαα )]},(1[)1()( )( 1 { 0 0 Ke T T д )],(1)[1( )1( )( αµµ α µα µα α Ke −−+ +Γ − . (15) Из полученного выражения следует, что отношение дополнительного времени на разработку программного обеспечения к первоначально выделяемому времени будет постоянной величиной, если считать, что const=µ и const=α . Аналогичные рассуждения приводят к выражению для качества проверки результатов разработки программного обеспечения как вероятности )( пTA того, что в результате проверки программы в течение времени пT получен достоверный результат о качестве разработки: ∫ ∫ −− Γ == п п п T T tп п dtetdttpTA 0 0 1 )( )()( λα α α λ . (16) Следует отметить, что на практике вероятности качественной проверки правильно разработанной программы и программы с ошибками дает различные значения, поэтому целесообразно для проверки программы с ошибками ввести вероятность )( пTA . Величина )( пTA близка к единице, т.е. при проверке правильной программы получается достоверный результат. Ожидаемое время на проверку программы определяется выражением ∫ ∫ ∞ ∞ − = Γ == 0 0 . )( )( п tп пож dtetdtttpT п λ α α λ λα α , (17) где пλ - интенсивность проверки программы. Время пT , выделяемое на проверку программы, берется по аналогии с (8) пропорционально ожидаемому времени пожT . : пожпп TT .µ= , (18) где пµ - коэффициент пропорциональности при выделении времени на проверку программы. Качество проверки разработанной программы определяется выражением ∫ −− Γ = αµ α α п dzezTA z п 0 1 )( 1 )( . (19) Отношение дополнительного времени на проверку доработанной программы ко времени, первоначально выделенному, равно 272 )],(1)[1( )1( )( αµµ α αµδ αµ α пп п п Ae п −−+ +Γ = − . (20) Следует отметить, что особенности гамма-распределения нашли место, например, для описания творческой деятельности человека. Так, в работе [6] предложено теоретико-вероятностное описание научного труда, исходя из случайного распределения знаний и проблем в тезаурусе ученого. При этом делаются допущения, которые позволяют рассматривать порождение знаний и проблем как дискретный процесс Пуассона. После обобщения автор приходит к гамма-распределению, которое достаточно хорошо согласуется с экспериментальными данными науковедения о производительности научного труда. Вышеприведенные допущения могут быть положены в основу описания процесса разработки программного обеспечения с помощью цепей Маркова. Марковская модель разработки программ представлена следующими состояниями процесса обучения: 1. исходное состояние; 2. результат качественной разработки программного обеспечения; 3. наличие ошибок в программном обеспечении; 4. качество программы после проведения ее проверки; 5. отсутствия соответствия программы поставленным требованиям после проверки. Если вероятности переходов между состояниями являются постоянными величинами, то такой процесс можно описать поглощающей цепью Маркова, так как существуют состояния 4 и 5, которыми завершается процесс разработки программы. Структура матрицы переходов для поглощающей цепи Маркова имеет вид [7]: P Q R O E =      , (21) где Q - подматрица, описывающая поведение процесса до попадания в поглощающее состояние; R - под- матрица переходов в поглощающие состояния; O E, - нулевая и единичные подматрицы. Для программного обеспечения состояния 4 и 5 являются поглощающими. Матрицы Q и R соответственно равны:           − − = 00 001 10 00 A A KK Q ;           − = A AR 10 0 00 , (22) где 0K - вероятность качественной разработки; A и A - вероятности качественной проверки программы соответствующей и несоответствующей поставленным требованиям. Использование фундаментальной матрицы N E Q= − −( ) 1 позволяет получить ряд важнейших характеристик процесса разработки программ:           −− −−−−− − −−−− = )1(1 )1)(1()1(11 11 )1()1(1 1 00 00 00 00 AKAKA AKAKA KK AKAK N . (23) Элемент ni j, матрицы N дает ожидаемое количество моментов времени, которое проводит процесс в состоянии j до попадания в поглощающее состояние при условии, что он начался в состоянии i . Матрица B N R= * позволяет оценить вероятность попадания в соответствующее поглощающее состояние:           −−− −−−−− −− −−−− = )1)](1(1[ )1)(1)(1(])1(1[ )1)(1( )1()1(1 1 00 00 00 00 AAKAAK AAKAAK AKAK AKAK B . (24) Для предлагаемой модели представляют интерес элементы n1 1, и b1 1, матриц N и B соответственно: Методи та засоби програмної інженерії 273 F n − = 1 1 1.1 ; F AK b − = 1 0 1,1 , (25) где )1()1( 00 AKAKF −+−= . Значение элемента 1,1b соответствует вероятности качественной разработки K на выходе процесса разработки: F AK bK − == 1 0 1,1 . (26) Величина 1,1n определяет ожидаемое количество интервалов времени, необходимых для разработки программного обеспечения. Для оценки общего ожидаемого времени на разработку рассмотрим вероятности следующих событий: • вероятность завершения процесса разработки за выделенное время 0T )1)(1( 000 AKAKG −−+= , где первое слагаемое определяет вероятность того, что программа разработана и ее проверка дала положительный результат, а второе слагаемое – это вероятность того, что программа содержит ошибки, а проверка не выявила это; • вероятность выделения первого дополнительного времени на разработку програаммы как события, противоположного завершению процесса за выделенное время 01 1 GFF −== ; • вероятность завершения процесса разработки после выделения первого дополнительного времени 01 FGG = ; • вероятность выделения второго дополнительного времени на разработку программы 2 2 FF = ; • вероятность завершения процесса разработки после выделения второго дополнительного времени 0 2 2 GFG = ; Таким образом, вероятность выделения j-го дополнительного времени на разработку определяется выражением J j FF = , (27) а вероятность завершения процесса разработки jG после выделения j-го дополнительного времени получается умножением (27) на 0G : j j FGG 0= . (28) Для ограниченного количества n моментов времени, выделяемых на разработку программы, вероятность того, что процесс будет завершен, определяется суммой F F GFGFGFGGG nn j j n − −==+++= + = ∏ 1 1 ... 1 0 0 0 2 000)( . (29) Предел этой вероятности при ∞→n равен единице: 1 1 ] 1 1 [lim 0 1 0 = − = − −= + ∞→ F G F F GG n n . (30) Проводя аналогичные рассуждения, получим выражения для вероятности того, что и результат ее проверки разработанной программы дал положительный результат: F F AKK n n − −= + 1 1 1 0)( , (31) а при ∞→n F AK K − = 1 0 . (32) Последнее выражение совпадает с (26). 274 Оценим время, затрачиваемое на разработку программы. Затраченное на создание программы время )(nT определяется суммой основного времени на первоначальную разработку и n раз выделяемого дополнительного времени: nin TTTTT +++++= ......10)( , (33) где iT - выделяемое i-ое дополнительное время. В соответствии с выражением (15) отношение δ=+ i i T T 1 , отсюда получаем o i i TT δ= (34) и ∑ = + − −== n i n i n TTT 0 1 00)( 1 1 δ δδ . (35) Ожидаемое время )(nT при количестве выделяемых дополнительных моментов времени, не превышающих n, с учетом выражений (28) и (35), равно ∑∑ = + = − − == n i ii n i i)i()n( )(F GT GTT 0 100 0 1 1 δ δ ] F )F( F F [ GT nn δ δδ δ − −− − − − = ++ 1 1 1 1 1 11 00 . (36) При неограниченном количестве выделяемых дополнительных интервалов времени получим значение ожидаемого времени T на создание программы: F T F F F FGT T nn n δδ δδ δ − = − −− − − − = ++ ∞→ 1 ]} 1 )(1 1 1 [ 1 {lim 0 11 00 . (37) Таким образом, гипотеза о том, что вероятность качественной разработки элемента программного обеспечения в малом промежутке времени пропорциональна величине этого промежутка, приводит к экспоненциальному закону распределения времени на разработку этого элемента. Композиция экспоненциальных законов при постоянстве интенсивности разработки приводит к гамма-распределению времени на разработку программного обеспечения в целом. К такому результату приводит процесс проверки программного обеспечения. Выделение времени на разработку и проверку пропорционально ожидаемому времени приводит к постоянству качества и позволяет описывать разработку программ как марковский процесс. Подобный подход использовался при создании модели процесса обучения [8]. 1. Феллер В. Введение в теорию вероятностей и ее приложения. В 2-х томах, Пер. с англ. – М.: Мир, 1984. – 1266 с. 2. Вентцель Е.С. Теория вероятностей. - М.: Наука, 1964. – 576 с. 3. Справочник по специальным функциям // Под ред. М. Абрамовица и И. Стиган. – М.: Наука, 1979. – 832 с. 4. Янке Е., Эмде Ф., Лёш Ф. Специальные функции. - М.: Наука, 1977. – 344 с. 5. Гмурман В.Е. Руководство к решению задач о теории вероятностей и математической статистике. - М.: Высшая школа, 1975. – 336 с. 6. Muller Fritz. Ein Versuch zur wahrscheinlichkeitstheoretischen Erklarung der wissenschaftlichen Produktivitat. – Elektron.Informationsverarb.und Kybern., 1974, 10, №1, Р. 53-64. 7. Кемени Дж., Снелл Дж. Конечные цепи Маркова. - М.: Наука, 1970. – 272 с. 8. Вершина А.И., Солдатов Б.Т. Моделирование процесса обучения // «Радіоелектроніка, інформатика, управління». - Запоріжжя: ЗДТУ. - 2003. - №1. - С. 65 - 72.
id nasplib_isofts_kiev_ua-123456789-1550
institution Digital Library of Periodicals of National Academy of Sciences of Ukraine
issn 1727-4907
language Russian
last_indexed 2025-12-07T17:25:41Z
publishDate 2006
publisher Інститут програмних систем НАН України
record_format dspace
spelling Вершина, А.И.
Семерюк, Т.Н.
Солдатов, Б.Т.
2008-08-22T11:50:10Z
2008-08-22T11:50:10Z
2006
Модель процесса разработки программного обеспечения / А.И. Вершина, Т.Н. Семерюк, Б.Т. Солдатов // Проблеми програмування. — 2006. — N 2-3. — С. 269-274. — Бібліогр.: 8 назв. — рос.
1727-4907
https://nasplib.isofts.kiev.ua/handle/123456789/1550
519.2
Предлагаемая модель разработки программного обеспечения, основанная на припускании, что ймоверность качественной
 разработки программного обеспечения в неокончено малом промежутке времени пропорциональна этому промежутку.
 Рассмотрены условия, при которых процесс разработки программ можно описать как марковский.
The model of process of development of the software based on the assumption is offered, that the probability of qualitative development of
 the program in infinitesimal an interval of time is proportional to this interval. The conditions are considered, at which the process of
 development of the programs can be described as markovskiy
ru
Інститут програмних систем НАН України
Методи та засоби програмної інженерії
Модель процесса разработки программного обеспечения
The model of software developing process
Article
published earlier
spellingShingle Модель процесса разработки программного обеспечения
Вершина, А.И.
Семерюк, Т.Н.
Солдатов, Б.Т.
Методи та засоби програмної інженерії
title Модель процесса разработки программного обеспечения
title_alt The model of software developing process
title_full Модель процесса разработки программного обеспечения
title_fullStr Модель процесса разработки программного обеспечения
title_full_unstemmed Модель процесса разработки программного обеспечения
title_short Модель процесса разработки программного обеспечения
title_sort модель процесса разработки программного обеспечения
topic Методи та засоби програмної інженерії
topic_facet Методи та засоби програмної інженерії
url https://nasplib.isofts.kiev.ua/handle/123456789/1550
work_keys_str_mv AT veršinaai modelʹprocessarazrabotkiprogrammnogoobespečeniâ
AT semerûktn modelʹprocessarazrabotkiprogrammnogoobespečeniâ
AT soldatovbt modelʹprocessarazrabotkiprogrammnogoobespečeniâ
AT veršinaai themodelofsoftwaredevelopingprocess
AT semerûktn themodelofsoftwaredevelopingprocess
AT soldatovbt themodelofsoftwaredevelopingprocess