Diagram sodelovanja je vrsta interakcijskega diagrama Unified Modeling Language (UML), ki poudarja strukturno organizacijo objektov pri načrtovanju računalniškega sistema za objektno usmerjeno programiranje (OOP). Diagram sodelovanja prikazuje odnose med predmeti. Ti diagrami lahko zahtevajo tehnično znanje in usposabljanje za ustvarjanje. Osrednja vladajoča organizacija nadzoruje standarde UML in ti se še naprej razvijajo.
V OOP je objekt enkapsulirana entiteta, sestavljena iz atributov in vedenj, izraz objekt pa se pogosto nanaša na vrsto zapletenih podatkov. Na primer, predmet je lahko sestavljen iz podatkov inventarnega artikla in različnih funkcij za pridobivanje in revizijo teh podatkov. Razmišljanje o podatkih, atributih in vedenju kot o objektih lahko poenostavi proces modeliranja in razvoja.
Element predmeta je ključni element v diagramu sodelovanja. Predmeti lahko medsebojno delujejo. Na primer, predmet naročilnice lahko deluje v interakciji z objektom inventarja za modeliranje učinka, ki ga ima prejem artiklov na naročilnico na zalogo. Diagram lahko prikazuje vlogo razreda za vsak predmet, ki jo lahko opišemo tudi kot odgovornosti za ta objekt.
Drugi element je relacijski ali asociacijski element. Ta element prikazuje povezavo, ki povezuje povezane objekte in kaže, kako se bo povezava obnašala v tej okoliščini. Lahko se uporablja tudi za prikaz kardinalnosti. Kardinalnost je zahtevano razmerje med podatki v dveh objektih, na primer razmerje ena proti ena ali ena proti več.
Sporočila so tretji element diagramov sodelovanja. Upodobljeni so kot puščice, ki kažejo od začetnega predmeta do končnega predmeta. Sporočilom se lahko doda oštevilčenje, da se prikaže časovno zaporedje interakcij objektov.
Diagram sodelovanja je podoben diagramu zaporedja, ker oba prikazujeta, kako objekti medsebojno delujejo v dinamičnih odnosih ali na podlagi časa. Nekateri programi za modeliranje UML lahko zaradi podobnosti diagrame zaporedja pretvorijo v diagrame sodelovanja in obratno. Dinamične odnose je lažje razumeti iz diagramov zaporedja, medtem ko diagrami sodelovanja bolj učinkovito prikazujejo povezave med predmeti.
Za ustvarjanje diagramov sodelovanja so potrebne tehnične spretnosti. Naloga je pogosto dodeljena analitiku računalniških sistemov. Analitiki, ki ustvarjajo modele, uporabljajo diagrame primerov, diagrame razredov in diagrame zaporedja za zbiranje informacij o sistemu, potrebnim za razvoj diagramov. Poleg tega so modeli običajno ustvarjeni s posebno programsko opremo, za uporabo katere je morda potrebno usposabljanje.
Standarde UML razvija skupina za upravljanje objektov. Standardi še naprej napredujejo in posledično se lahko spremenijo konvencije modeliranja diagramov. Novejši zapisi UML na primer uporabljajo komunikacijski diagram kot poenostavljeno različico diagrama sodelovanja.