POINT OF VIEW
My point of view to use books about real-time systems is teaching: basic courses for bachelor and more advanced for master programs.The bachelor students have usually no knowledge about real-time systems, the programming skills are weak or moderate. In the master courses you have a variety between those who still have no knowledge (because master programs have students from different kinds of bachelor courses) and those who have done at least one basic course. Nearly all have had some industrial experience with software systems, but very rarely with real-time systems programming. With regard to the field of real-time systems you have also a very brought field of requirements: some companies are demanding for students which are skilled to program real pieces of hardware directly; others are using existing real-time operating systems which are the interface for programming. Still others have modeling tools which require the students to elaborate everything in formal models which then will be fed into simulators testing real hardware components. Fact is that the variety of concrete systems for real-time programming is enormous and to cope with only some of them is during a normal real-time system courses seldom manageable. Furthermore I have often experienced students which have done some programming of real hardware without a real understanding of the general concepts; the system worked but they were not able to argue about there system. Thus I developed through the last years the concept, that the students have to learn general concepts about real-time systems which they in parallel have to simulate by own programs. Besides this they can then either opt for more theory or for more concrete systems experience. With this background I have my opinions about some books about real-time systems.
SOME OTHER OPTIONS THAN BUTAZZO
A book which I think is good for an understanding of object-oriented programming but nearly not for real-time systems is Ellis, Objectifying Real-Time Systems,1994. Then there are some books written from practitioners of the field like
KLEIN et al., A Practitioner's Handbook for Real-Time Analysis, 1993; Liu, Real-Time Systems, 2000; Zöbel,Echtzeitsysteme. Grundlagen der Planung, 2008. They are very rich with details, but I am missing there a clear structure bringing forward the the theoretical core of real-time systems. Similar to these books but with some differences is Laplante, REAL-TIME SYSTEMS DESIGN AND ANALYSIS, 2004. The remarkable point of this book is that he explains largely and in detail the overall engineering process within which real-time systems development has to be placed. Besides this Laplante is touching most fields of real-time systems but often only at the 'surface'. More theoretical minded with a broad scope is KOPETZ, Real-Time Systems. Design Principles for Distributed Embedded Applications, 1997, 5th ed. 2001. But although it is written from a theoretical point of view it is written in plain text, without formulas, algorithms and proofs. Thus you can use it only as a worthful pointer to important topics. clearly theoretical minded stressing scheduling theory is COTTET et al., Scheduling in Real-Time Systems, 2002. This book is for me nearly like the book of Butazzo. Some others perhaps will give them there preference.
WHAT COUNTS FOR
What the book of Butazzo clearly has is a very clear structure, a systematic account, presenting the main points, giving all references to important papers, giving at least the main lines of proofs, but nevertheless the chapters are short and not overloaded with confusing details.
WHAT IT CAN NOT
This is not a book explaining the real programming of real systems. This would be a special topic which --in my view-- has to be separated from an introduction into real-time systems theory.
And, besides all the good points with regard to the exposition of the theoretical points of real-time systems the book of Butazzo is not yet a complete theory of real-time systems. Looking to the variety of concrete systems it seems at the first glance impossible to write a 'complete' theory of real-time systems, but I think, this is not impossible. But Butazzo (and eventually Cottet et al.) can be a good starting point for this.