PB007 Softwarové inženýrství I Cvičenia 10 a 11 – Interaction Diagrams Valdemar Švábenský Fakulta informatiky, Masarykova univerzita, Brno 24. novembra 2015 Interakčný diagram ∙ Popisuje spoluprácu medzi skupinami objektov systému (triedy, prípady použitia, . . . ) ∙ Viac typov, najčastejšie sa používa: 1 Sekvenčný diagram (Sequence Diagram) – dôraz na časovú postupnosť zasielania správ 2 Komunikačný diagram (Communication Diagram) – dôraz na vzťahy medzi objektami („kto s kým komunikuje“) Obsah 1 Sekvenčný diagram 2 Komunikačný diagram 3 Úlohy 4 Visual Paradigm: tipy 1 Sekvenčný diagram 2 Komunikačný diagram 3 Úlohy 4 Visual Paradigm: tipy Sekvenčný diagram – intuícia ∙ Majme triedu Monster s atribútmi name a level a verejnými metódami setName() a setLevel() ∙ Uvážte ďalšiu triedu MonsterController, ktorá zodpovedá za uchovávanie všetkých aktuálnych príšer: public class MonsterController { private List _monsters = new List (); public void spawn(String name , int level) { Monster monster = new Monster (); monster.setName(name); monster.setLevel(level); _monsters.add(monster); } } Sekvenčný diagram – intuícia Sekvenčný diagram ∙ Zachytáva komunikáciu medzi objektami s dôrazom na časovú postupnosť zasielania správ ∙ Správy sú vymieňané medzi tzv. klasifikátormi (classifiers) – aktér, trieda alebo objekt ∙ Z každého klasifikátora vedie zvislá čiara života (lifeline) – reprezentuje jeho život počas komunikácie ∙ Správa (message) je požiadavka objektu o vyvolanie operácie druhého objektu ∙ Šípka medzi čiarami života ∙ Objekty môžu zasielať správy aj samy sebe ∙ Poradie zasielania správ určuje v diagrame os Y ∙ Čas plynie zhora dole Sekvenčný diagram – ukážka Zdroj: https://is.muni.cz/auth/el/1433/podzim2015/PB007/um/sem/cz_files/09/09_Sequence_ prihlasitStudKurz-1.jpg Sekvenčný diagram – ukážka Zdroj: https://is.muni.cz/auth/el/1433/podzim2015/PB007/um/sem/cz_files/09/09_Sequence_ prihlasitStudKurz-1.jpg Sekvenčný diagram – kombinovaný fragment ∙ Oblasť vnútri sekvenčného diagramu s odlišným chovaním ∙ Každý kombinovaný fragment tvorí: ∙ 1 operátor ∙ 1 alebo viac operandov (skupín správ v rámci fragmentu) ∙ 0 alebo viac podmienok ∙ Operátory: ∙ opt (option) – má 1 operand, ktorý sa spustí, len ak je splnená definovaná podmienka ∙ alt (alternatives) – má aspoň 2 operandy; spustí sa ten, ktorého podmienka sa vyhodnotí na true ∙ loop – opakované vykonávanie 1 operandu ∙ break – má 1 operand, ktorý sa spustí v prípade splnenia podmienky a ukončí vykonávanie cyklu Sekvenčný diagram – opt Zdroj: https://is.muni.cz/auth/el/1433/podzim2015/PB007/um/sem/cz_files/09/09_Sequence_ prihlasitStudKurz-1.jpg Sekvenčný diagram – alt Zdroj: https://is.muni.cz/auth/el/1433/podzim2015/PB007/um/sem/cz_files/08/08_Sequence_odstranitLektora.png Sekvenčný diagram – loop Zdroj: https: //is.muni.cz/auth/el/1433/podzim2015/PB007/um/sem/cz_files/08/08_Sequence_odstranitLektora.png 1 Sekvenčný diagram 2 Komunikačný diagram 3 Úlohy 4 Visual Paradigm: tipy Komunikačný diagram ∙ Zachytáva komunikáciu medzi klasifikátormi s dôrazom na vzťahy medzi nimi ∙ Čiara života reprezentuje klasifikátor (ako obdĺžnik) ∙ Správa – ako v sekvenčnom diagrame, ale musí byť číslovaná ∙ Správy putujú po linkách (link) – obojsmerný spoj medzi dvoma čiarami života Komunikačný diagram – ukážka Zdroj: https://is.muni.cz/auth/el/1433/podzim2015/PB007/um/sem/cz_files/08/08_Comm_odstranitLektora.png Komunikačný diagram – ukážka Zdroj: https://is.muni.cz/auth/el/1433/podzim2015/PB007/um/sem/cz_files/08/08_Comm_odstranitLektora.png Komunikačný diagram – vetvenie ∙ Komunikačný diagram je syntakticky slabší – neobsahuje konštrukcie pre tvorbu podmienok a cyklov ∙ Môžete si dopomôcť pseudokódom Komunikačný diagram – iterácia ∙ Komunikačný diagram je syntakticky slabší – neobsahuje konštrukcie pre tvorbu podmienok a cyklov ∙ Iteračný výraz: * [loop min, max [condition]] Zdroj: https://is.muni.cz/auth/el/1433/podzim2015/PB007/um/lec/07-Implementation.pdf 1 Sekvenčný diagram 2 Komunikačný diagram 3 Úlohy 4 Visual Paradigm: tipy Úlohy ∙ Pre všetky UC1 si rozmyslite interakciu objektov, ktoré sa podieľajú na realizácii UC ∙ Vyberte 5 zaujímavých (dostatočne zložitých) UC ∙ 2 jednoduchšie z nich namodelujte pomocou komunikačného diagramu ∙ (Zvyšné 3 budete budúcu hodinu modelovať pomocou sekvenčných diagramov) ∙ Počas modelovania aktualizujte diagram tried ∙ Vygenerujte PDF report a vložte ho do odovzdávarne „Week 10“ (skupiny 09, 10) ∙ Názov v tvare priezvisko1-priezvisko2-priezvisko3.pdf ∙ Odovzdáva jeden človek za svoj tím ∙ Deadline: 29.11. 23:59 1 Use Case(s) Tipy pre modelovanie ∙ Názvy klasifikátorov zodpovedajú názvom objektov v iných diagramoch (Use Case Diagram, Class Diagram) ∙ Názvy správ zodpovedajú názvom metód v diagrame tried ∙ ⇒ Modelujte podľa diagramu tried! ∙ Klasifikátory sú radené podľa poradia zasielania správ ∙ Správy sú číslované podľa poradia ∙ U komunikačných diagramov má každá správa smer 1 Sekvenčný diagram 2 Komunikačný diagram 3 Úlohy 4 Visual Paradigm: tipy Sekvenčný diagram – nástroje Sekvenčný diagram – výber triedy ∙ Názvy klasifikátorov zodpovedajú názvom objektov v iných diagramoch (Use Case Diagram, Class Diagram) Sekvenčný diagram – výber metódy ∙ Názvy správ zodpovedajú názvom metód v diagrame tried Komunikačný diagram – nástroje Komunikačný diagram – výber triedy ∙ Názvy klasifikátorov zodpovedajú názvom objektov v iných diagramoch (Use Case Diagram, Class Diagram) Komunikačný diagram – výber metódy ∙ Názvy správ zodpovedajú názvom metód v diagrame tried Komunikačný diagram – pridávanie správ ∙ Na jednej linke môže byť viac správ