Using Architectural Constraints to Drive Software Component Reuse While Adding and Enhancing Features: In a Global Software Engineering Team | IEEE Conference Publication | IEEE Xplore