The complexity, criticality and size of the software is increasing every day, and resulting in a situation where the traditional approaches to software development may not be effectively applicable. The popular approach to address such situations can be addressed using object-oriented paradigm. Hence, the software industry is shifting towards development of software using object-oriented concepts and practices at each phase of software development, and object-oriented software engineering has emerged as a separate and important discipline. This book presents the fundamentals of object-oriented software engineering and discusses the recent technological developments in the field. It focuses on object-oriented software engineering in the context of an overall effort to present object-oriented concepts, techniques and models that can be applied in software estimation, analysis, design, testing and quality improvement. The example-oriented approach followed in this book will help the readers in understanding and applying the concepts of object-oriented software engineering quickly and easily in various application domains. This book is designed for the undergraduate and postgraduate students of computer science and engineering, computer applications, software engineering, and information technology.