"ИНФОРМАЦИОННАЯ ТЕХНОЛОГИЯ. СОПРОВОЖДЕНИЕ ПРОГРАММНЫХ СРЕДСТВ. ГОСТ Р ИСО/МЭК 14764-2002" (утв. Постановлением Госстандарта РФ от 25.06.2002 N 248-ст)



6. Соображения по сопровождению


6.1 Введение

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

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

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

При реализации процессов разработки, эксплуатации и сопровождения по ГОСТ Р ИСО/ МЭК 12207 любые обнаруженные проблемы (несоответствия) должны быть описаны и проконтролированы посредством процесса решения проблем, установленного в указанном стандарте. При этом следует выпускать соответствующие предложения о модификациях (ПР) или отчеты о проблемах (ОП). Часто данные документы называют предложениями об изменениях. В процессе решения проблем по ГОСТ Р ИСО/МЭК 12207 анализируют и решают возникшие проблемы. В этом процессе также определяют, отражают ли представленные ПР (ОП) возникшие проблемы (несоответствия) или потребности в модернизации продукта. Процесс управления конфигурацией (УК) по ГОСТ Р ИСО/МЭК 12207 регистрирует (фиксирует) и документирует состояния предложений о модификациях (ПР) или отчетов о проблемах (ОП). В ходе работы по контролю конфигурации из процесса УК должен быть решен вопрос о принятии конкретного предложения (отчета). Принятые ПР (ОП) далее реализуют посредством вызова процесса сопровождения.

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

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

6.2 Типы сопровождения

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

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

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

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

6.3 Соглашения при сопровождении

Заказчик может заключить соглашение с разработчиком оригинала программного средства о проведении им сопровождения данного средства или выбрать в качестве сопроводителя третью сторону (помимо разработчика). Сопровождение может также быть проведено по соглашению между двумя сторонами внутри организации.

В ГОСТ Р ИСО/МЭК 12207 подробно описаны задачи, решаемые при заключении соглашения между заказчиком и поставщиком. Данные положения должны быть использованы при заключении соглашения на сопровождение независимо от того, принадлежит ли заказчик или поставщик к одной или к разным организациям. Специфические вопросы сопровождения обсуждены ниже.

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

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

- основные правила, используемые для определения того, когда программное средство может быть локально корректировано, а когда необходима новая базовая линия с использованием для ее подготовки и инсталляции процесса разработки по ГОСТ Р ИСО/МЭК 12207;

- описания типов редакций (версий, выпусков) в зависимости от частоты их появления или их влияния на эксплуатацию программного средства (например, экстренные редакции, периодические редакции);

- способы информирования заказчика о состояниях вносимых (текущих) или намечаемых изменений;

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

- классификацию типа изменения, его очередности (приоритетности) и взаимосвязи с другими предложенными изменениями.

6.4 Инструментальные средства для сопровождения

Потенциальными средствами, определяющими стоимость сопровождения программных средств, являются инструментальные CASE-средства. Данный инструментарий обеспечивает проведение работ по сопровождению. CASE представляют собой взаимосвязанный набор инструментальных средств, обеспечивающих все аспекты разработки и сопровождения программных средств (ИСО/МЭК ТО 14471 [2]). Взаимосвязанный набор CASE-средств должен быть скомпонован в виде среды программной инженерии (СПИ), представляющей собой методы, политики, руководства и стандарты, обеспечивающие проведение работ по сопровождению программных средств. Сопроводителю также должна быть указана среда тестирования программного средства (СТПС) для проведения тестирования модифицированного программного продукта вне среды его эксплуатации. СПИ обеспечивает инструментарий для изначальной разработки и модификации программных продуктов. СТПС определяют среду тестирования. СТПС должны быть использованы для тестирования модифицированных программных продуктов вне среды их эксплуатации.

При выборе CASE-средств следует ознакомиться с ограничениями по их применению. Сопроводители должны тщательно планировать данные работы (ИСО/МЭК ТО 14471 [2]).

6.5 Оценка (измерение) характеристик программного средства

Качество программного средства является важным аспектом сопровождения программного продукта. Сопроводители должны иметь программу обеспечения качества программного средства, охватывающую шесть характеристик качества, установленных в ГОСТ Р ИСО/МЭК 9126. При сопровождении программного средства должен быть реализован соответствующий процесс для определения, описания, выбора, применения и совершенствования методик оценки (измерения) характеристик данного средства.

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

6.6 Документирование процесса

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

6.7 Своевременное вовлечение в разработку

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

Функции, выполняемые сопроводителем:

- планирование обеспечения всесторонней поддержки программного продукта;

- гарантирование всесторонней поддержки (supportability) программного продукта;

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

Планирование сопровождения рассмотрено в разделе 7 настоящего стандарта. Всесторонняя поддержка конкретного программного продукта охватывает задачи тестирования и обеспечения сопровождаемости данного продукта. В ГОСТ Р ИСО/МЭК 9126 установлены понятие сопровождаемости и другие характеристики, подлежащие учету при разработке программного средства. Сопроводитель может повысить степень всесторонней поддержки программного средства путем участия во вспомогательных процессах обеспечения качества, верификации и аттестации жизненного цикла по ГОСТ Р ИСО/МЭК 12207. Сопроводитель должен:

