Separation of concerns is a fundamental software engineering principle that proposes the encapsulation of each matter of interest in a separate module. Software engineering development methods have been created with this principle in mind. However, concerns such as security, fault tolerance and usability are not handled effectively. These concerns may cut across many other concerns and therefore cannot be kept separated in different modules. They are responsible for producing tangled representations that are difficult to understand, maintain and evolve. An effective requirements engineering approach should reconcile the need to handle crosscutting concerns with the need to integrate existing technologies. Our goal is to propose a generic model to handle advanced separation of concerns at the requirements level.
Isabel Sofia Brito, Ana M. D. Moreira