The ML requirements including ML data requirements are identified and specified based on the software requirements and the components of the software architecture. ML requirements are structured and prioritized. ML requirements are analyzed for correctness and verifiability. The impact of ML requirements on the ML operating environment is analyzed. Consistency and bidirectional traceability are established between ML requirements and software requirements, and between ML requirements and software architecture. The ML requirements are agreed and communicated to all affected parties.