Author Guidelines for 8
Total Page:16
File Type:pdf, Size:1020Kb
RC23344 (W0409-136) September 21, 2004 Computer Science IBM Research Report Concern Modeling in the Concern Manipulation Environment William Harrison, Harold Ossher, Stanley Sutton Jr., Peri Tarr IBM Research Division Thomas J. Watson Research Center P.O. Box 704 Yorktown Heights, NY 10598 Research Division Almaden - Austin - Beijing - Haifa - India - T. J. Watson - Tokyo - Zurich LIMITED DISTRIBUTION NOTICE: This report has been submitted for publication outside of IBM and will probably be copyrighted if accepted for publication. I thas been issued as a Research Report for early dissemination of its contents. In view of the transfer of copyright to the outside publisher, its distribution outside of IBM prior to publication should be limited to peer communications and specific requests. After outside publication, requests should be filled only by reprints or legally obtained copies of the article (e.g ,. payment of royalties). Copies may be requested from IBM T. J. Watson Research Center , P. O. Box 218, Yorktown Heights, NY 10598 USA (email: [email protected]). Some reports are available on the internet at http://domino.watson.ibm.com/library/CyberDig.nsf/home . Concern Modeling in the Concern Manipulation Environment William Harrison, Harold Ossher, Stanley Sutton Jr., Peri Tarr IBM Thomas J. Watson Research Center, Hawthorne, NY {harrisn, ossher, suttons, tarr}@us.ibm.com Abstract priori imposition of particular concerns or types of concern, the failure to treat concerns as first-class enti- The Concern Manipulation Environment (CME) is ties across the software life cycle, and the imposition an AOSD environment in which software is organized of rigid decompositions on software artifacts. At- and manipulated in terms of concerns. ConMan sup- tempts to address these problems have given rise to ports the identification, definition, encapsulation, ex- aspect-oriented software development (AOSD) [13], in traction and composition of concerns in the CME. which software is fundamentally represented, organ- ConMan models software in terms of concerns, rela- ized, and manipulated in terms of concerns. tionships, constraints, units, artifacts, and associated The Concern Manipulation Environment (CME) information. The concern model is multidimensional [12] is an AOSD environment based on the premise and concerns can be defined extensionally and/or in- that concerns should be treated as first-class entities in tensionally. ConMan is neutral with respect to artifact all stages of the software life cycle. The CME ad- types and formalisms, and it can be used with both dresses two main groups of users. For software devel- aspect-oriented and non-aspect oriented software and opers using AOSD, the CME offers tools for creating, methods. ConMan is intended to serve both as a tool manipulating, and evolving aspect-oriented software for directly modeling concerns and as a platform for across the lifecycle. For AOSD tool providers and developing alternative concern-modeling approaches. researchers, the CME offers a flexible, open set of components and frameworks on which to build and integrate aspect-oriented technologies. A key goal of 1. Introduction the CME is to promote incremental adoption of AOSD. The CME allows developers to identify, Concerns are pervasive in software development. model, and analyze concerns in existing software, re- They originate in the interests of the stakeholders of a gardless of whether it was developed using AOSD. software system, including customers, developers, us- Any software environment that organizes and op- ers. They arise throughout the software life cycle, erates on software according to concerns requires sup- from ideas for features or functions that inspire new port for concern modeling. This paper describes Con- development, through to properties such as maintain- Man, the Concern Manager component of the CME. ability and adaptability that affect the utility and value Section 2 introduces the topic of concern modeling and of a product long after initial development. We recog- gives some scenarios of concern modeling in software nize many categories of concern, including concerns development. Section 3 states our requirements for a relating to the physical and logical organization of sys- concern-modeling facility. Section 4 then presents the tems; application-specific concerns such as functions, ConMan schema and addresses issues of implementa- features; developer-oriented properties such as under- tion. Section 5 discusses ConMan in the context of the standability and maintainability; and user-oriented CME and Eclipse [12], and Section 6 describes our properties, such as performance and ease of use. Con- experience with it. The final sections address related cerns of many different kinds are important across the work and summarize our results. full range of software engineering activities. The representation, separation, and integration of 2. Concern Modeling concerns are important elements in programming lan- guages, modeling formalisms, and software engineer- Concern modeling is simply the representation of ing methods. Nevertheless, many problems with soft- concerns themselves as first-class entities. The fol- ware can still be traced to the limitations of current lowing scenarios suggest how concern modeling might approaches to managing concerns. These include the a be used in a variety of development scenarios: 1 In a COTS-based process1, a concern model of intended structure of material rather than simply re- the system under development can be constructed to flecting existing structure. provide a framework for evaluating the compatibility As part of the CME, the tool itself faces several and contribution of COTS products that are candidates noteworthy requirements: it should be able to deal for adoption. The suitability of candidate products can with artifacts across the whole lifecycle, with software be evaluated based on the range and compatibility of creation as well as with result artifacts, and with mate- concerns addressed, the need for tailoring, and the rial that is often incomplete and incorrect as it is being number of concerns not addressed. developed. It also requires a modern interactive inter- In new development, a concern model can be face to developers that have to work with the model elaborated to represent the initial concerns that moti- vate or constrain the project. As development pro- 3.1. Schema Requirements gresses the concern model can be elaborated. Con- cerns can be related to the work products in which they The concern-modeling schema must be “concern are addressed, and relationships between concerns can neutral”, that is, able to capture arbitrary concerns. be drawn to capture semantic and other dependencies. This is necessary to represent concerns for all kinds of The concern model can be analyzed for consistency stakeholders and all sorts of development tasks. To and coherence. As the life cycle is iterated, changes at represent arbitrary concerns it is necessary to represent various stages can be validated against the concern both abstract and concrete concerns. Abstract con- model, and the model can help to propagate updates cerns include conceptual entities, such as features in through both the concern space and the artifact space. the abstract, properties, topics of interest, and so on. In the retroactive development of a product line Concrete concerns represent physical entities, notably based on an existing product, concern modeling can be the work products of software development. used to characterize the potential feature space and to The concern modeling schema must support multi- position different product variants in that space. The ple, concurrent, overlapping classifications or dimen- existing product can be decomposed into units corre- sions of concerns. Concern spaces are certainly mul- sponding to specific concerns. Concerns representing tidimensional [30], that is, concerns are typically or- additional features can be identified and related to the ganized according to multiple classifications. For ex- existing model, and additional work products can be ample, a particular class in an object-oriented applica- developed to support implementation of the additional tion might be classified according to stakeholder rele- concerns. Variants within the family can be specified vance, development stage, features, complexity, size, by selecting concerns of interest from within the fam- and more, each of which may be taken as a dimension ily concern space. Compositional technologies can of concern. We must be able to support multiple levels then be used to compose variants using implementa- of concern, representing arbitrary levels of abstraction tions associated to the selected concerns. or detail. These may include multiple levels of classi- We could elaborate many additional scenarios, for fication, structure, aggregation, and so on. For exam- example, relating to software understanding, exten- ple, functionality may be organized by feature by spe- sion, deployment, and multi-team development. cific functions, and by functional variants (within func- Concern modeling thus has a role in many kinds of tions). It should be possible to form arbitrary groups of development tasks and processes. concerns or other model elements, on demand. This supports the flexible formulation of concerns and also 3. Concern-Modeling Requirements allows for “working sets” of model elements that may needed during concern-modeling activities While many of the requirements