Cross-cutting concern

Cross-cutting concern

In computer science, cross-cutting concerns are aspects of a program which affect other concerns. These concerns often cannot be cleanly decomposed from the rest of the system in both the design and implementation, and can result in either scattering (code duplication), tangling (significant dependencies between systems), or both.

For instance, if writing an application for handling medical records, the bookkeeping and indexing of such records is a core concern, while logging a history of changes to the record database or user database, or an authentication system, would be cross-cutting concerns since they touch more parts of the program.

Contents

Background

Cross-cutting concerns are parts of a program which rely on or must affect many other parts of the system. They form the basis for the development of aspects.[1] Such cross-cutting concerns do not fit cleanly into object-oriented programming or procedural programming.[2]

Cross-cutting concerns can be directly responsible for tangling, or system inter-dependencies, within a program. Because procedural and functional language constructs consist entirely of procedure calling, there is no semantic through which two goals (the capability to be implemented and the related cross-cutting concern) can be addressed simultaneously.[3] As a result, the code addressing the cross-cutting concern must be scattered, or duplicated, across the various related locations, resulting in a loss of modularity. [2]

Aspect-oriented programming aims to encapsulate cross-cutting concerns into aspects to retain modularity. This allows for the clean isolation and reuse of code addressing the cross-cutting concern.[4] By basing designs on cross-cutting concerns, software engineering benefits are affected, including modularity and simplified maintenance.[5]

Examples

Examples of concerns that tend to be crosscutting include:

See also

References

  1. ^ U.S. Patent 6467086, p.4
  2. ^ a b Kiczales, p.1
  3. ^ Kiczales, p.6
  4. ^ Kiczales, p.2
  5. ^ Li, p.1

Bibliography

Further reading

  • Laddad, R. (2003): AspectJ in Action, Practical Aspect-Oriented Programming, Manning Publications Co.

External links


Wikimedia Foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Look at other dictionaries:

  • Cross-Cutting Concern — (CCC) ist ein Begriff der Informatik, der im Kontext des Teile und Herrsche Prinzips so genannte querschnittliche Belange einer Software bezeichnet, die deshalb nicht einfach modularisiert werden können, weil herkömmliche Modularisierungsansätze… …   Deutsch Wikipedia

  • Cross Cutting — For other uses, see Cross cut. Cross cutting Even though most classes in an object oriented programming model will perform a single, specific function, they often share common, secondary requirements with other classes. These secondary… …   Wikipedia

  • Cross cut — Cross cut, cross cut or cross cutting may refer to: Cross cutting, a film editing technique Cross cutting concern, a concept in aspect oriented software development Cross cutting cleavage, a political term A cut made by a Crosscut saw See also… …   Wikipedia

  • Concern (computer science) — For other uses, see Concern (disambiguation). In computer science, a concern is a particular set of behaviors needed by a computer program, the conceptual sections. A concern can be as general as database interaction or as specific as performing… …   Wikipedia

  • Core concern — In computer science, a core concern is one of the main concerns a program is written for. The main coding of the application is to satisfy the core concerns, such as doing the tasks as visualized. Other coding which is to document changes,… …   Wikipedia

  • Cyclo-cross bicycle — Giant TCX Cyclo cross bicycle outfitted for road riding A cyclo cross bicycle is a bicycle specifically designed for the rigors of a cyclo cross race.[1] Cyclo cross bicycles roughly resemble the racing bicycles used in road racing. Th …   Wikipedia

  • Moorhouse and Cross Fell — Coordinates: 54°43′N 2°23′W / 54.717°N 2.383°W / 54.717; 2.383 …   Wikipedia

  • Aspekt-orientierte Programmierung — Die Artikel Aspektorientierte Programmierung und Cross Cutting Concern überschneiden sich thematisch. Hilf mit, die Artikel besser voneinander abzugrenzen oder zu vereinigen. Beteilige dich dazu an der Diskussion über diese Überschneidungen.… …   Deutsch Wikipedia

  • Aspektorientierung — Die Artikel Aspektorientierte Programmierung und Cross Cutting Concern überschneiden sich thematisch. Hilf mit, die Artikel besser voneinander abzugrenzen oder zu vereinigen. Beteilige dich dazu an der Diskussion über diese Überschneidungen.… …   Deutsch Wikipedia

  • Aspect-oriented programming — (AOP) is a programming paradigm that increases modularity by allowing the separation of cross cutting concerns.Separation of concerns entails breaking down a program into distinct parts (so called concerns , cohesive areas of functionality). All… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”