logo

Čo je to Systémový dizajn – Naučte sa Systémový dizajn

Systémový dizajn je proces definovania architektúry, komponentov, modulov, rozhraní a údajov pre systém, ktorý spĺňa špecifikované požiadavky. Zahŕňa to preloženie požiadaviek používateľov do podrobného plánu, ktorý vedie fázu implementácie. Cieľom je vytvoriť dobre organizovanú a efektívnu štruktúru, ktorá spĺňa zamýšľaný účel pri zohľadnení faktorov, ako je škálovateľnosť, udržiavateľnosť a výkon.



Mastering Systems Design je rozhodujúci pre každého, kto chce vybudovať robustné a škálovateľné systémy. Náš komplexný Kurz Systémový dizajn vám poskytuje vedomosti a zručnosti, aby ste vynikli v tejto oblasti. Prostredníctvom praktických príkladov a odborných postrehov sa naučíte, ako efektívne previesť požiadavky používateľov do podrobných návrhov, ktoré možno úspešne implementovať.

Dôležité témy pre návrh systému

Prečo sa učiť System Design?

V každom procese vývoja, či už ide o softvér alebo akúkoľvek inú technológiu, je najdôležitejšia fáza Dizajn . Bez fázy návrhu nemôžete prejsť na implementáciu alebo testovaciu časť. Rovnako je to aj so Systémom.



Systémový dizajn je nielen dôležitým krokom vo vývoji systému, ale poskytuje aj chrbticu na zvládnutie výnimočných scenárov, pretože predstavuje obchodnú logiku softvéru.

Dôležitosť fázy návrhu systému v SDLC

Význam fázy návrhu systému v SDLC

mysql zmeniť typ stĺpca

Z vyššie uvedených krokov SDLC je jasné, že návrh systému funguje ako chrbtica, pretože bez ohľadu na to, ako dobre je kódovacia časť vykonaná, neskôr sa stáva irelevantným, ak zodpovedajúci návrh nie je dobrý. Takže tu dostávame zásadné dôležité informácie o tom, prečo sa to pýtajú v každej spoločnosti založenej na produktoch.



Ciele projektovania systémov

  1. Praktickosť : Potrebujeme systém, ktorý by sa mal zacieliť na množinu cieľových skupín (používateľov), podľa ktorých navrhujú.
  2. Presnosť : Vyššie uvedený návrh systému by mal byť navrhnutý tak, aby spĺňal takmer všetky požiadavky, podľa ktorých je navrhnutý, či už ide o funkčné alebo nefunkčné požiadavky.
  3. Úplnosť : Dizajn systému by mal spĺňať všetky požiadavky používateľov
  4. Efektívne : Návrh systému by mal byť taký, že by sa nemal nadmerne používať, čo by prevyšovalo náklady na zdroje, ani by sa nemalo využívať, ako už vieme, že to bude mať za následok nízke dôkladné nasadenie (výstup) a kratší čas odozvy (latencia).
  5. Spoľahlivosť : Navrhnutý systém by mal byť po určitú dobu v blízkosti bezporuchového prostredia.
  6. Optimalizácia : Čas a priestor sú pravdepodobne tým, čo robíme, aby časti kódu pre jednotlivé komponenty fungovali v systéme.
  7. Škálovateľné (flexibilita) : Dizajn systému by sa mal časom prispôsobovať rôznym užívateľským potrebám zákazníkov, o ktorých vieme, že sa budú priebežne meniť. Najlepším príkladom je známa firma: Nokia. Je to najdôležitejší aspekt pri navrhovaní systémov a je výsledkom toho, prečo 1 zo 100 startupov dlhodobo uspeje, najlepším príkladom je techcodeview.com.
Ciele návrhu systému

Ciele návrhu systému

Poznámka: Návrh systému nám tiež pomáha dosiahnuť odolnosť voči chybám, čo je schopnosť softvéru pokračovať v práci tam, kde zlyhá dokonca aj jeho 1 alebo 2 komponenty.

zoznam v jazyku Java

Teraz, po zbežnom pohľade na vyššie uvedené ciele a prejdení si ich, poďme teraz diskutovať o výhodách návrhu systému, aby sme mu lepšie porozumeli, keďže nižšie uvedené výhody ešte viac priblížia naše chápanie skutočnému životu.

Komponenty návrhu systémov

