Лекция 5 Профили стандартов жизненного цикла систем и программных средств в программной инженерии Профиль стандартов — это совокупность нескольких (или подмножество одного) базовых стандартов (и других нормативных документов) с четко определенными и гармонизированными подмножествами обязательных и факультативных возможностей, предназначенная для реализации заданной функции или группы функций. Профиль — набор стандартов, ориентированных на выполнение конкретной задачи Основными целями применения профилей стандартов при создании и применении ПС являются: — снижение трудоемкости, длительности, стоимости и улучшение других технико-экономических показателей проектов систем и комплексов программ; — повышение качества разрабатываемых или применяемых покупных компонентов и ПС в целом при их разработке, приобретении, эксплуатации и сопровождении; — обеспечение расширяемости ПС по набору прикладных функций и масштабируемости в зависимости от размерности решаемых задач; — поддержка функциональной интеграции в системах задач, ранее решавшихся раздельно; — обеспечение переносимости программ и данных между разными аппаратно-программными платформами. Применение стандартизированных профилей позволяет заказчику системы освободиться от зависимости от одного поставщика программных или аппаратных средств за счет выбора этих средств из числа доступных на рынке и соответствующих стандартам, нормативным требованиям и рекомендациям профиля. Применение профилей, относящихся к программным комплексам (функциональным частям систем), облегчает повторное использование в проектируемой системе уже разработанных и проверенных программных компонентов. Профиль стандартов ЖЦ ПС (функциональных частей системы) должен определять архитектуру программного комплекса (модели функций, логические модели данных, внешние интерфейсы) и их структуру (разбиение системы на подсистемы и систем на модули, определение унифицированных интерфейсов взаимодействия между комплексами программ и их компонентами). Жизненный цикл программных средств отражается в профиле стандартов набором процессов, этапов, частных работ и операций в последовательности их выполнения и взаимосвязи, регламентирующим ведение разработки, сопровождение и эксплуатацию, от анализа и подготовки требований до завершения испытаний ряда версий программного продукта и прекращения их использования. Повышение эффективности разработки, качества программного продукта и производительности труда специалистов достигается за счет: — регламентации организации и порядка проведения работ; — автоматизации этапов и операций; — рационального разделения труда между специалистами разной квалификации и проблемной ориентации. В зависимости от области распространения профилей они могут иметь разные статусы утверждения: — профили конкретной системы, определяющие стандартизированные проектные решения в пределах данного проекта и являющиеся частью проектной документации; — профили, предназначенные для решения некоторого класса прикладных задач, которые распространяются на все системы и ПС данного класса в пределах предприятия или отрасли и утверждаются как стандарты предприятий, ведомственные или государственные стандарты. Жизненный цикл профилей стандартов систем и программных средств Профиль стандартов конкретной системы не является статичным, он развивается и конкретизируется (возможно, во взаимодействии с заказчиком) в процессе жизненного цикла и оформляется в составе документации системы. Разработка и применение профилей стандартов являются органической частью процессов жизненного цикла, разработки и развития систем. Целесообразно рассматривать две группы профилей систем — функциональные профили, регламентирующие архитектуру и структуру объектов системы и ее компонентов; функции, интерфейсы и протоколы взаимодействия, форматы данных; — технологические профили, регламентирующие процессы проектирования, разработки, применения, сопровождения и развития систем и их компонентов. На этапах жизненного цикла системы выбираются и затем применяются общесистемные функциональные профили: — профиль жизненного цикла информационной системы; — профиль аппаратной и операционной среды системы; — профиль внешней и пользовательской среды функционирования ПС; — профиль обеспечения безопасности функционирования и защиты информации в системе; — профиль инструментальных жизненный цикл системы. средств, поддерживающих весь При применении функциональных профилей системы следует иметь в виду согласование (гармонизацию) этих профилей между собой. Необходимость такого согласования возникает, в частности, при применении стандартизированных интерфейсов, в том числе интерфейсов ПС и БД со средой их функционирования, интерфейсов со средствами защиты информации. При согласовании функциональных профилей возможны также уточнения профиля внешней среды системы и профиля инструментальных средств создания, сопровождения и развития программных средств. Выбор и применение этих профилей является органической частью процессов проектирования, разработки, сопровождения и развития сложных систем. Их применение включает процессы: — выбор аппаратной и операционной среды системы определенного класса; — определение внешней и пользовательской среды функционирования и применения системы; — подготовку административного управления системой качества; — выбор готовых программных и аппаратных средств, соответствующих функциям и профилям системы; — проектирование и разработка программных средств и баз данных (функциональных частей системы) в соответствии с выбранными профилями, в частности в соответствии со стандартами на интерфейсы; — разработка требований к методам тестирования компонентов системы на соответствие функциональным профилям, выбор или разработка тестов соответствия; — тестирование компонентов системы на соответствие профилям или проверка сертификатов соответствия для применяемых готовых программных и аппаратных средств; — комплексирование компонентов в создаваемой системе на основе последовательного тестирования. применения профилей и их квалификационного Применение функциональных профилей должны поддерживать основные, технологические профили: — жизненного цикла программных средств и баз данных; — обеспечения качества программных средств и информации баз данных; — верификации, тестирования и сертификации ПС и БД; — сопровождения и управления конфигурацией ПС и информацией БД; — документирования программных средств и информации баз данных. Отдельные внутренние этапы жизненного цикла компонентов и комплексов программ обеспечиваются группами стандартов на локальные процессы, определяющие: — языки и процессы программирования программных компонентов; — визуализацию информации для пользователей и обеспечения управления жизненным циклом ПС; — защиту информационных ресурсов от несанкционированных вмешательств и криптографии; — телекоммуникацию и взаимодействие с внешней средой. Создание и применение профилей жизненного цикла ПС можно разделить на два крупных процесса: — разработка, формирование и адаптация профилей стандартов ЖЦ ПС для использования в конкретном проекте системы; — непосредственное применение требований и рекомендаций каждого адаптированного профиля стандартов для регламентирования этапов, работ и документов проекта ПС. При создании ПС профили стандартов развиваются и детализируются параллельно с конкретизацией проекта. Они должны обеспечивать соответствующую часть технологической поддержки разработки комплекса программ нормативными документами. Таким образом, жизненный цикл профилей в некоторой степени подобен :жизненному циклу самих программных средств и баз данных. Завершение разработки профилей стандартов системы и оформление результатов должно опережать, обеспечивать и подготавливать выполнение соответствующих этапов и работ основного жизненного цикла комплекса программ. Процессы жизненного цикла, развития системы и ее программных компонентов должны быть поддержаны этапами развития и применения комплекта профилей, которые включают: — системный анализ объекта информатизации и создания концепции системы, когда стандартов, производится которым первичный должна выбор исходного соответствовать система; комплекта выявляется необходимость разработки и состав дополнительных нормативных документов; оформляются содержание и параметры комплектов документов предполагаемых профилей; - проектирование системы, когда определяются требования к ее архитектуре и структуре и соответственно уточняются положения, параметры и адаптируются стандарты комплекта профилей; оформляются проекты документов и методических руководств по применению рабочей версии каждого профиля стандартов; — разработку или приобретение готовых компонентов системы, при этом утверждаются и применяются все положения профиля; производятся контроль, тестирование и испытания компонентов на соответствие требованиям и документам конкретного профиля стандартов; — сопровождение, актуализацию и развитие системы, когда анализируются положения, параметры и результаты адаптации применяемой версии каждого профиля; выявляются и устраняются дефекты профилей; — модернизацию профиля, с учетом появления более совершенных технических и программных средств, а также новых стандартов; при необходимости осуществляется формирование, документирование и внедрение новой модифицированной и уточненной версии соответствующего профиля. На этапе системного анализа при планировании профиля технологической поддержки разработки ПС следует проанализировать набор базовых международных стандартов, связанных с регламентированием особенностей систем и программных средств. На этапе определения области применения профиля должны быть выявлены: — направления деятельности предприятия, подлежащие учету при построении профиля; — срок реализации профиля и контрольная дата, когда работа над профилем должна быть завершена; — технические стратегии, предположения и ограничения проекта системы и ПС; — опытный и энергичный лидер, который пользуется в предприятии уважением и авторитетом, достаточным для того, чтобы возглавить и довести до конца работу по созданию и утверждению профиля стандартов проекта системы и ПС; — уровень компетентности коллектива, разрабатывающего профиль, его знания и пригодность к экспертизе проекта и деятельности предприятия. На этапе проектирования профиля ПС уточняются жизненный цикл и основные характеристики проекта. Это позволяет селектировать перечень стандартов и нормативных документов, целесообразных для использования в профилях ЖЦ данного ПС, провести их адаптацию для приме нения с учетом характеристик проекта, методологии и технологии создания ПС, а также предполагаемых средств автоматизации разработки, сопровождения и управления конфигурацией комплекса программ. На этом этапе описываются как функциональные, так и технические требования, устанавливаемые в профиле. Этап разработки системы и комплекса программ связан, прежде всего, с программированием и тестированием компонентов ПС, которые создаются заново для данной системы. На этапе внедрения профиля стандартов важно иметь план по его применению. Руководители высшего уровня должны установить приоритеты при реализации отдельных частей и требований профиля. Внедрение профиля в соответствии с задачами проекта или предприятия будет упрощено, если ключевые цели обеспечения функциональной совместимости будут четко документированы в профиле. План внедрения профиля должен быть действующим документом и постоянно актуализироваться по мере изменения проекта. Для обеспечения корректного применения каждого профиля должна быть разработана и утверждена методика проверки и тестирования для установления степени соответствия комплекса программ утвержденному профилю ЖЦ ПС и БД. При сопровождении программного продукта и создании его новых версий накапливается опыт применения каждого использованного профиля стандартов ЖЦ, проявляются его некоторые недостатки и появляются предложения по модернизации. Можно выделить следующие основные группы специалистов, использующие документы профилей: — руководители — менеджеры крупного проекта системы и ее основных, функциональных компонентов программного продукта; — менеджеры — системные аналитики, создатели спецификаций требований, пилотных проектов компонентов и алгоритмов решения функциональных задач; — программисты-разработчики программных компонентов, структур и содержания данных; — интеграторы функциональных программных компонентов, тестирующие и отлаживающие крупные функциональные компоненты или ПС в целом; — специалисты сопровождения и управления конфигурацией версий программных продуктов; — испытатели и сертификаторы программных продуктов; — разработчики технологии, инструментальных средств, методических, руководящих и инструктивных документов, обеспечивающих реализацию профилей стандартов ЖЦ ПС. Особое внимание в моделях CMMI уделяется процессам менеджмента проекта ПС. С точки зрения поддержки и регламентирования полного жизненного цикла крупных проектов программных средств к недостаткам моделей CMMI относительно профиля существующих стандартов ISO можно отнести следующие: — не все процессы предусмотрены в составе процессов моделей CMMI — 1.1, которые развиваются и детально комментируются для их реализации в стандартах ISO 9004:2000 и ISO 90003:2004, а также в профиле стандартов ISO; — не отражены особенности системной инженерии и международные стандарты, регламентирующие процессы жизненного цикла сложных систем ISO 15288:2002 и ISO 19760:2003; — при анализе процессов обеспечения качества используется ряд традиционных характеристик систем и программных продуктов, которые применяются в сложных проектах, однако не описаны и не комментируются базовые международные стандарты, систематизирующие и регламентирующиекачество программных средств — ISO 9126:1-4, ISO 14598:1-6, ISO 15939; — отсутствуют описания характеристик и конкретных процессов обеспечения информационной и функциональной безопасности программных продуктов и ссылки на многочисленные стандарты в этой области; — не отражены регламентированные интерфейсы Открытых систем на взаимодействие программных компонентов, а также с операционной и внешней средой, в соответствии со стандартами — ISO 9945:1-4; — документирование процессов и продуктов ЖЦ ПС комментируется только по мере их реализации, и не представлены обобщенные требования к технологической и эксплуатационной документации на программный продукт в соответствии со стандартами — ISO 9294, ISO 15910, ISO 18019.