(
CCC) ist ein Begriff der
Informatik, der im Kontext des
Teile-und-Herrsche-Prinzips so genannte
querschnittliche Belange einer Software bezeichnet, die deshalb nicht einfach
modularisiert werden können, weil herkömmliche Modularisierungsansätze (insbesondere die
Objektorientierung) nicht greifen. Meist sind es
nichtfunktionale Anforderungen an Software wie etwa Sicherheitsaspekte, die bei konventioneller Programmierung quer verstreut über den gesamten Code realisiert werden - beispielsweise immer wiederkehrende Prüfungen der Form „darf dieser Code gerade ausgeführt werden?“. Die
Aspektorientierte Programmierung (AOP) bietet die Möglichkeit, solchen Code zentral zu formulieren. Gleichzeitig müssen Regeln dafür angegeben werden, wie dieser Code
automatisch an den richtigen Stellen eingewoben oder ausgeführt werden kann.