Our world is increasingly relying on complex software and systems. In a growing number of fields such as transportation, finance, telecommunications, medical devices, they come to play a critical role and require high assurance. To achieve this, it is imperative to produce high quality requirements. The KAOS goal-oriented requirements engineering methodology provides a rich framework for requirements elicitation and management of such systems. This paper demonstrates the practical industrial application of that methodology. The non-critical parts are modelled semi-formally using a graphical language for goal-oriented requirements engineering. When and where needed (ie. for critical parts of a system) the model can be specified at formal level using a real-time temporal logic. That formal level seamlessly extends the semi-formal level which can also help hide the formality for the non-specialist. To ensure at an early stage that the right system is being built and that the requirements model is right, validation and verification tools are applied on that model. Early verification checks help to discover missing requirements, overlooked assumptions or incorrect goal refinements. State machines generation from operations provides an executable model useful for validation purposes or for deriving an initial design. Acceptance test cases and runtime behavior monitors can also be derived from the model. The process is supported by an integrated toolbox implementing the above tools by a roundtrip mapping of KAOS requirements level notations to the languages of formal technology tools such as model-checkers, SAT engines or constraint solvers. A graphical visualization framework also significantly helps validation using domain-based representations.