Component-based software engineering : putting the pieces together - Heineman, George T. (Addison-Wesley, 2001)