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.

[1]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[2]  Gregor Kiczales,et al.  Aspect-oriented programming , 1996, CSUR.

[3]  Stanley M. Sutton,et al.  Advanced Separation of Concerns for Component Evolution , 2001 .

[4]  John Mylopoulos,et al.  Towards requirements-driven information systems engineering: the Tropos project , 2002, Inf. Syst..

[5]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[6]  Tzilla Elrad,et al.  Aspect-oriented programming: Introduction , 2001, CACM.

[7]  Bashar Nuseibeh,et al.  Workshop on multi-dimensional separation of concerns in software engineering , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[8]  Robert E. Filman,et al.  What Is Aspect-Oriented Programming , 2001 .

[9]  Akinori Yonezawa,et al.  Abstracting Object Interactions Using Composition Filters , 1993, ECOOP Workshop.

[10]  Stanley M. Sutton,et al.  Multidimensional Separation of Concerns in Middleware , 2000 .

[11]  Siobhán Clarke,et al.  Subject-oriented design: towards improved alignment of requirements, design, and code , 1999, OOPSLA '99.

[12]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[13]  Don Batory,et al.  Refinements and Separation of Concerns , 2000 .

[14]  John Mylopoulos,et al.  Understanding "why" in software process modelling, analysis, and design , 1994, Proceedings of 16th International Conference on Software Engineering.

[15]  Axel van Lamsweerde,et al.  Requirements engineering in the year 00: a research perspective , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[16]  Bashar Nuseibeh,et al.  Expressing the relationships between multiple views in requirements specification , 1993, Proceedings of 1993 15th International Conference on Software Engineering.

[17]  Arun Iyengar,et al.  Design and performance of a general-purpose software cache , 1999, 1999 IEEE International Performance, Computing and Communications Conference (Cat. No.99CH36305).

[18]  IEEE-SA Standards Board , 2000 .

[19]  Stanley M. Sutton,et al.  N degrees of separation: multi-dimensional separation of concerns , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[20]  William G. Griswold,et al.  Getting started with ASPECTJ , 2001, CACM.

[21]  Harold Ossher,et al.  Software engineering tools and environments: a roadmap , 2000, ICSE '00.

[22]  Bashar Nuseibeh,et al.  Expressing the relationships between multiple views in requirements specification , 1993, ICSE '93.

[23]  Harold Ossher,et al.  Subject-oriented programming: a critique of pure objects , 1993, OOPSLA '93.

[24]  MylopoulosJohn,et al.  Towards requirements-driven information systems engineering , 2002 .