Arhitectura Modelare aplicații

Pentru a se asigura că sistemul software sau nevoile de aplicații ale utilizatorilor, în Visual Studio, puteți crea modele în cadrul descrierii generale a structurii și a comportamentului unui sistem software sau o aplicație. Aceste modele pot descrie, de asemenea, modelele utilizate în design. Aceste modele ne ajută să înțelegem arhitectura existentă, discuta schimbări și să articuleze intențiile lor.

Pentru a afla ce versiune de sprijin Visual Studio această funcție, consultați. Secțiunea suport Versiunea pentru instrumente de modelare și de arhitectură.

Modelul este proiectat pentru a reduce numărul de ambiguități care apar în descrierea limbajului natural, precum și pentru a vă ajuta să și colegii dvs. pentru a vizualiza proiectul și pentru a discuta despre alte opțiuni. Modelul trebuie utilizat împreună cu alte documente sau discuții. Prin ea însăși, modelul nu reprezintă specificația completă a arhitecturii.

În această secțiune, termenul „sistem“ înseamnă că software-ul se dezvolta. Acest lucru poate fi o mare colecție de componente software și hardware, o singură aplicare sau o parte a cererii.

Arhitectura sistemului poate fi împărțit în două zone:

Structura la nivel înalt. Acesta descrie principalele componente și interacțiunea acestora cu celelalte pentru a efectua fiecare loc de muncă. În cazul în care sistemul are o dimensiune mare, fiecare componentă poate avea propria structură de nivel înalt, arătând că acesta este compus din componente mai mici.

modele de design și convenții utilizate în dezvoltarea componentelor. Șablonul descrie o anumită abordare a problemei în programare. Folosind același șablon, ca parte a procesului de proiectare, echipa poate reduce costul de schimbări și dezvoltarea de software nou.

Structura de nivel înalt descrie componentele majore de sistem și interacțiunea lor cu altele, care vizează realizarea obiectivelor de proiectare. Acțiuni în lista de mai jos sunt legate de dezvoltarea structurilor de nivel superior, dar secvența lor pot fi diferite.

Dacă modernizați un cod existent, puteți începe cu o descriere a componentelor principale. Asigurați-vă că ați înțeles toate modificările în cerințele utilizatorilor, și apoi adăugați sau modifica interacțiunea dintre componentele. La proiectarea noului sistem inițial va fi examinată cu funcțiile de bază în nevoile utilizatorilor. După aceea, secvența poate fi studiate interacțiunile pentru utilizarea principală pentru această secvență și de a combina aceste componente într-o structură.

În orice caz, este util să se dezvolte activități diferite în paralel. și de a dezvolta cod și teste într-un stadiu incipient. Nu încerca să finalizeze una dintre aceste sarcini înainte de a trece la următorul. Ca regulă generală, cerințele și ideea de cel mai bun mod de a dezvolta o schimbare de sistem de scriere ca și codul de testare. Astfel, aceasta ar trebui să înceapă cu o înțelegere a principalelor caracteristici ale structurii și caracteristicile cerințelor și scrierea de cod pentru ei. Completați detaliile în iterații ulterioare ale proiectului.

Înțelegerea cerințelor. Punctul de plecare al oricărei dezvoltări este o înțelegere clară a nevoilor utilizatorilor.

modele arhitecturale. tehnologii de bază selectate și elemente arhitecturale ale sistemului.

Componente și interfețele lor. Este posibil să se tragă componentele circuitului pentru a arăta partea principală a sistemelor și interfețele prin care acestea interacționează unele cu altele. Interfețele fiecărei componente includ toate mesajele definite în diagramele de secvență.

Interacțiunea dintre componentele. Pentru fiecare utilizare, un eveniment mesaj primit, sau poate desena o diagramă de secvență care arată modul în care componentele principale ale sistemului interacționează pentru a obține rezultatul dorit.

Datele modelului pentru componentele și interfețele. Este posibil să se tragă o diagramă de clasă pentru descrierea informațiilor transmise între componentele și stocate în cadrul componentelor.

În cazul în care sistemul dezvoltat este o componentă a unui sistem mai mare, o parte din cerințele sau pot fi incluse în interfețele de programare a aplicațiilor.

Modelul cererii furnizează următoarele informații importante:

interfețe furnizate. Interfața Acordat enumeră serviciile sau tranzacțiile pe care sistemul sau componentă trebuie să furnizeze utilizatorilor lor, fie că sunt oameni sau alte componente software.

Interfețele necesare. Interfața necesară enumeră serviciile sau operațiunile care pot utiliza sistemul sau componenta. În unele cazuri, puteți dezvolta aceste servicii în propriul său sistem. În alte cazuri, în special în dezvoltarea unei componente care pot fi integrate cu alte componente într-o varietate de configurații, interfața necesară va fi setată la constrângeri externe.

Calitatea serviciului cerință. Performanță, securitate, fiabilitate și alte obiective și constrângeri, pe care sistemul trebuie să se conformeze.

Cerințele pentru modelul sunt scrise din perspectiva utilizatorilor sistemului, indiferent dacă acestea sunt oameni sau alte componente software. Ei nu știu nimic despre mecanismele interne ale sistemului. Dimpotrivă, sarcina de arhitectură de model este de a descrie funcționarea internă și arată modul în care acestea sunt în concordanță cu cerințele utilizatorilor.

cerințele de conservare și modelul de arhitectură este utilă, deoarece este mai ușor pentru a discuta despre cerințele dumneavoastră. De asemenea, ajută la refactor modelul și ia în considerare arhitecturi alternative, fără a schimba cereri.

Cerințe și modele de arhitectură pot fi împărțite în următoarele două moduri:

Păstrați-le într-o singură soluție, dar în diferite proiecte. Acestea vor fi afișate în modelele de browser UML ca modele separate. Diferite membrii echipei pot lucra in modele paralele. Între modelele pot fi create tipuri limitate de urmărire.

Pune-le într-un singur model de UML, dar în diferite pachete. Acest lucru simplifică urmărirea dependențelor între modele, dar nu poate lucra simultan cu modelul pentru mai multe persoane. În plus, un model foarte mare, va dura mai mult pentru a încărca în Visual Studio. Prin urmare, această abordare este cea mai potrivită pentru proiecte mari.

Volumul de informații care ar trebui să fie plasate în modelul de cerințe sau arhitectură depinde de dimensiunea proiectului, precum și echipele de mărime și de distribuție. Un mic grup de clase de proiectare scurte pot fi limitate la schema de contur pentru concepte de afaceri și mai multe template-uri structurale; un proiect major, distribuit în mai multe regiuni, va necesita număr mult mai mare de detalii.

La începutul dezvoltării de tehnologii de bază necesare pentru a selecta și elemente de care depinde structura. Mai jos sunt listate zonele în care aveți nevoie pentru a face o alegere:

Selecția de tehnologii de bază, cum ar fi alegerea între baza de date și sistemul de fișiere și alegerea între aplicația de rețea și clientul Web, și așa mai departe. D.

Alegerea platforme, cum ar fi alegerea între Windows Workflow Foundation și Entity Framework ADO.NET.

Alegerea metodei de integrare, cum ar fi alegerea între magistrala de serviciu sau canal întreprindere „punct la punct“.

Aceste opțiuni sunt adesea determinate de cerințele față de calitatea serviciilor, cum ar fi scara și flexibilitate și selecție corespunzătoare pot fi făcute pentru a determina cerințele detaliate. Într-o configurație de sistem mare, hardware și software strâns interconectate.

Selecția afectează utilizarea și interpretarea modelelor de arhitectură. De exemplu, într-un sistem care utilizează o bază de date, asociația în diagrama de clase pot fi relații sau cheie externă în baza de date, în timp ce în sistem, bazat pe XML-fișiere, asociația poate însemna referințe încrucișate folosind XPath. Într-un sistem distribuit mesaje în secvențe Schema se pot transmite mesaje; ca o aplicație independentă, acestea pot fi funcție de apeluri.

Mai jos sunt principalele recomandări pentru această secțiune.

Creați componente în circuit pentru a arăta partea principală a sistemului.

Desenați o relație între componente sau interfețe pentru a arăta structura sistemului.

Utilizați interfețe pentru componente pentru a arăta serviciile pe care le oferă sau necesită fiecare componentă.

Puteți crea un circuit separat, împărțind fiecare componentă în bucăți mai mici pentru sisteme de mari dimensiuni.

Aceste puncte sunt discutate în restul secțiunii.

componente

reprezentărilor centrale sunt arhitectura componente, modelul de circuit care arată partea principală a sistemului și dependența lor unul de celălalt. Pentru mai multe informații despre diagrame de componente, vezi UML Component Diagrame :. Materiale de referință.

Arhitectura Modelare aplicații

componente de circuit convenționale pentru un sistem mare poate include următoarele componente:

Prezentare. Componenta care oferă acces la utilizator, de obicei, lucrează într-un browser web.

componente de servicii web. Asigură comunicarea între clienți și servere.

Controlerele cazuri de utilizare. vă va ghida prin succesiunea de pași pentru fiecare dintre scenariile.

o parte de bază a afacerii. Conține clase care sunt bazate pe clase în cerințele modelului, pune în aplicare operațiunile cheie și impun restricții de afaceri.

Baza de date. obiecte comerciale sunt stocate.

Componente exploatare forestieră și tratarea erorilor.

Dependențe între componente

În plus față de componentele în sine, putem arăta relația dintre ele. dependență Arrow între cele două componente arată că schimbările într-o singură componentă poate afecta cealaltă. Acest lucru apare de obicei, deoarece o componentă utilizează un serviciu sau o funcție, cu condiția fie direct, fie indirect de o altă componentă.

O arhitectură bine proiectat oferă relații bine ordonată în care sunt îndeplinite următoarele condiții:

Cicluri de pe cartela de cod nr.

