Foundations Of Component-Based Systems by Gary T. Leavens & Murali Sitaraman