Many approaches have been proposed to enhance software productivity and reliability. These approaches typically fall into three categories: the engineering approach, the formal approach, and the knowledge-based approach. The optimal gain in software productivity cannot be obtained if one relies on only one of these approaches. Thus, the integration of different approaches has also become a major area of research. No approach can be said to be perfect if it fails to satisfy the following two criteria. Firstly, a good approach should support the full life cycle of software development. Secondly, a good approach should support the development of large-scale software for real use in many application domains. Such an approach can be referred to as a five-in-one approach. The authors of this book have, for the past eight years, conducted research in knowledge-based software engineering, of which the final goal is to develop a paradigm for software engineering which not only integrates the three approaches mentioned above, but also fulfils the two criteria on which the five-in-one approach is based. Domain Modeling- Based Software Engineering: A Formal Approach explores the results of this research. Domain Modeling-Based Software Engineering: A Formal Approach will be useful to researchers of knowledge-based software engineering, students and instructors of computer science, and software engineers who are working on large-scale projects of software development and want to use knowledge-based development methods in their work.