IRMA-International.org: Creator of Knowledge
Information Resources Management Association
Advancing the Concepts & Practices of Information Resources Management in Modern Organizations

Emerging Technologies for the Evolution and Maintenance of Software Models

Emerging Technologies for the Evolution and Maintenance of Software Models
Author(s)/Editor(s): Jörg Rech (SAP Research Center Karlsruhe, Germany)and Christian Bunse (University of Applied Sciences Stralsund, Germany)
Copyright: ©2012
DOI: 10.4018/978-1-61350-438-3
ISBN13: 9781613504383
ISBN10: 1613504381
EISBN13: 9781613504390

Purchase

View Emerging Technologies for the Evolution and Maintenance of Software Models on the publisher's website for pricing and purchasing information.


Description

Model-driven software development drastically alters the software development process, which is characterized by a high degree of innovation and productivity.

Emerging Technologies for the Evolution and Maintenance of Software Models contains original academic work about current research and research projects related to all aspects affecting the maintenance, evolution, and reengineering (MER), as well as long-term management, of software models. The mission of this book is to present a comprehensive and central overview of new and emerging trends in software model research and to provide concrete results from ongoing developments in the field.



Preface

The success of software modeling languages and especially that of the Unified Modeling Language (UML) demonstrates a growing consensus in software industry that the general principles of abstraction, divide-and-conquer, and stepwise-refinement, enabled by modeling, are key in the development of large and complex software systems. This is also indicated by the recent advent of technologies such as component-based software systems, software product-lines, et cetera.

However, using technologies such as modeling, components, et cetera drastically alters the software development process and process organization. Today a software model tends to exists for a long time and will not be discarded when shipping the system. Thus, the maintenance, evolution, re-engineering, as well as reuse of software models gains importance for the practical application of model-based development. Furthermore, as technologies and tools mature, we face the challenge of shifting from short model-based sketches to complex models with a long lifespan that will likely appear in several versions of a system or even across multiple systems.

In the long-term, regarding those fine-grained software models, we have to address emerging questions regarding their maintenance, evolution, and re-engineering. This includes partitioning and maintaining of models, as well as managing their change. Systematic methods need to support the quality of software models, ways to define model libraries, techniques for impact analysis, and integration for varying domains.

Evolution & Maintenance of Software Models

In general, the term “evolution” describes the process of change of groups or elements over generations and puts a specific focus on mutations, drift, and “natural selection.” Following the ideas of Richta and Bloomfield, technology, as all elements, evolves. When used in the domain of software, and more specifically in software maintenance, evolution refers to the process of initially developing a software system and evolving/changing by various generations and reasons. Any (software) system with a significant complexity has to face changing conditions during its lifetime. Thus, modern software systems have to become flexible to “embrace” changes by either static or dynamic adaptation. Software evolution addresses this by putting the focus on adaptation and migration.

While substantial research from both industry and academia has been devoted to software evolution and maintenance, there has been only a limited number projects that studied software evolution in model-driven software development. Getting a better understanding of these concepts is important especially when putting the focus on evolution-in-the-large. The evolution of large-scale software systems is of increasing importance and often has an impact onto many technology areas. However, following Favre, regardless the technology used, recognizing the concepts of model and meta-models is important in this context.

Objective of the Book

In this book, we have collected and connected the latest views from research and practice, in order to stimulate and support the development of research in the evolution, maintenance, and re-engineering of software models. In general, modeling is a means for mastering complexity by abstraction. A scientific model can provide a way to read elements easily which have been broken down to a simpler form. Therefore science uses a significant number of methods, techniques, and theory about all kinds of specialized scientific modeling. Within software development, specific modeling languages and diagram types are used throughout all development phases to express information/knowledge or systems in a structure that is defined by a consistent set of rules. Within this book the use of models, mainly based on UML, are used to support the maintenance and evolution of software systems. This covers meta-models to define or specify language extensions and semantics (e.g., of the UML), models that describe how systems or -parts (i.e., components) can be tested, or even test themselves when reused, and models that demonstrate the structure and semantics of systems that were designed for evolution.

