Načrtovanje sistemov je proces definiranja arhitekture, komponent, modulov, vmesnikov in podatkov za sistem, ki izpolnjuje določene zahteve. Vključuje prevajanje uporabniških zahtev v podroben načrt, ki vodi fazo izvajanja. Cilj je ustvariti dobro organizirano in učinkovito strukturo, ki ustreza predvidenemu namenu ob upoštevanju dejavnikov, kot so razširljivost, vzdržljivost in zmogljivost.
Obvladovanje načrtovanja sistemov je ključnega pomena za vsakogar, ki želi zgraditi robustne in razširljive sisteme. Naš celovit Tečaj načrtovanja sistemov vam nudi znanje in veščine za uspeh na tem področju. S praktičnimi primeri in strokovnimi vpogledi se boste naučili, kako zahteve uporabnikov učinkovito prevesti v podrobne načrte, ki jih je mogoče uspešno implementirati.
Pomembne teme za načrtovanje sistema
- Zakaj se učiti sistemskega oblikovanja?
- Cilji načrtovanja sistema
- Komponente načrtovanja sistema
- Življenjski cikel načrtovanja sistema (SDLC)
- Sistemska arhitektura
- Modularnost in vmesniki pri oblikovanju sistema
- Razvoj/Nadgradnja/Razvoj obstoječega sistema
- Primer zasnove sistema: sistem rezervacij letalskih prevoznikov
- Prednosti zasnove sistema
Zakaj se učiti sistemskega oblikovanja?
V vsakem razvojnem procesu, pa naj gre za programsko opremo ali katero koli drugo tehnologijo, je najpomembnejša faza Oblikovanje . Brez faze načrtovanja ne morete preskočiti na izvedbo ali del testiranja. Enako je tudi s Sistemom.
Sistemsko načrtovanje ni samo bistveni korak v razvoju sistema, ampak zagotavlja tudi hrbtenico za obvladovanje izjemnih scenarijev, saj predstavlja poslovno logiko programske opreme.

Pomen faze načrtovanja sistema v SDLC
seja je potekla
Iz zgornjih korakov SDLC je jasno, da sistemska zasnova deluje kot hrbtenica, ker ne glede na to, kako dobro je izveden del kodiranja, pozneje postane nepomemben, če ustrezna zasnova ni dobra. Tukaj torej dobimo ključne bistvene informacije o tem, zakaj se to vpraša v vsakem podjetju, ki temelji na izdelkih.
omrežja in vrste omrežij
Cilji načrtovanja sistemov
- Praktičnost : Potrebujemo sistem, ki bi moral ciljati na nabor ciljnih skupin (uporabnikov), ki jim ustrezajo.
- Natančnost : Zgornja zasnova sistema mora biti zasnovana tako, da izpolnjuje skoraj vse zahteve, okoli katerih je zasnovan, naj gre za funkcionalne ali nefunkcionalne zahteve.
- Popolnost : Zasnova sistema mora ustrezati vsem zahtevam uporabnikov
- Učinkovito : Zasnova sistema mora biti takšna, da ne sme pretiravati s porabo, ki presega stroške virov, niti premalo, saj bo, kot zdaj vemo, povzročilo nizko temeljito porabo (izhod) in krajši odzivni čas (zakasnitev).
- Zanesljivost : Načrtovani sistem mora biti določeno časovno obdobje v bližini okolja brez napak.
- Optimizacija : Čas in prostor sta verjetno tisto, kar naredimo za dele kode za posamezne komponente, da delujejo v sistemu.
- Razširljivo (prilagodljivost) : Zasnova sistema mora biti časovno prilagodljiva glede na različne uporabniške potrebe strank, za katere vemo, da se bodo pravočasno spreminjale. Najboljši primer tukaj je dobro znano podjetje: Nokia. Je najpomembnejši vidik pri načrtovanju sistemov in je rezultat tega, zakaj 1 od 100 startupov dolgoročno uspe, najboljši primer tukaj je techcodeview.com.

Cilji načrtovanja sistema
Opomba: Sistemska zasnova nam prav tako pomaga doseči toleranco za napake, kar je sposobnost programske opreme, da nadaljuje z delovanjem, če celo njena 1 ali 2 komponenti odpove.
Ko smo si ogledali in pregledali zgornje cilje, se zdaj pogovorimo o prednostih zasnove sistema, da bi ga bolje razumeli, saj spodnje prednosti naše razumevanje še bolj približajo resničnemu življenju.
Komponente načrtovanja sistemov
Spodaj je nekaj glavnih komponent zasnove sistema. na kratko razpravljali. O podrobni različici tega bomo razpravljali v različnih objavah:
- Izravnalniki obremenitve: Najpomembnejša komponenta za meritve razširljivosti, razpoložljivosti in zmogljivosti sistemov.
- Trgovine s ključno vrednostjo: To je sistem za shranjevanje, podoben zgoščevalnim tabelam, kjer so shrambe ključev in vrednosti porazdeljene zgoščevalne tabele.
- Shramba blob: Blob pomeni binarne velike objekte, kot že ime pove, je shramba za nestrukturirane podatke, kot sta YouTube in Netflix.
- Baze podatkov: Gre za organizirano zbirko podatkov, tako da je do njih mogoče enostavno dostopati in jih spreminjati.
- Omejevalniki hitrosti: Ti določajo največje število zahtev, ki jih lahko izpolni storitev.
- Sistem spremljanja: To je v bistvu programska oprema, kjer sistemski skrbnik spremlja infrastrukture, kot so pasovna širina, CPE, usmerjevalniki, stikala itd.
- Čakalna vrsta za sporočila porazdeljenega sistema: Transakcijski medij med proizvajalci in potrošniki.
- Generator porazdeljenih edinstvenih ID-jev: V primeru velikih porazdeljenih sistemov se vsak trenutek pojavi več nalog, zato za razlikovanje dodelite oznako, ki ustreza vsakemu dogodku.
- Porazdeljeno iskanje: Na vsakem spletnem mestu so ključne informacije, ki jih bodo obiskovalci iskali, vstavljene v iskalno vrstico.
- Storitve porazdeljenega beleženja: Sledenje zaporedjem dogodkov od konca do konca.
- Porazdeljeni razporejevalnik opravil: Računalniški viri, kot so CPE, pomnilnik, shranjevanje itd.

Komponente načrtovanja sistema
Življenjski cikel zasnove sistema (SDLC)
Življenjski cikel načrtovanja sistema (SDLC) je obsežen proces, ki opisuje korake, vključene v načrtovanje in razvoj sistema, pa naj gre za programsko aplikacijo, strojno rešitev ali integriran sistem, ki združuje oboje. Zajema niz faz, ki vodijo inženirje skozi ustvarjanje sistema, ki je usklajen s potrebami uporabnika in organizacijskimi cilji. Cilj SDLC je zagotoviti, da je končni izdelek zanesljiv, razširljiv in vzdržljiv.
Faze (stopnje) življenjskega cikla zasnove sistema so:
- Načrtovanje
- Študija izvedljivosti
- Oblikovanje sistema
- Izvedba
- Testiranje
- Razporeditev
- Vzdrževanje in podpora
Sistemska arhitektura
Arhitektura programske opreme je način, na katerega definiramo kako so prikazane komponente zasnove načrtovanje in uvajanje programske opreme .
To je v bistvu okvirna zasnova programskega sistema, ki prikazuje komponente, ravni abstrakcije in druge vidike programskega sistema. Da bi ga razumeli v laičnem jeziku, mora biti cilj ali logika podjetja kristalno jasna in postavljena na enem listu papirja. Tukaj so cilji velikih projektov in nadaljnji vodniki za povečanje obsega za obstoječi sistem in prihodnje sisteme, ki jih je treba povečati.
Vzorci sistemske arhitekture
Obstajajo različni načini za organiziranje komponent v arhitekturi programske opreme. In različne vnaprej določene organizacije komponent v arhitekturah programske opreme so znane kot vzorci arhitekture programske opreme. Preizkušenih je bilo veliko vzorcev. Večina jih je uspešno rešila različne probleme. V vsakem vzorcu so komponente organizirane drugače za reševanje določenega problema v arhitekturah programske opreme.
Različne vrste vzorcev programske arhitekture vključujejo:
- Večplastni vzorec
- Vzorec odjemalec-strežnik
- Vzorec, ki ga vodi dogodek
- Vzorec mikrojedra
- Vzorec mikrostoritev

Vzorci sistemske arhitekture
Modularnost in vmesniki v načrtovanju sistemov
- Modularna zasnova se nanaša na metodo/postopek za oblikovanje izdelka, ki vključuje integracijo ali kombiniranje manjših, neodvisnih elementov za ustvarjanje končnega izdelka. Velik izdelek (kot je avtomobil) je mogoče ločiti na manjše, enostavnejše komponente, ki so ločeno razvite in proizvedene z uporabo modularnega pristopa oblikovanja. Končni izdelek nastane z integracijo (ali sestavljanjem) vsakega od teh sestavnih delov.
- Vmesniki v načrtovanju sistema je območje, kjer uporabniki komunicirajo. Sestavljen je iz zaslonov, ki olajšajo navigacijo po sistemu, zaslonov in obrazcev, ki zbirajo podatke, ter poročil sistema.
Razvoj/nadgradnja/razširitev obstoječega sistema
S povečanjem uporabe tehnologije, ne glede na to, ali je na spletu ali brez povezave, je zdaj za vsakega razvijalca nujno, da oblikuje in ustvari razširljiv sistem . Če sistem ni razširljiv, je z naraščanjem števila uporabnikov zelo verjetno, da bo sistem sesul. Zato pride v poštev koncept skaliranja.
xd pomen
Recimo, da obstaja sistem s konfiguracijami določenega diska in RAM-a, ki je obravnaval naloge. Zdaj, če moramo razviti naš sistem ali ga povečati, imamo dve možnosti.
- Specifikacije nadgradnje obstoječega sistema: Preprosto izboljšujemo procesor z nadgradnjo RAM-a in velikosti diska ter številnih drugih komponent. Upoštevajte, da tukaj ne skrbimo za razširljivost in razpoložljivost pasovne širine omrežja. Glede na razvoj delamo na faktorju razpoložljivosti, pri čemer upoštevamo, da bo razširljivost ohranjena. To je znano kot navpično skaliranje.
- Ustvarite porazdeljeni sistem tako, da povežete več sistemov skupaj: Zgoraj vidimo, da če razširljivost ni na ravni, potem potrebujemo več sistemov za ta ukrep, saj imajo ukrepi razpoložljivosti omejitev. Za povečanje potrebujemo več sistemov (več kosov blokov) in to je znano kot horizontalno skaliranje.

Razvoj/nadgradnja/razširitev obstoječega sistema
Podatki tečejo med sistemi Diagrami toka podatkov ali DFD .
Diagrami toka podatkov ali DFD je definiran kot grafični prikaz pretoka podatkov skozi informacije. DFD je zasnovan tako, da prikaže, kako je sistem razdeljen na manjše dele, in poudari pretok podatkov med temi deli.
Tukaj je primer za prikaz osnovne strukture diagrama toka podatkov:

Osnovna struktura diagrama pretoka podatkov
Sestavni deli DFD:
če po Rudyardu Kiplingu razlaga po vrsticah
| Zastopanje | Dejanje izvedeno |
|---|---|
| kvadrat | Določa vir cilja podatkov |
| Puščica | Identificira tok podatkov in deluje kot cevovod, po katerem tečejo informacije |
| Krog/mehurček | Predstavlja proces, ki preoblikuje dohodni tok podatkov v odhodne podatke |
| Odpri pravokotnik | Je shramba podatkov ali podatki v mirovanju/začasno skladišče podatkov |
Opomba: Pošiljatelj in prejemnik naj bosta vedno napisani z velikimi črkami. Namesto tega je dobra praksa, da uporabite velike črke, kar je v kvadratnem polju v skladu s konvencijami DFD.
Primer zasnove sistema: sistem rezervacij letalskih prevoznikov
Ker smo do zdaj razpravljali o osnovah zasnove sistema, poglejmo zdaj zasnovo sistema skozi osnovni primer – sistem letalskih rezervacij.
Da bi bolje razumeli komponente in zasnovo sistema letalskih rezervacij, si najprej oglejmo njegov diagram poteka na ravni konteksta:

Primer zasnove sistema: sistem rezervacij letalskih prevoznikov
Razumejmo zdaj DFD letalskega rezervacijskega sistema:
ime ameriškega mesta
- V zgornjem diagramu poteka Potnik , Potovalni agent , Letalska družba so viri, prek katerih se selijo podatki.
- Tukaj se podatki prenašajo iz Potnik za rezervacijo letalske karte kot je prikazano s puščičnim znakom DFD, kjer je postavljena potovalna zahteva.
- Zdaj se ti podatki prenašajo prek dveh virov, kot je prikazano zgoraj, in sicer » Potovalni agent ' in ' Letalska družba ' kje, če je sedež na voljo Nastavitve in Zračni let zahteva je postavljena viru.
- Potovalni agent in ustrezna prodaja vozovnic sta postavljena po želji.
- Če vozovnica ni na voljo, se zahteva za rezervacijo potnika pošlje viru – letalski družbi.
Prednosti zasnove sistema
Po podrobni razpravi o uvodu v načrtovanje sistema je zdaj treba razpravljati o njegovih prednostih in slabostih.
Največja prednost zasnove sistema je spodbujanje zavedanja in ustvarjalnosti pri razvijalcih polnega sklada s sinergičnim povezovanjem prehodov, omrežij in podatkovnih baz protokolov API.
Nekatere glavne prednosti zasnove sistema vključujejo:
- Zmanjša stroške oblikovanja izdelka.
- Hiter proces razvoja programske opreme
- Prihrani skupni čas v SDLC
- Poveča učinkovitost in doslednost programerja.
- Varčuje z viri
Naučite se načrtovanja sistema: Vadnica za načrtovanje sistema