Nižšie sú uvedené niektoré z hlavných komponentov návrhu systému. diskutované v krátkosti. O podrobnej verzii sa bude diskutovať v rôznych príspevkoch:

  1. Vyrovnávače zaťaženia: Najdôležitejší komponent pre meranie škálovateľnosti, dostupnosti a výkonu systémov.
  2. Obchody s kľúčovými hodnotami: Ide o úložný systém podobný hašovacím tabuľkám, kde sú sklady kľúč-hodnota distribuované hašovacie tabuľky.
  3. Úložisko blobu: Blob je skratka pre binárne veľké objekty, ako naznačuje názov, je to úložisko pre neštruktúrované údaje, ako sú YouTube a Netflix.
  4. Databázy: Ide o organizovanú kolekciu údajov, takže k nim možno ľahko pristupovať a upravovať ich.
  5. Obmedzovače rýchlosti: Tieto stanovujú maximálny počet požiadaviek, ktoré môže služba splniť.
  6. Monitorovací systém: Ide v podstate o softvér, kde správca systému monitoruje infraštruktúry, ako je šírka pásma, CPU, smerovače, prepínače atď.
  7. Front na odosielanie správ v distribuovanom systéme: Transakčné médium medzi výrobcami a spotrebiteľmi.
  8. Distribuovaný generátor jedinečných ID: V prípade veľkých distribuovaných systémov sa každú chvíľu vyskytnú viaceré úlohy, takže na rozlíšenie priraďte každej udalosti značku.
  9. Distribuované vyhľadávanie: Na každej webovej stránke sa do vyhľadávacieho panela vkladajú kľúčové informácie, ktoré budú návštevníci hľadať.
  10. Distribuované protokolovacie služby: Sledovanie sekvencií udalostí od konca do konca.
  11. Distribuovaný plánovač úloh: Výpočtové zdroje ako CPU, pamäť, úložisko atď.
Komponenty návrhu systému

Komponenty návrhu systému

Životný cyklus návrhu systému (SDLC)

Životný cyklus návrhu systému (SDLC) je komplexný proces, ktorý načrtáva kroky zapojené do návrhu a vývoja systému, či už ide o softvérovú aplikáciu, hardvérové ​​riešenie alebo integrovaný systém, ktorý kombinuje oboje. Zahŕňa sériu fáz, ktoré vedú inžinierov k vytvoreniu systému, ktorý je v súlade s potrebami používateľa a organizačnými cieľmi. Cieľom SDLC je zabezpečiť, aby bol konečný produkt spoľahlivý, škálovateľný a udržiavateľný.

Fázy (etapy) životného cyklu návrhu systému sú:

  1. Plánovanie
  2. Štúdie uskutočniteľnosti
  3. Návrh systému
  4. Implementácia
  5. Testovanie
  6. Nasadenie
  7. Údržba a podpora

Architektúra systému

Softvérová architektúra je spôsob, ktorý definujeme ako sú zobrazené komponenty dizajnu dizajn a nasadenie softvéru .

Je to v podstate návrh kostry softvérového systému zobrazujúci komponenty, úrovne abstrakcie a ďalšie aspekty softvérového systému. Aby sme to pochopili v laickom jazyku, cieľ alebo logika podnikania by mala byť krištáľovo jasná a rozložená na jednom hárku papiera. Tu sú ciele veľkých projektov a ďalšie návody na rozširovanie existujúceho systému a pripravovaných systémov.

Vzory architektúry systému

Existujú rôzne spôsoby usporiadania komponentov v softvérovej architektúre. A rôzne preddefinované organizácie komponentov v softvérových architektúrach sú známe ako vzory softvérovej architektúry. Veľa vzorov bolo vyskúšaných a testovaných. Väčšina z nich úspešne vyriešila rôzne problémy. V každom vzore sú komponenty usporiadané inak na riešenie špecifického problému v softvérových architektúrach.

Rôzne typy vzorov softvérovej architektúry zahŕňajú:

  1. Vrstvený vzor
  2. Vzor klient-server
  3. Udalosťou riadený vzor
  4. Vzor mikrojadier
  5. Vzor mikroslužieb
Vzory architektúry systému

Vzory architektúry systému

Modularita a rozhrania v dizajne systémov

  • Modulárny dizajn sa vzťahuje na metódu/postup pri navrhovaní produktu zahŕňajúcu integráciu alebo kombinovanie menších, nezávislých prvkov na vytvorenie hotového produktu. Veľký produkt (napríklad auto) možno rozdeliť na menšie, jednoduchšie komponenty, ktoré sa samostatne vyvíjajú a vyrábajú pomocou modulárneho konštrukčného prístupu. Konečný produkt je vytvorený integráciou (alebo zložením) každej z týchto komponentov.
  • Rozhrania v dizajne systému je oblasť, kde používatelia interagujú. Pozostáva z obrazoviek, ktoré uľahčujú navigáciu v systéme, obrazoviek a formulárov, ktoré zhromažďujú údaje, a zo systémových správ.

Vývoj/Upgrade/Rozsah existujúceho systému

S nárastom využívania technológií, či už offline alebo online, je teraz pre každého vývojára nevyhnutné navrhnúť a vytvoriť a škálovateľný systém . Ak systém nie je škálovateľný, s nárastom používateľov je veľmi pravdepodobné, že systém spadne. Preto prichádza do hry koncept škálovania.

