• Aucun résultat trouvé

A Context-Driven Approach for Guiding Agile Adoption: The AMQuICk Framework

N/A
N/A
Protected

Academic year: 2021

Partager "A Context-Driven Approach for Guiding Agile Adoption: The AMQuICk Framework"

Copied!
513
0
0

Texte intégral

(1)

RESEARCH OUTPUTS / RÉSULTATS DE RECHERCHE

Author(s) - Auteur(s) :

Publication date - Date de publication :

Permanent link - Permalien :

Rights / License - Licence de droit d’auteur :

Institutional Repository - Research Portal

Dépôt Institutionnel - Portail de la Recherche

researchportal.unamur.be

University of Namur

A Context-Driven Approach for Guiding Agile Adoption

Ayed, Hajer; Vanderose, Benoît; Habra, Naji

Published in:

ICSEA 2015, The Tenth International Conference on Software Engineering Advances

Publication date: 2015

Document Version Peer reviewed version Link to publication

Citation for pulished version (HARVARD):

Ayed, H, Vanderose, B & Habra, N 2015, A Context-Driven Approach for Guiding Agile Adoption: The AMQuICk Framework. in R Oberhauser, L Lavazza, H Mannaert & S Clyde (eds), ICSEA 2015, The Tenth International Conference on Software Engineering Advances. Barcelona, Spain, pp. 228 - 233, ICSEA, Barcelona, Spain, 15/11/15.

General rights

Copyright and moral rights for the publications made accessible in the public portal are retained by the authors and/or other copyright owners and it is a condition of accessing publications that users recognise and abide by the legal requirements associated with these rights. • Users may download and print one copy of any publication from the public portal for the purpose of private study or research. • You may not further distribute the material or use it for any profit-making activity or commercial gain

(2)

The Tenth International Conference on Software Engineering Advances

ISBN: 978-1-61208-438-1

November 15 - 20, 2015

Barcelona, Spain

ICSEA 2015 Editors

Roy Oberhauser, Aalen University, Germany

Luigi Lavazza, Università dell'Insubria - Varese, Italy

Herwig Mannaert, University of Antwerp, Belgium

Stephen Clyde, Utah State University, USA

(3)

Forward

The Tenth International Conference on Software Engineering Advances (ICSEA 2015), held on

November 15 - 20, 2015 in Barcelona, Spain, continued a series of events covering a broad spectrum of

software-related topics.

The conference covered fundamentals on designing, implementing, testing, validating and

maintaining various kinds of software. The tracks treated the topics from theory to practice, in terms of

methodologies, design, implementation, testing, use cases, tools, and lessons learnt. The conference

topics covered classical and advanced methodologies, open source, agile software, as well as software

deployment and software economics and education.

The conference had the following tracks:

 Advances in fundamentals for software development

 Advanced mechanisms for software development

 Advanced design tools for developing software

 Software engineering for service computing (SOA and Cloud)

 Advanced facilities for accessing software

 Software performance

 Software security, privacy, safeness

 Advances in software testing

 Specialized software advanced applications

 Web Accessibility

 Open source software

 Agile and Lean approaches in software engineering

 Software deployment and maintenance

 Software engineering techniques, metrics, and formalisms

 Software economics, adoption, and education

 Business technology

 Improving productivity in research on software engineering

Similar to the previous edition, this event continued to be very competitive in its selection process

and very well perceived by the international software engineering community. As such, it is attracting

excellent contributions and active participation from all over the world. We were very pleased to receive

a large amount of top quality contributions.

We take here the opportunity to warmly thank all the members of the ICSEA 2015 technical program

committee as well as the numerous reviewers. The creation of such a broad and high quality conference

program would not have been possible without their involvement. We also kindly thank all the authors

that dedicated much of their time and efforts to contribute to the ICSEA 2015. We truly believe that

thanks to all these efforts, the final conference program consists of top quality contributions.

(4)

help in handling the logistics and for their work that is making this professional meeting a success.

We hope the ICSEA 2015 was a successful international forum for the exchange of ideas and results

between academia and industry and to promote further progress in software engineering research. We

also hope Barcelona provided a pleasant environment during the conference and everyone saved some

time for exploring this beautiful city.

ICSEA 2015 Advisory Chairs

Herwig Mannaert, University of Antwerp, Belgium

Mira Kajko-Mattsson, Stockholm University & Royal Institute of Technology, Sweden

Luigi Lavazza, Università dell'Insubria - Varese, Italy

Roy Oberhauser, Aalen University, Germany

Elena Troubitsyna, Åbo Akademi University, Finland

Davide Tosi, Università dell'Insubria - Como, Italy

Luis Fernandez-Sanz, Universidad de Alcala, Spain

Michael Gebhart, iterate GmbH, Germany

ICSEA 2015 Research Institute Liaison Chairs

Oleksandr Panchenko, Hasso Plattner Institute for Software Systems Engineering - Potsdam, Germany

Teemu Kanstrén, VTT Technical Research Centre of Finland - Oulu, Finland

Osamu Takaki, Gunma University, Japan

Georg Buchgeher, Software Competence Center Hagenberg GmbH, Austria

ICSEA 2015 Industry/Research Chairs

Herman Hartmann, University of Groningen, The Netherlands

Hongyu Pei Breivold, ABB Corporate Research, Sweden

ICSEA 2015 Special Area Chairs

Formal Methods

Paul J. Gibson, Telecom & Management SudParis, France

Testing and Validation

Florian Barth, University of Mannheim, Germany

Web Accessibility

Adriana Martin, National University of Austral Patagonia (UNPA), Argentina

Software engineering for service computing

(5)
(6)

Committee

ICSEA Advisory Chairs

Herwig Mannaert, University of Antwerp, Belgium

Mira Kajko-Mattsson, Stockholm University & Royal Institute of Technology, Sweden

Luigi Lavazza, Università dell'Insubria - Varese, Italy

Roy Oberhauser, Aalen University, Germany

Elena Troubitsyna, Åbo Akademi University, Finland

Davide Tosi, Università dell'Insubria - Como, Italy

Luis Fernandez-Sanz, Universidad de Alcala, Spain

Michael Gebhart, iteratec GmbH, Germany

ICSEA 2015 Research Institute Liaison Chairs

Oleksandr Panchenko, Hasso Plattner Institute for Software Systems Engineering - Potsdam, Germany

Teemu Kanstrén, VTT Technical Research Centre of Finland - Oulu, Finland

Osamu Takaki, Gunma University, Japan

Georg Buchgeher, Software Competence Center Hagenberg GmbH, Austria

ICSEA 2015 Industry/Research Chairs

Herman Hartmann, University of Groningen, The Netherlands

Hongyu Pei Breivold, ABB Corporate Research, Sweden

ICSEA 2015 Special Area Chairs

Formal Methods

Paul J. Gibson, Telecom & Management SudParis, France

Testing and Validation

Florian Barth, University of Mannheim, Germany

Web Accessibility

Adriana Martin, National University of Austral Patagonia (UNPA), Argentina

Software engineering for service computing

Muthu Ramachandran, Leeds Beckett University, UK

ICSEA 2015 Publicity Chairs

(7)

Shahliza Abd Halim, Universiti of Technologi Malaysia (UTM) - Skudai, Malaysia

Mohammad Abdallah, Al-Zaytoonah University of Jordan, Jordan

Adla Abdelkader, University of Oran, Algeria

Muhammad Ovais Ahmad, University of Oulu, Finland

Moataz A. Ahmed, King Fahd University of Petroleum & Minerals – Dhahran, Saudi Arabia

Syed Nadeem Ahsan, TU-Graz, Austria

Mehmet Aksit, University of Twente, Netherlands

Ahmed Al-Moayed, Hochschule Furtwangen University, Germany

Azadeh Alebrahim, University of Duisburg-Essen, Germany

Mamdouh Alenezi, Prince Sultan University - Riyadh, Saudi Arabia

Basem Y. Alkazemi, Umm Al-Qura University, Saudi Arabia

Mohammad Alshayeb, King Fahd University of Petroleum and Minerals, Saudi Arabia

Zakarya A. Alzamil, King Saud University, Saudi Arabia

Vincenzo Ambriola, Università di Pisa, Italy

Jose Andre Dorigan, State University of Maringa, Brazil

Buzzi Andreas, Credit Suisse AG – Zürich, Switzerland

Andreas S. Andreou, Cyprus University of Technology - Limassol, Cyprus

Maria Anjum, Durham University, UK

Paulo Asterio de Castro Guerra, Tapijara Programação de Sistemas Ltda. - Lambari, Brazil

Colin Atkinson, University of Mannheim, Germany

Marco Autili, University of L’Aquila, Italy

Robert Azarbod, Oracle Corporation, USA

Thomas Baar, Hochschule für Technik und Wirtschaft (HTW) Berlin, Germany

Gilbert Babin, HEC Montréal, Canada

Muneera Bano, International Islamic University - Islamabad, Pakistan

Fernando Sérgio Barbosa, Escola Superior de Tecnologia do Instituto Politécnico de Castelo Branco,

Portugal

Jorge Barreiros, CITI/UNL: Center of Informatics and Information Technology UNL || ISEC/IPC: ISEC

-Polytechnic Institute of Coimbra, Portugal

Florian Barth, University of Mannheim, Germany

Gabriele Bavota, University of Salerno, Italy

Noureddine Belkhatir, University of Grenoble, France

Simona Bernardi, Centro Universitario de la Defensa / Academia General Militar - Zaragoza, Spain

Jorge Bernardino, Polytechnic Institute of Coimbra - ISEC-CISUC, Portugal

Ateet Bhalla, Independent Consultant, India

Celestina Bianco, Systelab Technologies - Barcelona, Spain

Christian Bird, University of California, USA

Kenneth Boness, Reading University, UK

Mina Boström Nakicenovic, Sungard Front Arena, Stockholm, Sweden

M. Boukala-Ioualalen, University of Science and Technology Houari Boumediene, Algeria

Fernando Brito e Abreu, Instituto Universitário de Lisboa (ISCTE-IUL), Portugal

Hongyu Pei Breivold, ABB Corporate Research, Sweden

Manfred Broy, Technische Universität München, Germany

(8)

Stefan Burger, Allianz Deutschland AG, Germany

David W. Bustard, University of Ulster - Coleraine, UK

Haipeng Cai, University of Notre Dame, USA

Fabio Calefato, University of Bari, Italy

Vinicius Cardoso Garcia, Centro de Informática (CIn) - Universidade Federal de Pernambuco (UFPE),

Brazil

José Carlos Metrôlho, Polytechnic Institute of Castelo Branco, Portugal

Bengt Carlsson, Blekinge Institute of Technology – Karlskrona, Sweden

Rocío Castaño Mayo, Universidad de Oviedo, Spain

Everton Cavalcante, Federal University of Rio Grande do Norte, Brazil / IRISA-UMR CNRS-Université de

Bretagne-Sud, France

Alexandros Chatzigeorgiou, University of Macedonia, Greece

Antonin Chazalet, IT&Labs, France

Yoonsik Cheon, The University of Texas at El Paso, USA

Federico Ciccozzi, Mälardalen University, Sweden

Vanea Chiprianov, University of Pau, France

Morakot Choetkiertikul, Mahidol University, Thailand

Antonio Cicchetti, Mälardalen University, Sweden

Federico Ciccozzi, Mälardalen University, Sweden

Marta Cimitile, Unitelma Sapienza University, Italy

Tony Clark, Middlesex University, UK

Stephen Clyde, Utah State University, USA

Methanias Colaço Júnior, Federal University of Sergipe, Brazil

Rebeca Cortázar, University of Deusto - Bilbao, Spain

Oliver Creighton, Siemens AG, Germany

Carlos E. Cuesta, Rey Juan Carlos University - Madrid, Spain

Beata Czarnacka-Chrobot, Warsaw School of Economics, Poland

Zhen Ru Dai, Hamburg University of Applied Science, Germany

Darren Dalcher, Hertfordshire Business School, UK

Peter De Bruyn, University of Antwerp, Belgium

Claudio de la Riva, Universidad de Oviedo - Gijon, Spain

Peter De Bruyn, University of Antwerp, Belgium

Diego Dermeval Medeiros da Cunha Matos, Federal University of Campina Grande (UFCG), Brazil

Onur Demirors, Middle East Technical University, Turkey

Steven A. Demurjian, The University of Connecticut - Storrs, USA

Vincenzo Deufemia, University of Salerno, Italy

Antinisca Di Marco, University of L'Aquila - Coppito (AQ), Italy

Themistoklis Diamantopoulos, Aristotle University of Thessaloniki, Greece

Tadashi Dohi, Hiroshima University, Japan

José André Dorigan, State University of Londrina, Brazil

Lydie du Bousquet, J. Fourier-Grenoble I University, LIG labs, France

Roland Ducournau, LIRMM - CNRS & Université Montpellier 2, France

Juan Carlos Dueñas López, Universidad Politécnica de Madrid, Spain

Slawomir Duszynski, Fraunhofer Institute for Experimental Software Engineering, Germany

Christof Ebert, Vector Consulting Services, Germany

(9)

Arabia

Vladimir Estivill-Castro, Griffith University - Nathan, Australia

Kleinner Farias, University of Vale do Rio dos Sinos (Unisinos), Brazil

Fausto Fasano, University of Molise - Pesche, Italy

Feipre Ferraz, CESAR / CIN-UFPE, Brazil

Martin Filipsky, Czech Technical University in Prague, Czech Republic

Derek Flood, Dundalk Institute of Technology (DkIT), Ireland

Diego Fontdevila, Universidad Nacional de Tres de Febrero, Argentina

Rita Francese, University of Salerno, Italy

Terrill L. Frantz, Peking University HSBC Business School, China

Jicheng Fu, University of Central Oklahoma, USA

Felipe Furtado, Recife Center of Advanced Studies and Systems / Federal University of Pernambuco,

Brazil

Cristina Gacek, City University London, UK

Matthias Galster, University of Canterbury, New Zealand

G.R. Gangadharan, IDRBT, India

Stoyan Garbatov, OutSystems, Portugal

José Garcia-Alonso, University of Extremadura, Spain

Kiev Gama, UFPE, Brazil

Antonio Javier García Sánchez, Technical University of Cartagena, Spain

José García-Fanjul, University of Oviedo, Spain

Michael Gebhart, iteratec GmbH, Germany

Sébastien Gérard, CEA LIST, France

Paul Gibson, Telecom SudParis, France

Yossi Gil, Technion - Israel Institute of Technology, Israel

Ignacio González Alonso, Infobótica RG University of Oviedo, Spain

Oleg Gorbik, Accenture - Riga Delivery Centre, Latvia

Mohamed Graiet, ISIMS, MIRACL, Monastir, Tunisia

Gregor Grambow, University of Ulm, Germany

Carmine Gravino, Università degli Studi di Salerno, Italy

George A. Gravvanis, Democritus University of Thrace, Greece

Jeff Gray, University of Alabama, USA

Sam Guinea, Politecnico di Milano, Italy

Bidyut Gupta, Southern Illinois University, USA

Ensar Gul, Marmara University - Istanbul, Turkey

Zhensheng Guo, Siemens AG - Erlangen, Germany

Nahla Haddar, University of Sfax, Tunisia

Waqas Haider Khan Bangyal, IUI Islamabad, Pakistan

Imed Hammouda, University of Gothenburg, Sweden

Jameleddine Hassine, King Fahd University of Petroleum & Minerals (KFUPM), Saudi Arabia

Shinpei Hayashi, Tokyo Institute of Technology, Japan

José R. Hilera, University of Alcala, Spain

(10)

Jun Iio, Faculty of Letters - Chuo University, Japan

Naveed Ikram, Riphah International University – Islamabad, Pakistan

Gustavo Illescas, Universidad Nacional del Centro-Tandil-Bs.As., Argentina

Claire Ingram, Newcastle University, UK

Emilio Insfran, Universitat Politècnica de València, Spain

Shareeful Islam, University of East London, U.K.

Slinger Jansen (Roijackers), Utrecht University, The Netherlands

Marko Jäntti, University of Eastern Finland, Finland

Kashif Javed, Abo Akademi University, Finland

Hermann Kaindl, TU-Wien, Austria

Mira Kajko-Mattsson, Stockholm University and Royal Institute of Technology, Sweden

Ahmed Kamel, Concordia College - Moorhead, USA

Dariusz W. Kaminski, The Open University, UK

Teemu Kanstrén, VTT Technical Research Centre of Finland - Oulu, Finland

Lucia Kapova, Karlsruhe Institute of Technology, Germany

Tatjana Kapus, University of Maribor, Slovenia

Krishna M. Kavi, University of North Texas, USA

Carlos Kavka, ESTECO SpA, Italy

Markus Kelanti, University of Oulu, Finland

Abeer Khalid, International Islamic University Islamabad, Pakistan

Foutse Khomh, École Polytechnique de Montréal, Canada

Holger Kienle, Freier Informatiker, Germany

Reinhard Klemm, Avaya Labs Research, USA

Mourad Kmimech, l’Institut Supérieur d’informatique de Mahdia (ISIMA), Tunisia

Jens Knodel, Fraunhofer IESE, Germany

William Knottenbelt, Imperial College London, UK

Takashi Kobayashi, Tokyo Institute of Technology, Japan

Radek Kocí, Brno University of Technology, Czech Republic

Christian Kop, Alpen-Adria-Universität Klagenfur, Austria

Georges Edouard Kouamou, National Advanced School of Engineering - Yaoundé, Cameroon

Segla Kpodjedo, Ecole de Technologie Supérieure - Montreal, Canada

Natalia Kryvinska, University of Vienna, Austria

Tan Hee Beng Kuan, Nanyang Technological University, Singapore

Vinay Kulkarni, Tata Consultancy Services, India

Sukhamay Kundu, Louisiana State University - Baton Rouge, USA

Eugenijus Kurilovas, Vilnius University and Vilnius Gediminas Technical University, Lithuania

Rob Kusters, Open University/Eindhoven University of Technology, Netherlands

Alla Lake, LInfo Systems, LLC - Greenbelt, USA

Einar Landre, Statiol ASA, Norway

Kevin Lano, King's College London, UK

Casper Lassenius, MIT, USA

Jannik Laval, University Bordeaux 1, France

Luigi Lavazza, Università dell'Insubria - Varese, Italy

Luka Lednicki, ABB Corporate Research, Sweden

(11)

Maria Teresa Llano Rodriguez, Goldsmiths/University of London, UK

Klaus Lochmann, Technische Universität München, Germany

Sérgio F. Lopes, University of Minho, Portugal

Juan Pablo López-Grao, University of Zaragoza, Spain

Ivan Machado, Universidade Federal da Bahia, Brazil

Ricardo J. Machado, University of Minho, Portugal

Sajjad Mahmood, King Fahd University of Petroleum and Minerals, Saudi Arabia

Charif Mahmoudi, LACL - Paris 12 University, France

Nicos Malevris, Athens University of Economics and Business, Greece

Herwig Mannaert, University of Antwerp, Belgium

Cristiano Marçal Toniolo, Faculdade Anhanguera, Brazil

Eda Marchetti, ISTI-CNR - Pisa Italy

Alexandre Marcos Lins de Vasconcelos, Federal University of Pernambuco, Brazil

Daniela Marghitu, Auburn University, USA

Adriana Martin, National University of Austral Patagonia (UNPA), Argentina

Luiz Eduardo Galvão Martins, Federal University of São Paulo, Brazil

Miriam Martínez Muñoz, Universidad de Alcalá de Henares, Spain

Jose Antonio Mateo, Aalborg University, Denmark

Fuensanta Medina-Dominguez, Universidad Carlos III Madrid, Spain

Karl Meinke, KTH Royal Institute of Technology, Sweden

Igor Melatti, Sapienza Università di Roma, Italy

Andreas Menychtas, National Technical University of Athens, Greece

Jose Merseguer, Universidad de Zaragoza, Spain

Apinporn Methawachananont, National Electronics and Computer Technology Center (NECTEC),

Thailand

Markus Meyer, University of Applied Sciences Ingolstadt, Germany

João Miguel Fernandes, Universidade do Minho - Braga, Portugal

Amir H. Moin, fortiss, An-Institut Technische Universität München, Germany

Hassan Mountassir, University of Besançon, France

Henry Muccini, University of L'Aquila, Italy

Aitor Murguzur, IK4-Ikerlan Research Center, Spain

Elena Navarro, University of Castilla-La Mancha, Spain

Mahmood Niazi, King Fahd University of Petroleum and Minerals, Saudi Arabia

Oksana Nikiforova, Riga Technical University, Latvia

Natalja Nikitina, KTH Royal Institute of Technology - Stockholm, Sweden

Mara Nikolaidou, Harokopio University of Athens, Greece

Marcellin Julius Nkenlifack, Univeristé de Dschang - Bandjoun, Cameroun

Tetsuo Noda, Shimane University, Japan

Marc Novakouski, Software Engineering Institute/Carnegie Mellon University, USA

Nicole Novielli, University of Bari, Italy

Bo Nørregaard Jørgensen, Centre for Energy Informatics - University of Southern Denmark, Denmark

Roy Oberhauser, Aalen University, Germany

(12)

Fabio Palomba, University of Salerno, Italy

Päivi Parviainen, VTT, Software Technologies Center, Finland

Aljosa Pasic, ATOS Research, Spain

Fabrizio Pastore, University of Milano - Bicocca, Italy

Asier Perallos, University of Deusto, Spain

Óscar Pereira, University of Aveiro, Portugal

Beatriz Pérez Valle, University of La Rioja, Spain

David Pheanis, Arizona State University, USA

Pasqualina Potena, University of Alcalá, Spain

Christian Prehofer, Kompetenzfeldleiter Adaptive Kommunikationssysteme / Fraunhofer-Einrichtung für

Systeme der Kommunikationstechnik ESK – München, Germnay

Abdallah Qusef, University of Salerno, Italy

Salman Rafiq, Fraunhofer Institute for Embedded Systems and Communication Technologies, Germany

Claudia Raibulet, Università degli Studi di Milano-Bicocca, Italy

Muthu Ramachandran, Leeds Beckett University, UK

Amar Ramdane-Cherif, University of Versailles, France

Raman Ramsin, Sharif University of Technology, Iran

Gianna Reggio, DIBRIS - Università di Genova, Italy

Zhilei Ren, Dalian University of Technology, China

Hassan Reza, University of North Dakota - School of Aerospace, USA

Samir Ribic, University of Sarajevo, Bosnia and Herzegovina

Elvinia Riccobene, University of Milan, Italy

Daniel Riesco, National University of San Luis, Argentina

Michele Risi, University of Salerno, Italy

Gabriela Robiolo, Universidad Austral, Argentina

Oliveto Rocco, University of Molise, Italy

Rodrigo G. C. Rocha, Federal Rural University of Pernambuco, Brazil

Daniel Rodríguez, University of Alcalá, Madrid, Spain

María Luisa Rodríguez Almendros, Universidad de Granada, Spain

Siegfried Rouvrais, Institut Mines Telecom Bretagne, France

Suman Roychoudhury, Tata Consultancy Services, India

Mercedes Ruiz Carreira, Universidad de Cádiz, Spain

Alessandra Russo, Imperial College London, UK

Mehrdad Saadatmand, Mälardalen University / Alten AB, Sweden

Krzysztof Sacha, Warsaw University of Technology, Poland

Francesca Saglietti, University of Erlangen-Nuremberg, Germany

Sébastien Salva, LIMOS-CNRS / Auvergne University / IUT d'Aubière, France

Maria-Isabel Sanchez-Segura, Carlos III University of Madrid, Spain

Luca Santillo, Agile Metrics, Italy

Gaetana Sapienza, ABB Corporate Research, Sweden

Federica Sarro, University College London, UK

Patrizia Scandurra, University of Bergamo - Dalmine, Italy

Giuseppe Scanniello, Università degli Studi della Basilicata - Potenza, Italy

Christelle Scharff, Pace University, USA

(13)

Fernando Selleri Silva, Mato Grosso State University (UNEMAT), Brazil

István Siket, University of Szeged, Hungary

Abu Bakar Md Sultan, Universiti Putra Malaysia, Malaysia

Sidra Sultana, National University of Sciences and Technology, Pakistan

Lijian Sun, Chinese Academy of Surveying & Mapping, China

Mahbubur R. Syed, Minnesota State University – Mankato, USA

Davide Taibi, Free University of Bozen, Italy

Osamu Takaki, Gunma University, Japan

Giordano Tamburrelli, Università della Svizzera Italiana (USI), Swizterland

