Separating Designs from Implementations: Role-Based Software Development | IEEE Conference Publication | IEEE Xplore