<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Инженерия требований на современном предприятии</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Victor K. Batovrin</string-name>
          <email>batovrin@mirea.ru</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Boris A. Pozin</string-name>
          <email>bpozin@ec-leasing.ru</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>JSC «ЕС-leasing», National Research University Higher School of Economics</institution>
          ,
          <addr-line>Moscow</addr-line>
          ,
          <country country="RU">Russia</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Moscow Technological University (MIREA)</institution>
          ,
          <addr-line>Moscow</addr-line>
          ,
          <country country="RU">Russia</country>
        </aff>
      </contrib-group>
      <fpage>380</fpage>
      <lpage>387</lpage>
      <abstract>
        <p>The problems of requirements definition, providing the necessary properties and characteristics of the requirements, their documentation and requirements management at the enterprise which creates complex engineering products. Аннотация. Рассмотрены вопросы определения требований, обеспечения необходимых свойств и характеристик требований, документирования и управления требованиями на предприятии, создающем сложную инженерную продукцию.</p>
      </abstract>
      <kwd-group>
        <kwd>Requirements Engineering</kwd>
        <kwd>Requirements Definition</kwd>
        <kwd>Requirements Characteristics</kwd>
        <kwd>Requirements Documentation</kwd>
        <kwd>Requirements Management</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Промышленные системы разных типов и назначения, в том числе
информационные, характеризуются длительным жизненным циклом (ЖЦ) и высокой
сложностью [
        <xref ref-type="bibr" rid="ref1">1,11</xref>
        ]. Система требований к создаваемой продукции также
сложна, например, к современным летательным аппаратам предъявляются десятки
тысяч оригинальных требований, в свою очередь нормы летной годности
самолетов дополнительно регламентируют тысячи обязательных требований к
воздушным судам [2]. Кроме того в течение ЖЦ требования к функционированию,
конфигурации, эксплуатационным и другим характеристикам как целевых
систем, так и систем обеспечения могут изменяться. Для систем, производимых
серийно (например, летательные аппараты, автомобили и, т.п.), могут
различаться конфигурации отдельных экземпляров изделия, что приводит к
необходимости поддержки на предприятии гибкой системы требований к продукции.
Для прикладного программного обеспечения (ПО) систем важно, что при
внесении изменений в одну часть ПО могут быть затронуты программные или
информационные компоненты другой его части, что при отсутствии четко
описанных требований к ПО не позволяет контролировать функциональную
целостность системы. Наконец, исправление ошибок, допущенных в области
инженерии требований, ведет к возникновению рисков программ и проектов,
затраты на устранение последствий реализации которых на стадии эксплуатации
могут в десятки и даже сотни раз превысить планируемую стоимость полного
ЖЦ системы [
        <xref ref-type="bibr" rid="ref9">12</xref>
        ].
      </p>
      <p>В работе рассматриваются основные проблемы, возникающие в жизненном
цикле системы требований, направления и возможности их разрешения
современными средствами инженерии требований, обсуждаются проблемы
совершенствования инструментальных средств и технологий работы с требованиями.</p>
      <p>
        Казалось бы, в чем вопрос: на практике на любую систему есть документ:
техническое задание или тактико-технические требования или заменяющие их
документы, описывающие согласованное представление заказчика системы и
генподрядчика (подрядчика) о будущей системе. Но это обычно требования
довольно высокого уровня, так называемые Stakeholder Requirements
Specification (StRS) [
        <xref ref-type="bibr" rid="ref2">3</xref>
        ]. Однако при создании систем достаточно высокой сложности
возникает противоречие между сложностью самой системы и качеством и
степенью документированности результатов декомпозиции исходных требований
(StRS) до уровня приемлемой детальности производных требований, при
котором можно контролировать целостность системы [7] при проверке (валидации,
верификации и тестировании) системы, ее эксплуатации, ремонте и развитии.
Почему пока не удается решить проблему формирования адекватной системы
требований, их документирования требований, а также поддержания качества и
актуальности требований на протяжении ЖЦ систем?
2
      </p>
      <p>
        Архитектура - требования - конфигурация
