SMC-S-012 Разработка программного обеспечения
Цель стандарта «SMC-S-012 Разработка программного обеспечения», опубликованного Центром космических и ракетных систем (SMC) Космического командования ВВС США, заключается в определении единых требований к разработке программного обеспечения для критически важных систем. Этот стандарт основан на стандарте «MIL-STD-498 Военный стандарт: Разработка и документирование программного обеспечения», разработанном Министерством обороны США.

Настоящий стандарт применяется к разработке критически важных систем, включающих программное обеспечение (например, аппаратно-программные системы), чисто программные системы и автономные программные продукты. Этот стандарт может применяться к подрядчикам, занимающимся разработкой программного обеспечения, или к внутренним агентствам, осуществляющим закупки. Этот стандарт может быть адаптирован для каждой категории программного обеспечения, к которой он применяется.
Этот стандарт не зависит от какого-либо конкретного метода или инструмента разработки программного обеспечения. Ни одно из требований настоящего стандарта не предписывает использование какого-либо конкретного метода или инструмента.
Структура, используемая для организации основных видов деятельности в процессе разработки программного обеспечения, называется моделью жизненного цикла разработки программного обеспечения.
- Разработчик должен выбрать модель или модели жизненного цикла разработки программного обеспечения, подходящие для разрабатываемого программного обеспечения. Программный проект может иметь несколько моделей жизненного цикла разработки программного обеспечения для различных категорий разрабатываемого программного обеспечения.
- Разработчик должен зафиксировать выбранную модель или модели жизненного цикла разработки программного обеспечения в прилагаемом шаблоне «План разработки программного обеспечения».
- Разработчик должен предоставить описание каждой модели жизненного цикла разработки программного обеспечения, которая будет использоваться в проекте, в плане разработки программного обеспечения.
- Для каждой модели жизненного цикла разработки программного обеспечения, которая будет использоваться, разработчик должен определить в плане разработки программного обеспечения:
- На каком этапе жизненного цикла разработки системы она будет использована?
- При каких условиях он будет использоваться?
- Какие программные элементы использовать для
- Разработчик должен организовать процесс разработки программного обеспечения, соответствующий требованиям контракта.
- Процесс разработки программного обеспечения должен включать следующие основные виды деятельности и интегрированные процессы:
- Планирование и контроль проекта
- Создание среды разработки программного обеспечения
- Анализ системных требований
- Проектирование архитектуры системы
- Анализ требований к программному обеспечению
- Архитектура и дизайн программного обеспечения
- Реализация программного обеспечения и модульное тестирование
- Интеграция и тестирование модулей
- Тестирование квалификации элементов программного обеспечения
- Интеграция и тестирование программно-аппаратных элементов
- Квалификационные испытания системы
- Подготовка программного обеспечения к вводу в эксплуатацию
- Подготовка программного обеспечения к переходу на обслуживание
- Интегрированные процессы:
- Управление конфигурацией программного обеспечения
- Обзоры программного обеспечения и рейтинги продуктов
- Обеспечение качества программного обеспечения
- Корректирующие действия
- Совместные технические и управленческие обзоры
- Управление рисками программного обеспечения
- Измерение программного обеспечения
- Безопасность и конфиденциальность
- Управление членами команды разработчиков программного обеспечения
- Интерфейс с программными агентами IV&V
- Координация с партнерами-разработчиками
- Улучшение проектных процессов
Эти важные виды деятельности могут пересекаться, реализовываться итеративно или реализовываться по-разному. Это относится к различным элементам программного обеспечения и не обязательно выполняется в указанном выше порядке.
- Процессы разработки программного обеспечения разработчиком должны быть описаны в плане разработки программного обеспечения.
Общие требования к разработке программного обеспечения включают общие требования к разработчику по выполнению подробных требований, определенных в настоящем стандарте. Более подробные требования включены в приложение к стандарту (Приложение H.1).
- Методы разработки программного обеспечения: Разработчик должен использовать систематические, документированные методы для всех видов деятельности по разработке программного обеспечения. Эти систематические методы разработки программного обеспечения должны быть указаны в плане разработки программного обеспечения.
- Стандарты для программных продуктов: Разработчик разрабатывает стандарты для представления требований, архитектуры, дизайна, кода, тестовых случаев, процедур тестирования и результатов тестирования. Эти стандарты представления продукта указаны в плане разработки программного обеспечения. Разработчик применяет стандарты, указанные в плане разработки программного обеспечения, для представления требований, архитектуры, дизайна, кода, тестовых случаев, процедур тестирования и результатов тестирования.
- Прослеживаемость: прослеживаемость обеспечивает связь между содержимым двух связанных продуктов, например, связь между каждым требованием к программному обеспечению и компонентами проектирования программного обеспечения, которые удовлетворяют этому требованию. Двунаправленная прослеживаемость обеспечивает двунаправленную связь между содержимым двух связанных продуктов. Примером такой двунаправленной связи является прослеживаемость от каждого требования к программному обеспечению до компонентов проектирования программного обеспечения, которые удовлетворяют этому требованию, и прослеживаемость от каждого компонента проектирования до требований к программному обеспечению, которым удовлетворяет компонент проектирования. Целью требований двунаправленной прослеживаемости в этом разделе является отслеживание как вверх, так и вниз, чтобы гарантировать, что:
- Демонстрация того, что все требования были распределены по компонентам, реализованы и протестированы.
- Продемонстрировать, что не применяются никакие дополнительные требования
- Предоставление информации о влиянии предлагаемых изменений
- Предоставить информацию о влиянии обнаруженных проблем
- Предоставление информации для обслуживания программного обеспечения.
- Многоразовые программные продукты: Разработчик должен определить многоразовые программные продукты, которые будут использоваться для выполнения требований контракта. Объем поиска повторно используемого программного продукта должен быть указан в плане разработки программного обеспечения. Разработчик должен оценить повторно используемые программные продукты, которые будут использоваться для выполнения требований контракта. Критерии, используемые для оценки повторно используемого программного продукта, должны соответствовать указанным в плане разработки программного обеспечения. Для выбора повторно используемых программных продуктов разработчик должен использовать как минимум критерии оценки, изложенные в приложении к стандарту (Приложение B). Критерии оценки могут иметь разный вес для разных категорий программного обеспечения и разных критических требований. Выбранные повторно используемые программные продукты должны соответствовать требованиям к правам на данные, изложенным в контракте. Программный продукт многократного использования может использоваться как есть или может быть изменен и использован для удовлетворения всего требования или его части.
Наша организация, которая на протяжении многих лет стремится оказывать поддержку предприятиям всех секторов посредством широкого спектра испытаний, измерений, анализа и оценочных исследований, имеет сильный штат сотрудников, которые внимательно следят за мировыми достижениями в области науки и технологий и постоянно совершенствуются. В этом контексте услуги по тестированию также предоставляются предприятиям в соответствии со стандартом «SMC-S-012 Разработка программного обеспечения».