Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Липаев В.В. Программная инженерия

.pdf
Скачиваний:
722
Добавлен:
02.05.2014
Размер:
10.14 Mб
Скачать

Лекция 9. Управление ресурсами в жизненном цикле программных средств

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

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

методов повышения качества и снижения затрат труда специалис­ тов в жизненном цикле сложных комплексов программ.

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

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

ется изменение затрат на улучшении ка:ждой характеристики качест-

240

9.3. Ресурсы для обеспечения функциональной пригодности при разработке...

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

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

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

части:

затраты на создание программных компонентов, обеспечивающих

базовые свойства функциональной пригодности комплекса программ для его применения по прямому назначению пользователями, в соответ­ ствии с требованиями контракта и технического задания;

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

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

241

Лекция 9. Управление ресурсами в жизненном цикле программных средств

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

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

Для учета классов крупномасштабных ПС с позиции затрат на их разработку проведено ранжирование экспериментальных данных и выде­ лены классы (см. ISO 12182), наиболее сильно отличающиеся затратами на функциональную пригодность, при одном и том же общем размере полностью новых программ и информации баз данных, которые харак­ теризуются (см. лекцию 5):

максимальной трудоемкостью — ПС систем управления динами­ ческими объектами или процессами в реальном времени (СРВ);

средней трудоемкостью — ПС административных, организацион­ ных и информационно-поисковых систем (ИПС);

минимальной трудоемкостью создания — пакеты автономных рас­ четных прикладных программ (ППП).

Все остальные типы ПС могут быть упорядочены между выделенными классами и для них получены оценки изменения трудоемкости (стоимос­ ти) относительно максимальной для ПС реального времени. Малые проек­ ты, создаваемые небольшими коллективами специалистов, характеризуются большим коэффициентом вариации — разбросом значений предполагае­ мой трудоемкости, вследствие высокой роли индивидуальных способнос­ тей отдельных специалистов. Трудоемкость разработки крупномасштаб­ ных ПС объемом свыше 100 тысяч строк отражается более определенны­ ми закономерностями и стабильными значениями, что обусловлено усреднением творческих возможностей специалистов и условий их труда

вбольших коллективах, а также возрастанием доли затрат и роли руково­ дящего и вспомогательного персонала в ЖЦ ПС.

242

9.3. Ресурсы для обеспечения функциональной пригодности при разработке...

Основные составляющие дополнительных затрат, обеспечивающие требуемые характеристики качества ПС, целесообразно структурировать в соответствии с их номенклатурой в стандарте ISO 9126 (см. лекцию 11). Однако желательно эти затраты связать с процессами ЖЦ ПС. Важнейшее значение имеют установление и формализация исходных требований к характеристикам ПС, Поэтому целесообразно выделять значительные

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

После проведения системного проектирования, а также предваритель­ ного распределения ресурсов возможна ошибка в оценке совокупных за­ трат на разработку ПС с требуемым качеством, приблизительно в полто­ ра-два раза. Разработка архитектуры комплекса программ на основе про­ тотипов и подготовка к программированию готовых апробированных алгоритмов позволяет ее уменьшить до 20—30%. Такую достоверность можно получить, конечно, только при подробном анализе и оценке влия­ ния важнейших факторов и требований к качеству конкретного ПС (см. лекцию 5).

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

243

Лекция 9. Управление ресурсами в жизненном цикле программных средств

Затраты на квалификационное тестирование и испытания ПС в

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

Затраты на обеспечение безопасности и наде:исности функциони­ рования ПС определяются требуемым уровнем защищенности и сложнос­ тью (размером) программ для ее реализации (см. лекцию 11). При наличии особенно высоких требований к безопасности критических ПС эти затра­ ты могут даже в 2—4 раза превышать затраты на решение базовых, функ­ циональных задач. Для типовых административных систем трудоемкость создания программных средств защиты обычно составляет 20—40% зат­ рат на решение основных, функциональных задач. В более простых случа­ ях доля таких затрат может снижаться до 5—10%). Затраты на обеспечение высокой наделсности в составе разработки ПС могут достигать 2—3-крат­ ного увеличения общих затрат, при высоких требованиях наработки на отказ. Для минимального обеспечения автоматического рестарта в орди­ нарных системах они составляют порядка 10—20%. Однако практически в любых системах должен присутствовать минимум программных компо­ нентов, обеспечивающих надежность и защиту от преднамеренных и слу­ чайных угроз.

Затраты на создание достаточно полного комплекта документации

практически пропорциональны размеру комплекса программ. Удельные затраты на документацию зависят от класса, назначения и широты приме­ нения программ, что трудно учесть в достаточно общем виде. Эти затраты сопутствуют в некоторой степени всем этапам разработки, однако оформ­ ление эксплуатационных документов обычно локализуется в специальном этапе работ. Затраты на разработку комплекта эксплуатационной доку­ ментации для сложных программных продуктов, подлежащих длитель­ ному сопровождению, обычно определяются затратами ориентировочно 5—10 страниц на тысячу строк текста программы.

Достаточно определенно могут быть выделены и оценены затраты на обеспечение и реализацию требований к характеристикам: защи-

244

9.3. Ресурсы для обеспечения функциональной пригодности при разработке...

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

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