Wasif Tanveer, University of Engineering and Technology - Lahore, Pakistan

Nebojša Taušan, University of Oulu, Finland

Pierre Tiako, Langston University, USA

Maarit Tihinen, VTT Technical Research Centre of Finland - Oulu, Finland

Massimo Tivoli, University of L'Aquila, Italy

Maria Tortorella, University of Sannnio - Benevento Italy

Davide Tosi, Università degli studi dell'Insubria - Varese, Italy

Peter Trapp, Ingolstadt, Germany

Elena Troubitsyna, Åbo Akademi University, Finland

Mariusz Trzaska, Polish-Japanese Academy of Information Technology, Poland

George A. Tsihrintzis, University of Piraeus, Greece

Masateru Tsunoda, Kinki University, Japan

Henry Tufo, University of Colorado at Boulder, USA

Javier Tuya, Universidad de Oviedo - Gijón, Spain

Andreas Ulrich, Siemens AG, Germany

Christelle Urtado, LGI2P / Ecole des Mines d'Alès - Nîmes, France

Dieter Van Nuffel, University of Antwerp, Belgium

Timo Vepsäläinen, Tampere University of Technology, Finland

Laszlo Vidacs, Hungarian Academy of Sciences, Hungary

Tanja Vos, Universidad Politécnica de Valencia, Spain

Stefan Wagner, University of Stuttgart, Germany

Hironori Washizaki, Waseda University, Japan

Stefan Wendler, Ilmenau University of Technology, Germany

Agnes Werner-Stark, University of Pannonia, Hungary

Norman Wilde, University of West Florida, USA

Andreas Winter, Carl von Ossietzky University, Germany

Victor Winter, University of Nebraska-Omaha, USA

Martin Wojtczyk, Technische Universität München, Germany & Cubotix, USA

Haibo Yu, Shanghai Jiao Tong University, China

Elisa Yumi Nakagawa, University of São Paulo (USP), Brazil

Saad Zafar, Riphah International University - Islamabad, Pakistan

Amir Zeid, American University of Kuwait, Kuwait

Michal Zemlicka, University of Finance and Administration, Czech Republic

Gefei Zhang, Celonis GmbH, Germany

(14)

For your reference, this is the text governing the copyright release for material published by IARIA.

The copyright release is a transfer of publication rights, which allows IARIA and its partners to drive the

dissemination of the published material. This allows IARIA to give articles increased visibility via

distribution, inclusion in libraries, and arrangements for submission to indexes.

I, the undersigned, declare that the article is original, and that I represent the authors of this article in

the copyright release matters. If this work has been done as work-for-hire, I have obtained all necessary

clearances to execute a copyright release. I hereby irrevocably transfer exclusive copyright for this

material to IARIA. I give IARIA permission or reproduce the work in any media format such as, but not

limited to, print, digital, or electronic. I give IARIA permission to distribute the materials without

restriction to any institutions or individuals. I give IARIA permission to submit the work for inclusion in

article repositories as IARIA sees fit.

I, the undersigned, declare that to the best of my knowledge, the article is does not contain libelous or

otherwise unlawful contents or invading the right of privacy or infringing on a proprietary right.

Following the copyright release, any circulated version of the article must bear the copyright notice and

any header and footer information that IARIA applies to the published article.

IARIA grants royalty-free permission to the authors to disseminate the work, under the above

provisions, for any academic, commercial, or industrial use. IARIA grants royalty-free permission to any

individuals or institutions to make the article available electronically, online, or in print.

IARIA acknowledges that rights to any algorithm, process, procedure, apparatus, or articles of

manufacture remain with the authors and their employers.

I, the undersigned, understand that IARIA will not be liable, in contract, tort (including, without

limitation, negligence), pre-contract or other representations (other than fraudulent

misrepresentations) or otherwise in connection with the publication of my work.

Exception to the above is made for work-for-hire performed while employed by the government. In that

case, copyright to the material remains with the said government. The rightful owners (authors and

government entity) grant unlimited and unrestricted permission to IARIA, IARIA's contractors, and

IARIA's partners to further distribute the work.

(15)

Patterns for Specifying Bidirectional Transformations in UML-RSDS

Sobhan Yassipour-Tehrani, Shekoufeh Kolahdouz-Rahimi, and Kevin Lano

1

Towards a Framework for Software Product Maturity Measurement

Mohammad Alshayeb, Ahmad Abdellatif, Sami Zahran, and Mahmood Niazi

7

An Exploratory Study on the Influence of Developers in Code Smell Introduction

Leandro Alves, Ricardo Choren, and Eduardo Alves

12

The Object Oriented Petri Net Component Model

Radek Koci and Vladimir Janousek

18

“Free” Innovation Environments: Lessons learned from the Software Factory Initiatives

Davide Taibi, Valentina Lenarduzzi, Muhammad Ovais Ahmad, Kari Liukkunen, Ilaria Lunesu, Martina Matta, Fabian Fagerholm, Ju?rgen Mu?nch, Sami Pietinen, Markku Tukiainen, Carlos Ferna?ndez-Sa?nchez, Juan Garbajosa, and Kari Systa?

25

Performance Exploring Using Model Checking A Case Study of Hard Disk Drive Cache Function

Takehiko Nagano, Kazuyoshi Serizawa, Nobukazu Yoshioka, Yasuyuki Tahara, and Akihiko Ohsuga

31

Towards a Better Understanding of Static Code Attributes for Defect Prediction

Muhammed Maruf Ozturk and Ahmet Zengin

40

Communication and Coordination Challenges Mitigation in Offshore Software Development Outsourcing Relationships: Findings from Systematic Literature Review

Rafiq Ahmad Khan, Siffat Ullah Khan, and Mahmood Niazi

45

Adapting Heterogeneous ADLs for Software Architecture Reconstruction Tools

Dung Le, Ana Nicolaescu, and Horst Lichter

52

Verifying and Constructing Abstract TLA Specifications: Application to the Verification of C programs

Amira Methni, Matthieu Lemerre, Belgacem Ben Hedia, Serge Haddad, and Kamel Barkaoui

56

Revisiting The Package-level Cohesion Approaches

Waleed Albattah and Suliman Alsuhibany

62

Towards a Technical Debt Management Framework based on Cost-Benefit Analysis

Muhammad Firdaus Bin Harun and Horst Lichter

(16)

Aiming Towards Modernization: Visualization to Assist Structural Understanding of Oracle Forms Applications

Kelly Garces, Edgar Sandoval, Rubby Casallas, Camilo Alvarez, Alejandro Salamanca, Sandra Pinto, and Fabian Melo

86

Effects of Recency and Commits Aggregation on Change Guide Method Based on Change History Analysis

Tatsuya Mori, Anders Hagward, and Takashi Kobayashi

96

Towards Flexible Business Software

Ahmed Elfatatry

102

EBGSD: Emergence-Based Generative Software Development

Mahdi Mostafazadeh, Mohammad Reza Besharati, and Raman Ramsin

108

A GPU-aware Component Model Extension for Heterogeneous Embedded Systems

Gabriel Campeanu, Jan Carlson, and Severine Sentilles

115

Soft System Stakeholder Analysis Methodology

Markus Kelanti, Jarkko Hyysalo, Jari Lehto, Samuli Saukkonen, Markku Oivo, and Pasi Kuvaja

122

Publish/Subscribe Cloud Middleware for Real-Time Disease Surveillance

Silvino Neto, Marcia Valeria, Plinio Manoel, and Felipe Ferraz

131

Requirement’s Variability in Model Generation from a Standard Document in Natural Language

Juliana Greghi, Eliane Martins, and Ariadne Carvalho

139

An Approach to Compare UML Class Diagrams Based on Semantical Features of Their Elements

Oksana Nikiforova, Konstantins Gusarovs, Ludmila Kozacenko, Dace Ahilcenoka, and Dainis Ungurs

147

Model-Based Evaluation and Simulation of Software Architecture Evolution

Peter Alexander, Ana Nicolaescu, and Horst Lichter

153

Towards Time-triggered Component-based System Models

Hela Guesmi, Belgacem Ben Hedia, Simon Bliudze, Saddek Bensalem, and Jacques Combaz

157

A User-App Interaction Reference Model for Mobility Requirements Analysis

Xiaozhou Li and Zheying Zhang

170

(17)

Model-Driven Engineering of Software Solutions for QoS Management in Real-Time DBMS

