The first book to integrate various model-based software specification approaches. The integration approach is based on a common semantic domain of abstract systems, their composition and development. Its applicability is shown through semantic interpretations and compositional comparisons of different specification approaches. These range from formal specification techniques like process calculi, Petri nets and rule-based formalisms to semiformal software modeling languages like those in the UML family.