Component software : beyond object-oriented programming - Szyperski, Clemens (Addison-Wesley, 1999)