Yazılım Mimarisi Kontrol Listesi
Bu kontrol listesi (checklist), yazılım mimarisinin (software architecture) akran gözden geçirmesinde (peer review) kullanılır. Bileşenler ve katmanlar, arayüzler, veri ve kontrol akışı, görev yapısı ve çizelgeleme (scheduling), kaynak bütçeleri ve varsa yazılım bölümlemesi (software partitioning) düzeni; yüksek seviyeli gereksinimlere (high-level requirements), tasarım standardına (software design standards) ve hedef bilgisayara (target computer) karşı denetlenir. Gözden geçirme, mimari temel çizgiye (baseline) alınmadan ve tasarımdan kodlamaya geçiş kriteri (transition criteria) işletilmeden önce yapılır (Ek A: Örnek Geçiş Kriterleri); mimari değiştikçe değişen kısım için yinelenir. Mimariyi yazan tasarımcının dışında en az bir gözden geçiren, hedef donanımı ya da işletim sistemini bilen bir mühendis ve bölümleme varsa platform sorumlusu katılır.
DO-178C'de bu iş yazılım mimarisinin gözden geçirmesi ve analizidir (§6.3.3); Ek A'nın A-4 tablosundaki altı hedefi (objective, #8–#13) karşılar; bunlardan üçü en yüksek yazılım seviyesinde (software level), Seviye A'da bağımsızlıkla (independence) karşılanır. Maddelerin bir kısmı en kötü durum yürütme süresi (worst-case execution time, WCET), yığın kullanımı, çizelgelenebilirlik (schedulability) ve bölümleme analizlerine dayanır. Liste bu analizleri yapmaz; var olup olmadıklarını, gözden geçirilen mimari sürümüne ait olup olmadıklarını ve sonuçlarının mimariyle tutarlı olup olmadığını sorar. Tasarım doğrulamasının mantığı 7. Yazılım Tasarımı bölümünde, listelerin ortak kullanımı ve kayıt biçimi genel bakış sayfasındadır.
Bir bakışta
| Özellik | Değer |
|---|---|
| DO-178C maddesi | §6.3.3 a–f (mimarinin gözden geçirmesi ve analizi); içerik için §11.10 (tasarım tanımı, design description); tasarım faaliyetleri için §5.2.2–§5.2.4 |
| Ek A hedefleri | A-4 #8 (§6.3.3.a): A'da bağımsızlıkla, B ve C'de gerekli; A-4 #9 (§6.3.3.b): A'da bağımsızlıkla, B ve C'de gerekli; A-4 #10 (§6.3.3.c): A ve B'de gerekli; A-4 #11 (§6.3.3.d): A ve B'de gerekli; A-4 #12 (§6.3.3.e): A, B ve C'de gerekli; A-4 #13 (§6.3.3.f): A'da bağımsızlıkla, B, C ve D'de gerekli; tasarım faaliyetlerine dayanan maddeler için A-2 #4 (MIM-23, MIM-29, MIM-30) ve A-2 #5 (MIM-03): A, B ve C'de gerekli |
| Gözden geçirilen veri | Tasarım tanımının mimari kısmı: bileşen ve katman yapısı, arayüz ve global veri erişim tabloları, durum makineleri, görev ve kesme tabloları, kaynak bütçeleri; varsa bölümleme konfigürasyonu (bellek eşlemesi, pencere çizelgesi, kanallar) |
| Başvuru verisi | Yüksek seviyeli gereksinimler ve iz verisi (trace data); tasarım standardı; hedef bilgisayarın donanım belgeleri; gerçek zamanlı işletim sisteminin (real-time operating system, RTOS) kullanım kısıtları; yazılım sertifikasyon planındaki (PSAC) bölümleme ve ek hususlar (additional considerations) beyanı; varsa WCET, yığın ve çizelgelenebilirlik analizleri |
| Kaydın gideceği yer | Gözden geçirme kaydı → yazılım doğrulama sonuçları (Software Verification Results, SVR); bulgular (findings) → kayıt içinde ya da konfigürasyon yönetimi planındaki (SCMP) sınıra göre problem raporu |
| İlgili şablon | Tasarım standardı |
| Madde öneki | MIM |
Düşük seviyeli gereksinimler aynı tasarım tanımının parçasıdır ama ayrı listeyle gözden geçirilir (Düşük seviyeli gereksinimler). Mimarideki veri ve kontrol bağlaşımlarının (data and control coupling) testlerle işletildiğinin analizi Kapsam analizleri, bağlayıcı (linker) çıktısındaki gerçek bellek yerleşimi Entegrasyon çıktıları listesinin işidir. Bu liste, onların dayanacağı tanımların mimaride doğru ve eksiksiz kurulduğuna bakar.
Gözden geçirmeye giriş koşulları
- Gözden geçirilecek mimari verisi (tasarım tanımının ilgili bölümleri, arayüz, görev ve kesme tabloları, varsa bölümleme konfigürasyonu) belirli bir sürümle tanımlanmış.
- Mimarinin dayandığı yüksek seviyeli gereksinimler ve iz verisi temel çizgide; onların gözden geçirmesinden kalan açık bulgular listelenmiş.
- Tasarım standardının geçerli sürümü, hedef bilgisayarın donanım belgeleri ve RTOS'un kullanım kısıtları gözden geçirenlerin elinde.
- Katılımcılar belli: mimariyi yazan dışında en az bir gözden geçiren, Seviye A'da bağımsız gözden geçiren, hedef donanımı ya da platformu bilen bir mühendis.
- Dayanılacak WCET, yığın, çizelgelenebilirlik ve bölümleme analizlerinin sürümleri belli; henüz yoksa ilgili maddelerin açık kalacağı kayda yazılacak.
- Kontrol listesinin sürümü kayda yazılacak.
Kontrol listesi
Her madde evet/hayır sorusudur: "Evet" istenen durumu gösterir, "Hayır" bir bulgudur ve sınıfıyla kayda yazılır; sondaki etiket maddenin arandığı yazılım seviyelerini ve dayanağını verir.
Gereksinimlerle uyum
- MIM-01 Her yüksek seviyeli gereksinim en az bir mimari bileşene atanmış mı ve mimaride hiçbir gereksinimin gerektirmediği bir bileşen ya da işlev kalmamış mı? (A–C · §6.3.3.a)
- MIM-02 Verinin girişten çıkışa geçtiği bileşen ve görev zinciri, gereksinimlerdeki tepki süresi, güncelleme hızı ve kip davranışıyla çelişmiyor mu? Örneğin 200 ms'lik bir tepki süresi, aradaki çevrim sayısı ve görev periyotları toplandığında karşılanıyor mu? (A–C · §6.3.3.a)
- MIM-03 Mimari kararlardan doğan ve üst seviyede karşılığı olmayan davranışlar (yeni bir kip, bileşen ayrımının getirdiği gecikme) ile bileşenlerin yazılım seviyesini değiştiren bölümleme gibi önlemler, türetilmiş gereksinim (derived requirement) olarak işaretlenip emniyet değerlendirmesi dahil sistem süreçlerine iletilmiş mi? (A–C · §5.2.2.c)
Veri akışı, kontrol akışı ve arayüzler
- MIM-04 Her arayüz verisinin üreteni ve tüketeni, tipi, birimi, aralığı, güncelleme hızı, tazelik sınırı, geçerlilik bilgisi ve başlangıç değeri tek bir tanımda yazılı mı ve iki uç bu tanımı aynı biçimde kullanıyor mu? Örneğin üreten knot gönderirken tüketen metre/saniye beklemiyor mu? (A–C · §6.3.3.b)
- MIM-05 Bileşenlerin çağrı ilişkileri, kip seçimi gibi kontrol etkileri ve okuyup yazdığı global veriler bileşen arayüz tablosunda eksiksiz mi; mimaride görünmeyen bir veri ya da kontrol bağlaşımı yok mu? (A–C · §6.3.3.b)
- MIM-06 Kontrol akışındaki çalışma sırası veri akışıyla uyumlu mu; her bileşen okuduğu veriyi üreten bileşenden sonra çalışıyor ya da bayat veriyi tazelik bilgisiyle ayırt edebiliyor mu? (A–C · §6.3.3.b)
- MIM-07 Birden çok görevin ya da kesmenin eriştiği her verinin tek bir yazanı var mı ve okuyanları ile koruma yöntemi (öncelik kalıtımlı muteks, kuyruk, çift tampon) tasarımda belirtilmiş mi? (A–C · §6.3.3.b)
- MIM-08 Daha düşük yazılım seviyesindeki bir bileşenden ya da bölümden veri alan bileşen, bu veriyi kullanmadan önce aralık, tazelik ve tutarlılık denetiminden geçiriyor mu ve bu denetim bir gereksinime bağlanmış mı? (A–C · §6.3.3.b)
Hedef bilgisayarla uyum
- MIM-09 Açılış ve yeniden başlatma sırası donanımın koşullarıyla uyumlu mu? Örneğin saat, bellek denetleyicisi ve bellek koruma birimi, kesmeler açılmadan ve uygulama görevleri başlamadan kuruluyor, öz sınamalar açılış süresi gereksinimine sığıyor ve sıcak yeniden başlatmada (warm restart) korunan veri kullanılmadan önce bütünlük denetiminden geçiyor mu? (A–B · §6.3.3.c)
- MIM-10 Kullanılan her kesme kaynağının önceliği, kesme servis rutininin (interrupt service routine, ISR) yaptığı iş ve iki varış arasındaki en kısa süre tanımlı mı; varış sınırı bilinmeyen bir kaynak kesmeye bağlanmamış mı? (A–B · §6.3.3.c)
- MIM-11 Kod, sabit veri, değişken veri, yığın ve aygıt tamponlarının yerleşimi hedefin bellek haritasına uygun mu ve doğrudan bellek erişimiyle (direct memory access, DMA) paylaşılan tamponlar önbelleksiz bölgede ya da açık önbellek (cache) eşitlemesiyle mi tutuluyor? (A–B · §6.3.3.c)
- MIM-12 Çok çekirdekli işlemci (multi-core processor) kullanılıyorsa görevlerin ve bölümlerin çekirdeklere ataması, kullanılmayan çekirdeklerin durumu ve paylaşılan önbellek, bellek denetleyicisi ve veri yolu üzerinden oluşan girişim kanalları (interference channels) mimaride ele alınmış mı? (A–B · §6.3.3.c)
Doğrulanabilirlik
- MIM-13 Mimari, doğrulanmasını engelleyen yapılardan arınmış mı? Örneğin doğrudan ya da dolaylı özyineleme, başlatmadan sonra bellek ayırma ve hedef kümesi tanımsız fonksiyon işaretçisi çağrıları yok mu? (A–B · §6.3.3.d)
- MIM-14 Zaman davranışı belirlenimci (deterministic) mi: görevler, kuyruklar ve muteksler yalnızca başlatmada yaratılıyor; görevlerin taban öncelikleri, kilit protokolünün getirdiği geçici yükseltme, yani öncelik kalıtımı (priority inheritance) ya da öncelik tavanı (priority ceiling) dışında çalışma sırasında değiştirilmiyor; her bekleme zaman aşımıyla sınırlı ve kuyruk taşması tanımlı bir tepkiye bağlı mı? (A–B · §6.3.3.d)
- MIM-15 Her bileşenin davranışı test ya da analizle gözlenebilir mi: kip, hata sayaçları ve geçerlilik bayrakları gibi iç durumlar tanımlı bir arayüzden okunabiliyor ve test kancalarının uçuş imajındaki durumu (kaldırılmış ya da devre dışı) belli mi? (A–B · §6.3.3.d)
Tasarım standardına uyum
- MIM-16 Mimari, tasarım standardının katman, gösterim, adlandırma, izin verilen yöntem ve karmaşıklık kurallarına uyuyor mu; uymadığı her yer için onaylanmış ve gerekçeli bir sapma (deviation) kaydı var mı? (A–C · §6.3.3.e)
- MIM-17 Kullanılan RTOS hizmetleri, tasarım standardının izin verdiği hizmet listesinde ve tedarikçinin sertifikasyon paketinin kapsadığı yapılandırmanın içinde mi? Örneğin kesme bağlamından yalnızca beklemeyen çekirdek çağrıları yapılıyor mu? (A–C · §6.3.3.e)
Bölümleme ve koruma
- MIM-18 Bölümleme kullanılıyorsa alan bölümlemesi (spatial partitioning) için her bölümün her bellek bölgesine erişim hakkı (oku, yaz, çalıştır, erişim yok) boş hücre bırakılmadan tanımlı mı ve hiçbir bölge aynı anda yazılabilir ve çalıştırılabilir değil mi? (A–D · §6.3.3.f)
- MIM-19 Zaman bölümlemesinde (temporal partitioning) pencerelerin toplamı ana çerçeveye (major frame) eşit mi, her pencere bölümün WCET değerini ve bağlam değiştirme (context switch) süresini karşılıyor mu ve penceresini aşan bölümün kesilmesi tanımlı mı? (A–D · §6.3.3.f)
- MIM-20 Bellek korumasının ve pencere çizelgesinin etrafından dolaşabilen yollar (DMA, paylaşılan giriş/çıkış ve çevre birimi yazmaçları, önbellek, kesmeler) paylaşılan kaynak matrisinde tek tek ele alınmış ve her satır için önlem ile kanıt gösterilmiş mi? (A–D · §6.3.3.f)
- MIM-21 Bölümler arası kanallar konfigürasyonla statik tanımlı mı, bloklayan çağrılar zaman aşımlı mı ve kuyruk portunun (queuing port) dolması ya da örnekleme portundaki (sampling port) verinin bayatlaması gibi kanal durumlarına alıcı bölümün tepkisi tanımlı mı? (A–D · §6.3.3.f)
- MIM-22 Bölümlemeyi sağlayan yazılım (çekirdek, koruma tablolarını kuran başlatma kodu, pencere geçişini yapan çizelgeleyici, ortak sürücüler) ve bölümleme konfigürasyon tabloları, koruduğu en yüksek seviyeli bölümün yazılım seviyesinde geliştirilip doğrulanıyor mu? (A–D · §6.3.3.f)
- MIM-23 Kullanıcı tarafından değiştirilebilir yazılım (user-modifiable software) varsa değiştirilemeyen bileşeni koruyan mekanizma mimaride tanımlı mı ve değiştirilebilir bileşenin öngörülen yol dışında değiştirilemediği gösterilebiliyor mu? (A–C · §5.2.3)
Emniyet mekanizmaları ve hata yönetimi
- MIM-24 Emniyet gereksinimlerinin istediği her izleme işlevi, örneğin bekçi köpeği zamanlayıcısı (watchdog timer), mimaride hangi bileşende ve görevde, hangi periyotla çalıştığıyla gösterilmiş mi; izleyen ile izlenen aynı hatadan (aynı görev, aynı saat kaynağı) birlikte etkilenmiyor mu? (A–C · §6.3.3.a)
- MIM-25 Hata algılama ve bildirim yolları ile normal çalışma, kısıtlı çalışma (degraded mode) ve güvenli durum (safe state) arasındaki geçişler tek bir hata yönetimi bileşeninde toplanmış mı ve işlemci istisnaları dahil her arıza türü için seçilen tepki (yeniden başlatma, kısıtlı çalışma, güvenli durum), onu isteyen emniyet gereksinimine izlenebiliyor mu? (A–C · §6.3.3.a)
Çizelgeleme ve zaman bütçesi
- MIM-26 Her görevin periyodu, zaman sınırı (deadline), önceliği, WCET bütçesi ve yığın boyutu görev tablosunda verilmiş mi ve öncelikler tasarım standardındaki atama kuralına, örneğin hız-monoton (rate-monotonic, RM) kurala göre mi atanmış? (A–B · §6.3.3.c)
- MIM-27 İşlemci zamanı, bellek ve veri yolu için bütçe, pay (margin) ve payın nasıl ölçüleceği tasarımda yazılı mı ve en kötü durumdaki kullanım tasarım standardındaki en az payı koruyor mu? (A–B · §6.3.3.c)
- MIM-28 Çizelgelenebilirlik analizi (schedulability analysis) ya da döngüsel yürütücü (cyclic executive) için çerçeve tablosu; bağlam değiştirme, kesme yükü ve kritik kesitlerden gelen engellenme süresi (blocking time) dahil edilerek mimarinin gözden geçirilen sürümü için yapılmış mı? (A–B · §6.3.3.c)
Devre dışı bırakılmış kod
- MIM-29 Devre dışı bırakılmış kod (deactivated code) ya da seçenekle seçilebilir yazılım (option-selectable software) varsa, etkin işlevleri etkilemesini ve istem dışı etkinleşmesini (inadvertent enabling) önleyen mekanizma mimaride tanımlı mı ve tanımsız ya da bozuk seçim verisi işlevi kapalı tutuyor mu? (A–C · §5.2.4)
- MIM-30 Koşullu derleme anahtarları ve derleme varyantları tasarımda listelenmiş mi ve her varyantın hangi imaja hangi bileşenleri soktuğu belli mi? (A–C · §5.2.4)
Araçla denetlenebilecek maddeler
Mimari gözden geçirmesi çoğu zaman kod yazılmadan yapılır. Koda ya da bağlayıcı çıktısına dayanan denetimler bu yüzden ilk turda yapılamaz; mimarinin sonraki revizyonunda ya da kod gözden geçirmesinde yinelenir.
| Madde | Araç türü | Gözden geçirene kalan |
|---|---|---|
| MIM-01 | Gereksinim yönetim aracında atama sorgusu: bileşene atanmamış gereksinim, gereksinimi olmayan bileşen | Atamanın doğru olması; bileşenin gereksinimi gerçekten karşılayacak sorumluluğu taşıması |
| MIM-04 | Tasarım aracında ya da veri sözlüğünde boş alan ve uç eşleşmesi (tip, birim) sorgusu | Değerlerin anlamı: aralığın ve tazelik sınırının gereksinimle uyumu |
| MIM-05, MIM-13 | Kod varsa statik analizin çağrı grafiği ve global erişim raporu; çağrı grafiğinde döngü taraması | Raporla tablo arasındaki farkın hangisinde hata olduğu; fonksiyon işaretçisiyle yapılan çağrıların hedefleri |
| MIM-18, MIM-19 | Bölümleme konfigürasyon tablosunu denetleyen betik: bölge örtüşmesi, hem yazılabilir hem çalıştırılabilir bölge, pencere toplamı | Hakların tasarımda öngörülenle örtüşmesi; tablonun dışında kalan DMA ve aygıt yolları (MIM-20) |
| MIM-28 | Çizelgelenebilirlik analiz aracı | Girdilerin (WCET, kesme sıklığı, engellenme süresi) kaynağı ve güncelliği; aracın modelinin kullanılan RTOS'un davranışıyla uyumu |
Görev kümesi denemeleri için sitedeki Görev Çizelgeleme Analiz Aracı kullanılabilir; sonucu kredi amaçlı analiz kanıtı yerine geçmez. Bir madde yalnızca araç çıktısına bakılarak kapatılıyor ve bu çıktı ayrıca doğrulanmıyorsa aracın kalifikasyon gerektirip gerektirmediği sorusu doğar (13. DO-330 ve Yazılım Aracı Kalifikasyonu).
Sık bulgular
| Bulgu | Tipik nedeni | İlgili madde |
|---|---|---|
| Arayüz tablosunda birim, tazelik sınırı ya da geçerlilik bilgisi boş | Tablonun yalnızca ad ve tiple doldurulması; anlamın koda bırakılması | MIM-04 |
| Kodda mimaride gösterilmeyen global veri erişimi var; bağlaşım analizinde bulgu olarak dönüyor | Arayüz tablosunun kod değiştikçe güncellenmemesi | MIM-05 |
| Düşük seviyeli bölümden gelen değer denetimsiz kullanılıyor | Gönderenin geçerlilik bayrağına ya da zaman damgasına güvenilmesi | MIM-08 |
| Öncelikler işlevin önemine göre verilmiş | Önceliğin bir önem sıralaması sanılması | MIM-26 |
| Çizelgelenebilirlik analizi eski sürüme ait ya da kesme yükünü içermiyor | Analizin bir kez yapılıp mimari değiştikçe yenilenmemesi | MIM-28 |
| Bölümleme matrisinde DMA ya da çevre birimi yazmaçları yok | "Kimse oraya yazmaz" varsayımı | MIM-20 |
| Bölümleme tabloları elle düzenlenmiş, platformun seviyesinde doğrulanmamış | Tabloların mekanizmanın parçası değil sıradan veri sayılması | MIM-22 |
| Aynı arızaya iki bileşen farklı tepki veriyor | Hata tepkisinin bileşenlere dağılması | MIM-25 |
İyi yazılmış bulgu
| Zayıf bulgu | İyi yazılmış bulgu |
|---|---|
| "Arayüzler eksik." | "MIM-04: Tasarım tanımı sürüm 1.3, havahızı arayüzü: tazelik sınırı ve geçerlilik bilgisi tanımsız; tasarım standardının arayüz tanımı kuralı bütün öznitelikleri istiyor; uyarı mantığının bayat veriyi nasıl ayırt edeceği yazılmalı." |
| "Zaman bütçesi riskli görünüyor." | "MIM-28: Çizelgelenebilirlik analizi (rev. B) bakım veri yolu kesmesini içermiyor; kesme tablosuna göre bu kesme en sık 2 ms'de bir gelebilir; kontrol görevinin en kötü tepki süresi bu yükle yeniden hesaplanmalı ve pay raporlanmalı." |
| "Bölümleme yeterli değil." | "MIM-20: Paylaşılan kaynak matrisinde DMA denetleyicisi satırı yok; bellek koruma tablosu bakım bölümüne DMA yazmaçlarında yazma hakkı veriyor; DMA'yı yalnızca çekirdeğin programlayabildiği gösterilmeli ya da bu erişim kapatılmalı." |
Seviyeye göre uyarlama
Maddelerin seviye etiketleri A-4 #8–#13 hedeflerinin geçerliliğinden gelir. Dayanağı §5.2 altında olan dört madde bir A-4 hedefine değil, tasarım faaliyetine dayanır ve bağımsızlık istemez. MIM-03 seviyesini türetilmiş gereksinimlerin iletimi hedefinden (A-2 #5, A–C) alır. Ek A, değiştirilebilir bileşen ve devre dışı kod tasarımını (§5.2.3, §5.2.4) düşük seviyeli gereksinimlerin geliştirilmesi hedefine bağlar; MIM-23, MIM-29 ve MIM-30 seviyesini bu hedeften (A-2 #4, A–C) alır.
| Seviye | Uygulanan maddeler | Bağımsız gözden geçiren gereken maddeler |
|---|---|---|
| A | Tümü | §6.3.3.a, §6.3.3.b ve §6.3.3.f etiketliler: MIM-01, MIM-02, MIM-04–MIM-08, MIM-18–MIM-22, MIM-24, MIM-25 |
| B | Tümü | Yok |
| C | A–C ve A–D etiketliler; hedef bilgisayarla uyum, doğrulanabilirlik ve çizelgeleme grupları (MIM-09–MIM-15, MIM-26–MIM-28) düşer | Yok |
| D | Yalnızca A–D etiketliler (MIM-18–MIM-22); bölümleme yoksa liste hedef karşılamaz | Yok |
Bağımsızlık, mimariyi yazan kişinin kendi işini gözden geçiren sayılmaması demektir (9. Yazılım Doğrulama). Aranmadığı seviyelerde de yazar dışında birinin bakması iyi uygulamadır; tasarım hatasını en ucuza yakalayan yer burasıdır.
Seviye C'de hedef bilgisayar ve çizelgeleme maddeleri düşse de zaman ve yığın payları, kaynak kodun doğruluğu ve tutarlılığı (A-5 #6, A–C) altında Kaynak kod listesinde yeniden sorulur. Mimaride bu paylar hiç düşünülmemişse sorun o aşamada, kod yazıldıktan sonra ortaya çıkar; MIM-26–MIM-28'i C'de de kullanmak ucuz bir önlemdir.
Seviye D'de mimari yine geliştirilir (A-2 #3), ama gözden geçirme hedeflerinden yalnızca bölümleme bütünlüğü kalır. Değiştirilebilir bileşenin korunması bölümlemeyle sağlanıyorsa bu koruma MIM-18–MIM-22 altında sorulur. D seviyeli bir uygulama paylaşılan bir platformda çalışıyorsa MIM-18–MIM-22'nin kanıtı çoğunlukla platformun, koruduğu en yüksek seviyede üretilmiş yaşam döngüsü verisindedir; uygulama ekibine platformun kullanım kısıtlarına uyulduğunu göstermek kalır (21. Yazılım Bölümlemesi).
İlgili bölümler
- 7. Yazılım Tasarımı
- 9. Yazılım Doğrulama
- 13. DO-330 ve Yazılım Aracı Kalifikasyonu
- 17. Kapsanmayan Kodlar: Ölü, Gereksiz ve Devre Dışı Bırakılmış Kodlar
- 19. Kullanıcı Tarafından Değiştirilebilir Yazılım
- 20. Gerçek Zamanlı İşletim Sistemleri
- 21. Yazılım Bölümlemesi
- Ek A: Örnek Geçiş Kriterleri · Ek B: Gerçek Zamanlı İşletim Sistemlerinde Endişe Alanları
- Şablon: Tasarım standardı
- Denetim listesi: SW SOI-2
- Komşu listeler: Yüksek seviyeli gereksinimler · Düşük seviyeli gereksinimler · Kaynak kod · Kapsam analizleri · Genel bakış