Kimyasal & Malzeme Mühendisliği
Yazılım Mühendisliğinde Model tabanlı Verification Faydaları
Table of Contents
Modern yazılım sistemleri, tıbbi cihazlardan bağımsız araçlara kadar her şeyi destekler ve karmaşıklıklarının artmasıyla, geleneksel testlerin tek başına her gizli kusuru yüzeye çıkaramaz. Model tabanlı doğrulama, herhangi bir üretim koduna girmeden önce yazılım davranışını analiz etmek için sistematik, matematiksel olarak titiz bir yöntem sunar.Bir sistemin soyut modellerini inşa ederek ve onları doğru özellikle doğrulayan araçları doğru bir şekilde doğrulayarak, takımların en erken aşamalarında hatalarını yakalayabilir ve nihai ürüne güven yaratır.
Model tabanlı Verification nedir?
Model tabanlı doğrulama, resmi modelleri kullanan bir yazılım mühendisliği uygulamasıdır - amaçlanan davranışın sonlu hali, etiketli geçiş sistemleri veya matematiksel yönlendirme sistemleri gibi - simülasyona, analiz etmeye ve bir sistemin özelliklerini kanıtlayın. yerine, tüm son kesintiler veya yazma kılavuzları, mühendisler, amaçlanan davranışın yüksek seviyeli bir gösterimini oluştururlar (her iki işlevsel ve kritik güvenlik özelliklerini içeren) Otomatik sebepler, sonra modelin test özelliklerini kontrol edin.
Teknik, model kontrolü ve teorem kanıtladığı gibi resmi yöntemlerden oluşur, ancak araçlama ve soyutlama yoluyla erişilebilirliği doğrulamaya odaklanır. Modeller, TLA+ veya Promela gibi dillerdeki ayrıntılı özelliklerle genişleyebilir.Asepsiyonel doğrulamalar[Döneticiler) Tüm geleneksel testleri yerine getirir; aksine, bu kılavuzu tekrarlayarak veya hataları düzeltmeler yaparak hataları tekrarlayabilirler.
Model tabanlı Verification
1. Tasarım Flaws'in erken tespiti
En zorlayıcı avantaj, geliştiricilerin bir mimariye taahhüt etmeden önce “neden” senaryoları bulmak için en ucuz olanı bulma yeteneğidir; bir takım, güvenlik özelliklerini modellemek ve doğrulamak için aynı sorun, “en fazla bir süre içinde yeniden çalışma gerektiren” modeller, mesajların kaybolduğu veya yeniden sipariş edilen bir kum kutusu olarak hareket eder. Örneğin, bir araya geldiğinde, bir takım tasarıma ayarlanabilir.
Yazılım kusurlarının maliyet eğrisi iyi belgelenmiştir: Gereksinimler sırasında bulunan bir hata, dağıtımdan sonra bulunandan 100 kat daha ucuz olabilir. Model tabanlı doğrulama değişimi geri bildirimlerini sola taşır.Bir uzay aracı tarafından tespit edilen bir hata tespit edilen bir hata; tasarım sırasında tespit edilen bir 5 milyon dolar, üretime ulaşmadan önce tespit edilen bir hata.(NASA Verification Case Study)). Amazon Web Services benzer şekilde TLA+'yı DynamoDB'da tahmin edilen bir veri eksikliğini ortaya çıkarmak için kullandı.
2. Geliştirilmiş Hassasiyet ve Belirsizlik
Doğal dil gereksinimleri doğal olarak belirsizdir. “Sistem, bir zaman kesintisi meydana gelirse işlemin kesin bir şekilde gerçekleşmesini sağlayacaktır” diye konuştu.Bu hassas, geliştiriciler, testçiler ve alan uzmanları arasında gerçek kaynağı haline gelir.
Bir dilde iyi tanımlanmış matematiksel temel ile yazılmışken, canlılık gibi özellikler (“her istek sonunda bir cevap alır”) ve güvenlik (“en az sayıdaki istekte bulunamaz”), ek olarak, resmi özellikler her modülün model kontrol ettiği gibi sabit olarak hizmet eder.
3. Otomasyon-Driven Verification Verimliliği
Kılavuz testi iş yoğun ve doğal olarak eksik. Model kontrolörleri tüm ulaşılabilen devletler tarafından sistematik olarak incelenen analizler, bir karar üreterek: ya mülkiyet, ya da karşıt mühendisler, aşamalar üzerinden ihlal edilen adımları gösterir; Bu otomasyon, özellikle de ince kongresyon hataları bulmak için, tamsayı kontrol etmek veya protokol hataları sunar. Model kontrolü, modele dayalı test araçları otomatik olarak modeli otomatik olarak modelden test edebilir.
Birçok doğrulama aracı, SysML veya UML eyalet diyagramları gibi endüstri standart modelleme dilleri üzerinde çalışır, ekipler için geçiş zaten model tabanlı sistemler mühendisliği (MBSE) otomasyonları kullanarak gerçek zamanlı analize devam eder: aLES gibi araçlar )UPPAAL Sürekli entegrasyon hatlarıyla ilgili kısıtlamalara izin verebilir.
4. Yaşam Dokümanı ve Bilgi Transferi
İyi yapılandırılmış bir model sadece bir doğrulama sanatı değildir; bu, yazılımların doğru şekilde ne yapması gerektiği konusunda doğru bir şekilde yansıtmak için hizmet eder. Çünkü model sürekli doğrulamaya katılır, herhangi bir tasarım değişikliği kuvvetlerini modele güncelleyebilir, bu zaman yeniden formüle edilmelidir.Bu, belgeyi doğru bir şekilde yansıtmaz. büyük takımlar veya uzun ömürlü projeler için, bu canlı belgeleme modeli değerlidir.
Modeller görsel olarak devletkarları veya dizi diyagramları kullanarak, teknik olmayan paydaşların karmaşık davranışları iletişim kurabilir. Bu köprüler alan uzmanları ve geliştiricileri arasındaki boşlukları daha az yanlış anlama ve daha doğru uygulamaları ortaya çıkarabilir.
5. Gereksinimlerde Saldırganlık Değişiklikler ve Bakım
Değişim yazılım geliştirmesinde süreklidir. Gereksinimler geliştikçe, geliştiriciler mevcut işlevsellik üzerindeki etkisini değerlendirmelidir. Model tabanlı doğrulama ile, yüksek seviyeli bir model değiştirmek ve tekrar çalışan doğrulama, bir kod tabanını yatırmaktan çok daha az yıkıcıdır. model özetleri uygulama ayrıntılarıyla, bu yüzden bir tasarımcı yeni bir özellik veya değiştirilmiş değişkenlikteki değişiklikleri çabucak inceleyebilir.If doğrulama başarısız olursa, herhangi bir koda ihtiyacınız olan kılavuzlar tasarıma dokunur.
Bakım sırasında modeller bir güvenlik ağı olarak hareket eder. Bir geliştirici, yeni bir özellik eklemek için yeni bir özellik ekleyebilir, doğrulamaları korumak için öncelikle tasarıma izin verebilir, doğrulama modelinin yeni özellik ve yeniden tanımlanması ile model genişletir.Bu işlem erken çatışmaları ortaya çıkarır, regresyonları önler.
6. Uzun Süreli Maliyeti Yaşam döngüsünde Across the Lifecycle
Ön modelleme ve doğrulama zaman ve uzmanlık yatırımını gerektirirse de, düşük tasarruflar yatırıma karşı önemli. Ulusal Standartlar ve Teknoloji Enstitüsü (NIST) ve diğerleri, özellikle güvenlik-kırklı alanlarda yazılım başarısızlığının maliyetinin, özellikle de güvenlik-kritik alanlardan yararlanarak, başarısızlıkların önüne geçebiliyor.
FDA gibi tıbbi cihazlar veya FAA için aviyonikler için sigortalı doğrulama kanıtlarını talep ediyorlar. Güvenlik özelliklerine karşı kontrol edilen resmi bir model ISO 26262 güvenlik hedeflerine uymayı sıklıkla rapor eder, yaklaşımın entegrasyondan önce bulduğunda kendi başına ödediğini rapor eder - ve ürün yaşam döngüsü boyunca değer vermeye devam eder.
Uygulamaları Across Industries
Model tabanlı doğrulama, güvenlik-kritik alanlarda en görünür, ancak onun erişimi çok ötesine uzanır.
- [FONT:0]Aerospace ve Savunma: [Dönetici: Uçuş kontrol yazılımı, uydu sistemleri ve füze rehberliği, aşırı koşullar altında deterministik davranışı kontrol etmek için modellemeye güveniyor. NASA'nın Jet Propulsion Laboratory, Mars rover görevi zamanlama için SPIN kullandı.
- [FONT:0)Automotive: [Dönetici: Özerk sürüş ve ADAS, frenleme ve direksiyon sistemleri için boru hatlarına entegre etme gibi mantık güvenlik hedeflerini kontrol etmeye yardımcı olur. Model tabanlı doğrulama Simulink Design Verifier, dışlanmadaki mantıksal güvenlik hedeflerini kanıtlamaktadır.
- [FONT:0)Medical Cihazları: [Döneticileri, hız yapıcılar ve cerrahi robotlar FDA onay gerektirir. Formal modeller, güvenlik gereksinimlerinden doğrulama sonuçları için izlenebilirlik sağlar, düzenleyici teslimler için kılavuzluk uygular. FDA tıbbi cihaz yazılımı için resmi yöntemler teşvik eder.
- [FONT:0]Railway ve Ulaşım: Signaling sistemleri ve iç içe mantık, demiryolu kontrol yazılımının asla çatışmaya izin vermediğini kontrol eder. Alstom ve Siemens Avrupa Tren Kontrol Sistemi için resmi doğrulamayı zorlamaktadır.
- [FONT=0]Finance and Blockchain:[Dönetici:[Dönetici:0) Model tabanlı doğrulama akıllı sözleşmeler ve ticaret sistemleri için yol katıyor, mantıksal kusurların çok milyon dolarlık zararlara neden olabileceği. Tools like [DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD][3 ve KEVM, [Dönetici akıllı sözleşmeler ve alt geçişler için resmi analizler ve bir uyarıda bulunuyor.
- [FONT:0] Telekomünikasyon: [Dönetici: [Dönetici: 0, 5G ve IoT için Protokol yığınları, eş zamanlı bağlantıları ve elovers. Model tabanlı doğrulama, MQTT ve CoAP gibi protokollerin yük altında toplanmasını sağlar.
Model tabanlı Verification into the Development Workflow
Model tabanlı doğrulamayı kabul etmek, toptan bir kültürel değişikliği gerektirmez; artarak kademeli olarak aşamalanabilir.
- [FONT:0) En yüksek riskli bileşenlerle başlayın.[[DÜT:1) Başarısızlıkların yıkıcı sonuçları veya hangi yeterliliklerin kötüleştiği modülleri tanımlayın.Sistemin sadece% 10-20'si geç kusurların büyük bir kısmını ortadan kaldırabilir.
- [FONT:0]Komşçayı alan bir model dili ve alet zincirini ele alalım.[#0T:0]Seks, yazılım sistemleri için TLA+ ve PlusCal matematiksel bir temel sağlar; gömülü kontrol için Simulink ve Stateflow, kod-jenerasyon araçlarıyla entegre eder.Bir araç otomatik doğrulamayı etkili bir şekilde öğrenebilir ve bu desteği destekler.
- [FONT:0] Payine formal özellikleri paydaşları ile ifade eder.[[Döneticileri ve domain uzmanları, değişkenleri, canlılık koşulları veya zamansal mantık formülleri olarak ifade ederler.Bu, gerçek iş ihtiyaçları ile doğrulanmış doğrulama hedeflerini sağlar.
- [FONT:0] Sürekli olarak uygulanan [Dönetici:0] Modeli ilk sınıf bir gelişim sanatı olarak ele alalım.Bunu sürüm kontrolüne kontrol edin, CI boru hattının parçası olarak doğrulamayı ve tasarım tartışmalarını kullanmak için karşı örnekler kullanın.
- [FONT:0] Takımı [Döneticileri) ele geçirebilmek, ancak modern araçlar daha erişilebilir hale gelir. Eğitimde mütevazı bir yatırım - birkaç gün süren bir el-on atölyesi - takım üyeleri modellemek için yeterince para ödeyerek.
Net bir başarı kriteri ile küçük bir pilot proje ile başlayın (örneğin, bilinen bir böcek sınıfı ortadan kaldırmak) değer göstermeye yardımcı olur.Bir kez takım somut sonuçlar görür - geri dönüşümler, daha hızlı sorun çözümü - uygulamanın diğer bölgelerine genişletilebilir.
Araçlar ve Teknikler
Açık kaynak ve ticari araçların canlı bir ekosistemi model tabanlı doğrulamayı destekler. Aşağıda en yaygın kullanılanlardan bazıları şunlardır:
- [FONT:0)SPIN:[Döneticileri, DÜDÜSÜŞÜNCÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜ: 0:2|Resmiler Web Sitesi[DÜye Olmayanlar İçin Mükemmeller Arası SPIN Web Sitesi[DÜye Olmayanlar İçin Tıklayınız.
- [FONT:0]NuSMV ve nuXmv: Donanım ve yazılım modellerini ele alan semboller. NuSMV açık kaynaktır; nuXmv zamanlanmış ve karma sistemler için destek ekliyor.
- [FONT=0)Üye: [Dönetici: [Dönetici: 0] Gerçek zamanlı sistemlerde özelleştirilmiş zaman sistemleri, otomotiv ve telecom'da geniş bir şekilde kullanılmaktadır. }PA sayfası).
- [FONT:0)TLA+ ve TLC modeli kontrol cihazı: Leslie Lamport tarafından tasarlanan resmi bir spesifikasyon dili. Amazon, dağıtılmış algoritmaları doğrulamak için TLA+ kullanıyor.]TELFLT:2.TLA+ web sitesi)
- [FONT=0]Simulink Tasarım Doğrulama ve SCADE: Ticari araçlar model tabanlı tasarım iş akışları ile entegre edilmiştir, blok-diagram modellerinin ve otomatik kod nesli doğrulamasına olanak sağlar. SCADE, DO-178C sertifikası için popüler.
- [FONT:0)Alloy:[Dönetici: [Döntilmiş bir mantıkla ilgili hafif bir resmi yöntem. yapısal kısıtlamalara dayanan ve sınırlı bir devlet uzayında karşı örnekler bulmak.
Doğru aracı seçmek sistemin doğasına bağlıdır - son derece devlet, gerçek zamanlı, olasılıksal - ve takım geçmişi. Birçok proje birden çok araç birleştirir: algoritma tasarımı için TLA+'da hafif resmi özellikler ve kod nesli ve güvenlik analizi için ayrıntılı bir Simulink modeli.Birkaç yeni başlayanlar için, alaşım veya TLA+ güçlü doğrulama yetenekleri ile nazik bir öğrenme eğrisi sunar.
Meydanlar ve düşünceler
Yararlılarına rağmen, model tabanlı doğrulama bir gümüş mermi değildir. Takımlar birkaç pratik engele yollanmalıdır:
- [FONT:0)Initial learning eğri: Resmi mantık ve devlet uzay araştırmaları ile yabancı mühendisler verimli hale gelmeleri için zamana ihtiyaç duyuyorlar. Yönetim bu öğrenme süresini desteklemeli ve erken modelleri verimli bir şekilde beklemeli.
- [FONT:0]State-space patlama:[Döneticileri bir parça sayarsa, doğrulama hesaplamalı olarak düşünülemez hale gelebilir. Abstraction, modüler decomposition ve kompozisyon doğrulama karmaşıklık yönetmek için gereklidir.
- [[Dönetici:0) Model kod boşluğu:[Dönetici:[Dönetici:0) Model kod aralığı ile ilgili olarak uygulanan kodun aynı şekilde davrandığını garanti etmez. Kod nesli ile ilgili test ve sıkı entegrasyon bu boşluğu daraltabilir, ancak inceleme ve test yoluyla yönetilmelidir.
- [FONT:0] Aracın en iyisi:[Dönetici:[Dönetici:0) Bazı ticari araçlar önemli lisans ücretleri taşıyor ancak işletme takımlarının gerektirdiği entegrasyonlar ve destekten yoksun olabilir. Toplam mülk maliyeti potansiyel tasarruflara karşı ağırlık verilmelidir.
- [FONT:0]Değişme:[Dönetici:0) Sürekli doğrulamayı her zaman kod odaklı testlere dayanan bir süreç içinde tanıtarak, başarı öyküleri, pilot projeler ve hata önlemenin açık bir şekilde gösterisi, isteksiz paydaşlar üzerinden kazanmak için en etkili yoldur.
Bu zorlukların ele alınması pragmatik bir yaklaşım gerektirir: küçük, kanıt değere başlayın ve güven büyüdükçe doğrulama kapsamını genişletin. Kısmen kabul - sadece en kritik algoritmaları -dramatik olarak genel kaliteyi geliştirir.
Model tabanlı Verification
Peyzaj hızla gelişmektedir. siber-fiziksel sistemlerin karmaşıklığı, özerk operasyona doğru iten ve güvenlik kanıtlarının yasal talebi, bir niş disiplinden ana akıma model tabanlı bir doğrulamayı amaçlamaktadır.
- [FONT:0]AI-assisted modelleme: Makine öğrenme teknikleri, doğal dil gereksinimleri veya sistem izlerinin modellerini inşa etmeye yardımcı olabilir, giriş için bariyeri azaltır.
- [FONT:0] Bir hizmet olarakVerification:[Dönetici:[Döneticiler) Bulut tabanlı platformlar, takımların büyük yerel donanıma yatırım yapmadan ağır devlet uzay keşiflerini çalıştırmalarına izin veriyor, daha küçük organizasyonlar için demokratikleşmeye izin veriyor.
- [FONT:0)Kontinuous doğrulama:[Dönemli Onay:[Dönergeler ile entegrasyon, ilgili modellerin yeniden tanımlanması, gerçek zamanlı olarak geri dönüşümleri yakalamak anlamına gelir.
- [FONT:0)Probabilistic ve hibrit doğrulama: Sürekli dinamikler ve stochastic davranışlarla, otonom araçlar ve robotikler için temel olan modeller hakkında yeni algoritmaların nedeni.
- [FONT:0)Standartizasyon: [Dönetici: [Dönetici:0) ISO 26262 (automotive) ve DO-178C (acil) gibi Endüstri standartları, artık özellikle de kabul edilebilir doğrulama faaliyetleri olarak kabul edilebilir ve artan meşruiyet ve kabul edilebilir bir şekilde kabul edilebilir.
Bu trendler yakınlaştığında, model tabanlı doğrulama, yazılım mühendisliği aracının vazgeçilmez bir parçası haline gelecektir – sadece güvenlik-kırık uygulamalar için değil, herhangi bir sistem için güvenilirlik önemli.
Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç
Model tabanlı doğrulama yazılım tasarımını ve güvencesini değiştirir. Hata tespitini değiştirerek, belirsizliği resmi olarak ortadan kaldırmak ve otomasyonları yorucu bir şekilde test sistemi davranışına kullanmak, geleneksel testlerin tek başına başaramayacağına güven verir.Rezervasyon ve daha çevik bakım için sertifikasyon ve hızlandırılmış sertifikasyon sistemleri.