Sistem düzeyinde tasarım. Bölüm 1. Fikirden sisteme

Herkese selam. Sistem mühendisliği ilkelerini çalışmalarımda sıklıkla uyguluyorum ve bu yaklaşımı toplulukla paylaşmak istiyorum.

Sistem mühendisliği - standartlar olmadan, basitçe söylemek gerekirse, belirli cihaz örneklerine atıfta bulunmadan, oldukça soyut bileşenler olarak bir sistem geliştirme sürecidir. Bu işlem sırasında sistem bileşenlerinin özellikleri ve aralarındaki bağlantılar kurulur. Ayrıca sistemin tutarlı ve optimal hale getirilmesi ve sistemin gereksinimleri karşılaması gerekmektedir. Bu derste oldukça basit bir erişim kontrol sistemi (ACS) tasarlama örneğini kullanarak sistem mühendisliği tekniklerini göstereceğim.

İlk mimarinin oluşturulması

Bir sistem ne olursa olsun yeni geliştirilmeye başladığında kafamızda veya kağıt üzerinde oklu dikdörtgenler belirir. Bu tür dikdörtgenler bileşenler sistemler. Ve oklar bağlantı bileşenler arasında. Çoğu zaman, tanımladığımız tüm bileşenlerin birbirleriyle nasıl çalışacağını oturup düşünecek zamanımız olmuyor ve sonunda bir sürü koltuk değneği oluşturmaya, gereksiz tasarımlar bulmaya başlıyoruz.

Sistem ve mimarisi açısından bir bileşenin oldukça soyut bir şey olduğunu hatırlamak önemlidir. Örneğin, sistemimizde bir mikrodenetleyici varsa, o zaman mimari düzeyde bizim için bunun STM32, Arduino veya Milander değil, yalnızca bir mikrodenetleyici olması önemlidir. Dahası, çoğu zaman sistemde tam olarak ne olacağı bizim için hiç de net değil ve ekipman, yazılım vb. için gereksinimleri geliştirmek için sistem mühendisliğine yöneliyoruz.

ACS örneğimiz için amacını formüle etmeye çalışacağız. Bu, bileşenlerini tanımlamamıza yardımcı olacaktır. Dolayısıyla erişim kontrol sisteminin görevi sınırlı sayıda insanın odaya girmesine izin vermektir. Yani akıllı kilittir. Sonuç olarak, ilk bileşene sahibiz - kapıyı kilitleyen ve kilidini açan bir tür cihaz! Onu arayalım Kapı kilidi

Bir kişinin içeri girebileceğini nasıl bilebiliriz? Bekçi koyup pasaportları kontrol etmek istemiyoruz değil mi? İnsanlara, bir kişiyi doğru bir şekilde tanımlamamızı sağlayan benzersiz kimlikleri veya diğer verileri kaydedeceğimiz, RFID etiketli özel kartlar verelim. Daha sonra bu etiketleri okuyabilecek bir cihaza ihtiyacımız olacak. Harika, bir bileşenimiz daha var, RFID Okuyucu

Neler kazandığımıza tekrar bakalım. RFID Okuyucu bazı verileri okur, erişim kontrol sistemi bununla bir şeyler yapar ve buna dayanarak bir şey kontrol edilir Kapı kilidi. Şu soruyu soralım: Erişim haklarına sahip kişilerin listesi nerede saklanmalı? Veritabanında en iyisi. Bu nedenle sistemimizin veri tabanından istek gönderebilmesi ve yanıtları işleyebilmesi gerekir. Yani bir bileşenimiz daha var - DB İşleyicisi. Böylece, sistemin son derece soyut ama başlangıç ​​için yeterli bir tanımını aldık. Ne yapması gerektiğini ve nasıl çalıştığını anlıyoruz.

Bir parça kağıt yerine, sistem mimarilerini Simulink ortamında modellemek için özel bir araç olan System Composer'ı kullanacağım ve 3 bileşen oluşturacağım. Yukarıda bu bileşenler arasındaki bağlantıları anlattım, o yüzden hemen bunları bağlayalım:

Sistem düzeyinde tasarım. Bölüm 1. Fikirden sisteme

Mimariyi genişletmek

