An end-to-end approach to Design and Verify Battery Management Systems: from Requirements to Virtual Field Testing