Soorten modellen en hun samenhang
Welke modellen er gemaakt worden is niet zozeer een zaak van een individueel project, maar van de organisatie als geheel. Met name het business model, het service model en het deployment model zijn projectoverstijgend en worden in het kader van individuele projecten aangepast en uitgebreid. De organisatie zal dus moeten bepalen welke modellen een rol spelen bij IT-projecten en hoe die modellen met elkaar samenhangen. Het onderstaande overzicht is een praktisch uitgangspunt om deze discussie te voeren. Het is de kunst om niet teveel, maar ook niet te weinig detail in de modellen op te nemen. Soms bestaat een model uit slechts één schema, of uit slechts een beperkte hoeveelheid tekst, maar doorgaans is een model een combinatie van tekst en meerdere schema's. Een pijl van A naar B geeft aan, dat er vanuit A gerefereerd wordt aan elementen van B.
Het is raadzaam om de bedrijfsgegevens vrij gedetailleerd te specificeren in wat wel een 'domeinmodel' genoemd wordt. Eventueel kan dit als een apart model beschouwd worden, met verwijzingen naar het minder gedetailleerde business model. In het domeinmodel worden de attributen van de entiteiten benoemd en alle gegevensgerelateerde bedrijfsregels vastgelegd. Van bijvoorbeeld de entiteit 'Adres' wordt nauwkeurig vastgelegd uit welke onderdelen het bestaat, onder welke voorwaarden het adres volledig is, of buitenlandse postcodes worden ondersteund etc. Een dergelijk model vormt een goede gemeenschappelijk basis voor het functioneel model en het service model.
Een overzicht van services en hun onderlinge connecties kun je het beste weergeven in een UML composite structure diagram. De interfaces kun je tekstueel vastleggen en de messages in class diagrams. Eventueel kun je protocollen definiëren m.b.v. state machine diagrams en in interaction diagrams kun je weergeven hoe services met elkaar samenwerken.
Ik adviseer om vooral sequence diagrams te maken, die de voornaamste scenario's inzichtelijk maken. Als er groepen componenten, bijvoorbeeld "lagen", te onderkennen zijn, dan kunnen deze in een package diagram afgebeeld worden. Niet-triviale datastructuren kunnen in class diagrams worden weergegeven en soms zijn ook andere diagramsoorten, zoals state machine diagrams nuttig.
Het design model van een service refereert uitsluitend naar het service model en het design model van een applicatie refereert zowel naar het functioneel model van die applicatie, als naar het service model voor alle services die door de applicatie gebruikt worden.
Het UML deployment diagram is speciaal bedoeld om dit soort zaken grafisch weer te geven.