Architekturmuster für Individualsoftware finden sich reichlich. Ob im Java/Java
EE- oder im .NET-Umfeld: Architekten sind es gewohnt, eine einheitliche
technologische Basis für das Gesamtsystem vorauszusetzen. Spätestens nach den
ersten Versionen gilt für große Systeme jedoch häufig, dass sie zu
schwerfälligen Monolithen werden, und die anfangs positive Homogenität wird zum
Nachteil. Es ist daher häufig ein gute Idee, die Entwicklung eines Systems
damit zu starten, dass man versucht, es in einzelne, voneinander weitgehend
unabhängige Teilsysteme zu zerlegen – also eine Transformation in ein System
von Systemen vornimmt. Daraus ergibt sich eine Reihe von Herausforderungen,
denn nur einige Architektur- und Entwurfsmuster sind auf diese Ebene
übertragbar und darüber hinaus werden neue Ansätze erforderlich – in
technologischer, aber auch in organisatorischer Sicht.