Modules for Crosscutting Models [chapter]

Mira Mezini, Klaus Ostermann
2003 Lecture Notes in Computer Science  
Traditional programming languages assume that real-world systems have "intuitive", mind-independent, preexisting concept hierarchies. However, our perception of the world depends heavily on the context from which it is viewed: Every software system can be viewed from multiple different perspectives, and each of these perspectives may imply a different decomposition of the concerns. The hierarchy which we choose to decompose our software system into modules is to a large degree arbitrary,
more » ... h it has a big influence on the software engineering properties of the software. We identify this arbitrariness of the decomposition hierarchy as the main cause of 'code tangling' and present a new model called Caesar 1 , within which it is possible to have multiple different decompositions simultaneously and to add new decompositions on-demand.
doi:10.1007/3-540-44947-7_2 fatcat:xanrvfhrvnajdoflzcrovaztpu