311 Copyright © 2013, IGI Global. Copying or distributing in print or electronic forms without written permission of IGI Global is prohibited. Chapter 11 DOI: 10.4018/978-1-4666-2092-6.ch011 INTRODUCTION Software Engineering is different from other Engineering disciplines, such as Civil, Electrical and Chemical. Traditional Engineering disciplines are based on a collection of well-understood, fixed rules that are the same for each new system. There is a single formal system that describes the elements of each discipline and how they work together to build systems. A Software Engineer is free to design a formal system for each new application. For example, a financial application executes in terms of elements and rules that are different from a telecom system or a car engine controller. Each new formal system leads to a domain specific language (DSL) that can represent a family of related systems. Conventional software development requires that systems are implemented in a general purpose language (GPL) such as C or Java. A language engineering approach requires that the DSL is embedded in a GPL. Fortunately, even a minimal programming language has a surprising property that allows programs to be expressed as data to be Tony Clark Middlesex University, UK James Willans HSBC, UK Software Language Engineering with XMF and XModeler ABSTRACT XMF and XModeler are presented as technologies that have been specifcally designed for Software Language Engineering. XMF provides a meta-circular, extensible platform for DSL defnition based on syntax-classes that extend object-oriented classes with composable grammars. XModeler is a de- velopment environment built on top of XMF that provides an extensible client-based architecture for developing DSL tools.