Modular Software Design with Crosscutting Interfaces - Griswold, William G (IEEE Software)