Sveiki visiem. SavÄ darbÄ bieži izmantoju sistÄmu inženierijas principus un vÄlos dalÄ«ties ar Å”o pieeju ar sabiedrÄ«bu.
SistÄmu inženierija - bez standartiem, bet vienkÄrÅ”i sakot, tas ir process, kurÄ tiek izstrÄdÄta sistÄma kÄ diezgan abstrakti komponenti, bez atsauces uz konkrÄtiem ierÄ«Äu paraugiem. Å Ä« procesa laikÄ tiek noteiktas sistÄmas komponentu Ä«paŔības un savienojumi starp tiem. TurklÄt ir nepiecieÅ”ams, lai sistÄma bÅ«tu konsekventa un optimÄla un lai sistÄma atbilstu prasÄ«bÄm. Å ajÄ apmÄcÄ«bÄ es parÄdÄ«Å”u sistÄmu inženierijas metodes, izmantojot diezgan vienkÄrÅ”as piekļuves kontroles sistÄmas (ACS) projektÄÅ”anas piemÄru.
SÄkotnÄjÄs arhitektÅ«ras veidoÅ”ana
Kad sistÄma, neatkarÄ«gi no tÄ, tikai sÄk attÄ«stÄ«ties, mÅ«su galvÄs vai uz papÄ«ra parÄdÄs taisnstÅ«ri ar bultÄm. Å Ädi taisnstÅ«ri ir sastÄvdaļas sistÄmas. Un bultas ir savienojumi starp komponentiem. Un ļoti bieži mums nav laika sÄdÄt un domÄt par to, kÄ visas mÅ«su definÄtÄs sastÄvdaļas darbosies viena ar otru, un galu galÄ mÄs sÄkam veidot kruÄ·u kopu, izdomÄjot liekus dizainus.
Ir svarÄ«gi atcerÄties, ka no sistÄmas un tÄs arhitektÅ«ras viedokļa komponents ir diezgan abstrakta lieta. PiemÄram, ja mÅ«su sistÄmai ir mikrokontrolleris, tad arhitektÅ«ras lÄ«menÄ« mums ir svarÄ«gi tikai, lai tas bÅ«tu mikrokontrolleris, nevis STM32, Arduino vai Milander. TurklÄt bieži vien mums nemaz nav skaidrs, kas Ä«sti bÅ«s sistÄmÄ, un mÄs vÄrÅ”amies pie sistÄmu inženierijas, lai izstrÄdÄtu prasÄ«bas aprÄ«kojumam, programmatÅ«rai utt.
MÅ«su piemÄrÄ ar ACS mÄs mÄÄ£inÄsim formulÄt tÄ mÄrÄ·i. Tas mums palÄ«dzÄs noteikt tÄ sastÄvdaļas. TÄtad piekļuves kontroles sistÄmas uzdevums ir ielaist telpÄ ierobežotu cilvÄku loku. Tas ir, tÄ ir viedÄ atslÄga. LÄ«dz ar to mums ir pirmÄ sastÄvdaļa - kaut kÄda ierÄ«ce, kas aizslÄdz un atslÄdz durvis! Sauksim viÅu Durvju atslÄga
KÄ mÄs zinÄm, ka cilvÄks var tikt iekÅ”Ä? MÄs nevÄlamies likt sargu un pÄrbaudÄ«t pases, vai ne? Iedosim cilvÄkiem Ä«paÅ”as kartes ar RFID tagiem, uz kurÄm ierakstÄ«sim unikÄlus ID vai citus datus, kas ļauj precÄ«zi identificÄt personu. PÄc tam mums bÅ«s nepiecieÅ”ama ierÄ«ce, kas var nolasÄ«t Å”os tagus. Lieliski, mums ir vÄl viens komponents, RFIDReader
ApskatÄ«sim vÄlreiz, ko esam ieguvuÅ”i. RFIDReader nolasa dažus datus, piekļuves kontroles sistÄma ar tiem kaut ko dara, un uz Ŕī pamata kaut kas tiek kontrolÄts Durvju atslÄga. Uzdosim Å”Ädu jautÄjumu ā kur glabÄt to personu sarakstu, kurÄm ir piekļuves tiesÄ«bas? LabÄkais datu bÄzÄ. TÄpÄc mÅ«su sistÄmai jÄspÄj nosÅ«tÄ«t pieprasÄ«jumus un apstrÄdÄt atbildes no datu bÄzes. TÄtad mums ir vÄl viena sastÄvdaļa - DBHandler. TÄtad, mÄs esam saÅÄmuÅ”i ÄrkÄrtÄ«gi abstraktu, bet iesÄkumam pietiekamu sistÄmas aprakstu. MÄs saprotam, kas tam ir jÄdara un kÄ tas darbojas.
PapÄ«ra vietÄ izmantoÅ”u System Composer speciÄlo rÄ«ku sistÄmu arhitektÅ«ru modelÄÅ”anai Simulink vidÄ un izveidoÅ”u 3 komponentes. IepriekÅ” es aprakstÄ«ju savienojumus starp Å”iem komponentiem, tÄpÄc nekavÄjoties savienosim tos:
ArhitektÅ«ras paplaÅ”inÄÅ”ana
ApskatÄ«sim mÅ«su diagrammu. Å Ä·iet, ka viss ir kÄrtÄ«bÄ, bet patiesÄ«bÄ tÄ nav. Paskaties uz Å”o sistÄmu no lietotÄja viedokļa ā lietotÄjs atnes karti lasÄ«tÄjam un...? KÄ lietotÄjs zina, vai viÅam ir atļauta vai liegta piekļuve? Par to viÅam kaut kÄ jÄpaziÅo! TÄpÄc pievienosim vÄl vienu komponentu - lietotÄja paziÅojumu, UserNotify:
Tagad pÄriesim uz zemÄku abstrakcijas lÄ«meni. MÄÄ£inÄsim nedaudz sÄ«kÄk aprakstÄ«t dažus komponentus. SÄksim ar komponentu RFIDReader. MÅ«su sistÄmÄ Å”is komponents ir atbildÄ«gs par RFID marÄ·Äjuma nolasÄ«Å”anu. TÄs izvadÄ jÄietver daži dati (UID, lietotÄja dati...). Bet pagaidiet, RFID, tÄpat kÄ NFC, galvenokÄrt ir aparatÅ«ra, nevis programmatÅ«ra! TÄpÄc mÄs varam pieÅemt, ka mums atseviŔķi ir pati RFID mikroshÄma, kas pÄrsÅ«ta āneapstrÄdÄtusā datus uz sava veida priekÅ”procesoru. TÄtad, mums ir abstrakta aparatÅ«ra, kas var nolasÄ«t RFID tagus, un abstrakta programmatÅ«ra, kas var pÄrvÄrst datus vajadzÄ«gajÄ formÄtÄ. Sauksim viÅus RFIDsensors Šø RFIDParser attiecÄ«gi. KÄ to parÄdÄ«t System Composer? JÅ«s varat noÅemt komponentu RFIDReader un tÄ vietÄ ievietojiet divus komponentus, taÄu labÄk to nedarÄ«t, pretÄjÄ gadÄ«jumÄ mÄs zaudÄsim arhitektÅ«ras lasÄmÄ«bu. TÄ vietÄ ieejam RFIDReader un pievienosim 2 jaunus komponentus:
Lieliski, tagad pÄriesim pie lietotÄja paziÅoÅ”anas. KÄ sistÄma informÄs lietotÄju, ka viÅam ir liegta vai atļauta piekļuve telpÄm? CilvÄks vislabÄk uztver skaÅas un kaut ko mirgojoÅ”u. TÄpÄc jÅ«s varat izdot noteiktu skaÅas signÄlu, lai lietotÄjs pievÄrstu uzmanÄ«bu, un mirgot LED. Pievienosim atbilstoÅ”Äs sastÄvdaļas UserNotify:
MÄs esam izveidojuÅ”i savas sistÄmas arhitektÅ«ru, taÄu ar to kaut kas nav kÄrtÄ«bÄ. Kas? ApskatÄ«sim savienojumu nosaukumus. InBus Šø OutBus - ne gluži normÄli nosaukumi, kas palÄ«dzÄtu izstrÄdÄtÄjam. Tie ir jÄpÄrdÄvÄ:
TÄtad, mÄs apskatÄ«jÄm, kÄ sistÄmu inženierijas metodes tiek izmantotas vislielÄkajÄ tuvinÄjumÄ. Rodas jautÄjums: kÄpÄc tos vispÄr lietot? SistÄma ir primitÄ«va, un Ŕķiet, ka padarÄ«tais darbs ir lieks. JÅ«s varÄtu nekavÄjoties rakstÄ«t kodu, izveidot datubÄzi, rakstÄ«t vaicÄjumus vai lodÄt. ProblÄma ir tÄda, ka, ja jÅ«s nepÄrdomÄjat sistÄmu un nesaprotat, kÄ tÄs komponenti ir savienoti viens ar otru, tad sistÄmas komponentu integrÄcija prasÄ«s ilgu laiku un bÅ«s diezgan sÄpÄ«ga.
Å Ä«s daļas galvenÄ iezÄ«me ir:
SistÄmu inženierijas metožu un arhitektÅ«ras modelÄÅ”anas izmantoÅ”ana sistÄmu izstrÄdÄ Ä¼auj samazinÄt komponentu integrÄÅ”anas izmaksas un uzlabot izstrÄdÄtÄs sistÄmas kvalitÄti.
Avots: www.habr.com