Let me try to explain to you, what to my taste is characteristic for all intelligent thinking. It is, that one is willing to study in depth an aspect of one’s subject matter in isolation for the sake of its own consistency, all the time knowing that one is occupying oneself only with one of the aspects.
We know that a program must be correct and we can study it from that viewpoint only; we also know that it should be efficient and we can study its efficiency on another day [...] But nothing is gained – on the contrary – by tackling these various aspects simul- taneously. It is what I sometimes have called “the separation of concerns” [...] A good software engineering practice is separating concerns into independent elements rather than including different concerns in the same logical abstraction. By representing crosscutting concerns as aspects, these concerns can be …show more content…
Therefore, for a hospital patient information system, the core functional concerns are the creation, editing, retrieval, and management of patient records. In addition to core concerns, large systems also have secondary functional concerns. These may involve functionality that shares information with the core concerns, or which is required so that the system can satisfy its non-functional requirements. Furthermore, other concerns can take any form—quality, performance, ease of use, life cycle, support, learning curve, etc. which are essential to the system, known as system concerns. These concerns are together called crosscutting concerns that separate them from the core