Dijagrami slučajeva upotrebe opisuju šta sistem treba da radi. Dijagrami klasa modela sistema opisuju različite tipove delova sistema koji čine njegovu strukturu. Postoji još jedan veliki deo koji nedostaje prilikom modeliranja sistema a to je kako sistem aktuelno radi – obavlja svoje zadatke. Za tu svrhu koristimo dijagrame interakcije. Dijagrami interakcije modeliraju važne „runtime“ interakcije između delova sistema koji sačinjavaju sistem i formiraju deo logičkog pogleda modela.
Dijagrami interakcije se koriste za modelovanje toka upravljanja po vremenskom rasporedu (dijagram sekvenci) i modelovanje toka podataka po organizaciji (dijagram saradnje).
Interakcija je ponašanje koje obuhvata skup poruka koje se razmenjuju između skupa objekata u nekom kontekstu sa nekom namenom.
Poruka je specifikacija komunikacije između objekata koja prenosi informaciju i može biti:
Interakcija se definiše u kontekstu neke saradnje (kolaboracije). Interakcija se koristi za modeliranje dinamičkih aspekata modela.
Dijagrami interakcije pokazuju kako objekti u sistemu međusobno komuniciraju. Oni pokazuju tokove kroz slučajeve upotrebe i to korak po korak, pokazuju koji su objekti potrebni da bi se tok sproveo, koje se poruke razmenjuju između objekata, koji akter inicira tok i koji je redosled slanja poruka. Pomoću dijagrama interakcije, moguće je dokumentovati sve različite scenarije u sistemu.
Poruka se najčešće implementira kao poziv operacije, kada jedan objekat poziva metodu drugog objekta, a nakon izvršavanja operacije, kontrola se vraća pozivaocu zajedno sa povratnom vrednošću. Poruka može pored operacije biti i stvarna poruka poslata nekom od komunikacionih mehanizama ili preko mreže ili interno (real-time sistemi).
Postoji više vrsta interakcije pa samim tim i više dijagrama interakcija. Grupi dijagrama interakcija pripadaju:
Najšeći oblik dijagrama interakcije koji se koristi u praksi jeste dijagram sekvenci (eng. Sequence Diagram). Ovaj dijagram obično prikazuje jedan scenario koji obuhvata izvestan broj objekata i poruka koje oni razmenjuju u okviru slučaja upotrebe. Korišćenjem sekvencijalnog dijagrama može se opisati koje interakcije se izvršavaju kada se pojedinačni slučaj upotrebe izvršava i u po kom redosledu se ove interakcije izvršavaju.
Dijagram objekata specificira objekte koji sarađuju i veze između njih. Dijagram objekata je reprezentacija statičkih aspekata interakcije. Interakcija uvodi dinamički aspekat specificirajući sekvencu poruka koje razmenjuju objekti.
Veze između objekata
Objekti u sekvencijalnom dijagramu
Sekvencijalni dijagram predstavlja kolekciju objekata - delova sistema koji su u interakciji jedan sa drugim za vreme sekvence. Objekti se na sekvencijalnom dijagramu uvek postavljaju horizontalno (nikad se ne preklapaju vertikalno). Svaki objekat ima odgovarajuću liniju života (Lifeline). Linija života objekata pokazuje da objekat (učesnik) postoji u toj tački sekvence i u vezi je sa delom kreiranja i/ili brisanja objekata za vreme sekvence.
Jednostavni sekvencijalni dijagram:
Objekti se na sekvencijalnim dijagramima mogu imenovati na različite načine na osnovu formata:
name [selector]: class_name ref decomposition
Elementi koje ćemo izabrati za korišćenje prilikom imenovanja zavise od informacija poznatih o objekatu.
Sekvencijalni dijagram opisuje redosled odvijanja interakcija, tako da je vreme bitan faktor. Da bi se modelovalo po vremenskom redosledu potrebno je: ustanoviti kontekst interakcije (sistem, podsistem, klasa, operacija, scenario korisničke funkcije ili društva saradnika); ustanoviti koji objekti imaju ulogu u interakciji (važniji objekti se postavljaju levo u interakciji); za svaki objekat treba ustanoviti liniju života (ako objekti nastaju ili nestaju tokom interakcije treba u vidu stereotipa to i naglasiti).
Vreme na sekvencijalnom dijagramu počinje na početku stranice sa zaglavljem objekta i ima progres duž stranice. Vreme se na sekvencijalnom dijagramu tiče redosleda a ne trajanja.