DescriptionThis book focuses on metamodelling as a discipline, exploring its foundations, techniques and results. It presents a comprehensive metamodel that covers process, product and quality issues under a common framework.
Issues covered include:
- An explanation of what metamodelling is and why it is necessary in the context of software engineering.
- Basic concepts and principles of traditional metamodelling, and some existing results of this approach.
- Problems associated with traditional approaches to Metamodelling are discussed, alongside an exploration of possible solutions and alternative approaches.
- Advanced topics such as the extension of the object-oriented paradigm for metamodelling purposes or the foundations of powertype-based tool development will be studied.
- Finally, a comprehensive case study is introduced and developed, showing how to use many of the concepts explained in the previous chapters.
This book provides a comprehensive conceptual framework for metamodelling and includes case studies and exercises which will demonstrate practical uses of metamodelling. For lecturers and educators, the book provides a layered repository of contents, starting from the basics of metamodelling in the first chapters, through specific issues such as trans-layer control or non-strict approaches, up to advanced topics such as universal powertyping or extensions to the object-oriented paradigm. The book also serves as an in-depth reference guide to features and technologies to consider when developing in-house software development methods or customising and adopting off-the-shelf ones. Software tool developers and vendors can benefit from the book by finding in it a comprehensive guide to the implementation of frameworks and toolsets for computer-aided software modelling and development.
CHAPTER 1 – Software Development Methodologies and Metamodelling 1
1.1 What is a Methodology? 2
1.2 Metamodelling Needs 11
1.3 What is Metamodelling? 17
1.4 Summary 18
CHAPTER 2 – Modelling Infrastructure 21
2.1 Models and Modelling 21
2.2 Modelling Languages 26
2.3 Categorization Issues 36
2.4 The Relationship Between Models and Metamodels 42
2.5 Infrastructure 44
2.6 Summary 48
CHAPTER 3 – Using Metamodels 53
3.1 Metamodelling for Modelling Languages 53
3.2 Metamodelling for Processes 58
3.3 Metamodelling for Development Methodologies 62
3.4 Metamodelling for Model Transformation 65
3.5 Using a Metamodelling Infrastructure 68
3.6 Summary 72
CHAPTER 4 – Problems with Traditional Approaches and Current Products 75
4.1 Terminology and Culture Clashes 76
4.2 Linguistic and Ontological Metamodels 79
4.3 Process and Modelling Conflicts 83
4.4 The Quality Aspect 95
4.5 Solutions and Guidelines 104
4.6 Summary 106
CHAPTER 5 – New Approaches to Metamodelling 111
5.1 Deep Instantiation-Based Metamodelling 112
5.2 Powertype-Based Metamodelling 114
5.3 Comparison of Powertype Modelling and Potency 126
5.4 Summary 129
CHAPTER 6 – Software Engineering Metamodel for Development Methodologies 133
6.1 General Philosophy and Scope 133
6.2 High-Level View 141
6.3 Process Aspects 144
6.4 Modelling Aspects – Product Classes 148
6.5 People Aspects – Producer Classes 151
6.6 Linking Process and Product Aspects 153
6.7 Support Classes 154
6.8 Classes in ISO/IEC 24744 155
6.9 Extending the ISO/IEC 24744 Metamodel 157
6.10 Summary 161
CHAPTER 7 – Creating and Using a Methodology Generated from the Metamodel 163
7.1 Creating a Powertype-Based Methodology from its Metamodel 165
7.2 The Endeavour Domain 175
7.3 Summary 178
APPENDIX – Proposed Notation for ISO/IEC 24744 181
- A comprehensive and practical guide to metamodelling in software engineering.
- Ideal for advanced courses in software engineering, as well as being useful for researchers, industry and practitioners.
- Rather than covering the outcomes of modeling this text will examine it as a discipline, exploring its foundations, techniques and results.
- Brian Henderson-Sellers is a well-known and innovative researcher in the field.