Model Tabanlı Sistem Mühendisliği(Model Based System Engineering, MBSE) hakkında bilgiler vereceğim yazı serisinde ilk olarak SysML’i anlatıyor olacağım.
Fakat öncesinde MBSE’ yi tanımlamak daha doğru olacak.
MBSE, karmaşık sistemlerin geliştirilmesiyle ilgili gereksinimleri, tasarımı, analizi, doğrulamayı ve doğrulamayı desteklemek için kullanılan bir metodolojidir. Belge merkezli(Document-Centric) mühendisliğin aksine, MBSE, modelleri sistem tasarımının merkezine yerleştirir ve son yıllardaki dijital ortamlarda modellemenin artması ve kolaylaşması, MBSE’nin daha fazla benimsenmesine yol açmıştır.
Doküman-bazlı modellemede bilindiği üzere sistem davranışı, yazılım, donanım, güvenlik ve ilgili diğer disiplinler tarafından sistem tasarlama adına bir çok belge oluşturulur. Dijital modellemede ise tek bir model vardır ve tüm paydaşlar sistemi tasarlamak üzerinde çalışırlar yani tek bir doğruluk kaynağı vardır. (Single Source of Truth)
Ortak standartlara dayalı paydaşlarla oluşturulan bu tek model ile tasarım/modellemede tutarsızlık ortadan kaldırılır, sistemin geliştirilmesi ve analizi için bir ortam oluşturulur. Böylelikle bu model etrafında alınacak kararlar, yayınlama ve paydaşlara dağıtma daha kolay olacaktır. Sistem Mühendisliği’ndeki V model düşünüldüğünde, sistem yayınlanmadan yapılan değişikliklerin proje maliyetine ve proje planına etkisi de düşük olacaktır.
MBSE’de dijital ortamda yapılan modelin en ideali, bir modelde gereksinim, fonksiyonel, mantıksal ve fiziksel tasarımın tamamının ilişkilendirilmiş şekilde görüntülenmiş olanı olduğu unutulmamalıdır.(Requirement->Functional->Logical->Physical, RFLP)
Aslında çoğumuz MBSE sistemlerle çalışıyoruz fakat yukarıda bahsettiğim gibi RFLP’yi sistemlerimizde tam uygulayamadığımız için eksik çalışıyoruz.
SysML Nedir?
Systems Modeling Language(SysML), sistem mühendisliği uygulamaları için kullanılan genel amaçlı bir grafik modelleme dili olarak tanımlanabilir. SysML, donanım, yazılım ve bilgi sistemleri gibi karmaşık sistemleri belirlemek, analiz etmek, tasarlamak ve doğrulamak için kullanılır.
UML(Unified Modeling Language) üzerine geliştirilen SysML, OMG ve Uluslararası Sistem Mühendisliği Konseyi (INCOSE) tarafından ortaklaşa geliştirilmiş ve 2006’da OMG tarafından yayınlanmıştır. SysML, UML’in yazılım tabanlı bazı kısıtlarını kaldırmasının yanında aşağıda da belirtileceği üzere 2 yeni diyagram eklemiştir(Parametric ve Requirement). Aynı zamanda UML”ye kıyasla daha esnek ve açıklayıcı bir dil olmasıyla daha kolay öğrenilir bir dil olmuş ve modelleyebileceği sistemlerin genişliği de artmıştır.
SysML, bir çok modelleme aracı tarafından desteklenir ve unutulmamalıdır ki SysML bir modelleme metodolojisi veya framework değildir. (Bir dilin kelimelerini bilmeniz o dilde cümle kurabildiğiniz anlamına gelmez!) Modelleme için modelleme dilinin yanında kullanılacak uygulama ve metod da bilinmelidir.
Diğer bilinmesi gereken ise SysML kullanarak sistemleri modellemek için standartlaştırılmış framework ve yöntemlerin olmadığıdır. NoMagic(Dassault Systemes), IBM, Sparx gibi firmaların kendilerine özgü framework’leri de olabilmektedir.
Biraz daha detaya inersek, SysML, 9 adet diyagramdan oluşmakta ve 4 ana parçada ifade edilmektedir; Structure, Behaviour, Requirements, Parametrics.
9 farklı diyagramın her biri, sorunun veya çözümün belirli bir yönüne odaklanmak için kullanılır. SysML, UML2’nin 14 diyagramından 7’sini ve UML’ye ek getirdiği 2 diyagramı kullanmaktadır.
Aşağıdaki görselde SysML diyagramlarını görebilirsiniz.
Diyagramların hangi durumlarda kullanıldığı, ne işe yaradığını kısaca anlatmak gerekirse;
- Requirements Diagram: Gereksinimleri “text” olarak yazdığımız diyagramlardır.
- Package Diagram: Modeli organize etmek ve sistemin farklı seviyelerde bütününü paket olarak ilişkileriyle beraber görüntülemek için kullanılır.
- Block Definition Diagram: Sistemin yapısını bloklar ve ilişkileriyle ifade eder. Ayrıca bloklar arası data tipleri ve sinyaller de içerebilir.
- Internal Block Diagram: Blokların iç yapısındaki bağlantıyı özellikleri ile ifade etmekte kullanılır.
- Parametric Diagram: Sistemin matematiksel denklemler ile ifade edildiği diyagramdır. Aşağıdaki görselde araç dinamiklerinin tanımlandığı bir parametrik diyagram görülmektedir.
- Activity Diagram: Kontrol ve veri akışı modelini kullanarak sistem davranışını gösterir.
- Sequence Diagram: Bir işlemin bir grup nesne tarafından sıralı bir dizi etkileşimle nasıl gerçekleştirildiğini açıklar. Yani bir anlamda kompleks senaryoların işleyiş mekanizmasını gösterir.
Diyagramlar hakkında detaylı bilgi almak için bu linke gidebilirsiniz. Akışlar, input/output, notasyonlar, pin, objectNode gibi detayların da bu diyagramları kullanmak için bilinmesi gerektiği unutulmamalıdır.
Son olarak, sysML ile modellemede başarılı olmak için çalışılan yerde bir “modelleme kültürü” oluşturulması gerekir. Modelleme yazılımı ve uygulanacak framework seçiminin ardından modele bir sorumlu ataması şart olacaktır.
Bu yazımda MBSE ve SysML hakkında kısaca bilgiler vermeye çalıştım. İhtiyaç halinde bu konuda detaylı bilgi için bana ulaşabilirsiniz.
Bu serinin ikinci yazısında görüşmek üzere.
Teşekkürler.
Can DURMAZ
LinkedIn Paylaşımı: https://www.linkedin.com/pulse/model-tabanl%25C4%25B1-sistem-m%25C3%25BChendisli%25C4%259Fimbse-yaz%25C4%25B1-serisi-1-can-durmaz/?trackingId=FmybXVAZOCrsQoV0jYTsHQ%3D%3D