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, maintain histories and other non-direct actions supportive of the core tasks are not core concerns.
Example
If writing an application for 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.
The sum of all core concerns is the business logic of a program, while all other aspects of the program are needed for proper execution, but not part of the actual business logic.
See also
- Aspect-oriented software development
- Aspect-oriented programming
- Separation of concerns
- Concern (computer science)
- Core competency