Suunnittelu järjestelmätasolla. Osa 1. Ideasta järjestelmään

Hei kaikki. Käytän työssäni usein järjestelmäsuunnittelun periaatteita ja haluaisin jakaa tämän lähestymistavan yhteisön kanssa.

Järjestelmäsuunnittelu - ilman standardeja, mutta yksinkertaisesti sanottuna, se on prosessi, jossa kehitetään järjestelmä melko abstrakteina komponentteina ilman erityisiä laitenäytteitä. Tämän prosessin aikana muodostetaan järjestelmän komponenttien ominaisuudet ja niiden väliset yhteydet. Lisäksi järjestelmästä on tehtävä johdonmukainen ja optimaalinen ja että järjestelmä täyttää vaatimukset. Tässä opetusohjelmassa esittelen järjestelmäsuunnittelutekniikoita melko yksinkertaisen kulunvalvontajärjestelmän (ACS) suunnittelun esimerkillä.

Alkuarkkitehtuurin muodostaminen

Kun järjestelmä, olipa mikä tahansa, juuri alkaa kehittyä, päähämme tai paperille ilmestyy suorakulmioita nuolilla. Tällaiset suorakulmiot ovat компоненты järjestelmät. Ja nuolet ovat yhteys komponenttien välillä. Ja hyvin usein meillä ei ole aikaa istua ja miettiä, kuinka kaikki määrittelemämme komponentit toimivat keskenään, ja lopulta alamme luoda joukon kainalosauvoja ja keksiä tarpeettomia malleja.

On tärkeää muistaa, että järjestelmän ja sen arkkitehtuurin näkökulmasta komponentti on melko abstrakti asia. Esimerkiksi, jos järjestelmässämme on mikro-ohjain, niin arkkitehtonisella tasolla meille on tärkeää vain, että se on mikro-ohjain, eikä se, että se on STM32, Arduino tai Milander. Lisäksi usein meille ei ole ollenkaan selvää, mitä järjestelmässä tarkalleen tulee olemaan, ja käännymme järjestelmäsuunnittelun puoleen kehittääksemme vaatimuksia laitteille, ohjelmistoille jne.

ACS-esimerkissämme yritämme muotoilla sen tarkoituksen. Tämä auttaa meitä tunnistamaan sen komponentit. Joten kulunvalvontajärjestelmän tehtävänä on päästää huoneeseen rajoitettu joukko ihmisiä. Eli se on älylukko. Näin ollen meillä on ensimmäinen komponentti - jonkinlainen laite, joka lukitsee ja avaa oven! Soitetaan hänelle Lukko

Mistä tiedämme, että ihminen pääsee sisälle? Emmehän halua laittaa vartijaa ja tarkistaa passeja, emmehän? Annetaan ihmisille RFID-tunnisteilla varustetut erikoiskortit, joihin tallennetaan yksilölliset tunnisteet tai muut tiedot, joiden avulla voimme tunnistaa henkilön tarkasti. Sitten tarvitsemme laitteen, joka voi lukea nämä tunnisteet. Hienoa, meillä on vielä yksi komponentti, RFIDReader

Katsotaanpa uudelleen, mitä saimme. RFIDReader lukee jotain dataa, kulunvalvontajärjestelmä tekee niillä jotain ja tämän perusteella ohjataan jotain Lukko. Esitetään seuraava kysymys - mihin tallennetaan luettelo henkilöistä, joilla on käyttöoikeudet? Paras tietokannassa. Siksi järjestelmämme on voitava lähettää pyyntöjä ja käsitellä vastauksia tietokannasta. Joten meillä on vielä yksi komponentti - DBHandler. Olemme siis saaneet erittäin abstraktin, mutta aluksi riittävän kuvauksen järjestelmästä. Ymmärrämme, mitä sen pitäisi tehdä ja miten se toimii.

Paperin sijaan käytän System Composeria, erikoistyökalua järjestelmäarkkitehtuurien mallintamiseen Simulink-ympäristössä ja luon 3 komponenttia. Yllä kuvailin näiden komponenttien välisiä yhteyksiä, joten yhdistetään ne heti:

Suunnittelu järjestelmätasolla. Osa 1. Ideasta järjestelmään

Arkkitehtuurin laajentaminen

Katsotaanpa kaavioamme. Näyttää siltä, ​​​​että kaikki on hyvin, mutta todellisuudessa se ei ole. Katso tätä järjestelmää käyttäjän näkökulmasta - käyttäjä tuo kortin lukijalle ja...? Mistä käyttäjä tietää, onko pääsy sallittu vai kielletty? Tästä on jotenkin ilmoitettava hänelle! Siksi lisätään vielä yksi komponentti - käyttäjäilmoitus, UserNotify:

Suunnittelu järjestelmätasolla. Osa 1. Ideasta järjestelmään

Mennään nyt alemmalle abstraktion tasolle. Yritetään kuvata joitain komponentteja hieman yksityiskohtaisemmin. Aloitetaan komponentista RFIDReader. Järjestelmässämme tämä komponentti vastaa RFID-tunnisteen lukemisesta. Sen tulosteen tulisi sisältää joitain tietoja (UID, käyttäjätiedot...). Mutta odota, RFID, kuten NFC, on ensisijaisesti laitteisto, ei ohjelmisto! Siksi voimme olettaa, että meillä on erikseen itse RFID-siru, joka välittää "raaka" dataa jonkinlaiselle esiprosessorille. Meillä on siis abstrakti laitteisto, joka voi lukea RFID-tunnisteita, ja abstrakti ohjelmisto, joka voi muuntaa tiedot tarvitsemaansa muotoon. Soitetaan heille RFID-anturi и RFIDParser vastaavasti. Kuinka tämä näytetään System Composerissa? Voit poistaa komponentin RFIDReader ja laita sen sijaan kaksi komponenttia, mutta on parempi olla tekemättä tätä, muuten menetämme arkkitehtuurin luettavuuden. Sen sijaan mennään RFIDReaderiin ja lisätään kaksi uutta komponenttia:

Suunnittelu järjestelmätasolla. Osa 1. Ideasta järjestelmään

Hienoa, siirrytään nyt käyttäjälle ilmoittamiseen. Miten järjestelmä ilmoittaa käyttäjälle, että hänen pääsynsä tiloihin on evätty tai sallittu? Ihminen havaitsee parhaiten äänet ja jotain vilkkuvaa. Siksi voit antaa tietyn äänimerkin, jotta käyttäjä kiinnittää huomiota, ja vilkuttaa LED-valoa. Lisätään sopivat komponentit UserNotify:

Suunnittelu järjestelmätasolla. Osa 1. Ideasta järjestelmään

Olemme luoneet järjestelmämme arkkitehtuurin, mutta siinä on jotain vikaa. Mitä? Katsotaanpa yhteyksien nimiä. InBus и OutBus - ei aivan normaaleja nimiä, jotka auttaisivat kehittäjää. Ne on nimettävä uudelleen:

Suunnittelu järjestelmätasolla. Osa 1. Ideasta järjestelmään

Joten tarkastelimme, kuinka järjestelmäsuunnittelumenetelmiä sovelletaan karkeimmassa approksimaatiossa. Herää kysymys: miksi niitä ylipäätään käyttää? Järjestelmä on primitiivinen ja näyttää siltä, ​​että tehty työ on tarpeetonta. Voit heti kirjoittaa koodia, suunnitella tietokannan, kirjoittaa kyselyitä tai juottaa. Ongelmana on, että jos et ajattele järjestelmää läpi ja ymmärrä kuinka sen komponentit liittyvät toisiinsa, niin järjestelmän komponenttien integrointi kestää kauan ja on melko tuskallista.

Tämän osan tärkein poiminta on:

Järjestelmäteknisten menetelmien ja arkkitehtuurimallinnuksen käyttö järjestelmäkehityksessä mahdollistaa komponenttien integroinnin kustannusten pienentämisen ja kehitetyn järjestelmän laadun parantamisen.

Lähde: will.com

Lisää kommentti