ресурсов, использование прерываний и структур, управляемых событиями, использование динамических задач, повторный вход, использование глобальных данных, механизм обработки исключительных ситуаций и обоснования для их использования;
— ограничения на использования инструментальных средств проектирования;
— ограничения на проектирование (например, запрещение использования рекурсий, динамических объектов, альтернативных имен, сокращенных выражений);
— ограничения по сложности (например, максимальный уровень вложенности вызовов и условных структур, использование безусловных переходов, число входных/выходных точек элементов кода программы).
12.11 Стандарты кодирования ПО
Целью стандартов кодирования ПО является определение языков программирования, методов, правил и инструментальных средств, которые будут использованы для кодирования ПО. Стандарты кодирования должны включать в себя:
— используемые языки программирования и/или какое-либо их заданное подмножество; должна быть указана ссылка на документы, которые однозначно определяют синтаксис, режим контроля, характер данных и побочные эффекты языка программирования; стандарты могут требовать ограничений на использование некоторых возможностей языка;
— стандарты представления исходного текста (например, ограничение на длину строки, структурное расположение текста, использование пустых строк) и стандарты документирования исходного кода (например, имя автора, история изменений, входные и выходные данные, а также наиболее значимые глобальные данные);
— соглашения по наименованию для компонентов, подпрограмм, переменных, констант;
— условия и ограничения, налагаемые на установленные соглашения кодирования, такие как информационная связность между компонентами ПО, сложность логических или числовых выражений, а также обоснования для их использования;
— ограничения на использование инструментальных средств кодирования.
12.12 Спецификация системы/подсистемы
Спецификация системы/подсистемы определяет требования для системы или подсистемы и методы, которые должны быть использованы для гарантии того, что каждое требование выполнено. Требования, относящиеся к внешним интерфейсам системы или подсистемам, должны быть представлены либо в данной спецификации, либо в спецификации требований к интерфейсу, на которую должны быть ссылки в спецификации системы/подсистемы.
Каждое требование соответствует конкретным обоснованным характеристикам системы, имеет уникальный для проекта идентификатор, чтобы можно было провести тестирование и проследить его выполнение с помощью объективного теста. Для каждого требования выбирают квалификационный(е) метод(ы), требования для подсистемы должны быть прослеживаемы к требованиям к системе. Степень детализации выбирают, исходя из следующих правил: указывают те характеристики системы, которые внесены в условия приемки системы; предпочтение отдают тем характеристикам, которые требует обеспечить заказчик.
Должны быть описаны требования:
— к режимам работы;
— к производительности системы;
— к внешнему интерфейсу системы;
— к внутреннему интерфейсу системы;
— к внутренним данным системы;
— по адаптации;
— по безопасности;
— по обеспечению защиты и секретности;
— к системному окружению (среде);
— к ресурсам вычислителя (к аппаратуре, коэффициенту использования ресурсов аппаратуры, ПО вычислителя, организации сети компьютеров, если она необходима);
— по ограничениям проекта;
— по обучению персонала.
Должны быть также определены:
— относительная важность и критичность требований;
— средства аттестации, включающие в себя демонстрацию, тестирование, анализ, инспекцию и требуемые специальные методы для конкретной системы.
Все указанные требования должны быть трассируемыми.
12.13 Спецификация требований к ПО
Спецификация требований к ПО — документ, который определяет требования верхнего уровня, включая производные требования. Этот документ должен содержать:
— описание распределения системных требований по компонентам ПО с учетом требований, которые обеспечивают безопасность, и потенциальным отказным ситуациям;
— функциональные и эксплуатационные требования для каждого режима работы;
— критерии производительности, например точность представления;
— временные требования и ограничения;
— ограничения объема памяти;
— интерфейсы аппаратуры и ПО, например протоколы, форматы, частоту ввода и вывода данных;
— требования к обнаружению отказов и мониторингу безопасности;
— требования по разбиению ПО, по взаимодействию выделенных компонентов ПО друг с другом и к уровням ПО для каждой части.
12.14 Спецификация требований к интерфейсу
Спецификация требований к интерфейсу определяет требования к интерфейсам между системными компонентами: системами, подсистемами, элементами конфигурации ПО и аппаратуры. Данный документ включает в себя:
— идентификацию и диаграммы функционирования интерфейсов;
— требования по типам интерфейсов;
— характеристики передаваемых элементов данных (идентификация, типы данных, размер и формат, единицы измерений, точность, источники и приемники);
— характеристики методов коммуникации;
— характеристики протоколов обмена;
— приоритеты и критичность требований;