Проект любой системы всегда включает концептуальную и логическую
архитектуры системы. При декомпозиции (проектировании) эти архитектуры
преобразуются в конфигурацию системы, то есть набор составных частей, из которых
формируются элементы архитектуры. Концептуальная архитектура разных
систем (например, самолетов определенного типа) может быть унифицирована.
В нее включены крупные системы (например, фюзеляж, двигатель, крыло и
т.п.). Однако особенности конкретного изделия определяются его
конфигурацией, то есть набором атрибутов и свойств взаимосвязанных элементов (узлов,
деталей), в совокупности реализующей функциональные и нефункциональные
свойства элемента архитектуры, обладающей конкретными характеристиками,
соответствующими архитектурным системным требованиям к изделию [
        <xref ref-type="bibr" rid="ref10">13</xref>
        ].
      </p>
      <p>По умолчанию часто предполагается, что в процессе работ исходной точкой
являются требования, а деятельность ведется «сверху-вниз». На практике,
например в автомобильной или авиационной промышленности, этот порядок,
как правило, не соблюдается, а исходной точкой является
слабодетализированная архитектура целевой системы, в составе которой определены ключевые
системы и связи между ними. Таким образом, работа с требованиями строится
сразу в двух направлениях «снизу-вверх», т.е. от архитектуры к требованиям, и
«сверху-вниз», т.е. от архитектуры к элементам конфигурации. В этом случае
процесс инженерии требований по существу накладывается на процесс
управления конфигурацией, эти процессы выполняются в неразрывной связи между
собой, а важнейшим элементом работы становятся функциональный анализ и
привязка требований в сочетании с обеспечением безусловной трассируемости
требований.</p>
      <p>Требования к элементам конфигурации определяют различные атрибуты этих
элементов, важных с точки зрения функциональных, нефункциональных,
технологических свойств создаваемой системы. При реализации конфигурации ее
элементы могут строиться из COTS-продуктов, которые закуплены на рынке,
обладают свойствами, соответствующими функциональным и
нефункциональным требованиям к рассматриваемому элементу, однако эти требования
задавались не в рамках проекта данной системы, а исходя из каких-то других целей. В
результате покупные изделия могут иметь функциональные возможности,
превышающие те, что необходимы в данной системе или обладать свойствами
близкими, но не в точности соответствующими требованиям, предъявляемым к
данной продукции. Некоторое функциональное требование может
реализовываться не одним, а несколькими покупными изделиями в совокупности. Таким
образом, требования могут охватывать Элемент Конфигурации (ЭК) полностью,
частично или реализовываться несколькими ЭК. Проблема состоит в
установлении соответствия между ЭК и требованиями к отдельным элементам. Для ее
решения предприятие должно запустить хорошо формализованные процессы
формирования иерархической структуры функций целевой системы и деления
целевой системы на части. Причем в рамках этих процессов должна быть
формально описана процедура привязки функциональных требований к ЭК и
обеспечения полноты этих требований. Это особенно важно если на протяжении
ЖЦ предполагается неоднократная модернизация «целевой» системы. .В
технических заданиях на «целевые» системы (в нашем примере самолет) и входящие
в их состав (под)системы (например, крыло, двигатель и т.п.) зачастую
указываются требования достаточно высокого уровня, или требования к «внешним»
характеристикам изделия, определяющим его функциональное назначение,
возможности и эксплуатационные характеристики. В процессе проектирования
системы возникает необходимость декомпозировать эти требования на более
детальные, реализация которых требует применения конкретных методов,
технологий и установления различных видов связей между составными частями
системы при реализации ее «внешних» свойств. При этом на каждом этапе
реализации системы декомпозированные требования должны быть проверяемыми
как автономно, так и во взаимосвязи с другими требованиями или составными
частями системы. Возникает необходимость в прослеживании взаимосвязи как
самих требований, так и связи требований с реализующими их ЭК. Если
рассматривать совокупность требований и связей между ними как граф
требований, то говорят о трассируемости требований, то есть о необходимости
построения маршрутов или подграфов графа требований, связывающих два или более
требований между собой. Прослеживаемость требований позволяет создать
основу для их верификации: подграф обладает меньшей размерностью и более
пригоден к анализу, чем граф требований в целом.</p>
      <p>Размерность набора требований к системе