Salwa M'barek, Leila Baccouche, and Henda Ben Ghezala

192

An Approach for Reusing Software Process Elements based on Reusable Asset Specification: a Software Product Line Case Study

Karen D. R. Pacini and Rosana T. V. Braga

200

An Extensible Platform for the Treatment of Heterogeneous Data in Smart Cities

Cicero A. Silva and Gibeon S. A. Junior

207

Improving the Application of Agile Model-based Development: Experiences from Case Studies

Kevin Lano, Hessa Alfraihi, Sobhan Yassipour-Tehrani, and Howard Haughton

213

Metrics Framework for Cycle-Time Reduction in Software Value Creation - Adapting Lean Startup for Established SaaS Feature Developers

Pasi Tyrvainen, Matti Saarikallio, Timo Aho, Timo Lehtonen, and Rauno Paukeri

220

A Context-Driven Approach for Guiding Agile Adoption: The AMQuICk Framework

Hajer Ayed, Benoit Vanderose, and Naji Habra

228

Kanban in Industrial Engineering and Software Engineering: A Systematic Literature Review

Muhammad Ovais Ahmad, Jouni Markkula, Markku Oivo, and Bolaji Adeyemi

234

Efficient ETL+Q for Automatic Scalability in Big or Small Data Scenarios

Pedro Martins, Maryam Abbasi, and Pedro Furtado

242

The Role of People and Sensors in the Development of Smart Cities: A Systematic Literature Review

Italberto Figueira Dantas and Felipe Silva Ferraz

248

A Knowledge Base for Electric Vehicles in Inner-City Logistics

Volkmar Schau, Johannes Kretzschmar, Thomas Prinz, and Paul Hempel

257

Building a Service Manager For a Smart City Archicture

Gutemberg Cavalcante, Felipe Ferraz, and Guilherme Medeiros

261

Intersection of MPS.BR-E and SPICE Models Focused on Projects for the Automotive Industry

Vanessa Matias Leite, Jandira Guenka Palma, and Emmanuel da C. Gallo

(18)

An Approach for Sensor Placement to Achieve Complete Coverage and Connectivity in Sensor Networks

Monia Techini, Ridha Ejbali, and Mourad Zaied

277

Dynamic Symbolic Execution using Eclipse CDT

Andreas Ibing

280

Evaluating the Usability of Mobile Instant Messaging Apps on iOS Devices

Sergio Caro-Alvaro, Antonio Garcia-Cabot, Eva Garcia-Lopez, Luis de-Marcos, and Jose-Javier Martinez-Herraiz

286

Multi-Criteria Test Case Prioritization Using Fuzzy Analytic Hierarchy Process

Sahar Tahvili, Mehrdad Saadatmand, and Markus Bohlin

290

Analysis of Optimization Requirement of Mobile Application Testing Procedure

Manish Kumar, Kapil Kant Kamal, Bharat Varyani, and Meghana Kale

297

Property Based Verification of Evolving Petri Nets

Yasir Imtiaz Khan and Ehab Al-Shaer

301

Dynamic Evolution of Source Code Topics

Khaled Almustafa and Mamdouh Alenezi

307

Model Transformation Applications from Requirements Engineering Perspective

Sobhan Yassipour Tehrani and Kevin Lano

313

Analyzing the Evolvability of Modular Structures: a Longitudinal Normalized Systems Case Study

Philip Huysmans, Peter De Bruyn, Gilles Oorts, Jan Verelst, Dirk van der Linden, and Herwig Mannaert

319

Applying ISO 9126 Metrics to MDD Projects

Ricardo Alonso Munoz Riesle, Beatriz Marin, and Lidia Lopez

326

Evaluation of a Security Service Level Agreement

Chen-Yu Lee and Krishna M. Kavi

333

Towards Systematic Safety System Development with a Tool Supported Pattern Language

Jari Rauhamaki, Timo Vepsalainen, and Seppo Kuikka

341

An Analysis of sSven Concepts and Design Flaws in Identity Management Systems

Joao Jose Calixto das Chagas and Felipe Ferraz

(19)

Applications of Security Reference Architectures in Distributed Systems: Initial Findings of Systematic Mapping Study

Sajjad Mahmood, Muhammad Jalal Khan, and Sajid Anwer

363

Cif: A Static Decentralized Label Model (DLM) Analyzer to Assure Correct Information Flow in C

Kevin Muller, Sascha Uhrig, Michael Paulitsch, and Georg Sigl

369

Minimizing Attack Graph Data Structures

Peter Mell and Richard Harang

376

Reliability-Aware Design Specification for Allowing Reuse-Based Reliability Level Increment

Patricia Lopez, Leire Etxeberria, and Xabier Elkorobarrutia

386

Best Practices for the Design of RESTful Web Services

Pascal Giessler, Michael Gebhart, Dmitrij Sarancin, Roland Steinegger, and Sebastian Abeck

392

Criteria of Evaluation for Systems Using Sensor as a Service

Anderson Brito and Felipe Ferraz

398

Middleware Applied to Digital Preservation: A Literature Review

Eriko Brito, Paulo Cesar Abrantes, and Bruno de Freitas Barros

404

Middleware For Heterogeneous Healthcare Data Exchange: A Survey

Carlos Bezerra, Andre Araujo, Bruno Rocha, Vagner Pereira, and Felipe Ferraz

409

Teaching Robotics and Mechanisms

Daniela Marghitu and Dan . Marghitu

415

Case of Enterprise Architecture in Manufacturing Firm

Alicia Valdez, Griselda Cortes, Sergio Castaneda, Gerardo Haces, and Jose Medina

419

An Empirical Investigation on the Motivations for the Adoption of Open Source Software

Davide Taibi

426

Gamifying and Conveying Software Engineering Concepts for Secondary Education: An Edutainment Approach

Roy Oberhauser

432

(20)

Several Issues on the Model Interchange Between Model-Driven Software Development Tools

Una Ieva Zusane, Oksana Nikiforova, and Konstantins Gusarovs

451

Testing Smart Cities Through an Extensible Testbed

Guilherme Medeiros, Felipe Ferraz, and Gutemberg Cavalcante

457

Implementing the Observer Design Pattern as an Expressive Language Construct

Taher Ghaleb, Khalid Aljasser, and Musab Al-Turki

463

Supporting Tools for Managing Software Product Lines: a Systematic Mapping

Karen D. R. Pacini and Rosana T. V. Braga

470

Recovering Lost Software Design with the Help of Aspect-based Abstractions

Kiev Gama and Didier Donsez

477

Networking-based Personalized Research Environment : NePRE

Heeseok Choi, Jiyoung Park, Hyoungseop Shim, and Beomjong You

484

Decision Making and Service Oriented Architecture for Recruitment Process Using the New Standard Decision Model and Notation (DMN)

Fatima Boumahdi, Houssem Eddine Boulefrakh, and Rachid Chalal

(21)

Patterns for Specifying Bidirectional Transformations in UML-RSDS

K. Lano,

S. Yassipour-Tehrani

Dept. of Informatics King’s College London

London, UK

Email: kevin.lano@kcl.ac.uk, s.yassipour-tehrani@kcl.ac.uk

S. Kolahdouz-Rahimi

Dept of Software Engineering University of Isfahan

Isfahan, Iran

Email: sh.rahimi@eng.ui.ac.ir

Abstract—In this paper, we identify model transformation spec-ification and design patterns, which support the property of transformation bidirectionality: the ability of a single specification to be applied either as a source-to-target transformation or as a target-to-source transformation. In contrast to previous work on bidirectional transformations (bx), we identify the important role of transformation invariants in the derivation of reverse transformations, and show how patterns and invariants can be used to give a practical means of defining bx in the UML-RSDS transformation language.

Keywords — Bidirectional transformations; transformation design patterns; UML-RSDS

I. INTRODUCTION

Bidirectional transformations (bx) are considered important in a number of transformation scenarios:

Maintaining consistency between two models which may both change, for example, if a UML class dia-gram and corresponding synthesised Java code both need to be maintained consistently with each other, in order to implement round-trip engineering for model-driven development.

Where a mapping between two languages may need to be operated in either direction for different purposes, for example, to represent behavioural models as either Petri Nets or as state machines [12].

Where inter-conversion between two different repre-sentations is needed, such as two alternative formats of electronic health record [3].

