Ресурсы для обеспечения сопровождения и мониторинга программных средств

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


Лекция 15. Сопровождение и мониторинг программных средств

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

При анализе затрат на сопровождение и мониторинга программных средств целесообразно рассматривать следующие сценарии:

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

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

— оценивание интегральных затрат и совокупных размеров изменений при сопровождении и управлении конфигурацией ПС и БД в течение некоторого интервала времени (месяц, год) с учетом всего множества изменений.

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


15.4. Ресурсы для обеспечения сопровождения и мониторинга программных средств

— размер — масштаб подлежащих разработке полностью новых или модификаций программных компонентов;

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

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

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

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

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

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

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


Лекция 15. Сопровождение и мониторинг программных средств

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

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

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

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

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

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

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


15.4. Ресурсы для обеспечения сопровождения и мониторинга программных средств

шими могут быть изменения системы или комплекса программ до этапа разработки концепции или предварительного проекта модификации;

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

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

Затраты на сопровождение ПС можно оценивать потребностью трудовых и временных ресурсов для его обеспечения и для реализации. Эти затраты состоят из двух связанных частей: затрат на реализацию соответствующих характеристик качества, обеспечивающих эффективное сопровождение программных продуктов, и затрат при использовании этих характеристик в процессе эксплуатации комплекса программ. Обычно совершенствование качества и повышение затрат на реализацию характеристик способствует снижению затрат при их эксплуатации. Последние трудно оценить априори, так как они зависят от внешней среды и активности применения конкретного ПС, а не от его свойств и требуемого качества. (По некоторым оценкам, количество специалистов, участвующих в сопровождении на расширение функциональности и улучшение качества ПС (= 40%) и на устранении дефектов (-15%), что превышает количество специалистов, занятых созданием новых программ (~ 45%)).

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


Лекция 15. Сопровождение и мониторинг программных средств

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

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

При системном анализе затраты на сопровождение можно считать аддитивными и включающими составляющие'.

— затраты на обнаружение и устранение ошибок и дефектов в каждой версии ПС;

— затраты на доработку и совершенствование программ, формирование и испытание новых модернизированных версий ПС;

— затраты на тиражирование каждой новой версии и ее внедрение в эксплуатируемых и новых системах.

Доля каждой составляющей в общих затратах на сопровождение может значительно изменяться в зависимости от особенностей сферы применения и жизненного цикла конкретного ПС. Для долгоживущих (-10 лет), тиражируемых (1000—100 000 экземпляров) ПС доминирующими обычно являются затраты на модернизацию и доработку версий программ. Затраты на модернизацию зависят от тиража косвенно, вследствие расширения условий применения конкретного ПС и увеличения потока запросов пользователей на развитие программ. Так же косвенно влияет тираж на запросы для устранения выявленных ошибок.


15.4. Ресурсы для обеспечения сопровождения и мониторинга программных средств

Затраты на обнаружение и устранение дефектов и ошибок в программе определяются двумя факторами: затратами на обнаружение каждой ошибки и затратами на устранение выявленных ошибок при формировании очередной версии. Чем меньше ошибок в программе, тем труднее они обнаруживаются, т.е. тем выше затраты на выявление каждой ошибки. Затраты на устранение ошибок и корректировку программ пропорциональны числу дефектов, выявленных между очередными версиями. При сопровождении непрерывно требуются затраты для контроля состояния версий программ и обеспечения их сохранности. По опыту работ, широко тиражируемый комплекс программ объемом ~ 105 строк, может требовать непрерывных усилий коллектива в составе десятка и более специалистов для устранения ошибок, корректировок версий и документации.

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

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


Лекция 15. Сопровождение и мониторинг программных средств

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

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

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

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

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

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


15.4. Ресурсы для обеспечения сопровождения и мониторинга программных средств

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

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