Dizajn në nivel sistemi. Pjesa 1. Nga ideja në sistem

Pershendetje te gjitheve. Unë shpesh aplikoj parimet e inxhinierisë së sistemeve në punën time dhe dëshiroj ta ndaj këtë qasje me komunitetin.

Inxhinieria e sistemeve - pa standarde, por e thënë thjesht, është procesi i zhvillimit të një sistemi si komponentë mjaft abstraktë, pa iu referuar mostrave specifike të pajisjes. Gjatë këtij procesi vendosen vetitë e komponentëve të sistemit dhe lidhjet ndërmjet tyre. Për më tepër, është e nevojshme të bëhet sistemi konsistent dhe optimal dhe që sistemi të plotësojë kërkesat. Në këtë tutorial do të tregoj teknikat e inxhinierisë së sistemeve duke përdorur shembullin e projektimit të një sistemi mjaft të thjeshtë të kontrollit të aksesit (ACS).

Formimi i arkitekturës fillestare

Kur një sistem, pa marrë parasysh çfarë, sapo fillon të zhvillohet, drejtkëndëshat me shigjeta shfaqen në kokën tonë ose në letër. Drejtkëndësha të tillë janë përbërësit sistemeve. Dhe shigjetat janë lidhjet ndërmjet komponentëve. Dhe shumë shpesh ne nuk kemi kohë të ulemi dhe të mendojmë se si të gjithë komponentët që kemi përcaktuar do të funksionojnë me njëri-tjetrin, dhe në fund fillojmë të krijojmë një tufë patericash, duke dalë me dizajne të tepërta.

Është e rëndësishme të mbani mend se nga pikëpamja e sistemit dhe arkitekturës së tij, një komponent është një gjë mjaft abstrakte. Për shembull, nëse sistemi ynë ka një mikrokontrollues, atëherë në nivelin arkitektonik është e rëndësishme vetëm për ne që ai të jetë një mikrokontrollues, dhe jo që të jetë STM32, Arduino ose Milander. Për më tepër, shpesh nuk është aspak e qartë për ne se çfarë do të jetë saktësisht në sistem, dhe ne i drejtohemi inxhinierisë së sistemeve për të zhvilluar kërkesa për pajisje, softuer, etj.

Për shembullin tonë me ACS, ne do të përpiqemi të formulojmë qëllimin e tij. Kjo do të na ndihmojë në identifikimin e përbërësve të tij. Pra, detyra e sistemit të kontrollit të hyrjes është të lejojë një rreth të kufizuar njerëzish në dhomë. Kjo është, është një bravë inteligjente. Rrjedhimisht, ne kemi komponentin e parë - një lloj pajisjeje që mbyll dhe zhbllokon derën! Le ta thërrasim atë Kyçja e derës

Si e dimë se një person mund të hyjë brenda? Ne nuk duam të vendosim një roje dhe të kontrollojmë pasaportat, apo jo? Le t'u japim njerëzve karta speciale me etiketa RFID, në të cilat do të regjistrojmë ID unike ose të dhëna të tjera që na lejojnë të identifikojmë me saktësi një person. Pastaj, do të na duhet një pajisje që mund t'i lexojë këto etiketa. E shkëlqyeshme, ne kemi një komponent më shumë, RFIDReader

Le të shohim përsëri atë që kemi. RFIDReader lexon disa të dhëna, sistemi i kontrollit të aksesit bën diçka me të dhe në bazë të kësaj diçka kontrollohet Kyçja e derës. Le të bëjmë pyetjen e mëposhtme - ku të ruhet lista e njerëzve me të drejta aksesi? Më e mira në bazën e të dhënave. Prandaj, sistemi ynë duhet të jetë në gjendje të dërgojë kërkesa dhe të përpunojë përgjigje nga baza e të dhënave. Pra, ne kemi një komponent më shumë - DBHandler. Pra, kemi marrë një përshkrim jashtëzakonisht abstrakt, por të mjaftueshëm për të filluar, të sistemit. Ne e kuptojmë se çfarë duhet të bëjë dhe si funksionon.

Në vend të një copë letre, do të përdor System Composer, një mjet i veçantë për modelimin e arkitekturave të sistemit në mjedisin Simulink dhe do të krijoj 3 komponentë. Më lart përshkrova lidhjet midis këtyre komponentëve, kështu që le t'i lidhim ato menjëherë:

Dizajn në nivel sistemi. Pjesa 1. Nga ideja në sistem

Zgjerimi i arkitekturës

Le të shohim diagramin tonë. Duket se gjithçka është në rregull, por në realitet nuk është ashtu. Shikojeni këtë sistem nga këndvështrimi i përdoruesit - përdoruesi ia sjell kartën lexuesit dhe...? Si e di një përdorues nëse i lejohet apo i mohohet qasja? Është e nevojshme ta njoftoni disi për këtë! Prandaj, le të shtojmë një komponent tjetër - njoftimin e përdoruesit, Njoftimi i përdoruesit:

Dizajn në nivel sistemi. Pjesa 1. Nga ideja në sistem

Tani le të zbresim në një nivel më të ulët të abstraksionit. Le të përpiqemi të përshkruajmë disa komponentë në pak më shumë detaje. Le të fillojmë me komponentin RFIDReader. Në sistemin tonë, ky komponent është përgjegjës për leximin e etiketës RFID. Prodhimi i tij duhet të përmbajë disa të dhëna (UID, të dhënat e përdoruesit...). Por prisni, RFID, si NFC, është kryesisht harduer, jo softuer! Prandaj, mund të supozojmë se veçmas kemi vetë çipin RFID, i cili transmeton të dhëna "të papërpunuara" në një lloj paraprocesori. Pra, ne kemi një pjesë abstrakte të harduerit që mund të lexojë etiketat RFID dhe softuer abstrakt që mund të konvertojë të dhënat në formatin që na nevojitet. Le t'i thërrasim ata Sensor RFID и RFIDparser përkatësisht. Si ta shfaqni këtë në System Composer? Ju mund të hiqni një komponent RFIDReader dhe vendosni dy komponentë në vend të tyre, por është më mirë të mos e bëni këtë, përndryshe do të humbasim lexueshmërinë e arkitekturës. Në vend të kësaj, le të shkojmë brenda RFIDReader dhe të shtojmë 2 komponentë të rinj:

Dizajn në nivel sistemi. Pjesa 1. Nga ideja në sistem

E shkëlqyeshme, tani le të kalojmë në njoftimin e përdoruesit. Si do ta njoftojë sistemi përdoruesin se i është mohuar ose lejuar aksesi në ambientet? Një person i percepton tingujt dhe diçka që vezullon më së miri. Prandaj, mund të lëshoni një sinjal të caktuar zanor në mënyrë që përdoruesi t'i kushtojë vëmendje dhe të pulsojë LED. Le t'i shtojmë komponentët e duhur Njoftimi i përdoruesit:

Dizajn në nivel sistemi. Pjesa 1. Nga ideja në sistem

Ne kemi krijuar arkitekturën e sistemit tonë, por ka diçka që nuk shkon me të. Çfarë? Le të shohim emrat e lidhjeve. InBus и Autobus jashtë - emra jo mjaft normalë që do të ndihmonin zhvilluesin. Ata duhet të riemërohen:

Dizajn në nivel sistemi. Pjesa 1. Nga ideja në sistem

Pra, ne shikuam se si zbatohen metodat e inxhinierisë së sistemeve në përafrimin më të përafërt. Shtrohet pyetja: pse t'i përdorim ato fare? Sistemi është primitiv dhe duket se puna e bërë është e panevojshme. Ju mund të shkruani menjëherë kodin, të dizajnoni një bazë të dhënash, të shkruani pyetje ose të bashkoni. Problemi është se nëse nuk mendoni për sistemin dhe nuk kuptoni se si përbërësit e tij janë të lidhur me njëri-tjetrin, atëherë integrimi i komponentëve të sistemit do të zgjasë shumë dhe do të jetë mjaft i dhimbshëm.

Marrja kryesore nga kjo pjesë është:

Përdorimi i metodave të inxhinierisë së sistemeve dhe modelimit të arkitekturës në zhvillimin e sistemit mundëson uljen e kostove të integrimit të komponentëve dhe përmirësimin e cilësisë së sistemit të zhvilluar.

Burimi: www.habr.com

Shto një koment