In summary, this book provides an in-depth coverage of important issues, concepts, trends, tools, methodologies, and technology in the field of model evolution and maintenance and is targeted to become a premier reference resource that presents original academic work as well as experience reports from industry. The book therefore supports the installment of successful project organization structures that are based on model-driven development and reuse across projects. It therefore helps to broaden the view from single projects to project organizations. By understanding and applying the knowledge contained within this book, typical risks and failures - as found in many projects - can be avoided.

Target Audience

Model-driven development and reuse has already reached the mass adoption phase of technology transfer and is widely used throughout software industry. This not only has made the topic broad, but also created a constantly growing demand for technology support regarding the evolution and maintenance of software models. Unfortunately, model maintenance is not a simple question of tools and techniques. Its basic principles and concepts have to be known by all involved developers by heart.

This book provides a comprehensive overview to those who are interested in studying and learning in the field of model evolution and maintenance. However, the book is not meant to be a textbook that supports lectures or self-studies for the inexperienced. It is aimed at researchers, project managers, and developers with a sufficient background in model-driven development who want to learn about the current research trends and latest achievements.

In order to transfer as much knowledge as possible, we gave the authors the room to explain and document their research in a larger space and in more detail than workshops, conferences, and even journals allow.

Organization of the Book / Volume Overview

The chapters of this book provide a comprehensive overview on the current state-of-the-art of model evolution and maintenance for the development of software. All chapters provide descriptions of innovative research and, if existing, practical or empirical evidence. As such, the book supports both research and practice. In detail, the book is organized as follows:
  • Section I gives an overview to the emerging technologies for the evolution and maintenance of software models, which is presented in six chapters. The approaches described include quality-driven development methods, the usage semantics and ontologies, or change impact analysis techniques in order to support MER activities.
  • Section II presents two techniques for the re-engineering or modernization of software systems using a model-driven approach.
  • Section III covers the use of testing techniques to improve the quality and development of software models as well as the model-based testing of software systems.
  • Section IV presents two interesting approaches about the deployment of MDA artifacts and the versioning of software models.

Conclusion / What was left out


A book, even of the size of the one you currently hold in your hands is not large enough to cover all aspects of model-driven software development, evolution, and maintenance. We tried to collect the current state of the art in the field of evolution and maintenance of software models, however, much has to be left out and could not be covered.

For more detail, readers may want to refer to additional material that is given by the references of single chapters. Furthermore, the editors ask all interested readers to ask for more information by contacting the authors and/or editors.

Jörg Rech
SAP Research Center Karlsruhe, Germany

Christian Bunse
University of Applied Sciences Stralsund, Germany
More...
Less...

Reviews and Testimonials

This book will provide a valuable source of information and inspiration for researchers and practitioners alike. Readers of this book will learn a lot about the interplay between the fields of software evolution and software modeling, and will get a good general picture of the current state-of-the-art. I enjoyed reading this book, and I hope you will do so too. Happy reading!

– Tom Mens, Software Engineering Lab, University of Mons, Belgium

Author's/Editor's Biography

Jörg Rech (Ed.)
Jörg Rech is a Senior Scientist and Project Manager at SAP Research Center Karlsruhe. He received his Ph.D from the University of Hildesheim, Germany and his BSc (Vordiplom) and his MSc (Diplom) in computer science from the University of Kaiserslautern, Germany. Previously, he worked for Fraunhofer IESE in Kaiserslautern and the University of Kaiserslautern. His research mainly concerns model-driven software development, quality defect diagnosis, refactoring, software analysis, intelligent assistance, semantic technologies, and knowledge management. He has published a number of papers, mainly on software engineering and knowledge management topics.

Christian Bunse (Ed.)
Christian Bunse is currently with the University of Applied Sciences Stralsund, working in the field of software systems. He received his PhD in computer science from the Technical University of Kaiserslautern, Germany and his BSc (Vordiplom) and Msc (Diplom) in Computer Science with a minor in medicine from the Technical University of Dortmund, Germany. His research interests are in the area of model-driven development, resource-aware software systems, and energy efficiency. Christian authored several international journal articles, books, book chapters, and refereed conference papers that focus on software engineering, model-based development, and quality assurance. In addition, Christian served as a PC member and organizer of international workshops and conferences. He is a member of the German Computer Society (GI) and works actively in several of the GI’s working groups.

More...
Less...

Body Bottom