Design patterns have become an important tool in software engineering, providing a catalogue of ‘best practice’ solutions to design problems in software [7]. Patterns for model transfor-mations have also been identified [14], but patterns specifically for bx have not been defined.

In this paper, we show how bx patterns can be used to obtain a practical approach for bx using the UML-RSDS language [11].

Section II defines the concept of a bx. Section V de-scribes related work. Section III dede-scribes UML-RSDS and transformation specification in UML-RSDS. Section IV gives

SL and a target language TL. R(m, n) holds for a pair of

models m of SL and n of TL when the models consist of data which corresponds under R. It should be possible to automatically derive from the definition of R both forward and reverse transformations

R→: SL× TL → TL R←: SL× TL → SL

which aim to establish R between their first (respectively second) and their result target (respectively source) models, given both existing source and target models.

Stevens [16] has identified two key conditions which bidi-rectional model transformations should satisfy:

1) Correctness: the forward and reverse transforma-tions derived from a relation R do establish R:

R(m, R→(m, n)) and R(R←(m, n), n) for each

m : SL, n : TL.

2) Hippocraticness: if source and target models already satisfy R then the forward and reverse transformations do not modify the models:

R(m, n) ⇒ R→(m, n) = n

R(m, n) ⇒ R←(m, n) = m

for each m : SL, n : TL.

The concept of a lens is a special case of a bx satisfying these properties [16].

III. BX SPECIFICATION INUML-RSDS

UML-RSDS is a hybrid model transformation language, with a formal semantics [10] and an established toolset [11]. Model transformations are specified in UML-RSDS as UML use cases, defined declaratively by three main predicates, expressed in a subset of OCL:

1) Assumptions Asm, which define when the transfor-mation is applicable.

2) Postconditions Post, which define the intended effect of the transformation at its termination. These are an ordered conjunction of OCL constraints (also termed

rules in the following) and also serve to define a

procedural implementation of the transformation. 3) Invariants Inv, which define expected invariant

(22)

prop-implementation perspective, the constraints of Post also define intended computation steps of the transformation: each com-putation step is an application of a postcondition constraint to a specific source model element or to a tuple of elements.

For example, an elementary transformation specification

τa2b on the languages S consisting of entity type A and T

consisting of entity type B (Figure 1) could be: (Asm) :

B→forAll(b | b.y ≥ 0)

(Post) :

A→forAll(a | B→exists(b | b.y = a.x→sqr()))

(Inv) :

B→forAll(b | A→exists(a | a.x = b.y→sqrt()))

The computation steps α of τa2b are applications of

B→exists(b | b.y = a.x→sqr()) to individual a : A. These

consist of creation of a new b : B instance and setting its y value to a.x∗ a.x. These steps preserve Inv: Inv ⇒ [α]Inv.

Figure 1. A to B Transformation τa2b

This example shows a typical situation, where the invariant is a dual to the postcondition, and expresses a form of min-imality condition on the target model: that the only elements of this model should be those derived from source elements by the transformation. In terms of the framework of [16], the source-target relation Rτ associated with a UML-RSDS

transformation τ is Post and Inv. As in the above example,

is not necessarily bijective. The forward direction of τ is

normally computed as stat(Post): the UML activity derived from Post when interpreted procedurally [10]. However, in order to achieve the correctness and hippocraticness properties,

Inv must also be considered: before stat(Post) is applied to the

source model m, the target model n must be cleared of elements which fail to satisfy Inv.

In the a2b example, the transformation τa2b× with postcon-dition constraints:

(CleanTarget1) :

B→forAll(b | not(b.y ≥ 0) implies

b→isDeleted())

(CleanTarget2) :

B→forAll(b | not(A→exists(a | a.x = b.y→sqrt()))

implies b→isDeleted())

is applied before τa2b, to remove all B elements which fail to

be in Ra2b with some a : A, or which fail to satisfy Asm.

e : E satisfying P”. That is, the Unique Instantiation pattern

[14] should be used to implement ‘check before enforce’ se-mantics. The forward transformation τ→is then the sequential composition τ×; τ of the cleanup transformation and the standard transformation (enhanced by Unique Instantiation).

In the reverse direction, the roles of Post and Inv are interchanged: elements of the source model which fail to satisfy Asm, or to satisfy Post with respect to some element of the target model should be deleted:

(CleanSource2) :

A→forAll(a | not(B→exists(b | b.y = a.x→sqr()))

implies a→isDeleted())

This cleanup transformation is denoted τa2b∼×. It is followed by an application of the normal inverse transformation τa2b which has postcondition constraints Inv ordered in the corresponding order to Post. Again, Unique Instantiation is used for source model element creation. The overall reverse transformation is denoted by τ← and is defined as τ∼×; τ∼.

In the case of separate-models transformations with type 1 postconditions (Constraints whose write frame is disjoint from their read frame), Inv can be derived automatically from Post by syntactic transformation, the CleanTarget and CleanSource constraints can also be derived from Post, and from Asm. This is an example of a higher-order transformation (HOT) and is implemented in the UML-RSDS tools.

In general, in the following UML-RSDS examples, τ is a separate-models transformation with source language S and target language T, and postcondition Post as an ordered conjunction of constraints of the form:

(Cn) :

Si→forAll(s | SCond(s) implies

Tj→exists(t | TCond(t) and Pi,j(s, t)))

and Inv is a conjunction of dual constraints of the form (Cn∼) :

Tj→forAll(t | TCond(t) implies

Si→exists(s | SCond(s) and P∼i,j(s, t)))

where the predicates Pi,j(s, t) define the features of t from those

of s, and are invertible: an equivalent form P∼i,j(s, t) should exist, which expresses the features of s in terms of those of t, and such that

Si→forAll(s | Ti→forAll(t | Pi,j(s, t) = P∼i,j(s, t)))

under the assumptions Asm. Table I shows some examples of inverses P∼ of predicates P. The computation of these inverses are all implemented in the UML-RSDS tools (the

reverse option for use cases). More cases are given in [11].

The transformation developer can also specify inverses for particular Cn by defining a suitable Cn∼ constraint in Inv, for example, to express that a predicate t.z = s.x + s.y should be inverted as s.x = t.z− s.y.

Each CleanTarget constraint based on Post then has the form:

(Cn×) :

(23)

TABLE I. EXAMPLES OF PREDICATE INVERSES P(s,t) P∼(s, t) Condition t.g = s.f s.f = t.g Assignable features f , g t.g = s.f→sqrt() s.f = t.g→sqr() f , g non-negative attributes t.g = K∗ s.f + L s.f = (t.g− L)/K f , g numeric attributes Numeric constants K, L, K̸= 0

t.rr = s.r→including(s.p) s.r = t.rr→front() and rr, r ordered association ends t.rr = s.r→append(s.p) s.p = t.rr→last() p 1-multiplicity end

t.rr = s.r→sort() s.r = t.rr→asSet() r set-valued, rr ordered t.rr = s.r→asSequence()

R(s, t) and Q(s, t) R∼(s, t) and Q∼(s, t)

t.rr = TRef [s.r.idS] s.r = SRef [t.rr.idT] rr association end with idS primary key of SRef , element type TRef , idT primary key of TRef r association end with

element type SRef t.g = s.r.idS s.r = SRef [t.g] idS primary key of SRef ,

Attribute g r association end with

element type SRef Tj[s.idS].rr = TRef [s.r.idSRef ] Si[t.idT].r = SRef [t.rr.idTRef ] idS, idSRef primary

r has element type SRef , keys of Si, SRef

rr has element type TRef idT, idTRef primary keys of Tj, TRef

IV. PATTERNS FORBX

In this section, we give a patterns catalogue for bx, and give pattern examples in UML-RSDS.

A. Auxiliary Correspondence Model

This pattern defines auxiliary entity types and associations which link corresponding source and target elements. These are used to record the mappings performed by a bx, and to propagate modifications from source to related target elements or vice-versa, when one model changes.

Figure 2 shows a typical schematic structure of the pattern.

Figure 2. Auxiliary Correspondence Model pattern

Benefits: The pattern is a significant aid in change-propagation between models, and helps to ensure the correct-ness of a bx. Feature value changes to a source element s can

source and target languages, and the necessary actions in creat-ing and accesscreat-ing correspondence elements adds complexity to the transformation and adds to its execution time and memory requirements.

Related Patterns: This pattern is a specialisation of the

Auxiliary Metamodel pattern of [14].

Examples: This mechanism is a key facility of Triple Graph Grammars (TGG) [1][2], and correspondence traces are maintained explicitly or implicitly by other MT languages such as QVT-R [15].

In UML-RSDS, the pattern is applied by introducing aux-iliary attributes into source and target language entity types. These attributes are primary key/identity attributes for the entity types, and are used to record source-target element corre-spondences. Target element t : Tj is considered to correspond

to source element(s) s1 : S1, ..., sn : Sn if they all have the

same primary key values: t.idTj = s1.idS1, etc. The identity attributes are String-valued in this paper. The correspondence between a source entity Si and a target entity Tj induced by

equality of identity attribute values defines a language mapping or interpretation χ of Siby Tj in the sense of [13]:

Si 7−→ Tj

with Si→collect(idSi) = Tj→collect(idTj).

The existence of identity attributes facilitates element lookup by using the Object Indexing pattern [14], which defines maps from String to each entity type, permitting elements to be retrieved by the value of their identity attribute:

Tj[v] denotes the Tj instance t with t.idTj = v if v is a

(24)

postconditions Cn of the form

Si→forAll(s | SCond(s) implies

Tj→exists(t | TCond(t) and Pi,j(s, t)))

derived constraints Cncan be defined for the incremental application of Cn to model increments (finite collections of creations, deletions and modifications of model elements).

The incremental version τof a transformation τ is defined to have postconditions formed from the constraints Cnfor each postcondition Cn of τ , and ordered according to the order of the Cn in the Post of τ . In a similar way, target-source change propagation can be defined. Change propagation is implemented in UML-RSDS by the incremental mode of use case execution.

B. Cleanup before Construct

This pattern defines a two-phase approach in both forward and reverse transformations associated with a bx with relation

R: the forward transformation R→ first removes all elements

from the target model n which fail to satisfy R for any element of the source m, and then constructs elements of n to satisfy

R with respect to m. The reverse transformation R← operates

on m in the same manner.

Benefits: The pattern is an effective way to ensure the correctness of separate-models bx.

Disadvantages: There may be efficiency problems because for each target model element, a search through the source model for possibly corresponding source element may be needed. Elements may be deleted in the Cleanup phase only to be reconstructed in the Construct phase. Auxiliary Corre-spondence Model may be an alternative strategy to avoid this problem, by enforcing that feature values should change in response to a feature value change in a corresponding element, rather than deletion of elements.

Related Patterns: This pattern is a variant of the

Construc-tion and Cleanup pattern of [14].

Examples: An example is the Composers bx [4]. Im-plicit deletion in QVT operates in a similar manner to this pattern, but can only modify models (domains) marked as

enforced [15]. In UML-RSDS, explicit cleanup rules Cn×

can be deduced from the construction rules Cn, for mapping transformations, as described in Section III above. If identity attributes are used to define the source-target correspondence, then Cn× can be simplified to:

Tj→forAll(t | TCond(t) and

Si→collect(sId)→excludes(t.tId) implies

t→isDeleted())

and

Tj→forAll(t | TCond(t) and

Si→collect(sId)→includes(t.tId) and s = Si[t.tId]

and not(SCond(s)) implies t→isDeleted())

In the case that TCond(t) and SCond(s) hold for corresponding

s, t, but Pi,j(s, t) does not hold, t should not be deleted, but

Pi,j(s, t) should be established by updating t:

For a transformation τ , the cleanup transformation τ× has the above Cn×constraints as its postconditions, in the same order as the Cn occur in the Post of τ . Note that τ→ is τ×; τ , and

τis τ×; τ incrementally applied.

C. Unique Instantiation

This pattern avoids the creation of unnecessary elements of models and helps to resolve possible choices in reverse mappings. It uses various techniques such as traces and unique keys to identify when elements should be modified and reused instead of being created. In particular, unique keys can be used to simplify checking for existing elements.

Benefits: The pattern helps to ensure the Hippocraticness property of a bx by avoiding changes to a target model if it is already in the transformation relation with the source model. It implements the principle of ‘least change’ [17].

Disadvantages: The need to test for existence of elements adds to the execution cost. This can be ameliorated by the use of the Object Indexing pattern [14] to provide fast lookup of elements by their primary key value.

Examples: The key attributes and check-before-enforce semantics of QVT-R follow this pattern, whereby new elements of source or target models are not created if there are already elements, which satisfy the specified relations of the transfor-mation [16]. The E→exists1(e | P) quantifier in UML-RSDS is used in a similar way. It is procedurally interpreted as “create a new e : E and establish P for e, unless there already exists an e : E satisfying P” [11]. For bx, the quantifier exists should also be treated in this way. If a transformation uses identity attributes (to implement Auxiliary Correspondence Model), the quantifier E→exists(e | e.eId = v and P) can be interpreted as: “if E[v] exists, apply stat(P) to this element, otherwise create a new E instance with eId = v and apply stat(P) to it”. This ensures Hippocraticness.

D. Phased Construction for bx

This pattern defines a bx τ by organising Rτ as a union of

relations RSi,Tjwhich relate elements of entities Si and Tj which

are in corresponding levels of the composition hierarchies of the source and target languages. Figure 3 shows the typical schematic structure of the pattern. At each composition level there is a 0..1 to 0..1 relation (or more specialised relation) between the corresponding source and target entity types.

(25)

Benefits: The pattern provides a modular and extensible means to structure a bx.

Examples: The UML to relational database example of [15] is a typical case, where Package and Schema correspond at the top of the source/target language hierarchies, as do Class and Table (in the absence of inheritance), and Column and

Attribute at the lowest level.

In UML-RSDS a transformation defined according to this pattern has its Post consisting of constraints Cn of the form

Si→forAll(s | SCond(s) implies

Tj→exists(t | TCond(t) and Pi,j(s, t)))

where Si and Tj are at corresponding hierarchy levels, and Inv

consists of constraints Cn∼ of the form

Tj→forAll(t | TCond(t) implies

Si→exists(s | SCond(s) and P∼i,j(s, t)))

No nested quantifiers or deletion expressions x→isDeleted() are permitted in SCond, TCond or Pi,j, and Pi,j is restricted to

be formed of invertible expressions.

Each rule creates elements t of some target entity type

Tj, and may lookup target elements produced by preceding

rules to define the values of association end features of

t: t.tr = TSub[s.sr.idSSub] for example, where TSub is lower

than Tj in the target language composition hierarchy (as in

Figure 3) and there are identity attributes in the entities to implement a source-target correspondence at each level. Both forward and reverse transformations will conform to the pattern if one direction does. The assignment to t.tr has inverse:

s.sr = SSub[t.tr.idTSub].

Two UML-RSDS bx τ : S → T, σ : T → U using this pattern can be sequentially composed to form another bx between S and U: the language T becomes auxiliary in this new transformation. The forward direction of the composed transformation is τ→; σ→, the reverse direction is σ←; τ←.

E. Entity Merging/Splitting for bx

In this variation of Phased Construction, data from multiple source model elements may be combined into single target model elements, or vice-versa, so that there is a many-one relation from one model to the other. The pattern supports the definition of such bx by including correspondence links between the multiple elements in one model which are related to one element in the other.

Benefits: The additional links enable the transformation to be correctly reversed.

Disadvantages: Additional auxiliary data needs to be added to record the links. The validity of the links between elements needs to be maintained. There may be potential conflict between different rules which update the same element. Related Patterns: This uses a variant of Auxiliary Cor-respondence Model, in which the corCor-respondence is between elements in one model, in addition to cross-model dences. The attributes used to record intra-model

correspon-that represents this class. The Pivot/Unpivot transformation of [3] is an example of Entity Splitting.

In the general case of merging/splitting, the inverse of Cn:

Si1→forAll(s1 | ...

Sin→forAll(sn | SCond(s1, ..., sn) implies

Tj1→exists(t1 | ...

Tjm→exists(tm | TCond(t1, ..., tm) and

P(s1, ..., sn, t1, ..., tm))...)) ...)

is Cn∼:

Tj1→forAll(t1 | ...

Tjm→forAll(tm | TCond(t1, ..., tm) implies

Si1→exists(s1 | ...

Sin→exists(sn | SCond(s1, ..., sn) and

P∼(s1, ..., sn, t1, ..., tm))...))...) In UML-RSDS, correspondence links between elements in the same model are maintained using additional attributes. All elements corresponding to a single element will have the same value for the auxiliary attribute (or a value derived by a 1-1 function from that value).

F. Map Objects Before Links for bx

If there are self-associations on source entity types, or other circular dependency structures in the source model, then this variation on Phased Construction for bx can be used. This pattern separates the relation between elements in target and source models from the relation between links in the models. Benefits: The specification is made more modular and extensible. For example, if a new association is added to one language, and a corresponding association to the other language, then a new relation relating the values of these features can be added to the transformation without affecting the existing relations.

Disadvantages: Some features of one entity type are treated in separate relations.

Examples: In UML-RSDS a first phase of such a transfor-mation relates source elements to target elements, then in a second phase source links are related to corresponding target links. The second phase typically has postcondition constraints of the form Si→forAll(s | Tj[s.idS].rr = TRef [s.r.idSRef ]) to

define target model association ends rr from source model association ends r, looking-up target model elements Tj[s.idS]

and TRef [s.r.idSRef ] which have already been created in a first phase. Such constraints can be inverted to define source data from target data as: Tj→forAll(t | Si[t.idT].r =

SRef [t.rr.idTRef ]). The reverse transformation also conforms

to the Map Objects Before Links pattern.

An example of this pattern is the tree to graph transforma-tion [9], Figure 4.

A first rule creates a node for each tree:

Tree→forAll(t | Node→exists(n | n.label = t.label))

(26)

Figure 4. Tree to graph metamodels

The corresponding invariant predicates, defining the reverse transformation, are:

Node→forAll(n | Tree→exists(t | t.label = n.label))

and

Edge→forAll(e |

Tree→exists(t | Tree→exists(p |

t.parent→includes(p) and

t.label = e.source.label and p.label = e.target.label)))

Inv is derived mechanically from Post using Table I, and

pro-vides an implementable reverse transformation, since stat(Inv) is defined.

V. RELATEDWORK

There are a wide range of approaches to bx [8]. Cur-rently the most advanced approaches [2][5] use constraint-based programming techniques to interpret relations P(s, t) between source and target elements as specifications in both forward and reverse directions. These techniques would be a potentially useful extension to the syntactic inverses defined in Table I, however the efficiency of constraint programming will generally be lower than the statically-computed inverses. The approach also requires the use of additional operators extend-ing standard OCL. Further techniques include the inversion of recursively-defined functions [18], which would also be useful to incorporate into the UML-RSDS approach.

In [13] we identify the role of language interpretations

χ : S → T in specifying transformations. Interpretations are

closely related to transformation inversion: at the model level a mapping Mod(χ) : Mod(T)→ Mod(S) from the set of models of T to those of S can be defined based on χ: the interpretation of an S language element E in Mod(χ)(n) for n : Mod(T) is that of χ(E) in n. Syntactically, the inverse of a transformation

τ specified by a language morphism χ can be derived from χ:

the value of a feature f of source element s of source entity

E is set by s.f = t.χ(E :: f ) in the case of an attribute, and

by s.r = SRef [t.χ(E :: r).idTRef ] in the case of a role with element type SRef .

relation R with a changed other model, should make a minimal possible such change to the model. In our approach, Post in the forward direction, and Inv in the reverse direction, express the necessary minimal conditions for the models to be related by R. The synthesised implementation of these constraints as executable code carries out the minimal changes necessary to establish Post and Inv, and hence satisfies the principle of least change.

VI. CONCLUSION

We have defined a declarative approach for bidirectional transformations based on the derivation of forward and reverse transformations from a specification of dual postcondition and invariant relations between source and target models. The approach enables a wide range of bx to be defined, including cases of many-to-one and one-to-many relations between models, in addition to bijections. We have described transformation patterns which may be used to structure bx. The derivation of reverse transformations has been implemented in the UML-RSDS tools [11].

REFERENCES

[1] A. Anjorin and A. Rensink, “SDF to Sense transformation”, TU Darmstadt, Germany, 2014.

[2] A. Anjorin, G. Varro, and A. Schurr, “Complex attribute manipulation in TGGs with constraint-based programming techniques”, BX 2012, Electronic Communications of the EASST vol. 49, 2012.

[3] M. Beine, N. Hames, J. Weber, and A. Cleve, “Bidirectional transfor-mations in database evolution: a case study ‘at scale’”, EDBT/ICDT 2014, CEUR-WS.org, 2014.

[4] J. Cheney, J. McKinna, P. Stevens, and J. Gibbons, “Towards a reposi-tory of bx examples”, EDBT/ICDT 2014, 2014, pp. 87–91.

[5] A. Cicchetti, D. Di Ruscio, R. Eramo, and A. Pierantonio, “JTL: a bidirectional and change propagating transformation language”, SLE 2010, LNCS vol. 6563, 2011, pp. 183–202.

[6] K. Czarnecki, J. Nathan Foster, Z. Hu, R. Lammel, A. Schurr, and J. Terwilliger, “Bidirectional transformations: a cross-discipline perspec-tive”, GRACE workshop, ICMT, 2009.

[7] E. Gamma, R. Helm, R. Johnson, and J. Vlissides, “Design Patterns: Elements of Reusable Object-Oriented Software”, Addison-Wesley, 1994.

[8] Z. Hu, A. Schurr, P. Stevens, and J. Terwilliger (eds.), “Report from Dagstuhl Seminar 11031”, January 2011, www.dagstuhl.de/11031. [9] D. S. Kolovos, R. F. Paige, and F. Polack, “The Epsilon Transformation

Language”, ICMT, 2008, pp. 46–60.

[10] K. Lano and S. Kolahdouz-Rahimi, “Constraint-based specification of model transformations”, Journal of Systems and Software, vol. 88, no. 2, February 2013, pp. 412–436.

[11] K. Lano, The UML-RSDS Manual,

www.dcs.kcl.ac.uk/staff/kcl/uml2web/umlrsds.pdf, 2015.

[12] K. Lano, S. Kolahdouz-Rahimi, and K. Maroukian, “Solving the Petri-Nets to Statecharts Transformation Case with UML-RSDS”, TTC 2013, EPTCS, 2013, pp. 101–105.

[13] K. Lano and S. Kolahdouz-Rahimi, “Towards more abstract specifica-tion of model transformaspecifica-tions”, ICTT 2014.

[14] K. Lano and S. Kolahdouz-Rahimi, “Model-transformation Design Patterns”, IEEE Transactions in Software Engineering, vol 40, 2014, pp. 1224–1259.

[15] OMG, MOF 2.0 Query/View/Transformation Specification v1.1, 2011. [16] P. Stevens, “Bidirectional model transformations in QVT: semantic issues and open questions”, SoSyM, vol. 9, no. 1, January 2010, pp. 7–20.

Figure

Figure 2 illustrates the PMMI structure showing the DEV  and REL stages. Figure 2 shows the main components of each  PMMI  stage
Figure 7. Cache processing outline In q8: Update system time state, system time is updated using  set lapsed time
Figure 8. Cache program state transition diagram
TABLE III PRACTICES FOR ADDRESSING GEOGRAPHICAL  DISPERSION
+7

Références

Documents relatifs

In the following, section 2.1 first presents the general process developed by Sodifrance for model-driven migration, section 2.2 discusses the automation of the process and section

This paper has three principal aims: to describe the development of a context-based course, Salters Advanced Chemistry, to draw together the research evidence on the effects of

Based on many years’ experience in research and engineering practice and dozens of collaborative industrial projects, our position is that such research has a limited impact on

In this section, to make the paper self-contained, we recall essential information related to ISO 26262-compliant development life-cycle and documentation management. The intention

A la vue des réserves gazières du Turkménistan, le pays fait figure d’eldorado, puisqu’il dispose des quatrièmes plus grandes réserves de gaz du monde. L’UE a donc

Concrete, every value-based configuration unit, such as the necessary value in- terval of a supersonic sensor for a reconfiguration option like an autonomous parking service,

Dependent variables: column (1): Total expenditures for the household in the last 12 months in thousands of CFA francs; column (2): Dummy equal to 1 if distance to the nearest

Enfin, dans l'analogisme comme chez les peuples indigènes des Andes (Descola, 2008), les intériorités comme les physicalités sont différentes entre les humains et