Практически значимые системы обладают весьма большой размерностью. Она
может составлять порядка 105 – 106 требований для «целевой» системы и 103
104 требований для подсистем. Наборы требований к программному
обеспечению, входящему в состав систем, обладают аналогичными размерностями с
теми лишь отличиями, что между такими требованиями может быть больше
связей как по передаче управления, так и по передаче информации.
Необходимость установления связей между требованиями и ЭК приводит к
формированию при описании требований дополнительных атрибутов, характеризующих
по результатам проектирования каждое требование атрибутом с именем
(индексом, номером) ЭК, который реализует данное требование. Это означает, что при
работе с требованиями нужна не просто трассировка самих требований, но
трассировка по требованиям и видам связей или по требованиям и типам
атрибутов – или по совокупности свойств. Следует отметить также, что в отличие от
трассировки требований к программному обеспечению, трассировка
требований к системам приводит к построению «очень длинных» трасс – в сотни и
тысячи взаимосвязанных вершин, что вызывает необходимость создания
специальных средств документирования и анализа трасс.</p>
      <p>Особенностью требований к системам как к серийным изделиям является и
то, что для сложных технических систем в связи с особенностями производства
и сборки систем могут быть опциональные требования к экземплярам серийных
изделий, которые также должны отражаться в атрибутах требований.</p>
      <p>С учетом анализа функционального состава и опыта использования
имеющихся на рынке инструментальных средств инжиниринга требований следует
признать, что наиболее приемлемым является совместное использование
инструментальных средств инженерии требований, управления конфигурациями и
систем управления знаниями для конкретной предметной области (например,
система управления знаниями в самолетостроении, содержащая онтологию
летательных аппаратов разных типов и типовую архитектуру их бортового
оборудования). Это позволит установить единые правила индексации составных
частей «внешней» системы для требований, архитектуры и конфигурации.
4</p>
      <p>
        Обеспечение качества требований
Типовые характеристики качества требований, такие как независимость от
реализации, непротиворечивость, полнота, прослеживаемость и т.п.
определены как в стандартах системной и программной инженерии, например, [
        <xref ref-type="bibr" rid="ref2">3</xref>
        ], так и
в ряде других источников [
        <xref ref-type="bibr" rid="ref3 ref4">4-5</xref>
        ]. Причем, непосредственная оценка подобных
характеристик конкретного требования весьма затруднительна, поскольку
общепринятые характеристики требований не являются независимыми [
        <xref ref-type="bibr" rid="ref5">6</xref>
        ], а
требования фиксируются в тестовой форме, что приводит к субъективной оценке
значений характеристик, связанной с интерпретацией требований в некотором
контексте. В этой связи некоторые зарубежные авторы рекомендуют
переходить от оценки типовых свойств требований к оценке качества описания и
документирования требований на основе правил, которые устанавливаются на
конкретном предприятии с учетом особенностей предметной области и
выполняемых проектов [
        <xref ref-type="bibr" rid="ref5">6</xref>
        ]. Подобные правила должны быть максимально
