Reuse-Based Software Engineering: Techniques, Organizations, and Controls