Reka bentuk di peringkat sistem. Bahagian 1. Dari idea kepada sistem

Hai semua. Saya sering menggunakan prinsip kejuruteraan sistem dalam kerja saya dan ingin berkongsi pendekatan ini dengan komuniti.

Kejuruteraan sistem - tanpa piawaian, tetapi secara ringkasnya, ia adalah proses membangunkan sistem sebagai komponen yang agak abstrak, tanpa merujuk kepada sampel peranti tertentu. Semasa proses ini, sifat komponen sistem dan sambungan di antara mereka diwujudkan. Di samping itu, adalah perlu untuk menjadikan sistem konsisten dan optimum dan sistem itu memenuhi keperluan. Dalam tutorial ini saya akan menunjukkan teknik kejuruteraan sistem menggunakan contoh mereka bentuk sistem kawalan akses (ACS) yang agak mudah.

Membentuk seni bina awal

Apabila sistem, tidak kira apa, baru mula dibangunkan, segi empat tepat dengan anak panah muncul di kepala kita atau di atas kertas. segi empat tepat tersebut adalah ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ sistem. Dan anak panah adalah sambungan antara komponen. Dan selalunya kami tidak mempunyai masa untuk duduk dan memikirkan bagaimana semua komponen yang telah kami tentukan akan berfungsi antara satu sama lain, dan pada akhirnya kami mula mencipta sekumpulan tongkat, menghasilkan reka bentuk yang berlebihan.

Adalah penting untuk diingat bahawa dari sudut pandangan sistem dan seni binanya, komponen adalah perkara yang agak abstrak. Sebagai contoh, jika sistem kami mempunyai mikropengawal, maka pada peringkat seni bina hanya penting bagi kami bahawa ia adalah mikropengawal, dan bukannya STM32, Arduino atau Milander. Lebih-lebih lagi, selalunya tidak jelas kepada kami apa sebenarnya yang akan ada dalam sistem, dan kami beralih kepada kejuruteraan sistem untuk membangunkan keperluan untuk peralatan, perisian, dll.

Untuk contoh kami dengan ACS, kami akan cuba merumuskan tujuannya. Ini akan membantu kami dalam mengenal pasti komponennya. Jadi, tugas sistem kawalan akses adalah untuk membenarkan bulatan terhad orang masuk ke dalam bilik. Iaitu, ia adalah kunci pintar. Akibatnya, kami mempunyai komponen pertama - sejenis peranti yang mengunci dan membuka kunci pintu! Jom panggil dia Kunci pintu

Bagaimana kita tahu bahawa seseorang boleh masuk ke dalam? Kami tidak mahu meletakkan penjaga dan memeriksa pasport, bukan? Mari berikan orang kad khas dengan tag RFID, yang mana kami akan merekodkan ID unik atau data lain yang membolehkan kami mengenal pasti seseorang dengan tepat. Kemudian, kami memerlukan beberapa peranti yang boleh membaca teg ini. Hebat, kami mempunyai satu lagi komponen, RFIDReader

Mari kita lihat semula apa yang kita dapat. RFIDReader membaca beberapa data, sistem kawalan akses melakukan sesuatu dengannya, dan atas dasar ini sesuatu dikawal Kunci pintu. Mari kita tanya soalan berikut - di mana untuk menyimpan senarai orang yang mempunyai hak akses? Terbaik dalam pangkalan data. Oleh itu, sistem kami mesti boleh menghantar permintaan dan memproses respons daripada pangkalan data. Jadi kita mempunyai satu lagi komponen - DBHandler. Jadi, kami telah menerima perihalan sistem yang sangat abstrak, tetapi mencukupi untuk bermula. Kami memahami apa yang sepatutnya dilakukan dan bagaimana ia berfungsi.

Daripada sekeping kertas, saya akan menggunakan Komposer Sistem, alat khas untuk memodelkan seni bina sistem dalam persekitaran Simulink, dan mencipta 3 komponen. Di atas saya menerangkan hubungan antara komponen ini, jadi mari kita sambungkannya dengan segera:

