cards+
Der Baustein Domain
Moti­vation

IT-Systeme gibt es in einem brei­ten Spek­trum. Monoli­thische Soft­ware bündelt die Bestand­teile des IT-Systems in untrenn­bare Gebilde und unter­schei­det nur zwischen Client und Server. Alter­nativ kann eine kom­plexe Soft­ware aus unab­hängi­gen Pro­zessen aufge­baut werden, die unter­ein­ander mit genorm­ten Pro­gram­mier­schnitt­stellen kommuni­zieren. Soft­ware hat immer eine Struk­tur, unab­hängig vom Archi­tektur­stil und der Program­mier­sprache.

Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization’s communication structure.

Melvin Edward Conway

Das Gesetz von Conway basiert auf der Beob­ach­tung, dass die Struk­tur der Soft­ware wesent­lich von der Pro­jekt­organi­sation beein­flusst wird. Der Bau­stein Domain ist sehr gut geeig­net, die Gren­zen und Über­gänge dieser Struk­turen sicht­bar zu machen.

Der Bau­stein Domain ist das Arte­fakt in der System­struk­tur, mit dem Autoren Bestand­teile der Soft­ware bün­deln, die eine starke Abhängig­keit von­ein­ander haben. Ziel ist immer, die Kom­plexi­tät der Soft­ware in den Griff zu bekom­men, einen Über­blick zu behal­ten und Zusam­men­hänge zu erken­nen.

Pro­jekt­manage­ment

Der Pro­dukt­­verant­wort­liche hat mit dem Bau­stein Domain die Mög­lich­keit, früh­zeitig und in Abstim­mung mit dem Team Gren­zen und Über­gängen in den Struk­tur der Soft­ware zu fixieren. Beson­ders in Pro­jekt­organi­sationen mit mehreren Teams, die an der Ent­wick­lung des Pro­duktes beteiligt sind, ist dieses Wissen vor­teil­haft. Selbst wenn das Produkt von einem ein­zigen Team ent­wickelt wird, kann die Anfor­derung eines unter­brechungs­freien Betriebs des IT-System dazu führen, dass ein weiteres Team einer Betriebs­organi­sation an der Soft­ware mit­wirkt. Der Bau­stein Domain trennt indivi­duell ent­wickel­te Dienste und Dienste einer bereit­gestell­ten Infra­struk­tur. Das ist förder­lich für die naht­lose Zusam­menar­beit der Teams.

Anfor­derungs­analyse

Der Pro­dukt­­verant­wort­liche hat mit den Bau­steinen Epic und Domain zwei Mög­lich­keiten, das Wissen über das Pro­dukt zu struk­turieren. Im Bau­stein Epic werden die Fähig­keiten der Soft­ware nach rein fach­lichen Gesichts­punk­ten gebün­delt. Der Bau­stein Domain grup­piert Bestand­teile der Soft­ware, die eine starke Abhängig­keit von­ein­ander haben. Folgt das Team beim Ent­wurf der Soft­ware den grund­legen­den Elemen­ten der Anwen­dungs­domäne sowie deren Beziehungen, dann ent­steht auto­matisch eine prüf­bare Bin­dung zwischen den Bau­steinen Epic und Domain.

Pro­dukt­entwick­lung

Der Bau­stein Domain macht starke Abhängig­keiten zwischen den Bestand­teilen der Soft­ware sicht­bar. Das sind wert­volle Hin­weise für die Leser bei der Ein­schätzung der Kriti­kali­tät von Änderungen an Schnitt­stellen. Schnitt­stellen inner­halb einer Anwen­dungs­domäne erfor­dern in der Regel weni­ger Abstim­mung als Schnitt­stellen zwischen ver­schie­denen Domänen oder an den System­grenzen. Auch der Umfang der Test­pläne steigt ent­sprechend.

Das Wiki.

Ein Erfolgsfaktor.