- участвовать в различных обсуждениях (анализах);

- анализировать тексты соответствующих программ;

- трассировать реализацию требований;

- проводить верификацию и аттестацию (валидацию).

6.8 Сопровождаемость

Сопровождаемость и сопровождение программного средства являются важными аспектами функциональной надежности (dependability) данного средства. Сопровождаемость является важной характеристикой программного средства для заказчика, поставщика и пользователя. Требования к сопровождаемости должны быть включены в работу "подготовка" из процесса заказа по ГОСТ Р ИСО/МЭК 12207, а их выполнение следует оценивать в процессе разработки по ГОСТ Р ИСО/МЭК 12207. Изменения в проекте должны быть отслежены при разработке с точки зрения их влияния на сопровождаемость. Для определения и оценки качества программного средства должны быть использованы различные показатели (метрики). При этом важны и качественные и количественные оценки. Сопровождаемость является характеристикой качества программного средства, отражающей скорость и легкость (простоту) внесения изменений в данное средство после его ввода в эксплуатацию (ГОСТ Р ИСО/МЭК 9126).

6.8.1 Сопровождаемость и процесс разработки

Сопровождаемость должна быть определена до разработки программного средства. Должно быть подготовлено соответствующее соглашение между заказчиком и поставщиком как часть работы "подготовка" из процесса заказа по ГОСТ Р ИСО/МЭК 12207. Разработчик должен подготовить план сопровождаемости, в котором должны быть отражены конкретные методы обеспечения сопровождаемости программного средства, соответствующие ресурсы и последовательность работ. Должны быть определены усилия по обеспечению мониторинга и оценки аспектов сопровождаемости в процессе разработки по ГОСТ Р ИСО/МЭК 12207.

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

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

Одним из ключевых факторов в применении ГОСТ Р ИСО/МЭК 12207 является разработка стратегии сопровождения программного средства (ГОСТ Р ИСО/МЭК ТО 15271). Соответственно должна быть разработана стратегия сопровождения, а само сопровождение должно быть спланировано (см. раздел 7).

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

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

- мобильность языка;

- удобочитаемость языка;

- стабильность языка;

- самодокументируемость;

- допустимость программных "уловок", понижающих читаемость программ;

- возможности структурирования программ;

- легкость создания новых редакций (версий);

- возможности структурирования данных;

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

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

- возможности тестирования во время компиляции и прогонов программ;

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

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

6.8.2.1 Анализ требований к программным средствам

Спецификация (технические требования) программного средства должна исчерпывающе и однозначно описывать обязательные требования к программному средству. Данная спецификация должна быть отражена в спецификации характеристик качества, требуемой по ГОСТ Р ИСО/ МЭК 12207. При этом должны быть учтены следующие факторы, влияющие на сопровождаемость:

- определение и описание функций, особенно необязательных функций;

- точность и логическая организация данных;

- интерфейсы (машинные и пользователей), особенно перспективные интерфейсы;

- требования к рабочим характеристикам, включая влияния любых корректировок и дополнений;

- требования, налагаемые запланированной средой;

- неоднородность (ступенчатость) требований, определяющая простоту или сложность их трассировки (прослеживания);

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

6.8.2.2 Проектирование программной архитектуры

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

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

6.8.2.3 Техническое проектирование программного средства

При выполнении данной работы из процесса разработки по ГОСТ Р ИСО/МЭК 12207 создают технические проекты каждого компонента программного средства, интерфейсов и баз данных. Составляют точные, подробные описания каждой функции для реализации предложенных программных решений. Сопровождаемость программного средства может быть улучшена при учете характеристик качества, описанных в ГОСТ Р ИСО/МЭК 9126.

6.8.2.4 Программирование и тестирование программного средства

При выполнении данной работы из процесса разработки по ГОСТ Р ИСО/МЭК 12207 создают, документируют и тестируют программные модули и базы данных. Сопровождаемость программного средства может быть улучшена благодаря повышению качества документов. Документы должны содержать информацию, способную помочь при выполнении процесса сопровождения. Для улучшения сопровождаемости рекомендуется:

- обеспечивать удобочитаемость документов;

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

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

- выявлять ошибки в техническом проекте;

- использовать методы, облегчающие выявление ошибок.

6.8.2.5 Квалификационные испытания программного средства

Данная работа обеспечивает проверку соответствия реализаций каждого требования к программному средству (ГОСТ Р ИСО/МЭК 12207). Во время данной работы тестируют требования к программному средству, связанные с его качеством. При регрессионном тестировании программного средства после внесения в него изменений применяют контрольные примеры, использованные при разработке данного средства. Кроме того, при сопровождении должен быть доступен архив разработки программы, чтобы избежать повторения ошибок, допущенных при ее разработке.

6.9 Передача программного средства

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

- требования к передаче технических и программных средств, данных и знаний (опыта) от разработчика к сопроводителю;

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

6.10 Документы

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

a) определить проблемную область (тип приложения); изучить любые доступные документы, по возможности обсудить программный продукт с разработчиками и поработать с данным продуктом;

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

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

d) установить низшие приоритеты ПР или ОП.

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