7.1 Планирование разработки программного обеспечения
7.1.1 Цели
Целью является определение и планирование различных этапов разработки программного обеспечения. Это включает как сам процесс разработки программных средств, который описан в настоящем разделе, так и необходимые вспомогательные процессы, описанные в EN 16590-4:2014 (раздел 10).
7.1.2 Общие положения
Процесс разработки программного обеспечения представлен на рисунке 4. В приведенных ниже пунктах и таблицах представлены подробные пояснения по каждому блоку представленной модели.
Соответствующие техники/меры должны выбираться в соответствии с требуемым SRL. Учитывая большое количество факторов, которые влияют на полноту безопасности программного обеспечения, невозможно привести алгоритм комбинирования техник и мер, которые будут правильными (корректными) для всех случаев применения. Для каждого конкретного применения соответствующая комбинация техник и мер должна устанавливаться в процессе планирования обеспечения безопасности в соответствии с требованиями 7.1.4.
7.1.3 Необходимые предварительные условия
Необходимыми предварительными условиями данного этапа являются:
- требуемый SRL, который определен для каждой функции, связанной с обеспечением безопасности, которая будет реализована;
- план проекта (включая план разработки системы);
- план верификации системы;
- концепция технической безопасности;
- спецификация проектируемой системы; и
- план обеспечения безопасности.
7.1.4 Требования
7.1.4.1 Определение этапов
Для процесса разработки программного обеспечения необходимо определить, какие из этапов разработки программного обеспечения (см. рисунок 4) будут выполняться. Следует учитывать длительность и сложность проекта. Могут быть выполнены все этапы в соответствии с рисунком 4 без модификаций, или отдельные этапы могут комбинироваться, если все результаты выполнения такого комбинированного этапа могут быть определены.
Примечание - Комбинирование отдельных этапов является общепринятой практикой, если используемый метод затрудняет определение четких границ между этапами. Например, проектирование архитектуры программного обеспечения и исполнение (реализация) программного обеспечения могут выполняться последовательно при помощи тех же инструментов автоматизированного проектирования, которые используются в процессе разработки на основе модели.
Другие этапы могут быть включены дополнительно, по результатам распределения видов деятельности и задач.
Пример - Применение данных может быть введено как отдельный этап перед валидацией безопасности электронного блока управления. Валидация безопасности ECU может проводиться по-разному в зависимости от распределения функций - через испытание отдельного ECU или через испытания комбинированной системы управления. Испытаниям может подвергаться отдельный компонент системы или машина в целом.
7.1.4.2 Гибкость процесса
Виды деятельности и задачи могут быть перенесены из одного этапа в другой.
7.1.4.3 График процесса
Должен быть разработан график, показывающий взаимосвязь между отдельными этапами разработки программного обеспечения и процессом разработки продукции, включая этапы (шаги) интеграции на уровне машины.
7.1.4.4 Применимость
После завершения разработки спецификации требований безопасности программного обеспечения в соответствии с таблицей 1 необходимо определить, какие требования безопасности программного обеспечения будут применяться и на каких этапах (шагах) интеграции.
7.1.4.5 Вспомогательные процессы
Вспомогательные процессы должны планироваться и внедряться как часть процесса разработки программного обеспечения: