logo

Ce este Systems Design – Aflați System Design

Proiectarea sistemelor este procesul de definire a arhitecturii, componentelor, modulelor, interfețelor și datelor pentru un sistem pentru a satisface cerințele specificate. Aceasta implică traducerea cerințelor utilizatorilor într-un plan detaliat care ghidează faza de implementare. Scopul este de a crea o structură bine organizată și eficientă, care să îndeplinească scopul propus, luând în considerare factori precum scalabilitatea, mentenabilitatea și performanța.



Stăpânirea proiectării sistemelor este crucială pentru oricine dorește să construiască sisteme robuste și scalabile. Cuprinzătoarea noastră Curs de proiectare sisteme vă oferă cunoștințele și abilitățile necesare pentru a excela în acest domeniu. Prin exemple practice și informații experți, veți învăța cum să transpuneți eficient cerințele utilizatorilor în design detaliate care pot fi implementate cu succes.

Subiecte importante pentru proiectarea sistemului

De ce să înveți System Design?

În orice proces de dezvoltare, fie că este vorba de Software sau orice altă tehnologie, cea mai importantă etapă este Proiecta . Fără faza de proiectare, nu puteți trece la implementare sau la partea de testare. Același lucru este și cu sistemul.



Proiectarea sistemelor nu numai că este un pas vital în dezvoltarea sistemului, dar oferă și coloana vertebrală pentru a gestiona scenarii excepționale, deoarece reprezintă logica de afaceri a software-ului.

Importanța fazei de proiectare a sistemului în SDLC

Importanța fazei de proiectare a sistemului în SDLC

face scriptul executabil

Din pașii SDLC de mai sus, este clar că proiectarea sistemului acționează ca o coloană vertebrală, deoarece oricât de bine este executată partea de codare, aceasta, mai târziu, devine irelevantă dacă designul corespunzător nu este bun. Așadar, aici obținem informații vitale esențiale cu privire la motivul pentru care sunt solicitate în fiecare companie bazată pe produse.



Obiectivele proiectării sistemelor

  1. Practicitate : Avem nevoie de un sistem care ar trebui să vizeze setul de audiențe (utilizatori) corespunzător cărora ei proiectează.
  2. Precizie : Proiectarea de mai sus a sistemului ar trebui să fie proiectată astfel încât să îndeplinească aproape toate cerințele în jurul cărora este proiectat, fie că este funcțional sau nefuncțional.
  3. Completitudine : Designul sistemului ar trebui să îndeplinească toate cerințele utilizatorului
  4. Eficient : Designul sistemului ar trebui să fie astfel încât să nu fie suprasolicitat depășind costul resurselor și nici subutilizare, deoarece până acum știm că va avea ca rezultat un proces (ieșire) scăzut și un timp de răspuns mai mic (latență).
  5. Fiabilitate : Sistemul proiectat trebuie să fie în apropierea unui mediu fără defecțiuni pentru o anumită perioadă de timp.
  6. Optimizare : Timpul și spațiul sunt probabil ceea ce facem pentru bucăți de cod pentru componente individuale pentru a funcționa într-un sistem.
  7. Scalabil (flexibilitate) : Designul sistemului ar trebui să fie adaptabil în timp, în funcție de nevoile diferitelor utilizatori ale clienților, despre care știm că se vor schimba în continuare la timp. Cel mai bun exemplu de aici este binecunoscuta firmă: Nokia. Este cel mai important aspect în timpul proiectării sistemelor și este rezultatul motivului pentru care 1 din 100 de startup-uri reușesc pe termen lung, cel mai bun exemplu de aici este techcodeview.com.
Obiectivele proiectării sistemului

Obiectivele proiectării sistemului

Notă: Designul sistemului ne ajută, de asemenea, să atingem toleranța la erori, care este capacitatea unui software de a continua să funcționeze acolo unde chiar și 1 sau 2 componente eșuează.

Acum, după ce ne uităm și analizăm obiectivele de mai sus, să discutăm acum despre avantajele proiectării sistemului pentru a-l înțelege mai bine, deoarece avantajele de mai jos ne apropie și mai mult de viața reală.

Componentele proiectării sistemelor

Mai jos sunt câteva dintre componentele majore ale proiectării sistemului. discutat pe scurt. Versiunea detaliată a acesteia va fi discutată în diferite postări:

  1. Echilibratoare de sarcină: Cea mai importantă componentă pentru scalabilitate, disponibilitate și măsurători de performanță pentru sisteme.
  2. Magazine cu valori cheie: Este un sistem de stocare similar cu tabelele hash în care magazinele cheie-valoare sunt tabele hash distribuite.
  3. Stocare blob: Blob reprezintă obiecte binare mari, așa cum sugerează și numele, este stocarea pentru date nestructurate, cum ar fi YouTube și Netflix.
  4. Baze de date: Este o colecție organizată de date, astfel încât acestea să poată fi ușor accesate și modificate.
  5. Limitatoare de rată: Acestea stabilesc numărul maxim de solicitări pe care le poate îndeplini un serviciu.
  6. Sistem de monitorizare: Acestea sunt practic software în care administratorul de sistem monitorizează infrastructuri precum lățimea de bandă, procesorul, routerele, comutatoarele etc.
  7. Coada de mesagerie distribuită de sistem: Mediu de tranzacție între producători și consumatori.
  8. Generator de ID unic distribuit: În cazul sistemelor mari distribuite, în fiecare moment au loc mai multe sarcini, astfel încât pentru a le distinge atribuiți o etichetă corespunzătoare fiecărui eveniment.
  9. Căutare distribuită: Pe fiecare site web, informațiile esențiale pe care le vor căuta vizitatorii sunt introduse în bara de căutare.
  10. Servicii de înregistrare distribuită: Urmărirea secvențelor de evenimente de la un capăt la altul.
  11. Programator de sarcini distribuit: Resurse de calcul precum CPU, memorie, stocare etc.
Componentele proiectării sistemului

Componentele proiectării sistemului

Ciclul de viață al proiectării sistemului (SDLC)

Ciclul de viață al proiectării sistemului (SDLC) este un proces cuprinzător care subliniază pașii implicați în proiectarea și dezvoltarea unui sistem, fie că este vorba despre o aplicație software, soluție hardware sau un sistem integrat care combină ambele. Acesta cuprinde o serie de faze care ghidează inginerii prin crearea unui sistem care se aliniază nevoilor utilizatorului și obiectivelor organizaționale. SDLC își propune să se asigure că produsul final este fiabil, scalabil și menținut.

latex derivat parțial

Fazele (etapele) ciclului de viață al proiectării sistemului sunt:

  1. Planificare
  2. Studiu de fezabilitate
  3. Proiectarea sistemului
  4. Implementarea
  5. Testare
  6. Implementare
  7. Întreținere și suport

Arhitectura sistemului

Arhitectura software este un mod în care definim cum sunt descrise componentele unui design proiectarea și implementarea software-ului .

Este practic designul schelet al unui sistem software care descrie componente, niveluri de abstractizare și alte aspecte ale unui sistem software. Pentru a înțelege acest lucru într-un limbaj neprofesionist, scopul sau logica unei afaceri ar trebui să fie foarte clară și prezentată pe o singură coală de hârtie. Aici există obiective ale proiectelor mari și ghiduri suplimentare pentru extindere la scară pentru sistemul existent și sistemele viitoare care urmează să fie extinse.

Modele de arhitectură de sistem

Există diferite moduri de organizare a componentelor în arhitectura software. Iar organizarea diferită predefinită a componentelor din arhitecturile software sunt cunoscute ca modele de arhitectură software. Au fost încercate și testate o mulțime de modele. Majoritatea au rezolvat cu succes diverse probleme. În fiecare tipar, componentele sunt organizate diferit pentru rezolvarea unei probleme specifice în arhitecturile software.

Diferite tipuri de modele de arhitectură software includ:

  1. Model stratificat
  2. Model client-server
  3. Model determinat de evenimente
  4. Model microkernel
  5. Model de microservicii
Modele de arhitectură de sistem

Modele de arhitectură de sistem

Modularitate și interfețe în proiectarea sistemelor

  • Design modular se referă la o metodă/procedură de proiectare a unui produs care implică integrarea sau combinarea unor elemente mai mici, independente pentru a crea un produs finit. Un produs mare (cum ar fi o mașină) poate fi separat în componente mai mici, mai simple, care sunt dezvoltate și produse separat folosind abordarea de proiectare modulară. Produsul final este creat prin integrarea (sau asamblarea) fiecăreia dintre aceste părți componente.
  • Interfețe în proiectarea sistemului este zona în care utilizatorii interacționează. Este alcătuit din ecrane care facilitează navigarea sistemului, ecrane și formulare care adună date și rapoartele sistemului.

Evoluția/Actualizarea/Scalarea unui sistem existent

Odată cu creșterea utilizării tehnologiei, fie că este offline sau online, este acum o necesitate pentru fiecare dezvoltator să proiecteze și să creeze un sistem scalabil . Dacă sistemul nu este scalabil, odată cu creșterea numărului de utilizatori, este foarte probabil ca sistemul să se blocheze. Prin urmare, conceptul de scalare intră în joc.

