Check out the article on
Concerns and
Cross-cutting Concerns on wikipedia. Basically, "Concerns" are the big general things that you want your program to do - the things you want to separate out into modules. "Cross-cutting Concerns" are things that don't fit cleanly into a separate module - things that are used in a lot of your modules, but which can't really be pulled into a separate module. The example that's used a lot is logging. But a lot of it depends on your specific program, and how you have chosen to modularize it.