Yhteistyökaavio on eräänlainen Unified Modeling Language (UML) -vuorovaikutuskaavio, joka korostaa objektien rakenteellista organisointia objektiohjelmoidun (OOP) tietokonejärjestelmän suunnittelussa. Yhteistyökaavio kuvaa objektien suhteita toisiinsa. Näiden kaavioiden luominen voi vaatia teknistä osaamista ja koulutusta. Keskushallinto -organisaatio valvoo UML -standardeja, ja ne kehittyvät edelleen.
OOP: ssa objekti on koteloitu kokonaisuus, joka koostuu määritteistä ja käyttäytymisestä, ja termi objekti viittaa usein monimutkaiseen dataan. Objekti voi esimerkiksi koostua varastotuotetiedoista ja eri toiminnoista tietojen noutamiseksi ja tarkistamiseksi. Tietojen, ominaisuuksien ja käyttäytymisen ajattelu objekteina voi yksinkertaistaa mallinnus- ja kehitysprosessia.
Kohde -elementti on yhteistyökaavion keskeinen elementti. Objektit voivat olla vuorovaikutuksessa keskenään. Esimerkiksi ostotilauksen objekti voi olla vuorovaikutuksessa varaston objektin kanssa mallintaakseen vaikutusta, joka ostotilauksen vastaanottajilla on varastoon. Kaavio voi näyttää luokkaroolin kullekin objektille, jota voidaan kuvata myös kyseisen objektin vastuualueiksi.
Toinen elementti on suhde- tai assosiaatioelementti. Tämä elementti kuvaa linkkiä, joka yhdistää aiheeseen liittyvät objektit, ja osoittaa, miten yhdistys toimii tässä tilanteessa. Sitä voidaan käyttää myös kardinaalisuuden osoittamiseen. Kardinaalisuus on vaadittu suhde kahden objektin tietojen välillä, kuten yksi yhteen tai yksi moniin.
Viestit ovat yhteistyökaavioiden kolmas elementti. Ne on kuvattu nuolina, jotka osoittavat alkukohteesta lopulliseen kohteeseen. Numerointi voidaan lisätä viesteihin osoittamaan objektien vuorovaikutuksen aikasarja.
Yhteistyökaavio on samanlainen kuin sekvenssikaavio, koska molemmat osoittavat, kuinka objektit ovat vuorovaikutuksessa toistensa kanssa dynaamisissa suhteissa tai ajan perusteella. Jotkut UML -mallinnusohjelmat voivat muuntaa sekvenssikaavioita yhteistyökaavioiksi ja päinvastoin niiden samankaltaisuuksien vuoksi. Dynaamiset suhteet on helpompi ymmärtää sekvenssikaavioista, kun taas yhteistyökaaviot kuvaavat objektien välisiä yhteyksiä tehokkaammin.
Yhteistyökaavioiden luominen vaatii teknistä osaamista. Tehtävä annetaan usein tietokonejärjestelmien analyytikolle. Mallit luovat analyytikot käyttävät tapauskaavioita, luokkakaavioita ja sekvenssikaavioita kerätäkseen tietoja kaavioiden kehittämiseen tarvittavasta järjestelmästä. Lisäksi mallit luodaan yleensä käyttämällä erityisiä ohjelmistoja, joiden käyttö voi vaatia koulutusta.
UML -standardit kehittää Object Management Group. Standardit kehittyvät edelleen, minkä seurauksena kaavion mallintamiskäytäntöjä voidaan muuttaa. Esimerkiksi uudemmat UML -merkinnät käyttävät viestintäkaaviota yksinkertaistettuna versiona yhteistyökaaviosta.