Наиболее активно в качестве простейшего показателя сложности ис­ пользуется размер масштаб комплекса программ, выралсенный чис­ лом операторов (команд) или строк текста на языке программирования (с учетом коэффициента, зависящего от класса ПС и специфики языка) (см. лекцию 5). Размер программ без комментариев является одной из наибо­ лее достоверно измеряемых характеристик сложности ПС и достаточно адекватен экономическим затратам на его разработку. Реальное изменение создаваемых в настоящее время новых слоэи^ных ПС объемом от 10^ до

245

Лекция 9. Управление ресурсами в жизненном цикле программных средств

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

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

При современных технологиях полностью новые, крупномасштабные комплексы программ, реализуемые в допустимое время 2—4 года, огра­ ничены объемом 10^— 10^ строк текста. Выше отмечалось (см. лекцию 5), что диапазону размеров современных ПС в три-четыре порядка (до 10 млн строк) соответствуют приблизительно такие же диапазоны изменения трудоемкости и стоимости их разработок. Очевидна принципиальная не­ рентабельность разработки очень сложных ПС за 5—10 лет. С другой стороны, даже относительно небольшие программы высокого качества в несколько тысяч строк по полному технологическому циклу с сертифика­ ционными испытаниями продукции редко создаются за время, меньшее чем полгода-год. Таким образом, диапазон вариации длительностей разра­ боток ПС много меньше, чем вариация их трудоемкости, а эти длительно­ сти ограничены сверху и снизу, и объем новых программ является одним из основных факторов, определяющим эти границы.

Размер базы данных ПС в некоторой степени коррелирован с разме­ ром текстов программ. Это привело к тому, что в ряде экономических исследований размер базы данных либо совсем не учитывался, либо вклю-

246

9.4. Ресурсы на реализацию конструктивных характеристик качества...

чался в объем ПС. В статистической теории сложности программ показа­ но, что для программных модулей и относительно небольших групп про­ грамм имеется корреляция числа имен переменных и операторов в про­ грамме. Однако для крупных ПС корреляция может быть меньше. Это определило необходимость/;аз()^л^я11л ПС на два типа: на осуществляю­ щие преимущественно сложную логическую обработку относительно не­ большого потока данных и на информационно-поисковые системы при наличии больших объемов информации баз данных и при относительно простой их обработке. Степень этого влияния трудно формализовать, так как большую роль играет структура базы данных и ее функциональное назначение. Поэтому обычно этот фактор отдельно не учитывается и толь­ ко для очень больших и сложных структур баз данных рекомендуется увеличивать оцениваемую трудоемкость разработки.

9.4. Ресурсы на реализацию конструктивных характеристик качества программных средств

Имеющийся опыт показывает, что кроме функциональной пригодно­ сти и мобильности большинство факторов может изменять трудоемкость процессов разработки программ на десятки процентов и не более чем в 2—3 раза. Приводимые ниже экспертные оценки относятся к разработке полностью нового, крупного ПС, без использования готовых программ­ ных компонентов. Эти оценки могут слулсить ориентирами, которые должны напоминать разработчикам, что каждое повышение требований к качеству ПС реализуемо за счет дополнительных ресурсов, которые могут быть соизмеримыми или даже превышать затраты на решение основных, функциональных задач.

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

247

Лекция 9. Управление ресурсами в жизненном цикле программных средств

пригодности. Для относительно простых комплексов программ эта вели­ чина в среднем не превышает 20%).

Затраты на взаимодействие программных средств и их компонен­ тов с внутренней и внешней средой определяются сложностью (объемом) программ и затратами производительности ЭВМ, реализующими эти функ­ ции. Они включают затраты на визуализацию информации, обеспечиваю- ш,ей функциональную пригодность, телекоммуникацию с внешними абонен­ тами системы и с операционной системой, и могут составлять 10—20% затрат на обеспечение основных функций ПС.

Особенности затрат на реализацию остальных требований к конст­ руктивным характеристикам качества отмечаются при представлении со­ ответствующих характеристик (см. лекцию 11) и сводятся к следующему:

дополнительные затраты на обеспечение высокой надежности /7С могут достигать 2—3-кратного увеличения затрат относительно функ­ циональной пригодности при требованиях наработки на отказ в десятки тысяч часов, а для минимального обеспечения автоматического рестарта в ординарных системах составляют порядка 10—20%;

для повышения эффективности использования ресурсов ЭВМ затраты могут быть относительно невелики (несколько процентов) и их трудно выделить из затрат на решение основных, функциональных задач;

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

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

248

9.4. Ресурсы на реализацию конструктивных характеристик качества...

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

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

полностью нового ПС, для которого отсутствуют или недоступны подходящие готовые компоненты — прототипы и/или их заведомо нерен­ табельно использовать;

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

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

иданных на иные аппаратные и операционные платформы при проектиро­ вании могут быть учтены только очень приблизительно. Эти субхарактери­ стики включают адаптируемость, простоту установки и замещаемость про­ грамм, которые целесообразно оценивать количественно: совокупными затратами, стоимостью, трудоемкостью и длительностью на реализацию процедур переноса программ и данных. Оценки мобильности зависят не только от внутренних субхарактеристик ПС, но также от организации, технологии и документирования реализации жизненного цикла и процес­ сов переноса комплексов программ и их компонентов (см. лекцию 15).

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

249