
3. СТАНДАРТИЗАЦИЯ И ОБЕСПЕЧЕНИЕ КАЧЕСТВА СЛОЖНЫХ ПРОГРАММНЫХ СРЕДСТВ ПРИ СИСТЕМНОМ ПРОЕКТИРОВАНИИ
3.1. Основы стандартизации при системном проектировании программных средств
Цели и задачи стандартизации при системном проектировании программных средств. Непрерывный рост масштабов проектов ИС и их необозримости для отдельного специалиста привели к необходимости принципиального изменения отношения к регламентированию, документированию и дисциплине труда коллективов специалистов при обеспечении длительного жизненного цикла программных средств. Накопленный мировой опыт сосредоточен и обобщен в международных, национальных и военных (зарубежных) стандартах, которые почти неизвестны отечественным специалистам. За рубежом требования стандартов к объектам, документам и процессам ЖЦ ИС и ПС во многих случаях являются обязательными и определяют конкурентоспособность продукции. В связи с этим существенно изменились объекты и методология в области создания и всего ЖЦ сложных ИС. Пренебрежение стандартами отечественными специалистами резко снижает конкурентоспособность на Западе, созданных ими даже на отличной идейной базе, программных средств.
Состояние и развитие стандартизации в области информационных систем характеризуется следующими особенностями, которые необходимо учитывать при системном проектировании ИС и ПС:
- несколько сотен разработанных за рубежом международных и национальных стандартов не полностью и неравномерно покрывают потребности в стандартизации объектов и процессов создания и применения сложных ИС и их компонент;
- большая длительность разработки, согласования и утверждения международных и национальных стандартов (3-5 лет) приводит к их консерватизму, а также к хроническому отставанию требований и рекомендаций этих документов от современного состояния техники и от текущих потребностей практики и технологии создания сложных ИС;
- стандарты современных ИС должны учитывать необходимость построения ПС как открытых систем и обеспечивать:
* их расширяемость при наращивании или изменении выполняемых функций;
* переносимость прикладного программного обеспечения между разными аппаратно-программными платформами;
* возможность взаимодействия с другими информационными системами той же проблемно-ориентированной сферы;
- в области ИС стандартами поддержаны и регламентированы функционально наиболее простые объекты и рутинные, массовые процессы, такие, как телекоммуникация, программирование, документирование программ и данных и т.п.;
- наиболее сложные и творческие процессы создания и развития крупных распределенных ИС - системные анализ и проектирование, интеграция компонент и систем, испытания и сертификация ИС и т.п. почти не поддержаны требованиями и рекомендациями стандартов, вследствие трудности их формализации, унификации и разнообразия содержания;
- чем сложнее объекты или процессы, подлежащие стандартизации, тем больше необходимо использовать и формулировать предварительных условий, учитываемых в требованиях и рекомендациях стандарта, которые следует адаптировать и конкретизировать для корректного их применения в определенном проекте;
- пробелы и задержки в подготовке и издании стандартов высокого ранга и текущая потребность унификации и регламентирования современных объектов и процессов в области ИС приводят к созданию и практическому применению многочисленных нормативных и методических документов отраслевого, ведомственного или фирменного уровня;
- последующие селекция, совершенствование и согласование нормативных и методических документов в ряде случаев позволяют создать на их основе национальные и международные стандарты.
Основными целями применения стандартов и нормативных документов при создании ИС являются:
- снижение трудоемкости, длительности, стоимости и улучшение других технико-экономических показателей проектов ИС;
- повышение качества разрабатываемых или применяемых покупных компонент и ИС в целом при их разработке, приобретении, эксплуатации и сопровождении;
- обеспечение расширяемости ИС по набору прикладных функций и масштабируемости в зависимости от размерности решаемых задач;
- поддержка функциональной интеграции в ИС задач, ранее решавшихся раздельно;
- обеспечение переносимости прикладных программ и данных между разными аппаратно-программными платформами.
Применение стандартов при системном проектировании ИС позволяет ориентироваться на построение систем из крупных функциональных узлов, отвечающих требованиям стандартов, применять достаточно отработанные и проверенные проектные решения. Они определяют стандартизированные интерфейсы и протоколы взаимодействия компонент таким образом, что разработчику системы, как правило, не требуется вдаваться в детали внутреннего устройства этих компонент. Стандарты, относящиеся к прикладным программным комплексам (функциональным частям) ИС, облегчают повторное использование в проектируемой системе уже разработанных и проверенных прикладных программ. Таким образом, проектирование ИС в значительной степени может сводиться к ее компоновке из стандартизированных узлов. Можно выделить следующие основные группы специалистов, пользователей регламентирующих документов:
- руководители проекта ПС и его основных крупных компонент;
- системные аналитики, создатели пилотных проектов компонент и алгоритмов решения функциональных задач;
- программисты - разработчики программ и структур данных;
- интеграторы функциональных программных компонент, тестирующие и отлаживающие крупные функциональные компоненты и ПС в целом;
- испытатели и сертификаторы комплексов программ;
- разработчики технологии, инструментальных средств, методических, руководящих и инструктивных документов, обеспечивающих ЖЦ ПС.
Для перечисленных групп специалистов на базе стандартов должен быть создан комплект документов, каждый из которых имеет конкретных пользователей в проекте ПС. В составе документов должны подготавливаться методики, инструкции и описания по использованию
конкретных инструментальных средств и выполнению частных работ и операций в ЖЦ ПС. Таким образом стандарты и базовые нормативные документы ЖЦ ПС должны служить верхним уровнем большой иерархической системы технологических документов, регламентирующей и конкретизирующей все этапы, работы и документы проекта.
В России создание и испытания автоматизированных систем (АС), которые включают, в частности, ПС и БД, регламентированы:
1. ГОСТ 28195-89. Оценка качества программных средств. Общие положения.
2. ГОСТ 28806-90. Качество программных средств. Термины и определения.
3. ГОСТ 34.601-90. Информационная технология. Автоматизированные системы. Стадии создания.
4. ГОСТ 34.201-89. Информационная технология. Виды, комплектность и обозначение документов при создании автоматизированных систем.
5. ГОСТ 34.602-89. Информационная технология. Техническое задание на создание автоматизированных систем.
6. ГОСТ 34.603-92. Информационная технология. Виды испытаний автоматизированных систем.
7. РД 50-34.698-90 - Методические указания. Информационная технология. Автоматизированные системы. Требования к содержанию документов.
Однако создание, сопровождение и развитие программных средств для современных информационных систем в этих стандартах отражены недостаточно, а многие их положения устарели с точки зрения построения современных распределенных комплексов прикладных программ высокого качества в системах управления и обработки данных с различной архитектурой. Поэтому в отечественных разработках целесообразно выбирать и использовать отработанные зарубежные стандарты в этой области. Основные современные зарубежные стандарты ЖЦ ориентированы на сложные ПС обработки информации и управления в реальном времени. К таким ПС предъявляются наиболее высокие требования к качеству функционирования, они создаются большими коллективами специалистов в течение длительного времени.
Наибольшие достижения в регламентировании требований к объектам и процессам ЖЦ ПС и их реализации сосредоточены в стандартах Министерства обороны США, которые должны обеспечивать высокое качество и безопасность функционирования критических военных систем. Стандарт МО США - M1L-STD-498 представляет собой
комплект из трех документов, общим объемом около 600 страниц, куда входят:
- собственно стандарт - Разработка и документирование программного обеспечения - MIL-STD-498 - Software Development and Documentation;
- руководство - Обзор и адаптация (подготовка к применению) -Overview and Tailoring;
- руководство - Применение и рекомендации - Application and Reference.
Создание ПС рассматривается как часть полного процесса разработки специальных информационных систем военного назначения. Отмечается, что этот стандарт базируется на процессах и документах, представленных в международном стандарте ISO/IEC 12207:1995 -Процессы жизненного цикла программных средств, а также в стандарте по обеспечению качества продукции - ISO 9001 и предшествовавших военных стандартах. Начальные этапы проектирования и заключительные этапы испытаний и сдачи заказчику объединены в совместный анализ программных и аппаратных средств целостной информационной системы, полностью решающей требуемые потребителем функциональные задачи. Стандарт унифицирует требования к проектированию, разработке, модификации и документированию ПС. Проведено разделение требований к объектам и процессам жизненного цикла ПС.
Стандарт ориентирован, прежде всего, на создание крупных, сложных комплексов программ, но при необходимости может быть адаптирован на любые типы ПС. В стандарте представлены технологические задачи, которые следует решать, и процессы для их реализации, но не конкретные методы и рецепты их осуществления. Положения стандарта ориентированы на применение любых методов, языков программирования и CASE-средств, а также поддерживают возможность повторного использования программных компонент и измерения характеристик объектов и процессов. Предполагается, что требования стандарта должны выделяться, адаптироваться и конкретизироваться с учетом характеристик проекта, выбранного инструментария и внешней среды разработки, для чего приводятся рекомендации и примеры.
Существенной частью стандарта для системного проектирования является пятый раздел первого Руководства, в котором изложены рекомендации по подготовке и адаптации к применению основных требований стандарта при проектировании, разработке и/или приобретении программных средств. Рассмотрены пути и варианты выделения,
формирования и применения требований стандарта для разных типов ПС. Методика подготовки к использованию стандарта и формирования требований к конкретному ПС представлена в виде 18 организационных шагов, в которых рекомендуется:
- определить концепцию и стратегию разработки всей системы и ее ПС, а также стратегию приобретения или создания компонент и идентифицировать тип ПС;
- выделить положения стандарта, необходимые для использования при формировании структуры конкретного ПС, описаний данных и планировании разработки;
- детализировать и задокументировать основные требования стандарта к ПС для их формализации в контракте с заказчиком;
- определить форматы и расписания выходных данных приобретаемого или создаваемого ПС;
- провести структурный анализ вариантов ПС и базы данных на соответствие требованиям контракта;
- разработать и представить потребителям (заказчику) план разработки и развития проекта ПС;
- определить мониторинг контракта на проект ПС. Освоение и применение этого стандарта должно помочь отечественным специалистам при создании крупных проектов, непосредственно как основа при формировании конкретных технологий и выборе эффективных инструментальных средств, а также как документ, дисциплинирующий разработчиков и заказчиков при создании требований к ИС и ПС высокого качества.
Формирование проектов профилей стандартов при системном проектировании. При создании и развитии сложных, распределенных, тиражируемых ИС требуется гибкое формирование и применение гармонизированных совокупностей базовых стандартов и нормативных документов разного уровня, выделение в них требований и рекомендаций, необходимых для реализации заданных функций ИС. Для унификации и регламентирования реализации заданных функций ИС такие совокупности базовых стандартов должны адаптироваться и конкретизироваться применительно к определенным классам проектов, функций, процессов и компонент ИС. В связи с этим выделилось и сформировалось понятие профилей ИС, как основного инструмента функциональной стандартизации [21, 45, 46].
Профиль - это совокупность нескольких (или подмножество одного) базовых стандартов (и других нормативных документов) с
четко определенными и гармонизированными подмножествами обязательных и факультативных возможностей, предназначенная для реализации заданной функции или группы функций. Функциональная характеристика (заданный набор функций) объекта стандартизации является исходной для формирования и применения профиля этого объекта или процесса. В профиле выделяются и устанавливаются допустимые факультативные возможности и значения параметров каждого базового стандарта и/или нормативного документа, входящего в профиль. Профиль не может противоречить использованным в нем базовым стандартам и нормативным документам. Он должен использовать выбранные из альтернативных вариантов факультативные возможности и значения параметров в пределах допустимых. На базе одной и той же совокупности базовых стандартов могут формироваться и утверждаться различные профили для разных проектов ИС и сфер применения. Эти офаничения базовых документов профиля и их гармонизация, проведенная разработчиками профиля, должны обеспечивать качество, совместимость и корректное взаимодействие компонент системы, соответствующих профилю, в заданной области применения профиля.
Разработка и применение профилей являются органической частью процессов проектирования, разработки, сопровождения, модернизации и развития ИС. Проектированию системы предшествует стадия предпроектного обследования объекта автоматизации, результатом которой являются его функциональная и информационная модели, определение целей создания системы и состава ее функций. Стандарты, важные с точки зрения заказчика, должны задаваться в техническом задании (ТЗ) на системное проектирование ИС и составлять ее первичный профиль. То, что не задано в ТЗ, остается первоначально на усмотрение разработчика системы, который, руководствуясь требованиями ТЗ, может дополнять и развивать профили ИС. которые впоследствии согласуются с заказчиком.
Целесообразно рассматривать две группы профилей ИС:
- профили, регламентирующие архитектуру и структуру ИС и ее компонент (функции, интерфейсы и протоколы взаимодействия, форматы данных и т.д.);
- профили, регламентирующие процессы проектирования, разработки, применения, сопровождения и развития ИС и их компонент.
Профили ИС унифицируют и регламентируют только часть требований, характеристик, показателей качества объектов и процессов, выделенных и формализованных на базе стандартов и нормативных документов. Другая часть - функциональные и технические характе-
ристики ИС определяются заказчиками и разработчиками творчески, без учета положений нормативных документов.
Прагматический подход к разработке и применению профилей ИС, состоит в использовании совокупности адаптированных и параметризованных базовых международных и национальных стандартов и открытых спецификаций, отвечающих стандартам "де-факто" и рекомендациям международных консорциумов. При практическом формировании и применении профилей ИС в ряде случаев возможно использовать региональные, национальные стандарты, стандарты де-факто и ведомственные нормативные документы. Это может быть обусловлено отставанием в разработке некоторых задач в международных стандартах или необходимостью учета конкретных особенностей ИС. При применении стандартов и профилей могут быть выявлены пробелы в положениях некоторых стандартов и необходимость модификации или дополнения требований, определенных в них. Некоторые функции, не формализованные стандартами, но важные для унификации построения или взаимодействия компонент ИС могут определяться нормативными документами ведомства или фирмы, обязательными для конкретного профиля и проекта.
В зависимости от области распространения профилей они могут иметь разные категории и соответственно разные статусы утверждения:
- профили конкретной ИС, определяющие стандартизированные проектные решения в пределах данного проекта и являющиеся частью проектной документации;
- профили ИС, предназначенные для решения некоторого класса прикладных задач, которые распространяются на все ИС данного класса в пределах предприятия, отрасли или региона и утверждаются как стандарты предприятий, ведомственные или государственные стандарты.
Особенности организационных структур, различия в размерах и сложности проектов ИС, требованиях к системам и применяемых методах их разработки, необходимость преемственности с системами, находящимися в эксплуатации, влияют на организацию разработки, приобретения, применения и сопровождения аппаратных и программных средств ИС. Для эффективного применении конкретного профиля необходимо:
- выделить объединенные единой логической связью проблемно-ориентированные области функционирования, где могут использоваться стандарты, общие для одной организации или группы организаций
- идентифицировать стандарты и нормативные документы, варианты их применения и параметры, которые необходимо включить в профиль;
- документально зафиксировать участки конкретного профиля, где требуется создание новых стандартов или нормативных документов и идентифицировать характеристики, которые могут оказаться важными для разработки недостающих стандартов и нормативных документов этого профиля;
- формализовать профиль в соответствии с его категорией, включая стандарты, различные варианты нормативных документов и дополнительные параметры, которые непосредственно связаны с профилем.
Каждый профиль и его параметры для применения в конкретном проекте необходимо поэтапно адаптировать и детализировать в соответствии со стадиями проекта ИС. При системном проектировании в проекте жизненного цикла конкретной ИС следует регламентировать этапы развития и применения комплекта профилей стандартов в соответствии с основными процессами создания, сопровождения и развития ИС:
- системный анализ объекта информатизации и создание концепции ИС, когда производится первичный выбор исходного комплекта стандартов, которым должна соответствовать ИС; выявляется необходимость разработки и состав дополнительных нормативных документов;
оформляется содержание и параметры комплектов документов предполагаемых профилей;
- детальное проектирование ИС, когда определяется ее архитектура и структура и соответственно уточняются положения, параметры и адаптируются стандарты комплекта профилей; они дополняются ведомственными нормативными документами; оформляются проекты документов и методических руководств по применению рабочей версии каждого профиля;
- разработка или приобретение готовых компонент ИС, при этом утверждаются и применяются все положения профиля; производится контроль, тестирование и испытания компонент ИС на соответствие требованиям и нормативным документам конкретного профиля;
- сопровождение, актуализация и развитие ИС, когда анализируются положения, параметры и результаты адаптации применяемой версии каждого профиля; выявляются и устраняются ее дефекты;
производится модернизация профиля, с учетом появления более совершенных технических и программных средств и новых стандартов
при необходимости осуществляется формирование, документирование и внедрение новой уточненной версии соответствующего профиля.
Для обеспечения корректного применения профилей их описания должны содержать:
- определение целей, которые предполагается достичь применением данного профиля;
- точное перечисление функций объекта или процесса стандартизации, определяемого данным профилем;
- формализованные сценарии применения базовых стандартов, нормативных документов и спецификаций, включенных в данный профиль;
- сводку требований к ИС и к ее компонентам, определяющих их соответствие профилю и требований к методам тестирования соответствия;
- нормативные ссылки на конкретный набор стандартов и других нормативных документов, составляющих профиль, с точным указанием используемых редакций и ограничений, способных оказать влияние на достижение корректного взаимодействия объектов стандартизации при использовании данного профиля;
- информационные ссылки на все исходные документы. При применении профилей ИС следует обеспечить проверку корректности их использования путем тестирования, испытаний и сертификации, для чего должна быть создана технология контроля и тестирования в процессе применения профиля. Она должна быть поддержана совокупностью методик, инструментальных средств, составом и содержанием оформляемых документов на каждом этапе обеспечения и контроля корректности применения соответствующей версии и положений профиля. При сертификации информационных систем как специальный вид испытаний следует выделять сертификацию на соответствие профилям:
- процессов жизненного цикла ИС и ее компонент;
- объектов ИС, подготовленных и рекомендуемых для эксплуатации и сопровождения.
Каждый из выделенных при системном проектировании профилей должен для последующего длительного использования пройти стадию формирования, адаптации и параметризации применительно к характеристикам стандартизируемых объектов или процессов создания ИС. Такая подготовка профилей должна проводиться с учетом применяемых методов и средств, текущего состояния и ведущихся работ на реальных компонентах ИС. Подготовка профилей к приме-
нению должна учитывать реальное состояние проекта ИС. При этом возможны следующие варианты:
- планируется создание новой ИС в условиях отсутствие задела по системе и компонентам данного проекта;
- имеется типовой проект ИС, и предстоит его адаптация и реализация;
- существует и эксплуатируется реальная - унаследованная ИС, для которой следует подготовить и адаптировать профили с учетом ее реального состояния и перспективы развития.
Стадии разработки профилей, которые определяются разработчиком системы, должны быть увязаны со стадиями жизненного цикла ИС и выполняться во времени таким образом, чтобы эти разрабатываемые профили могли быть применены тогда, когда это требуется по логике детализации проекта. Исходя из выбранной модели жизненного цикла ИС и возможного влияния решений, принимаемых на какой-либо стадии проекта, на решения, принятые ранее, следует учитывать итерационный характер формирования функциональных профилей ИС и, при необходимости, корректировки ТЗ и проекта.
Профиль стандартов прикладных программных средств (функциональных частей ИС) должен определять архитектуру программных комплексов (модели функций, логические модели данных, внешние интерфейсы) и их структуру (разбиение системы на подсистемы и подсистем на модули, определение унифицированных интерфейсов взаимодействия между прикладными программами). Профиль конкретного ПС должен учитывать функциональную ориентацию приложений. Приложения, работа которых может быть связана с частыми изменениями нормативно-инструктивной базы функциональных операций, должны иметь встроенные автоматические средства перенастройки, позволяющие пользователям настраивать их без привлечения разработчиков.
В стандартах жизненного цикла ПС отражено содержание этапов работ и результирующих документов на методологическом и концептуальном уровне. Методы и средства реализации каждой работы в этих стандартах не раскрываются и адресуются к специальным, детализирующим стандартам и нормативным документам различного уровня. Быстро оснащающиеся различными методами и средствами автоматизации этапы системного анализа, моделирования и предварительного проектирования не позволяют стабилизировать основу этих процессов, достаточную для их формализации на уровне международных стандартов, для создания которых требуется несколько лет,
Стандарты и нормативные документы, входящие в профили жизненного цикла ПС, должны выполнять следующие функции:
- регламентировать структуру и состав этапов, работ и документов
жцпс;
- обеспечивать адаптацию профилей к характеристикам конкретного объекта или процесса проектирования, внешней и операционной среды;
- поддерживать и регламентировать процессы организации и планирования работ по конкретному проекту ПС;
- формализовать выполнение и документирование конкретных работ при проектировании, разработке и сопровождении ПС.
На стадии системного анализа при планировании технологической поддержки разработки ПС следует проанализировать набор базовых международных стандартов, связанных с регламентированием особенностей информационных систем и программных средств. Для поддержки жизненного цикла разрабатываемых ПС необходимо из них выбрать предварительный набор стандартов, в наибольшей степени относящихся к ПС данного класса. Этот набор стандартов может быть дополнен возможными и целесообразными для применения стандартами де-факто и перечнем подлежащих разработке нормативных документов данного проекта. В результате формируется предварительный перечень стандартов и нормативных документов, который должен стать основой для профилей ЖЦ ПС. Этот перечень должен быть указан в ТЗ или войти в состав системного проекта ИС и комплекса программ.
Далее при планировании и подготовке технологической поддержки создания комплекса программ ИС уточняется его жизненный цикл и основные характеристики проекта. Это позволяет селектировать перечень стандартов и нормативных документов, целесообразных для использования в профилях ЖЦ данного ПС, провести их адаптацию для применения с учетом характеристик проекта, методологии и технологии создания ПС, а также предполагаемых средств автоматизации проектирования и разработки комплекса программ. На этом этапе должны быть выбраны, разработаны или приобретены нормативные документы, дополняющие базовые стандарты ЖЦ ПС, с целью полного определения и регламентирования набора профилей.
В уточненном плане реализации проекта ПС должны быть представлены ссылки на состав и содержание документов каждого профиля, выделены компоненты, параметры и ограничения, сформированные в процессе адаптации профиля ЖЦ данного ПС. Для разработчиков и заказчиков ПС на этом этапе должен быть создан
проект руководства по применению профилей на последующих этапах ЖЦ. В результате на этапе системного проектирования формируется предварительный проект адаптированного набора профилей ЖЦ ПС. Кроме того, следует выделить и, по возможности, применять основные требования и рекомендации базовых нормативных документов формируемого проекта профиля ЖЦ ПС. Необходимо провести предварительное обучение разработчиков проекта ПС применению профилей ЖЦ ПС и основным концепциям профилей для данного проекта.
Детальное проектирование версии ПС и все последующие работы по созданию комплекса программ, вплоть до завершения испытаний и сертификации, должны проводиться в соответствии с утвержденными профилями ЖЦ ПС, руководствами по их применению и проверяться на соответствие профилям по утвержденным методикам тестирования (см. рис. 7). Для этого должны быть созданы план, перечень и содержание работ, в которых применяются конкретные фрагменты, определенные положения каждого профиля и разделы методики, по которым проверяется соответствие версии ПС данному профилю. Наиболее полная проверка соответствия утвержденному профилю производится в процессе испытаний комплекса программ.