Component Software: Beyond Object-Oriented Programming - Clemens Szyperski (Pearson Education,Inc.)