Software development is inherently difficult because of the complexity of the task and the high level of change that occurs during its lifecycle. Attempts to solve these problems have raised the level of abstraction dramatically. Nevertheless, recent propositions have generated much skepticism. Approaches such as visual languages or CASE tools have not fundamentally changed the state of the practice in software development, mostly due to the cost involved in producing the code generation modules. In this book, this problem is analyzed and a new extension mechanism for UML is presented. More suitable than UML Profiles to allow the creation of hierarchical domain extensions, it can be used to facilitate domain-specific model-driven development and thus reduce the total development cost. This book is both an introduction to the core concepts of metamodeling and a detailed analysis of the inherent weaknesses of the light-weight UML Profile extension mechanism. A new, hierarchical solution for UML extensions called OMEGA is proposed and explained using an example from the Web Application domain.