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.