Component-based software engineering: technologies, development frameworks, and quality assurance schemes