This tutorial teaches the participants how to use and extend the Eclipse Modeling Framework (EMF). Using a case study and numerous examples, the participants master the EMF framework as a generative tool for model driven development. The tutorial explores all aspects of EMF development, from creation of models for EMF, use of generators, Java Emitter Templates, concluding with an overview of model transformation technologies for EMF. The conceptual but also non-trivial practical skills gained in this tutorial will enable participants to effectively start developing their model driven applications. The skills apply both to practitioners who need to develop Eclipse tools, as well to researchers who will use Eclipse and EMF as a foundation for their experiments.
Languages provide a unifying and ubiquitous abstraction for systems development. Just as Booch argued that Object-Orientation is based on the things we learn in Kindergarten, we argue that Languages are a more intuitive and powerful representation than Objects. We propose that the Language abstraction is set to become the next major paradigm shift in software development.
In this tutorial we describe how developers can gain siginificant productvity increases in the way they build systems by identifying, capturing and deploying tools that support the right languages for their business domain.
The ideas presented in this tutorial are based on many years experience of contributing to language standards within the Object Management Group, and experience of applying the ideas to large scale industrial projects.
This tutorial addresses how to develop object-oriented requirements, analysis, and design models for software product lines (SPL) using the UML 2.0 notation. The emphasis throughout is on modeling commonality and variability among the family members of the product line. During requirements modeling, kernel, optional, and alternative use cases define the software functional requirements of the SPL. The feature model is developed to capture common and variable product line requirements, and how they relate to the use case model. During analysis, static models define kernel, optional, and variant classes and their relationships. In dynamic modeling, statecharts define the state dependent aspects of the SPL and interaction models describe the dynamic interaction between the objects that participate in each kernel, optional, and alternative use case. The tutorial then covers how to develop the component-based SPL architecture using the new UML 2.0 notation for structured classes and composite structure diagrams, which allows components, ports, and connectors to be depicted. The SPL architecture is built using software architectural structure and communication patterns. The tutorial is based on the speakers latest book, Designing Software Product Lines with UML: From Use Cases to Pattern-Based Software Architectures", Addison Wesley, 2005.
Aspect-oriented software development (AOSD) techniques have shown promise in dealing with broadly-scoped, crosscutting properties, i.e., the aspects. However, to date, most techniques have focused on design modelling of aspects and aspect-oriented programming technologies. Aspects, however, exist from the very early stages of problem analysis and hence, should be addressed during requirements engineering. This tutorial highlights the need to identify, model and analyse aspects during requirements engineering. It shows, with the help of practical examples, how to extend existing requirements models, e.g., use-case or viewpoint based models, with abstraction and composition support for aspects. The tutorial also describes how to analyse such models as well as the key role they play in a model-driven development (MDD) lifecycle. At the end of the tutorial, participants will have a clear understanding of:
The first major revision of the UML standard, UML 2.0, has recently been adopted by the Object Management Group. This version of the language was strongly influenced by the recent maturation of model-driven development (MDD) methods and technologies. The tutorial describes the major new features and capabilities of UML 2.0 with a full explanation of the rationale and design philosophy for each. The presenter is currently chairing the OMG team responsible for maintaining the standard.
Increasingly complex and rapidly changing requirements and technologies are making application development increasingly difficult. This tutorial explores this phenomenon, and presents the Software Factory pattern for building languages, patterns, frameworks and tools for specific domains, such as user interface construction or database design. We discuss the forces acting towards increasing industrialization of software development through delivery of knowledge and automation in context. We explore innovations, such as software product lines and model driven development, which reduce the cost of implementing the pattern, making it cost effective for narrower and more specialized domains, such as B2C application development and business process automation. We introduce the concept of the software schema, a network of viewpoints describing artifacts comprising the members of a family of software products, and we show how mappings between these viewpoints can be used to provide constraints supporting model transformation and self organizing processes. Examples and demonstrations are used throughout to illustrate the concepts.
|Last updated: July 4, 2005|