do while loop java

Să presupunem că există un sistem cu configurații de disc și RAM specifice care se ocupa de sarcini. Acum, dacă trebuie să ne evoluăm sistemul sau să ne extindem, avem două opțiuni cu noi.

  1. Specificații de actualizare ale sistemului existent: Pur și simplu îmbunătățim procesorul prin îmbunătățirea memoriei RAM și a dimensiunii discului și a multor alte componente. Rețineți că aici nu ne pasă de scalabilitatea și disponibilitatea lățimii de bandă a rețelei. Aici, conform evoluției, lucrăm la factorul de disponibilitate doar având în vedere că scalabilitatea va fi menținută. Acest lucru este cunoscut sub numele de scalare verticală.
  2. Creați un sistem distribuit conectând mai multe sisteme împreună: Vedem mai sus că, dacă scalabilitatea nu este la nivelul ei, atunci avem nevoie de mai multe sisteme pentru această măsură, deoarece măsurile de disponibilitate au o limitare. Pentru a extinde, avem nevoie de mai multe sisteme (mai multe bucăți de blocuri) și acest lucru este cunoscut sub numele de scalare orizontală.
Evoluția/Actualizarea/Scalarea unui sistem existent

Evoluția/Actualizarea/Scalarea unui sistem existent

Datele circulă între sisteme prin Diagrame de flux de date sau DFD .

Diagrame de flux de date sau DFD este definită ca o reprezentare grafică a fluxului de date prin informație. DFD este conceput pentru a arăta modul în care un sistem este împărțit în părți mai mici și pentru a evidenția fluxul de date între aceste părți.

10 ml este cât

Iată un exemplu pentru a demonstra structura de bază a diagramei fluxului de date:

Diagrama fluxului de date

Structura de bază a diagramei fluxului de date

Componentele unui DFD:

Reprezentare Actiune realizata
Pătrat Definește sursa de destinație a datelor
Săgeată Identifică fluxul de date și acționează ca o conductă prin care circulă informațiile
Cerc/Bulă Reprezintă un proces care transformă fluxul de date de intrare în date de ieșire
Deschideți dreptunghi Este un depozit de date sau un depozit de date în repaus/un depozit temporar de date

Notă: Expeditorul și destinatarul trebuie scrise întotdeauna cu majuscule. Mai degrabă, este o practică bună să folosiți litera majusculă ceea ce este plasat în caseta pătrată conform convențiilor DFD.

Exemplu de proiectare a sistemului: Sistem de rezervare a companiei aeriene

Acum, din moment ce am discutat despre elementele de bază ale designului sistemului până acum, să înțelegem acum Designul sistemului printr-un exemplu de bază - Sistemul de rezervare a companiilor aeriene.

Pentru a înțelege mai bine componentele și designul Sistemului de rezervare a companiilor aeriene, să revizuim mai întâi diagrama de flux la nivel de context:

Exemplu de proiectare a sistemului: Sistem de rezervare a companiei aeriene

Exemplu de proiectare a sistemului: Sistem de rezervare a companiei aeriene

rakhi sawant

Să înțelegem acum DFD-ul sistemului de rezervare al companiei aeriene:

  • În diagrama de flux de mai sus, Pasager , Agent de turism , Companie aeriană sunt sursele prin care se migrează datele.
  • Aici datele sunt transmise de la Pasagerul trebuie să rezerve un bilet de avion așa cum se arată cu săgeata DFD unde este plasată cererea de călătorie.
  • Acum, aceste date sunt transmise prin două surse, așa cum se arată mai sus, și anume „ Agent de turism ' și ' Companie aeriană unde dacă scaunul este disponibil Preferințe și Zbor cererea este adresată sursei.
  • Agentul de turism și biletele corespunzătoare sunt plasate conform solicitării.
  • Dacă nu este disponibil niciun bilet, atunci o solicitare de rezervare a pasagerilor este trimisă sursei – Compania aeriană.

Avantajele proiectării sistemului

După o discuție detaliată a introducerii în proiectarea sistemului, este acum o necesitate să discutăm meritele și dezavantajele acestuia.

Cel mai mare avantaj al proiectării sistemului este inculcarea conștientizării și creativității dezvoltatorilor full-stack prin legarea sinergică a protocoalelor API, gateway-uri, rețele și baze de date.

Unele dintre avantajele majore ale proiectării sistemului includ:

  • Reduce costul de proiectare al unui produs.
  • Proces rapid de dezvoltare a software-ului
  • Economisește timp total în SDLC
  • Crește eficiența și consistența unui programator.
  • Economisește resurse

Aflați proiectarea sistemului: Tutorial de proiectare a sistemului