Jump to content

Concern (computer science)

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by StephenWeber (talk | contribs) at 17:27, 25 January 2008 (reworking article based on separation of concerns, still no citations). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
Template:Otheruses2

In computer science, a concern is a particular set of behaviors needed by a computer program, the conceptual. A concern can be as general as database interaction or as specific as performing a calculation.

Usually, these needs can be separated from each other into logical sections and allow the program to be modularized. Edsger W. Dijkstra coined the term "separation of concerns" to describe the mentality behind this modularization.

Sometimes the chosen module divisions do not allow for one concern to be completely separated from another, called cross-cutting concerns. For example, when programmers simply insert calls to cross-cutting concerns (such as logging, object persistence, etc.) everywhere in the source code where needed, the resulting program leads to a highly-coupled system. Such systems can be difficult to change. Every time programmers make even a small change to one of these cross-cutting concerns, there is the danger that the change can have wide-spread ramifications to the entire program.

Numerous programming paradigms have arisen to assist in SoC: