Concern (computer science)
![]() | This article's factual accuracy is disputed. |
This article needs additional citations for verification. (December 2006) |
This article needs additional citations for verification. (July 2007) |
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 a calculation, depending on the level of conversation between developers and the program being discussed..
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: