throbber
Workshop on Multi-Dimensional Separation of Concerns in
`Software Engineering
`
`Peri Tarr, William Harrison, Harold Ossher (IBM T. J. Watson Research Center, USA)
`Anthony Finkelstein (University College London, UK)
`Bashar Nuseibeh (Imperial College, UK)
`Dewayne Perry (University of Texas at Austin, USA)
`
`Workshop Web site: http://www.research.ibm.com/hyperspace/workshops/icse2000
`
`
`
`
`ABSTRACT
`Separation of concerns has been central to software engi-
`neering for decades, yet its many advantages are still not
`fully realized. A key reason is that traditional modulariza-
`tion mechanisms do not allow simultaneous decomposition
`according to mu ltiple kinds of (overlapping and interacting)
`concerns. This workshop was intended to bring together
`researchers working on more advanced modularization
`mechanisms, and practitioners who have experienced the
`need for them, as a step towards a common understanding
`of the issues, problems and research challenges.
`Keywords
`Separation of concerns, decomposition, composition
`
`1 SEPARATION OF CONCERNS
`Separation of concerns [5] is at the core of software engi-
`neering, and has been for decades. In its most general form,
`it refers to the ability to identify, encapsulate, and manipu-
`late only those parts of software that are relevant to a par-
`ticular concept, goal, or purpose. Concerns are the primary
`motivation for organizing and decomposing software into
`manageable and comprehensible parts.
`Many different kinds, or dimensions, of concerns may be
`relevant to different developers in different roles, or at dif-
`ferent stages of the software lifecycle. For example, the
`prevalent kind of concern in object-oriented programming
`is data or class; each concern in this dimension is a data
`type defined and encapsulated by a class. Features [7], like
`printing, persistence, and display capabilities, are also
`common concerns, as are aspects [3], like concurrency con-
`trol and distribution, roles [1], viewpoints [4], variants, and
`configurations. Separation of concerns involves decomposi-
`tion of software according to one or more dimensions of
`concern.
` “Clean” separation of concerns has been hypothesized to
`reduce software complexity and improve comprehensibil-
`ity; promote traceability within and across artifacts and
`throughout the lifecycle; limit the impact of change, facili-
`tating evolution and non-invasive adaptation and customi-
`zation; facilitate reuse; and simplify component integration.
`
`DOMINANT
`
`OF
`
`THE
`
`TYRANNY
`2 THE
`DECOMPOSITION
`These goals, while laudable and important, have not yet
`been achieved in practice. This is because the set of rele-
`vant concerns varies over time and is context -sensitive—
`different development activities, stages of the software life-
`cycle, developers, and roles often involve concerns of dra-
`matically different kinds. One concern may promote some
`goals and activities, while impeding others; thus, any crite-
`rion for decomposition will be appropriate for some con-
`texts, but not for all. Further, multiple kinds of concerns
`may be relevant simultaneously, and they may overlap and
`interact, as features and classes do. Thus, different concerns
`and modularizations are needed for different purposes:
`sometimes by class, sometimes by feature, sometimes by
`viewpoint, or aspect, role, variant, or other criterion.
`
`These considerations imply that developers must be able to
`identify, encapsulate, modularize, and manipulate multiple
`dimensions of concern simultaneously, and to introduce
`new concerns and dimensions at any point during the soft-
`ware lifecycle, without suffering the effects of invasive
`modification and rearchitecture. Even modern languages
`and methodologies, however, suffer from a problem we
`have termed the “tyranny of the dominant decomposition”
`[6]: they permit the separation and encapsulation of only
`one kind of concern at a time.
`Software started out being represented on linear media, and
`despite advances in many fields, such as graphics and vis u-
`alization, hypertext and other linked structures, and data-
`bases, it is still mostly treated as such. Programs are typi-
`cally linear sequences of characters, and modules are col-
`lections of contiguous characters. This linear structure im-
`plies that a body of software can be decomposed in only
`one way, just as a typical document is divided into sections
`and subsections in only one way. This one decomp osition is
`dominant, and often excludes any other form of decomposi-
`tion.
`
`Examples of tyrant decompositions are classes (in object-
`oriented languages), functions (in functional languages),
`and rules (in rule-based systems). It is, therefore, impossi-
`
`809
`
`Petitioner Exhibit 1025, Page 1
`
`

`

`ble to encapsulate and manipulate, for example, features in
`the object-oriented paradigm, or objects in rule-based sys-
`tems. Thus, it is impossible to obtain the benefits of differ-
`ent decomposition dimensions throughout the software
`lifecycle. Developers of an artifact are forced to commit to
`one, dominant dimension early in the development of that
`artifact, and changing this decision can have catastrophic
`consequences for the existing artifact. What is more, arti-
`fact languages often constrain the choice of dominant di-
`mension (e.g., it must be class in object-oriented software),
`and different artifacts, such as requirements and design
`documents, might therefore be forced to use different de-
`compositions, obscuring the relationships between them.
`We believe that the tyranny of the dominant decomposition
`is the single most significant cause of the failure, to date, to
`achieve many of the expected benefits of separation of con-
`cerns.
`
`OF
`
`SEPARATION
`
`3 MULTI-DIMENSIONAL
`CONCERNS
`We use the term multi-dimensional separation of concerns
`to denote separation of concerns involving:
`• Multiple, arbitrary dimensions of concern.
`• Separation along these dimensions simultaneously; i.e., a
`developer is not forced to choose a small number (usu-
`ally one) of dominant dimensions of concern according
`to which to decompose a system at the expense of others.
`• The ability to handle new concerns, and new dimensions
`of concern, dynamically, as they arise throughout the
`software lifecycle. Concerns that span artifacts and stages
`of the software lifecycle are especially interesting, and
`challenging.
`• Overlapping and interacting concerns; it is appealing to
`think of many concerns as independent or “orthogonal,”
`but they rarely are in practice. It is essential to be able to
`support interacting concerns, while still achieving useful
`separation.
`• Concern-based integration. Separation of concerns is
`clearly of limited use if the concerns that have been sepa-
`rated cannot be integrated; as Jackson notes, “having di-
`vided to conquer, we must reunite to rule” [2].
`Full support for multi-dimensional separation of concerns
`opens the door to on-demand remodularization, allowing a
`developer to choose at any time the best modularization,
`based on any or all of the concerns, for the development
`task at hand.
`Multi-dimensional separation of concerns represents a set
`of very amb itious goals. They apply to any software devel-
`opment language or paradigm. Recent approaches [8] go
`some way towards satisfying these goals in various ways in
`various contexts. Considerable research is still required,
`however, before any approach fully achieves the goals . We
`believe that it is necessary to achieve them in order to over-
`come the problems associated with the tyranny of the
`
`
`dominant decomp osition and to realize the full potential of
`separation of concerns.
`
`4 THE WORKSHOP
`This workshop was intended to bring together researchers
`interested in pushing the frontier in this important and bur-
`geoning area, and practitioners who have experienced prob-
`lems related to inadequate separation of concerns that can
`help to guide their research. Material and links related to
`the workshop, including position papers and contact infor-
`mation for the organizers, are available at the workshop
`Web site [8].
`
`REFERENCES
`1. E. P. Andersen and T. Reenskaug. “System Design by
`Composing Structures of Interacting Objects.” Pro-
`ceedings of the European Conference on Object-
`Oriented Programming (ECOOP), 1992.
`2. M. Jackson. Some complexities in computer-based
`systems and their implications for system develop-
`ment. In Proceedings of the International Conference
`on Computer Systems and Software Engineering, pages
`344–351, 1990.
`3. Gregor Kiczales, John Lamping, Anurag Mendhekar,
`Chris Maeda, Cristina Videira Lopes, Jean-Marc Lo-
`ingtier, John Irwin. “Aspect-Oriented Programming.”
`In proceedings of the European Conference on Object-
`Oriented Programming (ECOOP), Finland. Springer-
`Verlag LNCS 1241. June 1997.
`4. Bashar Nuseibeh, Jeff Kramer, and Anthony Finkel-
`stein. “A Framework for Expressing the Relationships
`Between Multiple Views in Requirements Specifica-
`tions.” In Transactions on Software Engineering, vol.
`20, no. 10, pages 260-773, October 1994.
`
`5. David L. Parnas. “On the Criteria To Be Used in De-
`composing Systems into Modules.” Communications
`of the ACM, vol. 15, no. 12, December 1972.
`
`6. Peri Tarr, Harold Ossher, William Harrison, and Stan-
`ley M. Sutton, Jr. “N Degrees of Separation: Multi-
`Dimensional Separation of Concerns.” In Proceedings
`of the 21st International Conference on Software Engi-
`neering, pages 107–119, May 1999.
`7. C. R. Turner, A. Fuggetta, L. Lavazza and A. L. Wolf.
`Feature Engineering. In Proceedings of the 9th Inter-
`national Workshop on Software Specification and De-
`sign, 162–164, April, 1998.
`
`8. Workshop Web site: http://www.research.ibm.com/ hy-
`perspace/workshops/icse2000
`
`
`Permission to make digital or hard copies of part or all of this work for
`personal or classroom use is granted without fee provided that copies
`are not made or distributed for profit or commercial advantage and that
`copies bear this notice and the full citation on the first page. To copy
`otherwise, to republish, to post on servers, or to redistribute to lists, requires
`prior specific permission and/or a fee.
`ICSE 2000, Limerick, Ireland
`' ACM 23000 1-58113-206-9/00/06 (cid:133)$5.00
`
`810
`
`Petitioner Exhibit 1025, Page 2
`
`

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket