Identificarea celor mai importante obiecte, relatia lor si interactiunile dintre ele.

Odata ce avem cateva cazuri de utilizare sau povesti ale utilizatorilor, urmatorul lucru pe care il putem face este sa cream un model conceptual al sistemului nostru. Inseamna pur si simplu ca identificati cele mai importante obiecte.

Nu ar trebui sa va faceti griji cu privire la obiectul software chiar acum, ci mai generic care sunt lucrurile din aplicatie de care trebuie sa fim constienti.

Lucruri precum produs, articol, cos de cumparaturi, comanda, factura, salariu, nava spatiala, asteroid, nivel, asta identificam aici. Unele dintre ele vor deveni clase reale si obiect software, dar nu toate.

Procesul

Deci, vom identifica acele obiecte, vom incepe sa le rafinam si apoi sa le desenam intr-o diagrama simpla. Si putem arata, de asemenea, relatia si interactiunile dintre ele.

Un sfat

Crearea unui model conceptual simplu pentru majoritatea aplicatiilor nu este si nu ar trebui sa fie un proces lung. Cateva ore petrecute in acest sens sunt de obicei mai mult decat suficiente.

Nu va faceti griji cu privire la perfectiune. Prima data prin aceasta va fi incompleta si este absolut normal sa pierdeti chiar si obiecte importante, lucruri pe care le veti descoperi mai tarziu in timpul programarii.

Ceea ce facem este sa incepem sa colectam impreuna cazurile noastre de utilizare, povestile utilizatorilor si orice alte cerinte scrise.

Acum, vom identifica cele mai importante parti ale software-ului nostru; cele mai importante lucruri sau obiecte.

Obiectele vor fi sub forma de substantive . Acestea sunt obiectele candidate, unele dintre ele vor fi obiecte reale in sistem, iar restul nu, asa cum veti vedea mai tarziu.

Identificarea obiectelor

Doar identificati obiectele, nu le analizati sau nu le judecati. De asemenea, nu ne facem griji cu privire la lipsa unuia, la prima rotire, este posibil sa lipseasca unele obiecte, ceea ce este normal.

Dupa ce stai pe obiectele tale candidate, incepi sa le rafinezi, incepi sa iti alegi obiectele reale care vor fi in sistem. Deci, pentru a face asta, …

Obiecte de rafinare

Un atribut este o proprietate sau o caracteristica a obiectului. De exemplu, cand spunem „O masina este rosie”, rosu aici este o proprietate pentru masina, care este obiectul real.

Un comportament este ceva ce poate face un obiect (responsabilitate). De exemplu, cand spunem „O pasare poate zbura”, a zbura aici este un comportament, in timp ce pasarea este obiectul real.

Nu trebuie sa consumati mult timp rafinandu-va obiectele, sa nu cautati perfectiunea, este normal sa intalniti unele greseli sau sa pierdeti unele obiecte care vor fi descoperite prin proces.

Ce trebuie sa faceti acum este sa folositi creionul si hartia, doar desenati modelul conceptual prin caseta tuturor obiectelor.

Exista cateva instrumente pe care le puteti folosi, dar pentru moment, un creion si o bucata de hartie sunt mai mult decat suficiente.

Model conceptual

Incepeti sa indicati relatiile dintre obiectele dvs.

Este foarte evident ca aceste obiecte vor interactiona intre ele. De exemplu, un client poate plasa o comanda, un student se poate inscrie la un curs, un administrator poate actualiza o postare si asa mai departe.

Tragerea unei linii intre obiecte si scrierea verbelor de relatie este suficienta pentru a indica ca exista o relatie.

Definiti relatiile obiect

Comportamentele sunt lucrurile (verbele) pe care le poate face obiectul sau, cu alte cuvinte, responsabilitatile unui obiect, care vor deveni metodele din clasa noastra de obiecte.

Deci, ne putem intoarce la cazul de utilizare sau la o poveste a utilizatorului si putem cauta verbe si fraze verbale pentru a alege responsabilitatile.

Identificarea comportamentelor obiectului (responsabilitati)

Lucruri precum verificarea articolelor, furnizeaza plata si adresa, proceseaza vanzarea, valideaza plata, confirma comanda, furnizeaza numarul comenzii, verifica starea comenzii si trimite detaliile comenzii prin e-mail.

Acum, nu toate acestea vor deveni comportamente, unele vor fi combinate, altele vor trebui sa fie separate, iar altele nu vor fi necesare sau inlocuite cu altceva, dar sunt un bun punct de plecare.

Atribuirea responsabilitatilor

A cui responsabilitate este aceasta?

Ceea ce nu este intotdeauna evident este locul in care apartin aceste responsabilitati, mai ales daca afecteaza diferite obiecte. Acest lucru se datoreaza faptului ca cazul de utilizare descrie ceea ce initiaza un comportament, nu neaparat cine este responsabil sa indeplineasca acel comportament.

Deci, chiar daca clientul doreste sa cunoasca starea comenzii, este responsabilitatea comenzii sa verifice starea acesteia. Clientul ar trebui sa solicite obiectului comenzii sa raporteze starea sa proprie.

Cand intrebi a cui este responsabilitatea asta? Amintiti-va intotdeauna ca un obiect ar trebui sa fie responsabil pentru sine.

Verbele generice

Putem schimba verbul generic a furniza a seta si a obtine in schimb pentru a clarifica ceea ce incercam sa facem.

Obiectul „Sistem”

Acum, iata o alta problema care apare adesea. Este obisnuit sa vezi expresii precum „sistem” valideaza plata sau „sistem” ii va trimite clientului un e-mail in cazurile de utilizare, ceea ce poate duce la crearea unui obiect de sistem de catre oameni si punerea in acesta a unei cantitati uriase de responsabilitati.

Aceste fraze inseamna intr-adevar ca o parte din acest sistem valideaza plata, o parte din acest sistem va trimite un e-mail si este treaba noastra sa ne dam seama ce parte a sistemului ar trebui sa fie responsabila pentru acest comportament.

Obiectul Dumnezeu

Daca aveti un obiect care are o multime de responsabilitati, sunt sanse sa faceti gresit.

Este posibil sa trebuiasca sa va ganditi din nou la responsabilitatea fiecarui obiect si sa distribuiti responsabilitatile intre obiecte. Amintiti-va ca un obiect ar trebui sa fie responsabil pentru sine pe cat posibil.

Colaboratorul de responsabilitate de clasa (CRC) este o alta tehnica de organizare a obiectelor.

Scrii fiecare obiect pe o bucata de hartie, cu asocierea comportamentelor pe o parte, iar cealalta parte are celelalte obiecte (colaboratori) care au o relatie cu acel obiect.

Sunt mici, usor de utilizat, le puteti misca pentru a arata relatia, le puteti modifica cu usurinta daca exista o greseala.