Due to their increasing complexity, design of software systems is not becoming easier. Furthermore, modern applications ranging from enterprise to embedded systems require very high levels of correctness and dependability assurance. The most effective means to handle complexity is separation of concerns and incremental development, and assurance of correctness requires formal modelling and formal analysis. When separation of concerns splits the model into several parts, an important issue is to ensure consistency among these parts. We propose an approach supporting separation of concerns and consistent and incremental modelling of requirements.