Supporting a Model-driven Development Process for Distributed Control Software