Balancing opportunities and risks in component-based software development - Boehm, Barry