modeling of software concerns in cosmos
Separation of concerns is a well-established principle of software engineering. Nevertheless, the failure to separate concerns effectively has been identified as a continuing cause of the ongoing software crisis. This failure arises in part because most programming and modeling formalisms enforce a dominant decomposition that allows only a few concerns to be separated, whereas software in reality is subject to multiple simultaneous, overlapping, and crosscutting concerns.Several approaches to "advanced separation of concerns" have been proposed, including subject-oriented programming, aspect-oriented programming, and Hyperspaces. These focus mainly on coding but take a multidimensional view of concerns that applies across the software life cycle. To support such approaches, we are developing Cosmos, a general-purpose concern-space modeling schema. Cosmos distinguishes logical and physical concerns. Logical concerns include classifications, classes, instances, properties, and topics, physical include instances, collections, and attributes. Cosmos also identifies four categories of relationship, including categorical, interpretive, mapping, and physical. Cosmos can support software development activities such as rationale capture, impact analysis, compositional development, change propagation, customization, and reuse.
model software cosmos software engineering failure program formalism decomposition crosscutting concern aspect-oriented programming hyperspaces code support developer concern-space modeling schema physical classification class collect attributes categorical relationships interpretation map software development activation impact analysis change propagation custom reuse aosd separation-of-concerns general space software information modeling multidimensional separation of concerns aspect-oriented software development mdsoc