Desain di tingkat sistem. Bagian 1. Dari ide ke sistem

Halo semua. Saya sering menerapkan prinsip-prinsip rekayasa sistem dalam pekerjaan saya dan ingin berbagi pendekatan ini dengan komunitas.

Rekayasa sistem - tanpa standar, namun sederhananya, ini adalah proses pengembangan sistem sebagai komponen yang cukup abstrak, tanpa mengacu pada sampel perangkat tertentu. Selama proses ini, properti komponen sistem dan hubungan di antara mereka dibuat. Selain itu, sistem perlu dibuat konsisten dan optimal serta memenuhi persyaratan. Dalam tutorial ini saya akan menunjukkan teknik rekayasa sistem dengan menggunakan contoh perancangan sistem kontrol akses (ACS) yang cukup sederhana.

Membentuk arsitektur awal

Ketika sebuah sistem, apa pun yang terjadi, baru saja mulai dikembangkan, persegi panjang dengan panah muncul di kepala kita atau di atas kertas. Persegi panjang seperti itu adalah komponen-komponennya sistem. Dan anak panahnya adalah koneksi antar komponen. Dan seringkali kita tidak punya waktu untuk duduk dan memikirkan bagaimana semua komponen yang telah kita definisikan akan bekerja satu sama lain, dan pada akhirnya kita mulai membuat banyak kruk, menghasilkan desain yang mubazir.

Penting untuk diingat bahwa dari sudut pandang sistem dan arsitekturnya, komponen adalah sesuatu yang abstrak. Misalnya, jika sistem kita memiliki mikrokontroler, maka pada tingkat arsitektur yang penting bagi kita hanyalah mikrokontroler, dan bukan STM32, Arduino, atau Milander. Selain itu, seringkali tidak jelas bagi kita apa sebenarnya yang ada dalam sistem, dan kita beralih ke rekayasa sistem untuk mengembangkan persyaratan untuk peralatan, perangkat lunak, dll.

Untuk contoh kita dengan ACS, kita akan mencoba merumuskan tujuannya. Ini akan membantu kita dalam mengidentifikasi komponen-komponennya. Jadi, tugas sistem kontrol akses adalah mengizinkan sejumlah orang terbatas masuk ke dalam ruangan. Artinya, ini adalah kunci pintar. Akibatnya, kita memiliki komponen pertama - semacam perangkat yang mengunci dan membuka kunci pintu! Ayo telepon dia Kunci pintu

Bagaimana kita tahu bahwa seseorang bisa masuk ke dalam? Kita tidak ingin menempatkan penjaga dan memeriksa paspor, bukan? Mari kita berikan kartu khusus dengan tag RFID kepada orang-orang, di mana kita akan mencatat ID unik atau data lain yang memungkinkan kita mengidentifikasi seseorang secara akurat. Kemudian, kita memerlukan beberapa perangkat yang dapat membaca tag ini. Bagus, kita punya satu komponen lagi, Pembaca RFID

Mari kita lihat kembali apa yang kita dapatkan. Pembaca RFID membaca beberapa data, sistem kontrol akses melakukan sesuatu dengannya, dan atas dasar ini sesuatu dikendalikan Kunci pintu. Mari kita ajukan pertanyaan berikut - di mana menyimpan daftar orang yang memiliki hak akses? Terbaik dalam basis data. Oleh karena itu, sistem kita harus dapat mengirimkan permintaan dan memproses respon dari database. Jadi kita punya satu komponen lagi - DBHandler. Jadi, kami telah menerima deskripsi sistem yang sangat abstrak, tetapi cukup untuk memulai. Kami memahami apa yang seharusnya dilakukan dan cara kerjanya.

Alih-alih selembar kertas, saya akan menggunakan System Composer, alat khusus untuk memodelkan arsitektur sistem di lingkungan Simulink, dan membuat 3 komponen. Di atas sudah saya uraikan hubungan antar komponen tersebut, jadi mari kita segera menghubungkannya:

Desain di tingkat sistem. Bagian 1. Dari ide ke sistem

Memperluas arsitektur

Mari kita lihat diagram kita. Tampaknya semuanya baik-baik saja, tetapi kenyataannya tidak. Lihatlah sistem ini dari sudut pandang pengguna - pengguna membawa kartu ke pembaca dan...? Bagaimana pengguna mengetahui apakah mereka diizinkan atau ditolak aksesnya? Penting untuk memberi tahu dia tentang hal ini! Oleh karena itu, mari tambahkan satu komponen lagi - pemberitahuan pengguna, Pemberitahuan Pengguna:

Desain di tingkat sistem. Bagian 1. Dari ide ke sistem

Sekarang mari kita turun ke tingkat abstraksi yang lebih rendah. Mari kita coba menjelaskan beberapa komponen dengan lebih detail. Mari kita mulai dengan komponennya Pembaca RFID. Di sistem kami, komponen ini bertanggung jawab untuk membaca tag RFID. Outputnya harus berisi beberapa data (UID, data pengguna...). Tapi tunggu dulu, RFID, seperti NFC, pada dasarnya adalah perangkat keras, bukan perangkat lunak! Oleh karena itu, kita dapat berasumsi bahwa kita secara terpisah memiliki chip RFID itu sendiri, yang mentransmisikan data "mentah" ke beberapa jenis praprosesor. Jadi, kita mempunyai perangkat keras abstrak yang dapat membaca tag RFID, dan perangkat lunak abstrak yang dapat mengubah data ke dalam format yang kita perlukan. Mari kita hubungi mereka Sensor RFID ΠΈ Pengurai RFID masing-masing. Bagaimana cara menampilkan ini di System Composer? Anda dapat menghapus komponen Pembaca RFID dan meletakkan dua komponen sebagai gantinya, tetapi lebih baik tidak melakukan ini, jika tidak kita akan kehilangan keterbacaan arsitekturnya. Sebagai gantinya, mari masuk ke dalam RFIDReader dan tambahkan 2 komponen baru:

Desain di tingkat sistem. Bagian 1. Dari ide ke sistem

Bagus, sekarang mari beralih ke memberi tahu pengguna. Bagaimana sistem akan memberi tahu pengguna bahwa ia ditolak atau diizinkan mengakses lokasi tersebut? Seseorang merasakan suara dan sesuatu yang berkedip dengan baik. Oleh karena itu, Anda dapat mengeluarkan sinyal suara tertentu agar pengguna memperhatikan, dan mengedipkan LED. Mari tambahkan komponen yang sesuai Pemberitahuan Pengguna:

Desain di tingkat sistem. Bagian 1. Dari ide ke sistem

Kami telah membuat arsitektur sistem kami, tetapi ada yang salah dengannya. Apa? Mari kita lihat nama koneksinya. Di dalam bis ΠΈ KeluarBus - bukan nama biasa yang akan membantu pengembang. Mereka perlu diganti namanya:

Desain di tingkat sistem. Bagian 1. Dari ide ke sistem

Jadi, kita melihat bagaimana metode rekayasa sistem diterapkan dengan perkiraan yang paling kasar. Timbul pertanyaan: mengapa menggunakannya? Sistemnya primitif, dan tampaknya pekerjaan yang dilakukan tidak diperlukan. Anda dapat langsung menulis kode, mendesain database, menulis kueri, atau menyolder. Masalahnya adalah jika Anda tidak memikirkan sistem secara menyeluruh dan memahami bagaimana komponen-komponennya terhubung satu sama lain, maka integrasi komponen-komponen sistem akan memakan waktu lama dan cukup menyakitkan.

Kesimpulan utama dari bagian ini adalah:

Penggunaan metode rekayasa sistem dan pemodelan arsitektur dalam pengembangan sistem memungkinkan seseorang untuk mengurangi biaya pengintegrasian komponen dan meningkatkan kualitas sistem yang dikembangkan.

Sumber: www.habr.com

Tambah komentar