Component-based software engineering putting the pieces together - Heineman, George T & Council, William T (Addison-Wesley, Boston, 2001)