Componentele pot fi aranjate în straturi, unde orice dependență de componentă este într-un strat la componenta următoare. Toate dependențele între oricare două straturi sunt în aceeași direcție.

Se poate demonstra în mod direct dependențe între componente sau relația dintre cerute și interfața furnizată atașată componentelor. Folosind interfețe poate defini operațiile care sunt utilizate în fiecare dependență. De obicei, relația dintre componentele prezentate în primele circuite de desen, și apoi - cel puțin adăuga informații - înlocuit cu relația dintre interfețele. Ambele versiuni sunt corecte descriere software, dar versiunea cu interfețe oferă mai multe informații decât versiunea anterioară.

managementul este Dependență cel mai important pentru dezvoltarea de software-a sprijinit. componente de circuit ar trebui să reflecte toate dependențelor în cod. În cazul în care există deja codul, asigurați-vă că diagramele arată dependențele. În cazul în care codul este încă în curs de dezvoltare, asigurați-vă că acesta nu include dependența nu este planificată în componentele de circuit. Pentru a simplifica identificarea dependențelor în codul dvs., puteți crea un straturi de circuit. Pentru a vă asigura că respectați restricțiile planificate privind dependența, puteți verifica straturile scheme de cod. Pentru detalii, a se vedea straturi de materiale de circuite de referință :..

interfețe

Plasarea componentelor de pe interfețele pot fi grupate și numite operațiuni principale de grup furnizate de fiecare componentă. De exemplu, componentele sistemelor de vânzări pe Internet pot avea o interfață prin care clienții să cumpere produse, interfata prin care vânzătorii să actualizeze cataloagele lor, și o a treia interfață, prin care managementul sistemului.

O componentă poate avea orice număr de interfețe prevăzute și necesare. Interfața furnizate arată serviciile furnizate de componenta altor componente. Interfețele de servicii necesare indică faptul că componenta utilizează în alte componente.

Este definită ca interfețele furnizate și necesare ajută să se separe în mod clar componenta de restul structurii pentru a putea utiliza aceste tehnici.

Se pune componenta în mediul de testare, în care componentele din jurul acestui test modelat de mediu.

Dezvolta componente independent de celelalte componente.

Reutiliza componente în alte contexte, arătând legătura cu interfețele cu alte componente.

Dacă doriți să definiți o listă de operații în interfața, puteți crea o altă vizualizare a interfeței în clasa diagrama UML. Pentru a face acest lucru, găsiți interfața în modelele UML browser-ul și trageți-l în diagrama de clase. Apoi, puteți adăuga operația la interfața.

Funcționarea în interfața UML poate fi orice metodă prin care este posibil să se determine comportamentul componentelor. Acesta poate fi o cerere de servicii de web, semnal sau alt tip de interacțiune sau un apel de funcție regulată în program.

Pentru a determina ce operațiuni trebuie adăugate, de a crea diagrame de secvență care arată modul în care componentele interacționează unele cu altele. Cm. Interacțiune Partiția între componentele. Fiecare dintre aceste secvențe prezintă scheme de reacție ce au loc în diferite de utilizare. Astfel, puteți adăuga treptat operațiunile în interfața fiecărei componente ca studiul cazurilor de utilizare.

Separarea părților componente

Procedura descrisă în secțiunile anterioare pot fi aplicate pentru fiecare componentă.

În cadrul fiecărei componente, puteți afișa ca parte a componentelor imbricate. O parte este un atribut al componentei sale mamă, care este un tip de clasă. Fiecare piesa are propriul stil, care poate fi o componentă. Puteți pune această componentă pe circuitul și arată părțile sale. Pentru detalii, a se vedea componentele UML-circuit :. reguli de lucru.

Este util să se aplice această tehnică pentru întregul sistem. Desenați sistem ca o singură componentă și a afișa componentele sale de bază, cum ar fi piese. Acest lucru ajută să definească în mod clar interfețele care se conectează sistemul la lumea exterioară.

În cazul în care structura componentei utilizează o altă componentă, există adesea o alegere, o prezintă ca parte sau ca o componentă separată, care este disponibil prin interfața dorită.

Utilizarea următoarelor situații:

Structura componentei părinte ar trebui să utilizeze întotdeauna un tip de părți componente. Astfel, porțiunea structură este o parte integrantă a structurii componentei părinte.

componentă-mamă nu are o existență concretă. De exemplu, se poate avea o componentă conceptuală numit un strat de prezentare a datelor, care este o colecție de componente reale care se ocupă de interacțiunea de prezentare și de utilizator.

Utilizați componentele individuale, care sunt accesate prin interfețele necesare în următoarele situații.

Cu interfețele componente solicitate pot fi conectate la diverse componente care furnizează în timpul rulării.

Structura este de așa natură încât un singur furnizor poate fi ușor înlocuită cu o alta.

Utilizați interfețele necesare sunt, de obicei, de preferat peste partea. Deși dezvoltarea poate dura mai mult, sistemul final va fi mai flexibil. În plus, este mai ușor de a testa componentele în mod individual. Acest lucru reduce numărul de interdependențelor în planurile de dezvoltare.