Reka bentuk di peringkat sistem. Bahagian 1. Dari idea kepada sistem

Memperluaskan seni bina

Mari lihat rajah kami. Nampaknya semuanya baik-baik saja, tetapi sebenarnya tidak. Lihat sistem ini dari sudut pandangan pengguna - pengguna membawa kad kepada pembaca dan...? Bagaimanakah pengguna mengetahui sama ada mereka dibenarkan atau dinafikan akses? Ia adalah perlu untuk memberitahu dia tentang perkara ini! Oleh itu, mari tambah satu lagi komponen - pemberitahuan pengguna, Pemberitahuan Pengguna:

Reka bentuk di peringkat sistem. Bahagian 1. Dari idea kepada sistem

Sekarang mari kita turun ke tahap abstraksi yang lebih rendah. Mari cuba huraikan beberapa komponen dengan lebih terperinci. Mari kita mulakan dengan komponen RFIDReader. Dalam sistem kami, komponen ini bertanggungjawab untuk membaca tag RFID. Outputnya harus mengandungi beberapa data (UID, data pengguna...). Tetapi tunggu, RFID, seperti NFC, terutamanya perkakasan, bukan perisian! Oleh itu, kita boleh menganggap bahawa kita secara berasingan mempunyai cip RFID itu sendiri, yang menghantar data "mentah" kepada beberapa jenis prapemproses. Jadi, kami mempunyai perkakasan abstrak yang boleh membaca tag RFID, dan perisian abstrak yang boleh menukar data ke dalam format yang kami perlukan. Jom panggil mereka RFIDsensor ΠΈ RFIDparser masing-masing. Bagaimana untuk memaparkan ini dalam Komposer Sistem? Anda boleh mengalih keluar komponen RFIDReader dan letakkan dua komponen sebaliknya, tetapi lebih baik tidak melakukan ini, jika tidak, kita akan kehilangan kebolehbacaan seni bina. Sebaliknya, mari masuk ke dalam RFIDReader dan tambah 2 komponen baharu:

Reka bentuk di peringkat sistem. Bahagian 1. Dari idea kepada sistem

Hebat, sekarang mari kita teruskan untuk memberitahu pengguna. Bagaimanakah sistem akan memberitahu pengguna bahawa dia dinafikan atau dibenarkan akses ke premis? Seseorang dapat melihat bunyi dan sesuatu yang berkelip dengan baik. Oleh itu, anda boleh mengeluarkan isyarat bunyi tertentu supaya pengguna memberi perhatian, dan kelipkan LED. Mari tambah komponen yang sesuai Pemberitahuan Pengguna:

Reka bentuk di peringkat sistem. Bahagian 1. Dari idea kepada sistem

Kami telah mencipta seni bina sistem kami, tetapi terdapat sesuatu yang tidak kena dengannya. Apa? Mari lihat nama sambungan. InBus ΠΈ OutBus - bukan nama biasa yang akan membantu pemaju. Mereka perlu dinamakan semula:

Reka bentuk di peringkat sistem. Bahagian 1. Dari idea kepada sistem

Jadi, kami melihat bagaimana kaedah kejuruteraan sistem digunakan dalam anggaran paling kasar. Persoalannya timbul: mengapa menggunakannya sama sekali? Sistem ini adalah primitif, dan nampaknya kerja yang dilakukan tidak perlu. Anda boleh segera menulis kod, mereka bentuk pangkalan data, menulis pertanyaan atau pateri. Masalahnya ialah jika anda tidak memikirkan sistem dan memahami bagaimana komponennya disambungkan antara satu sama lain, maka penyepaduan komponen sistem akan mengambil masa yang lama dan agak menyakitkan.

Perkara utama dari bahagian ini ialah:

Penggunaan kaedah kejuruteraan sistem dan pemodelan seni bina dalam pembangunan sistem membolehkan seseorang mengurangkan kos untuk menyepadukan komponen dan meningkatkan kualiti sistem yang dibangunkan.

Sumber: www.habr.com

Tambah komen