Specifying reusable concerns using DSMLs and connector interfaces