Diyagramımıza bakalım. Görünüşe göre her şey yolunda, ama gerçekte öyle değil. Bu sisteme kullanıcının bakış açısından bakın; kullanıcı kartı okuyucuya getirir ve...? Bir kullanıcı erişime izin verilip verilmediğini nasıl anlayabilir? Onu bir şekilde bu konuda bilgilendirmek gerekiyor! Bu nedenle, bir bileşen daha ekleyelim - kullanıcı bildirimi, Kullanıcı Bildirimi:

Sistem düzeyinde tasarım. Bölüm 1. Fikirden sisteme

Şimdi daha düşük bir soyutlama düzeyine inelim. Bazı bileşenleri biraz daha ayrıntılı olarak açıklamaya çalışalım. Bileşenle başlayalım RFID Okuyucu. Sistemimizde bu bileşen RFID etiketinin okunmasından sorumludur. Çıktısı bazı veriler içermelidir (UID, kullanıcı verileri...). Ancak bekleyin, RFID, NFC gibi öncelikle donanımdır, yazılım değil! Bu nedenle, "ham" verileri bir tür ön işlemciye ileten RFID çipinin kendisine ayrı olarak sahip olduğumuzu varsayabiliriz. Yani, RFID etiketlerini okuyabilen soyut bir donanıma ve verileri ihtiyacımız olan formata dönüştürebilen soyut bir yazılıma sahibiz. Onları arayalım RFIDSensörü и RFID Ayrıştırıcı sırasıyla. Bunu Sistem Oluşturucu'da nasıl gösterebilirim? Bir bileşeni kaldırabilirsiniz RFID Okuyucu ve bunun yerine iki bileşen koyun, ancak bunu yapmamak daha iyidir, aksi takdirde mimarinin okunabilirliğini kaybederiz. Bunun yerine RFIDReader'ın içine girelim ve 2 yeni bileşen ekleyelim:

Sistem düzeyinde tasarım. Bölüm 1. Fikirden sisteme

Harika, şimdi kullanıcıyı bilgilendirmeye geçelim. Sistem kullanıcıya tesise erişiminin reddedildiğini veya buna izin verildiğini nasıl bildirecek? Bir kişi sesleri ve yanıp sönen bir şeyi en iyi algılar. Bu nedenle, kullanıcının dikkatini vermesi ve LED'i yakması için belirli bir ses sinyali verebilirsiniz. Uygun bileşenleri ekleyelim Kullanıcı Bildirimi:

Sistem düzeyinde tasarım. Bölüm 1. Fikirden sisteme

Sistemimizin mimarisini oluşturduk ama bunda bir yanlışlık var. Ne? Bağlantı adlarına bakalım. Otobüste и Çıkış Otobüsü - geliştiriciye yardımcı olacak pek normal isimler değil. Yeniden adlandırılmaları gerekiyor:

Sistem düzeyinde tasarım. Bölüm 1. Fikirden sisteme

Böylece sistem mühendisliği yöntemlerinin en kaba yaklaşımla nasıl uygulandığına baktık. Soru ortaya çıkıyor: neden bunları kullanıyorsunuz? Sistem ilkel ve yapılan iş gereksiz gibi görünüyor. Hemen kod yazabilir, bir veritabanı tasarlayabilir, sorgu yazabilir veya lehimleyebilirsiniz. Sorun şu ki, eğer sistem üzerinde düşünmezseniz ve bileşenlerinin birbirine nasıl bağlandığını anlamazsanız, sistem bileşenlerinin entegrasyonu uzun zaman alacak ve oldukça zahmetli olacaktır.

Bu bölümden çıkarılacak ana sonuç şudur:

Sistem geliştirmede sistem mühendisliği yöntemlerinin ve mimari modellemenin kullanılması, bileşenlerin entegre edilmesinin maliyetlerinin azaltılmasına ve geliştirilen sistemin kalitesinin artırılmasına olanak tanır.

Kaynak: habr.com

DDoS korumalı siteler, VPS VDS sunucuları için güvenilir hosting satın alın 🔥 DDoS korumalı, güvenilir VPS ve VDS sunucu barındırma hizmeti satın alın | ProHoster