On Composing Separated Concerns, Composability and Composition Anomalies

Lodewijk Bergmans, B. Tekinerdogan, Maurice Glandrup, Mehmet Aksit

    Research output: Chapter in Book/Report/Conference proceedingConference contributionAcademicpeer-review

    19 Downloads (Pure)


    It is generally acknowledged that separation of concerns is a key requirement for effective software engineering: it helps in managing the complexity of software and supports the maintainability of a software system. Separation of concerns makes only sense if the realizations in software of these concerns can be composed together effectively into a working program. The ability to compose systems from independently developed components that can be adapted and extended easily is a long-standing goal in the software engineering discipline. However, both research and practice have shown that composability of software is far from trivial and fails repeatedly. Typically this occurs when components exhibit complex behavior, in particular when multiple concerns are involved in a single component. We believe that, to address the composability problems, we need a better understanding of the requirements involved in successful composition, and in addition define the situations where composition fails. To this aim, in this paper we introduce a number of requirements for designlevel composability and define a category of composition problems that are inherent for given composition models, which we term as composition anomalies.
    Original languageUndefined
    Title of host publicationElectronic proceedings at ACM OOPSLA'2000 workshop on Advanced Separation of Concerns
    Place of PublicationMinneapolis, USA
    Number of pages7
    Publication statusPublished - 23 Feb 2000
    EventOOPSLA 2000 Workshop on Advanced Separation of Concerns - Minneapolis, Minnesota, USA
    Duration: 15 Oct 200019 Oct 2000


    ConferenceOOPSLA 2000 Workshop on Advanced Separation of Concerns
    OtherOctober 15-19, 2000


    • METIS-119338
    • IR-18816

    Cite this