The different types of stakeholder concern that may arise in a large system:
1. Functional concerns which reflect specific functionality required. The base system should implement core functionality and extensions, implemented as aspects, can implement secondary functionality.
2. Quality of service concerns related to non-functional behaviour of the system. Aspects may be used to implement cross-cutting functionality, such as a cache, which helps these requirements to be met.
3. Policy concerns relating to the overall policies of use of the system. These are inevitably cross-cutting. Aspects may be used to implement these concerns.
4. System concerns which relate to the attributes of the system as a whole. Aspects may be used to implement monitoring that checks the system attributes.
5. Organisational concerns that are related to organisational goals and priorities such as maintaining reputation. Aspects have limited usefulness in implementing this type of concern.