SMC-S-012 Разработка на софтуер
Целта на стандарта „SMC-S-012 Разработка на софтуер“, публикуван от Центъра за космически и ракетни системи (SMC) към Космическото командване на ВВС на САЩ, е да определи единни изисквания за дейности по разработване на софтуер за критично важни системи. Този стандарт се основава на стандарта „MIL-STD-498 Военен стандарт: Разработка на софтуер и документация“, разработен от Министерството на отбраната на Съединените щати.

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