význam xd

Predpokladajme, že existuje systém s konfiguráciami konkrétneho disku a pamäte RAM, ktorý vykonával úlohy. Ak teraz potrebujeme vyvíjať náš systém alebo ho zväčšovať, máme dve možnosti.

  1. Špecifikácie aktualizácie existujúceho systému: Jednoducho vylepšujeme procesor inováciou RAM a veľkosti disku a mnohých ďalších komponentov. Upozorňujeme, že tu sa nestaráme o škálovateľnosť a dostupnosť šírky pásma siete. Tu podľa vývoja pracujeme na faktore dostupnosti len s ohľadom na zachovanie škálovateľnosti. Toto je známe ako vertikálne škálovanie.
  2. Vytvorte distribuovaný systém spojením viacerých systémov: Vyššie vidíme, že ak škálovateľnosť nevyhovuje, potom na toto opatrenie potrebujeme viacero systémov, pretože opatrenia dostupnosti majú obmedzenia. Aby sme mohli škálovať, potrebujeme viac systémov (viac kusov blokov) a toto je známe ako horizontálne škálovanie.
Vývoj/Upgrade/Rozsah existujúceho systému

Vývoj/Upgrade/Rozsah existujúceho systému

Dáta medzi systémami prechádzajú cez Diagramy toku údajov alebo DFD .

Diagramy toku údajov alebo DFD je definovaná ako grafické znázornenie toku dát cez informácie. DFD je navrhnutý tak, aby ukázal, ako je systém rozdelený na menšie časti a zvýraznil tok údajov medzi týmito časťami.

Tu je príklad, ktorý demonštruje základnú štruktúru diagramu toku údajov:

Diagram toku údajov

Základná štruktúra diagramu toku údajov

program dvojrozmerného poľa v c

Komponenty DFD:

zastupovanie Akcia vykonaná
Námestie Definuje zdroj cieľových údajov
Šípka Identifikuje tok údajov a funguje ako kanál, ktorým prúdia informácie
Kruh/bublina Predstavuje proces, ktorý transformuje prichádzajúci dátový tok na odchádzajúce dáta
Otvorte obdĺžnik Je to úložisko dát alebo dáta v pokoji/dočasné úložisko dát

Poznámka: Odosielateľ a príjemca by mali byť vždy napísané veľkými písmenami. Skôr je dobrým zvykom používať veľké písmená, ktoré sú umiestnené v štvorcovom rámčeku podľa konvencií DFD.

Príklad návrhu systému: Rezervačný systém leteckej spoločnosti

Teraz, keď sme doteraz diskutovali o základoch návrhu systému, poďme teraz pochopiť návrh systému prostredníctvom základného príkladu – systému rezervácie leteckých spoločností.

Aby sme lepšie porozumeli komponentom a dizajnu leteckého rezervačného systému, pozrime sa najprv na jeho vývojový diagram na kontextovej úrovni:

Príklad návrhu systému: Rezervačný systém leteckej spoločnosti

Príklad návrhu systému: Rezervačný systém leteckej spoločnosti

Poďme teraz pochopiť DFD rezervačného systému leteckých spoločností:

  • Vo vyššie uvedenom vývojovom diagrame Cestujúci , Cestovná kancelária , letecká spoločnosť sú zdroje, cez ktoré migrujú údaje.
  • Tu sa údaje prenášajú z Cestujúci si zarezervuje letenku ako je znázornené so šípkou DFD, kde je umiestnená žiadosť o cestu.
  • Teraz sa tieto údaje prenášajú cez dva zdroje, ako je uvedené vyššie, a to „ Cestovná kancelária „a“ letecká spoločnosť “ kde, ak je sedadlo k dispozícii Predvoľby a Vzdušný let žiadosť je umiestnená na zdroj.
  • Cestovná kancelária a príslušné lístky sú umiestnené podľa požiadaviek.
  • Ak nie je k dispozícii letenka, žiadosť o rezerváciu cestujúceho sa odošle zdroju – leteckej spoločnosti.

Výhody návrhu systému

Po podrobnej diskusii o úvode do návrhu systému je teraz nevyhnutné prediskutovať jeho výhody a nevýhody.

Najväčšou výhodou návrhu systému je vštepovanie povedomia a kreativity medzi vývojárov na plný úväzok prostredníctvom synergického prepojenia brán protokolov API, sietí a databáz.

reťazec.formát

Medzi hlavné výhody návrhu systému patria:

  • Znižuje náklady na dizajn produktu.
  • Rýchly proces vývoja softvéru
  • Šetrí celkový čas v SDLC
  • Zvyšuje efektivitu a konzistentnosť programátora.
  • Šetrí zdroje

Naučte sa dizajn systému: Návod na návrh systému