Pengembangan Perangkat Lunak SMC-S-012
Tujuan dari standar “SMC-S-012 Pengembangan Perangkat Lunak”, yang diterbitkan oleh Pusat Sistem Antariksa dan Rudal (SMC) dari Komando Antariksa Angkatan Udara AS, adalah untuk mendefinisikan persyaratan seragam untuk kegiatan pengembangan perangkat lunak untuk sistem yang sangat penting bagi misi. Standar ini didasarkan pada standar “MIL-STD-498 Standar Militer: Pengembangan dan Dokumentasi Perangkat Lunak” yang dikembangkan oleh Departemen Pertahanan Amerika Serikat.

Standar ini berlaku untuk pengembangan sistem misi kritis yang mencakup perangkat lunak (seperti sistem perangkat keras-perangkat lunak), sistem perangkat lunak saja, dan produk perangkat lunak yang berdiri sendiri. Standar ini dapat diterapkan pada kontraktor yang melakukan pengembangan perangkat lunak atau pada agensi internal yang melakukan pembelian. Standar ini dapat diadaptasi untuk setiap kategori perangkat lunak yang menerapkannya.
Standar ini tidak bergantung pada metode atau alat pengembangan perangkat lunak tertentu. Tidak ada persyaratan dalam standar ini yang mengamanatkan penggunaan metode atau alat tertentu.
Kerangka kerja yang digunakan untuk mengatur aktivitas perangkat lunak utama dalam proses pengembangan perangkat lunak disebut model siklus hidup pengembangan perangkat lunak.
- Pengembang harus memilih model siklus hidup pengembangan perangkat lunak atau model-model yang sesuai untuk perangkat lunak yang sedang dikembangkan. Suatu proyek perangkat lunak dapat memiliki beberapa model siklus hidup pengembangan perangkat lunak untuk berbagai kategori perangkat lunak yang dikembangkan.
- Pengembang harus mencatat model atau model siklus hidup pengembangan perangkat lunak yang dipilih dalam templat “Rencana pengembangan perangkat lunak” yang terlampir.
- Pengembang harus memberikan deskripsi setiap model siklus hidup pengembangan perangkat lunak yang akan digunakan dalam proyek dalam rencana pengembangan perangkat lunak.
- Untuk setiap model siklus hidup pengembangan perangkat lunak yang akan digunakan, pengembang harus mendefinisikan dalam rencana pengembangan perangkat lunak:
- Pada titik manakah dalam siklus pengembangan sistem itu akan digunakan?
- Dalam kondisi apa itu akan digunakan?
- Elemen perangkat lunak mana yang digunakan untuk
- Pengembang harus menetapkan proses pengembangan perangkat lunak yang konsisten dengan persyaratan kontrak.
- Proses pengembangan perangkat lunak harus mencakup kegiatan utama dan proses terintegrasi berikut:
- Perencanaan dan pengendalian proyek
- Membuat lingkungan pengembangan perangkat lunak
- Analisis persyaratan sistem
- Desain arsitektur sistem
- Analisis persyaratan perangkat lunak
- Arsitektur dan desain perangkat lunak
- Implementasi perangkat lunak dan pengujian unit
- Integrasi dan pengujian unit
- Pengujian kualifikasi elemen perangkat lunak
- Integrasi dan pengujian elemen perangkat lunak-perangkat keras
- Pengujian kualifikasi sistem
- Mempersiapkan perangkat lunak untuk transisi ke operasi
- Mempersiapkan perangkat lunak untuk transisi ke pemeliharaan
- Proses terintegrasi:
- Manajemen konfigurasi perangkat lunak
- Ulasan sejawat perangkat lunak dan peringkat produk
- Jaminan kualitas perangkat lunak
- Tindakan perbaikan
- Tinjauan teknis dan manajemen bersama
- Manajemen risiko perangkat lunak
- Pengukuran perangkat lunak
- Guvenlik ve Gizlilik
- Manajemen anggota tim perangkat lunak
- Antarmuka dengan agen IV&V perangkat lunak
- Koordinasi dengan pengembang mitra
- Meningkatkan proses proyek
Kegiatan-kegiatan penting ini mungkin tumpang tindih, diimplementasikan secara berulang, atau diimplementasikan secara berbeda. Ini berkaitan dengan berbagai elemen perangkat lunak dan belum tentu dilakukan dalam urutan yang tercantum di atas.
- Proses pengembangan perangkat lunak pengembang harus dijelaskan dalam rencana pengembangan perangkat lunak.
Persyaratan umum untuk pengembangan perangkat lunak mencakup persyaratan umum pengembang untuk memenuhi persyaratan terperinci yang ditetapkan dalam standar ini. Persyaratan yang lebih rinci disertakan dalam lampiran standar (Lampiran H.1).
- Metode pengembangan perangkat lunak: Pengembang harus menggunakan metode yang sistematis dan terdokumentasi untuk semua aktivitas pengembangan perangkat lunak. Metode pengembangan perangkat lunak yang sistematis ini harus ditentukan dalam rencana pengembangan perangkat lunak.
- Standar untuk produk perangkat lunak: Pengembang mengembangkan standar untuk mewakili persyaratan, arsitektur, desain, kode, kasus uji, prosedur uji, dan hasil uji. Standar representasi produk ini ditetapkan dalam rencana pengembangan perangkat lunak. Pengembang menerapkan standar yang ditentukan dalam rencana pengembangan perangkat lunak untuk mewakili persyaratan, arsitektur, desain, kode, kasus uji, prosedur pengujian, dan hasil pengujian.
- Ketertelusuran: Ketertelusuran menyediakan hubungan antara konten dua produk terkait, misalnya, hubungan dari setiap persyaratan perangkat lunak dengan komponen desain perangkat lunak yang memenuhi persyaratan tersebut. Ketertelusuran dua arah memastikan hubungan dua arah antara isi dua produk terkait. Contoh hubungan dua arah tersebut adalah ketertelusuran dari setiap persyaratan perangkat lunak ke komponen desain perangkat lunak yang memenuhi persyaratan tersebut, dan ketertelusuran dari setiap komponen desain ke persyaratan perangkat lunak yang dipenuhi oleh komponen desain. Tujuan dari persyaratan ketertelusuran dua arah dalam bagian ini adalah untuk menelusuri ke atas dan ke bawah untuk memastikan bahwa:
- Tunjukkan bahwa semua persyaratan telah dialokasikan ke komponen, diterapkan, dan diuji
- Buktikan bahwa tidak ada persyaratan tambahan yang berlaku
- Memberikan informasi tentang dampak perubahan yang diusulkan
- Memberikan informasi tentang dampak masalah yang ditemukan
- Menyediakan informasi untuk pemeliharaan perangkat lunak.
- Produk perangkat lunak yang dapat digunakan kembali: Pengembang harus mengidentifikasi produk perangkat lunak yang dapat digunakan kembali yang akan digunakan untuk memenuhi persyaratan kontrak. Ruang lingkup pencarian produk perangkat lunak yang dapat digunakan kembali harus ditentukan dalam rencana pengembangan perangkat lunak. Pengembang harus mengevaluasi produk perangkat lunak yang dapat digunakan kembali yang akan digunakan untuk memenuhi persyaratan kontrak. Kriteria yang digunakan untuk mengevaluasi produk perangkat lunak yang dapat digunakan kembali harus seperti yang ditetapkan dalam rencana pengembangan perangkat lunak. Pengembang harus menggunakan setidaknya kriteria evaluasi dalam lampiran standar untuk memilih produk perangkat lunak yang dapat digunakan kembali (Lampiran B). Kriteria evaluasi dapat diberikan bobot yang berbeda untuk kategori perangkat lunak yang berbeda dan persyaratan kritis yang berbeda. Produk perangkat lunak yang dapat digunakan kembali yang dipilih harus memenuhi persyaratan hak data dalam kontrak. Produk perangkat lunak yang dapat digunakan kembali dapat digunakan sebagaimana adanya atau dapat dimodifikasi dan digunakan untuk memenuhi seluruh persyaratan atau sebagian dari persyaratan.
Organisasi kami, yang telah berusaha mendukung bisnis dari setiap sektor dengan berbagai pengujian, pengukuran, analisis, dan studi evaluasi yang telah dilakukan selama bertahun-tahun, memiliki staf yang kuat yang mengikuti dengan cermat perkembangan di dunia di bidang sains dan teknologi dan terus-menerus meningkatkan dirinya. Dalam konteks ini, layanan pengujian juga disediakan untuk bisnis sesuai dengan standar “Pengembangan Perangkat Lunak SMC-S-012”.