конкретными, а каждому из них следует поставить в соответствие набор
лингвистических индикаторов - морфологических, лексических, аналитических и
реляционных – для формальной оценки текстового содержание требований. Следует
отметить, что лингвистические индикаторы не дают объективных свидетельств
того, что требования к системе или к ее элементам обладают приемлемым
качеством, однако позволяют выявить несоответствие правилам формулирования и
документирования требований и таким образом с большой вероятностью
предотвратить появление ошибок в требованиях.
5
Документирование и использование требований с уровня
StRS
Документирование требований к системе на всех уровнях декомпозиции
является крайне необходимым, особенно для сложных технических и программных
систем. В формировании требований, как правило, участвует довольно много
специалистов разных специальностей и с разными уровнями ответственности.
Такое положение неминуемо приводит к необходимости регламентации
процессов формирования требований, их фиксации при внесении изменений.
Регламентирующий документ должен действовать как в организации – заказчике
системы, так и в кооперации разработчиков, операторов (эксплуатирующей
организации) сопровожденцев системы на всех стадиях жизненного цикла
системы (изделия, программной системы). Регламентирующий документ должен
определять порядок формирования, разработки, согласования, изменений и
исключения требований, их индексации, агрегирования при разработке и оценке
и ряд других факторов, процессов и процедур в жизненном цикле требований.
Следование регламенту является обязательным для сертифицируемых изделий,
включая ПО. Документированные требования можно анализировать,
верифицировать, использовать как эталоны при тестировании систем и программ, при
оценке эксплуатационных характеристик и определении соответствия
нефункциональным требованиям, то есть при планировании и проведении всех видов
испытаний систем, включая периодические и сертификационные.
6
Планирование тестирования ПО на соответствие
требованиям
Для ПО, входящего в состав систем, крайне важной является возможность их
использования при планировании комплексного тестирования как при
начальной интеграции компонентов ПО в составе системы, так и при тестировании
новых версий ПО в составе системы. В обоих случаях возникает необходимость
контроля функциональной целостности системы [7] в целом в предположении о
том, что отдельные компоненты оттестированы и обеспечивают заданную
функциональность на необходимом уровне. Для проведения комплексного
тестирования необходимо провести планирование тестирования, то есть
сформулировать состав системных сценариев, которые надлежит оттестировать. Такие
сценарии непосредственно вытекают из StRS, либо из требований к системе в
целом более низкого уровня – в зависимости от целей тестирования. Требования
при этом рассматриваются как сценарии для системы в целом, то есть как
«внешняя» функция системы, которая подлежит проверке. Трассировка
требований от каждой точки входа в систему позволяет сформировать состав
взаимосвязанных требований и соответствующих им тестируемых объектов ПО, а
также разработать набор эталонов, проверяющих корректность и целостность
версии системы. Такие эталоны (и разработанные для них комплекты комплексных
тестов) могут использоваться на постоянной основе для регрессионного
тестирования версий ПО и должны проверяться (пересматриваться) при внесении
изменений в тестируемые объекты, входящие в предыдущую и новую версию
одновременно. Подобный подход позволяет при регрессионном комплексном
тестировании фактически перейти от тестирования элементов ПО к
тестированию целостности функций, которые должна выполнять версия ПО. Полный
комплект тестов, проверяющих все «внешние» функции системы, является
гарантией целостности версии ПО. Покрытие тестами всех внешних
функциональных требований к версии ПО является критерием полноты комплексного
функционального тестирования версии. Заметим, что, например, для
банковской платежной системы количество функциональных требований к
прикладному ПО составляет порядка 103 и довольно медленно изменяется из года в год,
в то время как количество тестовых требований для комплексного
функционального тестирования этого прикладного ПО в среднем в 1,5-1,7 раз
превышает количество функциональных требований. При этом количество тестовых
примеров и эталонов для проверки их выполнения составляет порядка 30 000.
7
      </p>
      <p>
        Требования в проекте
Наличие репозитория требований и возможностей его анализа является мощной
возможностью при управлении проектами. Действительно, менеджеру
программы работ или проекта важно знать, каким содержанием наполнено событие
(milestone), которое он планирует или оценивает (например, степень реализации
проектного решения в текущий момент или к заданному сроку). Самым
естественным и важным критерием является состав реализованных требований к ЭК
или их совокупности, которые должны быть реализованы в заданный срок.
Ввиду того, что в проекте могут быть установлены состояния готовности ЭК,
они подлежат учету в репозитории, для каждого требования могут быть
установлены достигнутые состояния и проверено их соответствие плановым
состояниям. По результатам сравнения менеджер может судить о качестве сдаваемого
ЭК или их совокупности, ожидаемых к реализации в milestone.
Направления борьбы с размерностью требований
в жизненном цикле системы.
Уменьшить суммарное количество требований к системе вряд ли удастся,
поскольку сложность системы это объективно присущая ей характеристика. Для
целей практического использования средств автоматизации для работы с
требованиями в ЖЦ систем нужно группирование и упорядочение требований для их
последующего использования. Заметим, что для имеющихся в настоящее время
инструментальных средств работы с требованиями [
        <xref ref-type="bibr" rid="ref6 ref7 ref8">8-10</xref>
        ] упорядочение и
группирование осуществляется за счет индексации требований, присвоения им
атрибутов, используемых при последующей обработке требований, а также за
счет формирования типовых отчетов, использующих ранее сделанную
маркировку, например, описание связей между требованиями.
      </p>
      <p>В настоящее время серьезных отечественных исследований в этой области
практически не встречается, поэтому ограничимся перечнем направлений
упорядочения и группирования, которые вытекают из опыта нашей работы с
требованиями:
• Группирование требований по отношению к объектам концептуальной
архитектуры системы
• Агрегирование требований, относящихся к отдельным системам в составе
«внешней» системы
• Агрегирование требований по отношению к ЭК
• Использование механизмов формирования проектов для локализации
требований
• Формирование на предприятии системы обеспечения качества требований и
ее настройка в согласовании с системой управления конфигурацией
9</p>
      <p>Заключение
Для критических и ответственных систем различного назначения
авиакосмических, энергетических, транспортных, крупномасштабных автоматизированных
систем, в частности для государственных нужд, банковской сферы и других
отраслей, характерны высокая длительность жизненного цикла продукции или
создаваемых систем. В обоих случаях с целью сокращения рисков и удешевления
проводимых работ для этих видов проектов и продукции в целом необходима
четкая постановка процессов инженерии требований и управления ими в ЖЦ.</p>
      <p>Практика различных отечественных и зарубежных компаний показывает, что
без нормативно-методической документации по инженерии требований,
конкретизирующей и адаптирующей действующие международные стандарты в
этой области к условиям конкретного предприятия, кооперации предприятий
или проекта, а также без средств автоматизации процессов инженерии
требований заметного прогресса в этой области добиться маловероятно.
При реализации средств автоматизации инженерии требований следует
учитывать, что они обладают наибольшей эффективностью, если с их помощью
одновременно решаются задачи индексации, поддержки и управления
конфигурацией «триады»: архитектура системы – требования к системе – элементы
конфигурации системы на всем ЖЦ системы (продукции).</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <source>ISO/IEC/IEEE 15288 Systems and software engineering - System life cycle processes</source>
          .
          <source>2015</source>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          3. ISO/IEC/IEEE 29148 Systems and software engineering - Life cycle processes - Requirements engineering.
          <source>2011</source>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <article-title>4. SAE Standard ARP 4754A Guidelines for Development of Civil Aircraft and Systems</article-title>
          . - Revised:
          <fpage>2010</fpage>
          -12-21.: http://standards.sae.
          <source>org/arp4754a/ (Дата обращения 30.05</source>
          .
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          5.
          <source>FAA Systems Engineering Manual. Version 1.1. September</source>
          <year>2015</year>
          . : https://sep.faa.gov/ policy_and_guidance/main (Дата
          <source>обращения 30.05</source>
          .
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          6.
          <string-name>
            <surname>Génova</surname>
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fuentes</surname>
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Llorens</surname>
            <given-names>J</given-names>
          </string-name>
          . et al.
          <article-title>A framework to measure and improve the quality of textual requirements // Requir</article-title>
          . Eng.
          <year>2013</year>
          . №
          <volume>18</volume>
          :
          <fpage>25</fpage>
          -
          <lpage>41</lpage>
          . С.
          <volume>25</volume>
          -41 https://doi.org/10.1007/s00766-011-0134-z
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          8.
          <string-name>
            <given-names>IBM</given-names>
            <surname>Rational Doors Next Generation</surname>
          </string-name>
          . // IBM Knowledge Center Режим доступа: http://www-03.ibm.com/software/products/en/ratidoor (Дата
          <source>обращения 10.02</source>
          .
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          9.
          <article-title>Общее описание и возможности 3SL Cradle</article-title>
          . // Практика проектирования систем. Режим доступа: http://edu.reqcenter.pro/?p=
          <volume>2804</volume>
          (Дата обращения 30.02.
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          10.
          <article-title>Системы управления требованиями: что и зачем? // Практика проектирования си- стем</article-title>
          . Режим доступа: http://edu.reqcenter.pro/?p=
          <volume>2433</volume>
          (Дата обращения 10.02.
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          12.
          <article-title>Systems engineering handbook: a guide for system life cycle processes and activities / prepared by International Council on Systems Engineering (INCOSE) -</article-title>
          4th
          <string-name>
            <surname>edition</surname>
          </string-name>
          . - Hoboken. New Jersey: John Wiley &amp; Sons - 2015.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          13. ANSI/EIA 649-B.
          <article-title>Configuration management standard</article-title>
          . - TechAmerica
          <string-name>
            <surname>Standard</surname>
          </string-name>
          . -
          <volume>17</volume>
          .
          <fpage>06</fpage>
          .2011
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>