Tizim darajasida dizayn. 1-qism. G'oyadan tizimga

Hammaga salom. Men o'z ishimda tizim muhandisligi tamoyillarini tez-tez qo'llayman va bu yondashuvni hamjamiyat bilan baham ko'rmoqchiman.

Tizim muhandisligi - standartlarsiz, ammo oddiy qilib aytganda, bu tizimni ma'lum bir qurilma namunalariga murojaat qilmasdan, juda mavhum komponentlar sifatida ishlab chiqish jarayonidir. Bu jarayon davomida tizim komponentlarining xossalari va ular orasidagi aloqalar o'rnatiladi. Bundan tashqari, tizimni izchil va optimal qilish va tizim talablarga javob berishi kerak. Ushbu qo'llanmada men juda oddiy kirishni boshqarish tizimini (ACS) loyihalash misolida tizim muhandislik texnikasini ko'rsataman.

Dastlabki arxitekturani shakllantirish

Tizim, nima bo'lishidan qat'iy nazar, endigina ishlab chiqila boshlaganda, bizning boshimizda yoki qog'ozda o'qlari bo'lgan to'rtburchaklar paydo bo'ladi. Bunday to'rtburchaklar tarkibiy qismlarga tizimlari. Va o'qlar ulanishlar komponentlar o'rtasida. Va ko'pincha biz o'tirib, biz belgilagan barcha tarkibiy qismlar bir-biri bilan qanday ishlashi haqida o'ylashga vaqtimiz yo'q va oxirida biz ortiqcha dizaynlarni o'ylab, bir nechta tayoqchalarni yaratishni boshlaymiz.

Tizim va uning arxitekturasi nuqtai nazaridan komponent juda mavhum narsa ekanligini yodda tutish kerak. Misol uchun, agar bizning tizimimizda mikrokontroller bo'lsa, u holda arxitektura darajasida biz uchun STM32, Arduino yoki Milander emas, balki uning mikrokontroller ekanligi muhim. Bundan tashqari, ko'pincha tizimda aniq nima bo'lishi bizga aniq emas va biz uskunalar, dasturiy ta'minot va boshqalarga talablarni ishlab chiqish uchun tizim muhandisligiga murojaat qilamiz.

ACS bilan bizning misolimiz uchun biz uning maqsadini shakllantirishga harakat qilamiz. Bu bizga uning tarkibiy qismlarini aniqlashda yordam beradi. Shunday qilib, kirishni boshqarish tizimining vazifasi cheklangan doiradagi odamlarga xonaga kirishga ruxsat berishdir. Ya'ni, bu aqlli qulf. Binobarin, bizda birinchi komponent bor - eshikni qulflaydigan va ochadigan qandaydir qurilma! Keling, unga qo'ng'iroq qilaylik Eshik qulfi

Odamning ichkariga kirishi mumkinligini qanday bilamiz? Biz qo'riqchi qo'yishni va pasportlarni tekshirishni xohlamaymiz, shunday emasmi? Keling, odamlarga RFID teglari bo'lgan maxsus kartalarni beraylik, ularda biz noyob identifikatorlarni yoki shaxsni aniq aniqlash imkonini beradigan boshqa ma'lumotlarni yozib olamiz. Keyin bizga ushbu teglarni o'qiy oladigan qurilma kerak bo'ladi. Ajoyib, bizda yana bitta komponent bor, RFIDReader

Keling, nima borligini yana bir bor ko'rib chiqaylik. RFIDReader ba'zi ma'lumotlarni o'qiydi, kirishni boshqarish tizimi u bilan nimadir qiladi va shu asosda nimadir boshqariladi Eshik qulfi. Keling, quyidagi savolni beraylik - kirish huquqiga ega bo'lgan odamlar ro'yxatini qayerda saqlash kerak? Ma'lumotlar bazasida eng yaxshi. Shuning uchun, bizning tizimimiz ma'lumotlar bazasidan so'rovlar yuborish va javoblarni qayta ishlash imkoniyatiga ega bo'lishi kerak. Shunday qilib, bizda yana bitta komponent bor - DBHandler. Shunday qilib, biz tizimning juda mavhum, ammo boshlash uchun etarli tavsifini oldik. Biz nima qilish kerakligini va u qanday ishlashini tushunamiz.

Bir parcha qog'oz o'rniga Simulink muhitida tizim arxitekturasini modellashtirish uchun maxsus vosita - System Composer dan foydalanaman va 3 ta komponent yarataman. Yuqorida men ushbu komponentlar orasidagi aloqalarni tasvirlab berdim, shuning uchun ularni darhol bog'laymiz:

Tizim darajasida dizayn. 1-qism. G'oyadan tizimga

Arxitekturani kengaytirish

Keling, diagramamizni ko'rib chiqaylik. Hammasi yaxshidek tuyuladi, lekin aslida unday emas. Ushbu tizimga foydalanuvchi nuqtai nazaridan qarang - foydalanuvchi kartani o'quvchiga olib keladi va ...? Foydalanuvchi kirishga ruxsat berilgan yoki rad etilganligini qanday biladi? Bu haqda uni qandaydir tarzda xabardor qilish kerak! Shuning uchun, keling, yana bitta komponentni qo'shamiz - foydalanuvchi bildirishnomasi, UserNotify:

Tizim darajasida dizayn. 1-qism. G'oyadan tizimga

Endi mavhumlikning pastki darajasiga tushamiz. Keling, ba'zi tarkibiy qismlarni biroz batafsilroq tasvirlashga harakat qilaylik. Komponentdan boshlaylik RFIDReader. Bizning tizimimizda ushbu komponent RFID tegini o'qish uchun javobgardir. Uning chiqishida ba'zi ma'lumotlar bo'lishi kerak (UID, foydalanuvchi ma'lumotlari...). Ammo kuting, RFID, NFC kabi, birinchi navbatda, dasturiy ta'minot emas, balki apparatdir! Shuning uchun, bizda "xom" ma'lumotlarni qandaydir preprotsessorga uzatuvchi RFID chipining o'zi alohida bor deb taxmin qilishimiz mumkin. Shunday qilib, bizda RFID teglarini o'qiy oladigan mavhum uskuna va ma'lumotlarni kerakli formatga aylantira oladigan mavhum dasturiy ta'minot mavjud. Keling, ularni chaqiraylik RFIDsensor ΠΈ RFIDparser mos ravishda. Buni System Composer-da qanday ko'rsatish mumkin? Siz komponentni olib tashlashingiz mumkin RFIDReader va uning o'rniga ikkita komponentni qo'ying, lekin buni qilmaslik yaxshiroqdir, aks holda biz arxitekturaning o'qish qobiliyatini yo'qotamiz. Buning o'rniga, RFIDReader ichiga kirib, ikkita yangi komponent qo'shamiz:

Tizim darajasida dizayn. 1-qism. G'oyadan tizimga

Ajoyib, endi foydalanuvchini xabardor qilishga o'tamiz. Tizim foydalanuvchiga binoga kirish taqiqlangani yoki ruxsat berilganligi haqida qanday xabar beradi? Inson tovushlarni va miltillovchi narsalarni eng yaxshi qabul qiladi. Shuning uchun, foydalanuvchi e'tibor berishi va LEDni miltillashi uchun siz ma'lum bir ovozli signalni berishingiz mumkin. Keling, tegishli komponentlarni qo'shamiz UserNotify:

Tizim darajasida dizayn. 1-qism. G'oyadan tizimga

Biz tizimimizning arxitekturasini yaratdik, lekin unda nimadir noto'g'ri. Nima? Keling, ulanish nomlarini ko'rib chiqaylik. Avtobus ichida ΠΈ OutBus - ishlab chiquvchiga yordam beradigan oddiy nomlar emas. Ularni qayta nomlash kerak:

Tizim darajasida dizayn. 1-qism. G'oyadan tizimga

Shunday qilib, biz tizim muhandisligi usullari eng qo'pol taxminlarda qanday qo'llanilishini ko'rib chiqdik. Savol tug'iladi: nima uchun ulardan umuman foydalanish kerak? Tizim ibtidoiy, bajarilgan ishlar esa keraksizdek tuyuladi. Siz darhol kod yozishingiz, ma'lumotlar bazasini loyihalashingiz, so'rovlarni yozishingiz yoki lehim qilishingiz mumkin. Muammo shundaki, agar siz tizimni o'ylab ko'rmasangiz va uning tarkibiy qismlari bir-biriga qanday bog'langanligini tushunmasangiz, unda tizim tarkibiy qismlarining integratsiyasi uzoq vaqt talab etadi va juda og'riqli bo'ladi.

Ushbu qismdan asosiy xulosa:

Tizimni ishlab chiqishda tizim muhandislik usullari va arxitektura modellashtirishdan foydalanish tarkibiy qismlarni birlashtirish xarajatlarini kamaytirish va ishlab chiqilgan tizim sifatini yaxshilash imkonini beradi.

Manba: www.habr.com

a Izoh qo'shish