Gömülü Sistemler Geliştirmede Fonksiyonel Modelleme: Stratejiler ve Araçlar

Gömülü sistemler modern teknolojinin sessiz çalışmalarındandır. Otomobilinizindeki anti-lock frenleme sistemi, diyabetik bir hastanın kan şekerini yönetmesine, bu özel bilgisayar cihazlarının daha büyük sistemlerde özel işlevleri yerine getirmelerine yardımcı olur.Böyle sistemlerde üst düzey bir çabayı geliştirmek: Otomobildeki tek bir hata, pahalı hatırlamaya yol açabilir ve bir robotun yaşam tarzına bağlı olarak, güvenilir bir şekilde uygulama kurmasını sağlamak için gerekli olan temel bir yöntemdir.

Fonksiyonel Modelleme Nedir?

Fonksiyonel modelleme, sistemin amaçlanan davranışları, veri akışları, devlet geçişleri ve dış varlıklarla etkileşimlerin uygulanmasıdır. [FONTNT=2] nasıl ) bu şekilde, donanım şematik veya kaynak koduna girmeden önce gerekli olan gereksinimlerin tutarlılığı ve tutarlılığı hakkında bilgi sahibi olmak için mühendislere izin verir.

gömülü sistemlerde, fonksiyonel modeller genellikle birkaç formdan birini alır:

  • [FONT:0]Dönemli diyagramlar[Dönemli: 1)) - Oyuncular arasındaki Illustrate etkileşimleri (kullanıcılar, diğer sistemler) ve sistem, yüksek seviyeli işlevsellik gösteren.
  • [FONT=0]Activity diagrams[Döneticiler[Döneticiler, kararlar ve paralellik – kontrol mantığı ve eşdeğer süreçleri anlamak için faydalı.
  • [FONT:0]State makine diyagramları[Dönemli sistem durumlarını, geçişleri ve olayları – termostat veya iletişim protokolü gibi reaktif sistemler için ideal.
  • [FONT:0)Data akış diyagramları[Dönem: 1)Veriler işleme bileşenleri arasında nasıl hareket eder – sinyal işleme veya sensör füzyon için yararlı.
  • [FONT:0]Block tanımı ve iç bloklar[[Dönemli: 1) - Sistem yapısı ve kavramsal düzeyde bağlantıları göster.

Önemli olarak, fonksiyonel modelleme fiziksel modellemeden farklıdır. Fiziksel modelleme, zamanlama, güç tüketimi, bellek kullanımı ve donanım arabirimleri gibi işlevsel olmayan yönleri ele alır. Her ikisine de değerli olsa da, işlevsel modelleme soruları yanıtlar: “Sistem tasarımımız doğru olanı yapar mı?” fiziksel modelleme cevaplar: “Gerçek dünya kısıtlamaları içinde bunu yapabilir mi?”

Etkili Fonksiyonel Modelleme için Stratejiler

Sistemli bir strateji modelleme modellerini dağınık, tutarsız veya gereksinimlerin kapatılmasını engeller. Aşağıdaki stratejiler otomotivden tıbbi cihazlara kadar uzanan endüstrilerde kanıtlanmıştır.

Gereksinimlerle başlayın

Her işlevsel model iyi tanımlanmış bir ihtiyaça geri dönmeli. tek bir kutu veya ok çizmeden önce, bir gereklilik (sistemin ne yapması gerektiği) ve işlevsel olmayan gereksinimleri (performasyon, güvenlik, güvenlik) bir gereklilik yönetim aracı (örneğin, IBM DO, Jama veya yapılandırılmış bir yayılabilirlik) takip etmek için bir geçiş yapın. Örneğin, bir gereklilik durumu “Sistem 100 m içinde bir kapı-kırıklığı tespit edecek. ”

Hierarchical Decomposition

Kompleks sistemler, yönetilebilir parçalara kırıldığında daha kolaydır. Fonksiyonel dekompozisyon, üst düzey fonksiyonunun (örneğin, “Manage Engine Control Unit”) alt işlevlerin (Okuma verileri) “Compute yakıt enjeksiyonu zamanlaması” olarak adlandırılır ve her alt-işlem komutları daha sonra iyi tanımlanmış arayüzler kullanarak daha iyi tanımlanabilir.

Beton örneği: Bir otomotiv vücut kontrol modülü (BCM) bu blokların nasıl etkileşime girdiğini, kapı kilit kontrolü, iç sıcaklık yönetimi engellendiğini gösterir. Bunların her biri kendi devlet makinesi ile kendi kendine özgü bir fonksiyonel bloktur.

Standartlaştırılmış Modelleme Dilleri

Standartlar, modellerin belirsiz, paylaşılabilir ve uygulanabilir olmasını sağlar. gömülü fonksiyonel modelleme için iki baskın dil:

  • [FONT:0)Üye Olmayan Modelleme Dili (UML)) – Başlangıçta yazılım sistemleri için tasarlanmış, UML'nin devlet makinesi, aktivite ve kullanım durum diyagramları, özellikle kontrol odaklı ve etkinlik odaklı sistemler için yaygın olarak kullanılır.
  • [FONT:0) Sistemler Modelleme Dili (SysML)))[Ücretsiz sistemler için özelleştirilmiş bir UMLT:0) Sistemler Modelleme Dili (SysML) ve donanım-yuware codesign için daha doğal olan diyagramlar ekler.

Hangi dili seçerseniz seçin, tutarlı notasyon, kongreler isimlendirme ve diyagram düzeni kuralları. Tool-specific tarzı kılavuzlar, her zaman işaretli olay aynı stereotiple tetikler veya veri akışı için belirli bir okla karşılaşabilirsiniz.

Bu,

Fonksiyonel modelleme bir tek bir vedone aktivitesi değildir. Erken modeller, gereksinimleri anlamak için incelenecek olan eşleri ve mantığıdır. Hafif inceleme döngüleri kullanın - haftalık olarak gelişim ekibiyle yürüyüş, alan uzmanları ve test mühendisler.Bu incelemeler sırasında, tutarsızlıklar, eksik devletler, eksik geçişler ve gereksinimleri karşılayamaz.Reine the model, update the traceability matrix, and revalidate with the original requirements.

Ortak bir tuzak son derece modellendi: ilk geçişte her olası kenar davasını yakalamaya çalışmak. Bunun yerine, “mutlu bir yol” (normal işlem modu) ile başlayın ve sonra artan bir şekilde hata işleme, hata koşulları ve alternatif akışlar ekleyin.Bu iteratif yaklaşım, modelin yönetilebilir ve kritik davranışların erken doğrulanmasını sağlar.

Traceability

Bir işlevsel model, her gereksinimin bir veya daha fazla model elementin (örneğin, bir geçiş, bir aktivite) birçok modelleme araçları (örneğin, Enterprise Architect, Rational Rhapsody) otomatik izlenebilirlik bağlantıları kurmak için bir izlenebilirlik zinciri oluşturmak.Ayrıca, bir ihtiyaç değişiklikleri test etmek için model öğelerini hemen hemen hemen hangi modeli (ve hangi test süitlerini) güncellemek gerekir.

Fonksiyonel Modeling için Araçlar

Doğru aracı seçmek, ekibinizin büyüklüğüne, alana, bütçeye ve entegrasyon ihtiyaçlarınıza bağlıdır. Aşağıda, gömülü sistemlerde en yaygın kullanılan işlevsel modelleme ortamları vardır.Her araç belirli bir alanda öne çıkar ve birçok araç bir arada birleştirilebilir.

Simulink, otomotiv, havacılık ve endüstriyel otomasyondaki model tabanlı tasarım için de facto standarttır.Bu, sürekli zamanlı ve ayrık zamanlı sistemler modelinizin sürekli kontrol algoritmaları, sinyal işleme ve devlet makineleri (askeri) dahil olmak üzere grafiksel blok-diagram ortamı sağlar.

Enterprise Architect (Sparx Systems)

Enterprise Architect UML, SysML, BPMN ve diğer birçok notasyonları destekleyen çok yönlü bir platformdur. Gereksinimlerde yönetim, model izlenebilirlik ve ekip işbirliği (versiyonel depolamalar, rol tabanlı güvenlik) için özellikle güçlü bir sistem, hem işlevsel hem de yapısal görüşler, dosyalama arayüzleri ile entegrasyon sağlar ve belgelenir.

IBM Rational Rhapsody

Rhapsody, gömülü ve gerçek zamanlı sistemler için uygun bir model odaklı bir gelişme ortamıdır. SysML ve UML'yi destekler ve otomatik kod nesli (C, C++, Java ve Ada). Rhapsody'in gücü güvenlik-kritik uygulamalarla doğrulanabilir ve uygulama ile doğrulanabilir ISO 26262, avanya uygun üretim-okuyucu kodları oluşturmak için kullanılır, çünkü IBM'in kendi gereksinimleri yönetimi (DO) ve değişim araçları ile bütünleştirir. Rhapsody'in gücü güvenlik açısından yaygın olarak kullanılır.

► ^ "The Smallmola" (OpenModelica, Dymola)

DÖRÜNCÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜN

MagicDraw (Dasault Systèmes)

MagicDraw (şimdi Cameo Systems Modeler'in bir parçası), SysML ve UML için derin destek sağlayan bir modeldir.Genellikle, havacılıkta sistemler için mühendislik, savunma ve otomotiv. MagicDraw'in gücü, fonksiyonel, yapısal ve parametrik modelleri tek bir depoda yönetmek için yeteneğidir.In MagicDraw, Simulink, INTca) by cosimulation arabirimleri kullanarak.For functional modelleri, diyagramlar, ve devlet makineleri arasında da kullanılabilir.

Diğer Notable Tools

  • [FONT=0)SCADE (Ansys))[FONT=C'Skritik yazılım için sertifikalı bir geliştirme aracı, özellikle de aviyonik ve demiryolu. SCADE, Simulink/Stateflow'a benzer bir grafikte kullanma kullanır, ancak DO-178C ve 61508 için niteliklidir.
  • [FONT:0)Pa pirus (Eclipse))[Ücretsiz) - Kapaklar ile genişletilebilecek açık kaynaklanmış bir UML/SysML modelleme aracı.
  • [FONTD:0)Vector PREEvision[[DÜT:1) - Fonksiyonel ağ dahil olmak üzere otomotiv elektrik/elektronik (E/E) mimarlıkları için özelleştirilmiş, sinyal-yuware haritalama ve kablolama kullanımı tasarımı.

Gömülü Sistemlerde Fonksiyonel Modelleme Faydaları

Fonksiyonel modellemenin kaliteli, maliyet ve zaman pazarlamada ölçülebilir gelişmelerin benimsenmesi. Aşağıda beton sonuçlarla gösterilen temel faydalar vardır.

Design Flaws'in Erken Tespiti

Herhangi bir donanım inşa edilmeden önce sistem davranışını modellemek veya kod yazılır, mühendisler mantığı taklit edebilir ve analiz edebilir. Örneğin, bir otomotiv mühendisi, bir Simulink sistemi modelinin, bir fiziksel ECU üzerinde nasıl tepki verdiğini görmek için bir batarya yönetim sistemi yürütür.Eğer devlet makinesi beklenmedik bir ölüye girer veya üretim aşamasından sonra 100 kat daha ucuza geçiş yapamaz.

Multidisipliner Takımlar arasında Geliştirilmiş İletişim

Gömülü sistemler, donanım mühendisleri, yazılım mühendisleri, kontrol mühendisleri, sistem mimarları ve domain uzmanları (örneğin, bir frenleme uzmanı) içerir. Fonksiyonel modeller herkesin anlaması gereken tek bir gerçek kaynağı olarak hizmet eder - 200 sayfalık bir metin okumasına gerek yoktur. Bir SysML blok tanımı, yüksek seviyeli bir tıbbi infüzyon pompasının üst düzey işlevlerini gösteren bir sinyal tanımı hemen hemen klinik uzman ve FPGA geliştiriciye göre anlaşılabilirdir.

Maliyet ve Zaman Tasarrufları

Fonksiyonel modelleme yeniden işlenir. Gereksinimler değiştiğinde (ve her zaman yaparlar), bir model güncellemek ve kod yazmak veya test vakaları, birden çok uygulama eserlerini düzenlemekten çok daha hızlıdır. Otomotiv endüstrisinden bir örnek, özellikle de karmaşık güvenlik-kırıklı projelerde modellemek için bir yazılım hata düzeltmesi yapılır.

Bakım ve Uyum için Daha İyi Dokümantasyon

Fonksiyonel modeller, sistem mantığını kaynak kodu ile kullanarak analiz eder.Rezervasyonlu bağlantılar, hangi devlete veya geçişe ihtiyaç duyan haritaları gösterir.Bu belge daha sonra bakım için paha biçilmezdir - SCADE ve Rhapsody gibi araçlar doğrudan modelden gelen uygun şekilde tasarlanmıştır.For corporate industry (medical ISO 13485, otomotiv ISO 26262, avonik DO-178C), model tabanlı belge için genellikle gereklidir.

Geliştirilmiş Sistem Yenidenability

Tüm eyaletleri iyice analiz ederek, geçişler ve veri akışları, fonksiyonel modelleme, sistemin tüm işletim koşullarında doğru şekilde davrandığını garanti eder - kenar vakaları ve hata senaryoları dahil. Formal doğrulama teknikleri (örneğin, model kontrolü) belirli güvenli olmayan devletlerin ulaşılamaz olduğunu ispatlamak için işlevsel modele uygulanabilir.Bu güvence seviyesi tek başına test yoluyla elde etmek zordur.

Fonksiyonel Modellemenin Geliştirmeye Entegrasyon için En İyi Uygulamalar

Fonksiyonel modellemenin en iyi şekilde elde etmek için, onu geliştirme sürecinin ayrılmaz bir parçası olarak tedavi edin – bir seçenek ekleme-on değil. İşte endüstriler genelinde başarılı uygulamalardan çekilen en iyi uygulamalar.

Model Before You Code

Uygulamaya atlamak için bir uyarıya direnin. Her yeni özellik veya değişim talebinin öncelikle işlevsel bir model olarak ele alınması ve ekip tarafından gözden geçirilmesi gerekir.Bu, tasarım kararlarının pahalı entegrasyondan önce doğrulandığını gösteren bir “model-ilk” kültürü yaratır.

Automate Code Generation Mümkün Nerede Mümkün

Modellerden gelen manuel kodlama, çeviri hataları ve yenilgileri soyutlama amacını getirir.Eğer araç zincir destekse, sertifikalı Kodr için üretim kodu (C, C++, vs.) üretebilirsiniz. Ancak farkında olun: oluşturulan kod hala test edilmeli ve doğrulanmalıdır ve kod jeneratörü güvenlik seviyeniz için nitelikli olmalıdır (örneğin, TÜV SUD sertifika).

Modeller için Model Kontrolü

Modeller sadece kod gibi gelişti. Bir versiyonda onları kontrol edilen repository (Git, SVN) ve paralel gelişim yönetmek için şube stratejileri kullanmak. Çoğu model karşılaştırma ve parating. Model değişiklikleri aynı rigor ile aynı şekilde ele geçirmek - tüm değişiklikler için eşleme stratejileri kullanmak.

Testle Bütünleme

Model tabanlı test vakalarını devlet makinesindeki her geçiş ve devlet-devleti bu testleri modeli (in-loop) simüle etmek için kullanın, sonra onları gerçek donanıma karşı çalıştırın (işlemci-in-the-loop veya donanım-in-the-loop). Bu, koşulları doğrulama modelinden yakınlaştırır.

Meydanlar ve Nasıl Overcome Them

Fonksiyonel modelleme engelsiz değildir. Takımlar genellikle dirençle modellenmek için yenidir: “Öncelikle, neden değişiklik yazdık?” Bu tür durumlarda, gerçek zamanlı simülasyon ile destek veren küçük, iyi düşünülmüş bir alt sistemle birlikte, gerçek zamanlı algılamadan tasarrufları göstermeliyiz ve sonuçları kendileri için konuşalım.Bir başka zorluk, planlama, kesme, kesme, dağıtma) Bu tür durumlarda, fonksiyonel modelleri fiziksel modellerle bir araya getirmek için, gerçek zamanlı simülasyon ile birleştirin.

Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç

Fonksiyonel modelleme artık gömülü sistemler geliştirmesinde lüks değildir - Simulink, Enterprise, güvenilir ve maliyetle etkili ürünler sunmak için bir zorunluluktur.Açık gereksinimleri kullanarak, hierarchical decomposition kullanarak, standartlaştırılmış dilleri SysML gibi benimsemek ve gelişmiş güvenilirlik - Simulink, Enterprise Architect veya Rhapsody, mühendislik takımları, iş akış testlerinin ayrılmaz bir parçası olarak modellemek ve büyüme süresini hızlandırabilir.

Daha fazla okuma için, ESRAT:0) OMG[DÜDÜDÜDÜSÜŞÜNCÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