- Concern (computer science)
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. IBM uses the term concern space to describe this sectioning of concepts.
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, which allows the programmer to reduce the complexity of the system being designed. Two different concerns that intermingle in the same section of code are called "highly coupled". Sometimes the chosen module divisions do not allow for one concern to be completely separated from another, resulting in cross-cutting concerns. The various programming paradigms address the issue of cross-cutting concerns to different degrees. Data logging is a common cross-cutting concern, being used in many other parts of the program other than the particular module(s) that actually log the data. Since changes to the logging code can affect other sections, it could introduce bugs in the operation of the program.
Paradigms that specifically address the issue of concern separation:
- Object-oriented programming, describing concerns as objects
- Functional programming, describing concerns as functions
- Aspect-oriented software development, treating concerns and their interaction as constructs of their own standing
- ^ Concern Spaces at IBM
- ^ Dijkstra, Edsger W. (1982), "On the role of scientific thought", in Dijkstra, Edsger W., Selected writings on Computing: A Personal Perspective, New York, NY, USA: Springer-Verlag New York, Inc., pp. 60–66, ISBN 0-387-90652-5, http://www.cs.utexas.edu/users/EWD/transcriptions/EWD04xx/EWD447.html
- ^ Mendhekar, Anurag, Gregor Kiczales, and John Lamping. "RG: A Case-Study For Aspect-Oriented Programming" Xerox Palo Alto Research Center. Feb 1997.
Wikimedia Foundation. 2010.
Look at other dictionaries:
computer science — computer scientist. the science that deals with the theory and methods of processing information in digital computers, the design of computer hardware and software, and the applications of computers. [1970 75] * * * Study of computers, their… … Universalium
Abstraction (computer science) — In computer science, abstraction is the process by which data and programs are defined with a representation similar to its pictorial meaning as rooted in the more complex realm of human life and language with their higher need of summarization… … Wikipedia
Aspect (computer science) — In computer science, an aspect is a part of a program that cross cuts its core concerns, therefore violating its separation of concerns. For example, logging code can cross cut many modules, yet the aspect of logging should be separate from the… … Wikipedia
Inheritance (computer science) — In object oriented programming, inheritance is a way to form new classes (instances of which are called objects) using classes that have already been defined. The inheritance concept was invented in 1967 for Simula. [ [http://heim.ifi.uio.no/… … Wikipedia
Advice (computer science) — In aspect and functional programming, advice describes a class of functions which modify other functions when the latter are run; it is a certain function, method or procedure that is to be applied at a given join point of a program.The following … Wikipedia
Concern — may refer to: Worry, an emotion Concern (business), a German type of group company Concern (computer science), an abstract concept about program behavior Concern Worldwide, an Irish charity Concerned, a webcomic parodying the video game Half Life … Wikipedia
Computer-supported collaboration — (CSC) research focuses on technology that affects groups, organizations, communities and societies, e.g., voice mail and text chat. It grew from cooperative work study of supporting people s work activities and working relationships. As net… … Wikipedia
Computer ethics — is a branch of practical philosophy which deals with how computing professionals should make decisions regarding professional and social conduct. Margaret Anne Pierce, a professor in the Department of Mathematics and Computers at Georgia… … Wikipedia
Computer security compromised by hardware failure — is a branch of computer security applied to hardware. The objective of computer security includes protection of information and property from theft, corruption, or natural disaster, while allowing the information and property to remain accessible … Wikipedia
Science in the Middle Ages — Science, and particularly geometry and astronomy, was linked directly to the divine for most medieval scholars. Since God created the universe after geometric and harmonic principles, to seek these principles was therefore to seek and worship God … Wikipedia