Файл: Лекции по программной инженерии.pdf

ВУЗ: Не указан

Категория: Лекция

Дисциплина: Программная инженерия

Добавлен: 25.10.2018

Просмотров: 6403

Скачиваний: 24

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

выделенном интервале  времени.  Теоретические работы  и системный  анализ 
до 

подготовки 

ТЗ 

в 

значениях 

ТЭП 

не 

учитывались. 

 
 
Наиболее полно и подробно  основные  закономерности  и влияние  факторов 
на технико-экономические показатели
 процессов разработки сложных ПС в 
70  -  80  годы,  представлены  в  материалах  Б.У.  Боэма  под  названием 
«Инженерное проектирование программного обеспечения» для более десяти 
моделей  прогнозирования.  В  1981  году  на  основе  исследования  процессов 
разработки 63 проектов ПС опубликована модель прогнозирования ТЭП под 
названием КОМОСТ. В последующем, эта модель развита, детализирована и 
опубликована  как  СОСОМО,  а  в  2000  году  под  названием  СОСОМО  II.  В 
этой  модели  на  основе  анализа  более  160  реальных  проектов  разработки 
комплексов  программ  различной  сложности  уточнены  рейтинги  влияния 
выделенных  факторов  на  основные  ТЭП.  Эти  данные  ниже  используются  и 
рекомендуются  как  базовые  для  прогнозирования  затрат  при  создании  ПС. 
 
 
Кроме  того,  в  1988  году  опубликованы  результаты  анализа  ТЭП 
комплексного  проекта  ПРОМЕТЕЙ  на  основе  обобщения  результатов 
разработки  свыше  250  отечественных  проектов  сложных  ПС,  отдельные 
фрагменты которых  также  использованы ниже.  В общем  случае  для  оценки 
технико-экономических  характеристик  новых  проектов  необходимы 
исходные 

данные: 

 
-  обобщенные  характеристики  использованных  ресурсов  и  технико-
экономические  показатели  завершенных  разработок  -  прототипов  ПС,  а 
также оценки влияния на их характеристики различных факторов объекта и 
среды 

разработки; 

 
-  реализованные  и  обобщенные  перечни  выполненных  работ  и  реальные 
графики  проведенных  ранее  разработок  различных  классов  ПС; 
 
- цели и содержание частных работ в процессе создания сложных комплексов 
программ  и  требования  к  их  выполнению  для  обеспечения  необходимого 
качества 

ПС 

в 

целом; 

 
-  структура  и  содержание  документов,  являвшихся  результатом  выполнения 
частных 

работ. 

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

р

  на  создание  ПС 

(табл.1).  На  этих  этапах  неопределенность  оценки  параметров  и  факторов 
наибольшая  (рис.1),  тем  не  менее  применение  приводимых  характеристик 


background image

позволяет  избегать  наиболее  крупных  ошибок  при  оценке  затрат,  которые 
делаются  экспертами  без  детального  анализа  влияния  факторов.  Подобный 
анализ  является  базой  для  рационального  распределения  ресурсов  и  для 
управления  их  использованием  по  мере  развития  проекта.  Учет  и 
прогнозирование  возможного  изменения  затрат  в  зависимости  от  основных 
параметров  способствует  упорядочению  процесса  разработки  ПС  и 
концентрации  усилий  на  тех  факторах,  которые  могут  дать  максимальный 
эффект  уменьшения  затрат  в  конкретных  условиях  создания  комплекса 
программ. После проведения структурного проектирования и распределения 
ресурсов  ПС  возможна  ошибка  в  оценке  затрат  на  разработку 
приблизительно в полтора-два раза меньше, а перед программированием она 
может  уменьшаться  до  10  -  15%.  Такие  достоверности  можно  получить, 
конечно,  только  при  подробном  анализе  и  оценке  влияния  важнейших 
факторов. 
 
 
Этапы  жизненного  цикла  программ  существенно  различаются  между  собой 
степенью  определенности  и  прогнозируемости  их  характеристик. 
Соответственно  изменяются  возможности  подготовки  и  достоверность 
планов  проведения  работ.  В  процессе  разработки  сложных  программных 
средств  уточняются  и  детализируются  их  спецификации  требований, 
функции,  структура  и  характеристики  компонентов.  Поэтому  на  начальных 
этапах,  особенно  принципиально  новых  проектов,  трудно  спланировать 
точно  все  последующие  этапы.  В  результате  планирование  проводится 
итерационно
 

в 

соответствии 

с 

последовательным 

повышением 

достоверности  и  точности  сведений  об  объекте  и  среде  разработки. 
 
 
Разработка  сложных  ПС,  особенно  на  начальных  и  завершающих  этапах, 
характеризуется высокой долей творческого труда. Поэтому трудоемкость и 
длительность  отдельных  операций и  частных работ  существенно  зависят  от 
индивидуальных  особенностей  их  исполнителей  и  характеристик 
конкретного  проекта.  Вследствие  этого  отсутствует  достоверная 
кооперационная  статистика
  разработки  программ,  и  пока  невозможно 
создать  типовые  нормативы
  на  большинство  частных  операций  при 
создании  ПС.  Отсюда  принципиальной  особенностью  планирования 
разработки комплексов программ является активное участие руководителей и 
заказчиков  проекта  в  составлении  планов  на  базе  исследованных 
характеристик прототипов завершенных разработок ПС и их личного опыта. 
Такие  планы  должны  иметь  разумные  ограничения  в  детализации  работ  на 
уровне,  обеспечивающем  необходимую  управляемость  всего  процесса 
проектирования.  В  процессах  и  системах  автоматизации  планирования  и 
управления  разработкой  ПС  целесообразно  учитывать  следующие  их 
особенности:
 
 


background image

-  последовательную,  иерархическую  детализацию  и  поэтапное  уточнение 
планов и прогнозов в соответствии с повышением полноты и достоверности 
исходных  данных  об  объекте  и  среде  разработки,  получаемых  в  процессе 
создания 

ПС; 

 
- использование прототипов технико-экономических показателей, перечней и 
графиков  частных  работ  как  основных  исходных  данных  для 
прогнозирования 

и 

планирования 

разработки 

новых 

ПС; 

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

его 

уточнения 

проектировщиком; 

 
-  регистрацию,  обобщение  и  хранение  реализованных  рабочих  планов  и 
значений  ТЭП  для  их  использования  в  качестве  прототипов  при 
планировании 

последующих 

аналогичных 

разработок. 

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

и 

планов. 

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

ПС. 

 
 
Трудоемкость  разработки  программных  средств  наиболее  сильно  зависит 
от  размера  —  масштаба  программ,  выраженного  числом
  операторов  на 
ассемблере  или  строк  на  языке  программирования  высокого  уровня.  В  п.  4 


background image

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

4

 до 10

7

  строк 

(LОС)  определяет  диапазон  трудоемкости  разработки  таких  программ  от 
человеко-года до десятков тысяч человеко-лет. Широкий диапазон изменения 
размера  создаваемых  программ  в  наибольшей  степени  определяет  значения 
суммарной  трудоемкости  их  разработки.  Подтверждена  по  большому  числу 
проектов  высокая  статистическая  корреляция  между  размером  комплексов 
программ  в  операторах  на  ассемблере  и  трудоемкостью  их  разработки.  С 
другой  стороны,  отсутствуют  какие  либо  данные  о  значительном 
преимуществе других мер размера и сложности при прогнозировании затрат 
на  разработку  сложных  и  сверхсложных  ПС.  Объем  программ  в  числе 
операторов  на  ассемблере  характеризуется  простотой  и  экономичностью 
определения,  а  также  удобством  для  расчетов  и  прогнозирования. 
 
 
Опыт  подсказывает,  что  по  мере  увеличения  размера  комплекса  программ 
возрастают  не  только  абсолютные,  но  и  относительные  затраты  на 
разработку  каждой  строки  текста  в  программе.  Вследствие  этого  затраты 
труда  при  разработке  одной  строки  текста  в  программах  разного  объема 
могут  различаться  в  несколько  раз.  Согласно  материалам  М.Х.  Холстеда 
(«Начала  науки  о  программах»),  трудоемкость  разработки  программного 
модуля  пропорциональна  квадрату  размера  программы.  Модульно-
иерархическое  построение  крупных  ПС  позволяет  замедлить  квадратичный 
рост  сложности  и  соответствующей  ей  трудоемкости  разработки  при 
увеличении  размера  программ.  Суммарную  трудоемкость  разработки 
сложного  ПС  можно  представить  двумя  сомножителями.  Первый 
сомножитель  является  доминирующим,  он  прямо  пропорционален  размеру 
программ  П  и  отражает  практически  линейное  возрастание  трудоемкости 
создания 

любых 

программ 

при 

увеличении 

их 

размера. 

 
 
Однако при увеличении размера программ в ряде случаев наблюдается более 
быстрый рост их сложности разработки, чем описываемый простой линейной 
зависимостью. Логично предположить, что по мере увеличения размера ПС 
возрастает  относительная  трудоемкость  разработки  каждой  строки  в 
программе.  Это  обстоятельство  можно  учесть  поправочным  вторым 
сомножителем,  
отражающим  изменение  трудоемкости  на  разработку 
каждой 

строки 

в 

программе 

при 

увеличении 

ее 

размера. 

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


background image

сложности программ при почти полном игнорировании сложности данных и 
их влияния на технико-экономические показатели. В статистической теории 
сложности  программ  показано,  что  для  программных  модулей  и  относи-
тельно  небольших  групп  программ  велика  корреляция  между  числом  имен 
переменных  и  числом  операторов  в  программе.  Однако  для  сложных  и 
сверхсложных  ПС  эта  корреляция  меньше,  что  определяет  необходимость 
разделения  ПС  на  два  типа:  на  осуществляющие  преимущественно 
логическую  обработку  относительно  небольшого  потока  данных  и  на 
информационно-поисковые  системы  при  наличии  больших  баз  данных  и 
относительно  простой  их  логической  обработке.  Для  характеристики  этих 
типов программ может использоваться отношение числа имен переменных к 
числу  строк  или  операторов  текста  программ.  Для  первого  типа  ПС  это 
отношение  не  превышает  десяти  процентов,  а  для  второго  оно  может 
значительно превышать единицу и достигать десятков и сотен. Затраты при 
разработке  ПС  второго  типа  оказываются  зависящими  от  размера  базы 
данных, который влияет на сложность взаимодействия программ с данными. 
 
 
Хотя  размеры  базы  данных  для  сложных  ПС  по  числу  типов  имен 
переменных  изменяются  в  очень  широких  пределах,  приблизительно  от  10

3

 

до 10

8

 , их непосредственное влияние на трудоемкость разработки строки в 

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

увеличивать 

трудоемкость 

на 

десяток 

процентов. 

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

показателей. 

 
 
Для  совокупностей  ПС  первого  и  второго  классов,  исследовалась 
зависимость  трудоемкости  разработки  программ  С  от  их  объемов  -  П.  Для 
аппроксимации  зависимости  трудоемкости  от  размера  ПС  наиболее  часто 
использована степенная функция вида: