100% found this document useful (1 vote)
22 views

Agile Processes in Software Engineering and Extreme Programming 16th International Conference XP 2015 Helsinki Finland May 25 29 2015 Proceedings 1st Edition Casper Lassenius download

The document is the proceedings of the 16th International Conference on Agile Software Development (XP 2015) held in Helsinki, Finland from May 25-29, 2015. It includes a collection of research papers, experience reports, and abstracts from various sessions that highlight advancements and discussions in agile software development practices. The conference aimed to bridge the gap between academia and industry, focusing on the theme of continuous value delivery in software development.

Uploaded by

azeezandowtp
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
22 views

Agile Processes in Software Engineering and Extreme Programming 16th International Conference XP 2015 Helsinki Finland May 25 29 2015 Proceedings 1st Edition Casper Lassenius download

The document is the proceedings of the 16th International Conference on Agile Software Development (XP 2015) held in Helsinki, Finland from May 25-29, 2015. It includes a collection of research papers, experience reports, and abstracts from various sessions that highlight advancements and discussions in agile software development practices. The conference aimed to bridge the gap between academia and industry, focusing on the theme of continuous value delivery in software development.

Uploaded by

azeezandowtp
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 59

Agile Processes in Software Engineering and

Extreme Programming 16th International


Conference XP 2015 Helsinki Finland May 25 29
2015 Proceedings 1st Edition Casper Lassenius
download
https://textbookfull.com/product/agile-processes-in-software-
engineering-and-extreme-programming-16th-international-
conference-xp-2015-helsinki-finland-
may-25-29-2015-proceedings-1st-edition-casper-lassenius/

Download more ebook from https://textbookfull.com


We believe these products will be a great fit for you. Click
the link to download now, or visit textbookfull.com
to discover even more!

Agile Processes in Software Engineering and Extreme


Programming Workshops XP 2019 Workshops Montréal QC
Canada May 21 25 2019 Proceedings Rashina Hoda

https://textbookfull.com/product/agile-processes-in-software-
engineering-and-extreme-programming-workshops-xp-2019-workshops-
montreal-qc-canada-may-21-25-2019-proceedings-rashina-hoda/

Agile Processes in Software Engineering and Extreme


Programming 17th International Conference XP 2016
Edinburgh UK May 24 27 2016 Proceedings 1st Edition
Helen Sharp
https://textbookfull.com/product/agile-processes-in-software-
engineering-and-extreme-programming-17th-international-
conference-xp-2016-edinburgh-uk-may-24-27-2016-proceedings-1st-
edition-helen-sharp/

Agile Processes in Software Engineering and Extreme


Programming 18th International Conference XP 2017
Cologne Germany May 22 26 2017 Proceedings 1st Edition
Hubert Baumeister
https://textbookfull.com/product/agile-processes-in-software-
engineering-and-extreme-programming-18th-international-
conference-xp-2017-cologne-germany-
may-22-26-2017-proceedings-1st-edition-hubert-baumeister/

Agile Processes in Software Engineering and Extreme


Programming: 21st International Conference on Agile
Software Development, XP 2020, Copenhagen, Denmark,
June 8–12, 2020, Proceedings Viktoria Stray
https://textbookfull.com/product/agile-processes-in-software-
engineering-and-extreme-programming-21st-international-
conference-on-agile-software-development-xp-2020-copenhagen-
Agile Processes in Software Engineering and Extreme
Programming Juan Garbajosa

https://textbookfull.com/product/agile-processes-in-software-
engineering-and-extreme-programming-juan-garbajosa/

Agile Processes in Software Engineering and Extreme


Programming – Workshops: XP 2020 Workshops, Copenhagen,
Denmark, June 8–12, 2020, Revised Selected Papers Maria
Paasivaara
https://textbookfull.com/product/agile-processes-in-software-
engineering-and-extreme-programming-workshops-xp-2020-workshops-
copenhagen-denmark-june-8-12-2020-revised-selected-papers-maria-
paasivaara/

Analytical and Stochastic Modelling Techniques and


Applications 22nd International Conference ASMTA 2015
Albena Bulgaria May 26 29 2015 Proceedings 1st Edition
Marco Gribaudo
https://textbookfull.com/product/analytical-and-stochastic-
modelling-techniques-and-applications-22nd-international-
conference-asmta-2015-albena-bulgaria-
may-26-29-2015-proceedings-1st-edition-marco-gribaudo/

High Performance Computing in Science and Engineering


Second International Conference HPCSE 2015 Solá■ Czech
Republic May 25 28 2015 Revised Selected Papers Tomas
Kozubek
https://textbookfull.com/product/high-performance-computing-in-
science-and-engineering-second-international-conference-
hpcse-2015-solan-czech-republic-may-25-28-2015-revised-selected-
papers-tomas-kozubek/

End User Development 5th International Symposium IS EUD


2015 Madrid Spain May 26 29 2015 Proceedings 1st
Edition Paloma Díaz

https://textbookfull.com/product/end-user-development-5th-
international-symposium-is-eud-2015-madrid-spain-
may-26-29-2015-proceedings-1st-edition-paloma-diaz/
Casper Lassenius
Torgeir Dingsøyr
Maria Paasivaara (Eds.)

Agile Processes,
LNBIP 212

in Software Engineering,
and Extreme Programming
16th International Conference, XP 2015
Helsinki, Finland, May 25–29, 2015
Proceedings

123
Lecture Notes
in Business Information Processing 212

Series Editors
Wil van der Aalst
Eindhoven Technical University, Eindhoven, The Netherlands
John Mylopoulos
University of Trento, Povo, Italy
Michael Rosemann
Queensland University of Technology, Brisbane, QLD, Australia
Michael J. Shaw
University of Illinois, Urbana-Champaign, IL, USA
Clemens Szyperski
Microsoft Research, Redmond, WA, USA
More information about this series at http://www.springer.com/series/7911
Casper Lassenius · Torgeir Dingsøyr
Maria Paasivaara (Eds.)

Agile Processes,
in Software Engineering,
and Extreme Programming
16th International Conference, XP 2015
Helsinki, Finland, May 25–29, 2015
Proceedings

ABC
Editors
Casper Lassenius Maria Paasivaara
Aalto University Aalto University
Espoo Espoo
Finland Finland

Torgeir Dingsøyr
SINTEF
Trondheim
Norway

ISSN 1865-1348 ISSN 1865-1356 (electronic)


Lecture Notes in Business Information Processing
ISBN 978-3-319-18611-5 ISBN 978-3-319-18612-2 (eBook)
DOI 10.1007/978-3-319-18612-2

Library of Congress Control Number: 2015938434

Springer Cham Heidelberg New York Dordrecht London


c Springer International Publishing Switzerland 2015
This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the
material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation,
broadcasting, reproduction on microfilms or in any other physical way, and transmission or information stor-
age and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now
known or hereafter developed.
The use of general descriptive names, registered names, trademarks, service marks, etc. in this publication
does not imply, even in the absence of a specific statement, that such names are exempt from the relevant
protective laws and regulations and therefore free for general use.
The publisher, the authors and the editors are safe to assume that the advice and information in this book
are believed to be true and accurate at the date of publication. Neither the publisher nor the authors or the
editors give a warranty, express or implied, with respect to the material contained herein or for any errors or
omissions that may have been made.

Printed on acid-free paper

Springer International Publishing AG Switzerland is part of Springer Science+Business Media


(www.springer.com)
Preface

This volume contains the papers presented at XP 2015: the 16th International Con-
ference on Agile Software Development held during May 25–29, 2015 in Helsinki,
Finland.
While agile development already has become mainstream in industry, it is a field
that is constantly evolving and that continues to spur an enormous interest both in in-
dustry and academia. The XP conference series has, and continues to play, an important
role in bridging the academic and practitioner communities, providing a forum for both
formal and informal sharing and development of ideas, experiences, and opinions.
The theme of XP 2015 — Delivering value: Moving from Cyclic to Continuous
Value Delivery reflects the modern trend toward organizations that are simultaneously
very efficient and flexible in software development and delivery.
The XP 2015 program includes research papers, experience reports, industry and
practice sessions, scientific workshops, panels, lightning talks, technical demos, posters,
and a doctoral symposium. In total over all submission types, we received almost 300
proposals, showing that the XP community indeed is vibrant and active.
This proceedings volume contains the full research papers, short research papers,
and experience reports. In addition, we included the abstracts of select posters, extended
abstracts of the PhD symposium presentations, as well as the position statements of the
panel participants.
All of the submitted research papers went through a rigorous peer-review process.
Each paper was reviewed by three members of the Program Committee. We received
44 research papers, out of which 15 (34%) were accepted as full papers and 7 as short
papers.
We received 45 experience report proposals, out of which 11 (24%) were accepted
following the review process. Each accepted experience report proposal received the
guidance of an experienced shepherd in writing the final paper.
We would like to extend our thank you to all the people who have contributed to
XP 2015 and helped make it a success: the authors, the sponsors, the reviewers, the
volunteers, and the chairs. We hope you enjoy the conference!

March 2015 Casper Lassenius


Torgeir Dingsøyr
Maria Paasivaara
Organization

XP 2015 was organized by the Department of Computer Science, Aalto University,


Finland.

Organizing Committee
General Chair
Maria Paasivaara Aalto University, Finland

Academic Chairs
Torgeir Dingsøyr SINTEF, Norway
Casper Lassenius Aalto University, Finland

Scientific Workshops
Daniela S. Cruzes SINTEF, Norway
Casper Lassenius Aalto University, Finland

Industry and Practice Track


Jutta Eckstein IT Communications, Germany
Diana Larsen FutureWorks Consulting, USA

Experience Reports
Rebecca Wirfs-Brock Wirfs-Brock Associates, USA
Ken Power Cisco Systems, Ireland

Executives and Managers Track


Jaana Nyfjord Swedsoft SICS, Sweden
Henri Kivioja Ericsson, Finland
Paul D. Tolchinsky Performance Dev. Partners, USA

Bridging Research and Practice


Morten Elvang DELTA, Denmark
Nils Brede Moe SINTEF, Norway
Jaana Nyfjord Swedsoft SICS, Sweden
VIII Organization

Technical Demos
Kari Systä Tampere University of Technology, Finland

Short Talks and Lightning Talks


Johanna Hunt Aptivate, UK
Jussi Markula Prominda Revolution, Finland

Panels
Steve Fraser Independent Consultant, USA

Open Space
Charlie Poole Independent Consultant, USA

Doctoral Symposium
Peggy Gregory University of Central Lancashire, UK
Helen Sharp The Open University, UK

Posters
Andrey Maglyas Lappeenranta University of Technology, Finland
Ville T. Heikkilä Aalto University, Finland

Student Volunteer Coordination


Ville T. Heikkilä Aalto University, Finland
Pilar Rodriguez University of Oulu, Finland

Local Organization
Local Organizing Chair
Juha Itkonen Aalto University, Finland

Event Manager
Mary-Ann Wikström Aalto University, Finland

Web Masters
Ville T. Heikkilä Aalto University, Finland
Eero Laukkanen Aalto University, Finland
Organization IX

Program Committee (Research Papers)


Adolph, Steve Development Knowledge, Canada
Ali Babar, Muhammad The University of Adelaide, Australia
Aoyama, Mikio Nanzan University, Japan
Counsell, Steve Brunel University, UK
Desouza, Kevin Arizona State University, USA
Dorairaj, Siva Software Education, New Zealand
Dybå, Tore SINTEF, Norway
Ebert, Christof Vector Consulting
Erdogmus, Hakan Carnegie Mellon University Silicon Valley, USA
Garbajosa, Juan Universidad Politecnica de Madrid / Technical
University of Madrid (UPM), Spain
Goldman, Alfredo University of São Paulo - USP, Brazil
Greer, Des Queens University Belfast, UK
Hoda, Rashina The University of Auckland, New Zealand
Holmström Olsson, Helena Malmö University, Sweden
Iivari, Juhani University of Oulu, Finland
Kruchten, Philippe University of British Columbia, Canada
Madeyski, Lech Wroclaw University of Technology, Poland
Marchesi, Michele DIEE - University of Cagliari, Italy
Martin, Angela The University of Waikato, New Zealand
Mishra, Alok Atilim University, Turkey
Moe, Nils Brede SINTEF, Norway
Nerur, Sridhar University of Texas at Arlington, USA
Noble, James Victoria University of Wellington, New Zealand
Nyfjord, Jaana Swedsoft, Sweden
Prechelt, Lutz Freie Universitaet Berlin, Germany
Pries-Heje, Jan Roskilde University, Denmark
Prikladnicki, Rafael PUCRS, Brazil
Rodriguez, Pilar University of Oulu, Finland
Rolland, Knut The Norwegian School of IT, Norway
Rossi, Matti Aalto University School of Economics, Finland
Rumpe, Bernhard RWTH Aachen University, Germany
Schneider, Kurt Leibniz Universität Hannover, Germany
Sharp, Helen The Open University, UK
Sjøberg, Dag Department of Informatics, University of Oslo,
Norway
Tonelli, Roberto University of Cagliari, Italy
Van Solingen, Rini Delft University of Technology, Netherlands
Van Vliet, Hans VU University Amsterdam, Netherlands
Vidgen, Richard University of Hull, UK
Wang, Xiaofeng Free University of Bozen-Bolzano, Italy
Yague, Agustin Universidad Politecnica de Madrid, Spain
X Organization

Reviewers and Shepherds (Experience Reports)


Heikkilä, V. Wirfs-Brock, R. Itkonen, J.
Lassenius, C. Davies, R. Lehtinen, T.
Paasivaara, M. Eckstein, J. Soares Cruzes, D.
Power, K. Freudenberg, S.

Reviewers (Industry and Practice)

Eckstein, J. Freudenberg, S. North, D.


Larsen, D. Garbajosa, J. Norton, M.
Andrea, J. Hassa, C. Peraire, C.
Asproni, G. Holyer, S. Provaglio, A.
Bache, E. Hunt, J. Putman, D.
Baldauf, C. Juncu, O. Rose, S.
Bless, M. Kua, P. Sharp, H.
Dorairaj, S. Laing, S. Trincardi, M.
Dubinsky, Y. Light, A. Turhan, B.
Favaro, J. Little, T. Wild, W.
Freeman, S. Moe, N.
Organization XI

Sponsoring Institutions
Platinum Sponsors
Aalto University, Finland
Ericsson, Finland
Reaktor, Finland

Gold Sponsors

Nitor, Finland
Nokia, Finland
Omenia, Finland

Silver Sponsor
Agilefant, Finland
Contents

Full Research Papers

A Duplicated Code Refactoring Advisor . . . . . . . . . . . . . . . . . . . . . . . . . . 3


Francesca Arcelli Fontana, Marco Zanoni, and Francesco Zanoni

Expectations and Challenges from Scaling Agile in Mechatronics-Driven


Companies – A Comparative Case Study. . . . . . . . . . . . . . . . . . . . . . . . . . 15
Christian Berger and Ulrik Eklund

An Industrial Case Study on Test Cases as Requirements . . . . . . . . . . . . . . 27


Elizabeth Bjarnason, Michael Unterkalmsteiner, Emelie Engström,
and Markus Borg

What Do Practitioners Vary in Using Scrum? . . . . . . . . . . . . . . . . . . . . . . 40


Philipp Diebold, Jan-Peter Ostberg, Stefan Wagner, and Ulrich Zendler

Key Challenges in Early-Stage Software Startups . . . . . . . . . . . . . . . . . . . . 52


Carmine Giardino, Sohaib Shahid Bajwa, Xiaofeng Wang,
and Pekka Abrahamsson

Agile Challenges in Practice: A Thematic Analysis . . . . . . . . . . . . . . . . . . 64


Peggy Gregory, Leonor Barroca, Katie Taylor, Dina Salah,
and Helen Sharp

UX Work in Startups: Current Practices and Future Needs . . . . . . . . . . . . . 81


Laura Hokkanen and Kaisa Väänänen-Vainio-Mattila

Why the Development Outcome Does Not Meet the Product


Owners’ Expectations? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Timo O.A. Lehtinen, Risto Virtanen, Ville T. Heikkilä, and Juha Itkonen

Functional Size Measures and Effort Estimation in Agile Development:


A Replicated Study . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Valentina Lenarduzzi, Ilaria Lunesu, Martina Matta, and Davide Taibi

Software Development as an Experiment System: A Qualitative Survey


on the State of the Practice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Eveliina Lindgren and Jürgen Münch

Would You Mind Fixing This Issue? An Empirical Analysis of Politeness


and Attractiveness in Software Developed Using Agile Boards . . . . . . . . . . 129
Marco Ortu, Giuseppe Destefanis, Mohamad Kassab, Steve Counsell,
Michele Marchesi, and Roberto Tonelli
XIV Contents

Coordinating Expertise Outside Agile Teams . . . . . . . . . . . . . . . . . . . . . . . 141


Mawarny Md. Rejab, James Noble, and Stuart Marshall

Transitioning Towards Continuous Delivery in the B2B Domain:


A Case Study . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Olli Rissanen and Jürgen Münch

DevOps: A Definition and Perceived Adoption Impediments . . . . . . . . . . . . 166


Jens Smeds, Kristian Nybom, and Ivan Porres

Scaling Kanban for Software Development in a Multisite Organization:


Challenges and Potential Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
Nirnaya Tripathi, Pilar Rodríguez, Muhammad Ovais Ahmad,
and Markku Oivo

Short Papers

The Two Faces of Uncertainty: Threat vs Opportunity Management


in Agile Software Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
Denniz Dönmez and Gudela Grote

Management Ambidexterity: A Clue for Maturing in Agile


Software Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
Rafaela Mantovani Fontana, Victor Meyer Jr., Sheila Reinehr,
and Andreia Malucelli

Towards Predictable B2B Customer Satisfaction and Experience


Management with Continuous Improvement Assets and Rich Feedback . . . . 205
Petri Kettunen, Mikko Ämmälä, and Jari Partanen

Dimensions of DevOps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212


Lucy Ellen Lwakatare, Pasi Kuvaja, and Markku Oivo

Towards Introducing Agile Architecting in Large Companies:


The CAFFEA Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
Antonio Martini, Lars Pareto, and Jan Bosch

Optimal Refactoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224


Susanne Siverland, Roger C.S. Wernersson, and Charlotte Sennersten

Agile and the Global Software Leaders: A Perfect Match? . . . . . . . . . . . . . 230


Stavros Stavru and Sylvia Ilieva

Experience Reports

High Level Test Driven Development – Shift Left . . . . . . . . . . . . . . . . . . . 239


Kristian Bjerke-Gulstuen, Emil Wiik Larsen, Tor Stålhane,
and Torgeir Dingsøyr
Contents XV

Shorter Feedback Loops By Means of Continuous Deployment . . . . . . . . . . 248


Arjan Claassen and Laurens Boekhorst

On a Different Level of Team . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254


Johanna Hunt

Applying Agile and Lean Elements to Accelerate Innovation Culture


in a Large Organization – Key Learnings After One Year Journey . . . . . . . . 262
Jari Partanen and Mari Matinlassi

It Has Been a Long Journey, and It Is Not Over Yet . . . . . . . . . . . . . . . . . 270


Avraham Poupko

Organizational Culture Aspects of an Agile Transformation. . . . . . . . . . . . . 279


Shlomi Rosenberg

The Guide Board, an Artefact to Support the Continuous Improvement


of an Agile Team’s Culture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
Matti Schneider

Testing Modtalk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294


Josh Fridstrom, Adam Jacques, Kurt Kilpela, and John Sarkela

Building Learning Organization Through Peer Hands-on Support


Community and Gamification. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
Tomáš Tureček, Martin Chmelař, Roman Šmiřák, and Jan Krchňák

From Sprints to Lean Flow: Management Strategies


for Agile Improvement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
Marcelo Walter, Ramon Tramontini, Rafaela Mantovani Fontana,
Sheila Reinehr, and Andreia Malucelli

Mob Programming – What Works, What Doesn’t. . . . . . . . . . . . . . . . . . . . 319


Alexander Wilson

Panels

Continuous Delivery – From Concept to Product: Trade-offs in Effectiveness


and Efficiency? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
Steven Fraser, Ismo Aro, Henri Kivioja, Erik Lundh, Ken Power,
Linda Rising, Werner Wild, and Rebecca Wirfs-Brock

Learning from Disaster and Experience: Evolving


Software Professionalism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
Steven Fraser, Janne Järvinen, Erik Lundh, Ken Power, Linda Rising,
Werner Wild, and Rebecca Wirfs-Brock
XVI Contents

Practical Applications of the Agile Fluency Model . . . . . . . . . . . . . . . . . . . 339


Diana Larsen, Steve Holyer, Jutta Eckstein, Antti Kirjavainen,
and Olli Sorje

Doctoral Symposium Abstracts

Improving Processes by Integrating Agile Practices . . . . . . . . . . . . . . . . . . 345


Philipp Diebold

Assurance Case Integration with An Agile Development Method . . . . . . . . . 347


Osama Doss and Tim Kelly

Data-Driven Decision-Making in Product R&D . . . . . . . . . . . . . . . . . . . . . 350


Aleksander Fabijan, Helena Holmström Olsson, and Jan Bosch

Combining Kanban and FOSS: Can It Work? . . . . . . . . . . . . . . . . . . . . . . 352


Annemarie Harzl and Wolfgang Slany

Paradigm Shift from Large Releases to Continuous Deployment


of Software: Designing a Reference Model for Continuous Deployment . . . . 354
Teemu Karvonen, Markku Oivo, and Pasi Kuvaja

How to Adopt Continuous Delivery? A Research Proposal . . . . . . . . . . . . . 356


Eero Laukkanen and Casper Lassenius

Posters

Teaching Scrum – What We Did, What We Will Do and What Impedes Us . . . . 361
Emil Alégroth, Håkan Burden, Morgan Ericsson, Imed Hammouda,
Eric Knauss, and Jan-Philipp Steghöfer

Agility in Dynamic Environments: A Case Study for Agile Development . . . 363


Simon Brooke and Dina Allswang

Introducing SafeScrum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365


Geir Kjetil Hanssen, Ingar Kulbrandstad, and Børge Haugset

Revisit – A Systematic Approach to Continuously Improve Agile Practices


in Large-scale and Fast-expanding R&D Center . . . . . . . . . . . . . . . . . . . . . 367
Peng Liu and Yuedong Zhao

Applying Randori-Style Kata and Agile Practices


to an Undergraduate-Level Programming Class . . . . . . . . . . . . . . . . . . . . . 369
Chitsutha Soomlek
Contents XVII

Continuous Strategy Process in the Context of Agile and Lean


Software Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
Tanja Suomalainen and Jenni Myllykoski

Automatizing Android Unit and User Interface Testing . . . . . . . . . . . . . . . . 373


Juha-Matti Vanhatupa and Mikko Heikkinen

Author Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375


Full Research Papers
A Duplicated Code Refactoring Advisor

Francesca Arcelli Fontana, Marco Zanoni(B) , and Francesco Zanoni

University of Milano-Bicocca, Viale Sarca, 336, 20126, Milano, Italy


{arcelli,marco.zanoni}@disco.unimib.it,
[email protected]

Abstract. Refactoring is one of the key practices in Extreme Program-


ming and other agile methods. Duplicated code is one of the most perva-
sive and pungent smells to remove from source code through refactoring.
Duplicated code has been largely studied in the literature, and differ-
ent types of duplications, or “clones”, have been identified. Some studies
analyzed in details the problems caused by clones in the code, others
outlined also the difficulties in removing clones, and the cases in which
it could be better not removing them. The refactoring cost for removing
clones can be very high, also due to the different choices on the possi-
ble refactoring steps. In this paper, we describe our approach and tool
developed with the aim to suggest the best refactorings to remove clones
in Java code. Our approach is based on the classification of the clones in
terms of their location in a class hierarchy, and allows to choose among
a restricted set of refactorings, which are then evaluated using multiple
criteria. We provide a validation of the effectiveness of the approach.

Keywords: Clone refactoring · Refactoring advisor · Empirical study

1 Introduction
Different tools and techniques can be used for agile development. In our work, we
focus our attention on the development of a tool to select and suggest the best
refactorings of duplicated code. Duplicated code involves all non-trivial software
systems; the percentage of involved duplicated lines is usually estimated between
5 % and 20 %, sometimes reaching even 50 % [1,2]. Fowler [3] suggests that code
duplication is a bad smell and one of the major indicators of poor maintainability.
With the concept of “clone”we mean a code fragment duplicated in several
locations within a software system with several similarity degrees. We consider
“Cloning” as a synonym of “duplicating code”, both identifying the activity
of introducing clones of a code fragment within a software system. Anyway, a
shared definition of “similarity” does not exist, resulting in the lack of a rigorous
definition of clone [1,2]. Different types of cloned have been identified in the
literature, providing a clone classification involving the amount and the way a
code fragment is duplicated. The most commonly accepted classification is the
one of Roy et al. [4], which identifies four types of clones (we describe Type-1
and Type-3 of clones, the ones we detect through our approach, in Section 3.2).

c Springer International Publishing Switzerland 2015
C. Lassenius et al. (Eds.): XP 2015, LNBIP 212, pp. 3–14, 2015.
DOI: 10.1007/978-3-319-18612-2 1
4 F.A. Fontana et al.

The main problems related to code duplication are, e.g., the uncontrolled
spread of yet-to-know bugs, resulting in heavy correction time cost when discov-
ered, and heavy update time cost, when modification of an important part of a
code fragment implies modification of all duplicated fragments.
Even if duplication may not always be avoided, it is considered a serious
problem, mainly from a maintenance perspective. Many works investigated in
depth the factors causing its insertion, or provided taxonomies according to
several criteria and detection techniques, but just few works examined its man-
agement procedures [1]. Many sources suggest to fully delegate correction activ-
ities to developers’ experience and judgement [1,2], and assert the importance
of the “human in the loop” concept [3,5]. These assertions follow the aware-
ness that every modification to a software system must consider and respect the
design choices of that system. Furthermore, design choices are not easily cap-
tured within automated procedures. During duplicated code management, two
main decisional steps involve design aspects:

1. the choice of which instances are worth to be refactored and which are not,
2. the choice of which technique should be applied to remove a duplication
instance, once the instance has been evaluated as refactoring-worthy.

In this paper, we introduce our approach and a tool developed to suggest


“the best” refactoring of Java code clones. The tool is called Duplicated Code
Refactoring Advisor (DCRA) and is composed of four modules. We use for clone
detection a well known tool, NiCad [6], and we define a post-processor for its out-
put, called Clone Detailer, which adds information characterizing every clone,
e.g., the location of the clone in the class hierarchy, its size and type. Then,
through the Refactoring Advisor module, we suggest the refactorings able to
remove the clones, and provide a ranking of their quality. Refactorings are cho-
sen by considering the location of the clone and the variables contained in the
clone; they are sorted by considering different features, i.e., the variation of Lines
of Code (LOC), and an evaluation of the quality resulting from its application, in
terms of the exploitation of OOP constructs. Finally, a module called Refactor-
ing Advice Aggregator provides a summary of the most interesting information
about clones, i.e., the clones having greater size, and the ones which should be
simpler or more convenient to remove.
Through our approach, we aim to filter clone pairs worthy of refactoring
from unworthy ones, and to suggest the best refactoring techniques for worthy
ones. We experimented the Clone Detailer module on 50 systems of the Qualitas
Corpus [7]. All the modules of our DCRA tool have been validated on 4 systems
of the Qualitas Corpus.
The paper is organized through the following Sections: Section 2 reports some
related works, pointing out the differences with our approach; Section 3 contains
a general description of DCRA’s features; Section 4 describes the architecture
of DCRA; Section 5 reports the validation of the tool on four systems; Section 6
makes an overall conclusion on DCRA, outlining some future developments.
A Duplicated Code Refactoring Advisor 5

2 Related Work on Code Clone Refactoring


In the literature, we can find many papers on clones and on clone detection
tools [8]. Here, we focus our attention only on some works which consider and
propose approaches or techniques for clone refactoring.
Fowler [3] provides a generic approach for duplicate code refactoring based on
the description of different refactoring steps. His approach is intentionally generic
and agrees with the common practice of delegating all solution choices and details
to developers. The same approach is summarized and slightly extended by Zibran
and Roy [1], by reporting many duplicated code classifications and taxonomies,
each considering different sets of duplication features. Their duplication clas-
sification is based on refactoring opportunities. A more detailed approach was
defined by Golomingi [5]: a precise and motivated set of locations (“scenarios”)
within class hierarchies is used to classify duplications, which are linked to a pre-
cise and motivated set of refactoring techniques. Only general refactoring selec-
tion criteria are then provided, committing further considerations to developers.
The strong point is the association of refactoring techniques to specific scenar-
ios, whereas Fowler favours a much more generic approach. The “human in the
loop” concept still holds, since no assessment is made on the actual techniques
applicability, but it provide more guidance than Fowler’s approach. The tool
implemented by Golomingi, called Supremo, provides further help to developers
through a graphical representations of all entities involved and their relation-
ships. At last, Giesecke [9,10] further generalizes several scenarios and selects
functions/methods as the best duplication granularity, reducing the number of
scenarios and refactoring techniques.
Our approach, implemented in DCRA, mainly draws inspiration from the
described works, by extending the duplication and classification categories of
Golomingi and by adapting the approach to Java. Furthermore, automated eval-
uation, classification and suggestion of refactoring techniques are added.

3 DCRA Approach
The main features characterizing our approach are the following:

– the extension of Golomingi’s [5] scenario set with further recurring locations,
– the analysis of the location of each clone pair, resulting in a specific set of
applicable refactoring techniques (see Tables 1 and 2),
– the ranking of the applicable refactoring techniques, based on a score weight-
ing different criteria,
– the aggregation of the information about clones and refactorings, on the
more critical clones, and on the best refactorings, according to numerical
criteria.

The automatic evaluation of the applicability of refactoring techniques is the


central point of this work, since it helps reducing the human involvement. The
evaluation is achieved by defining a specific set of criteria and by translating them
6 F.A. Fontana et al.

Table 1. DCRA refactoring techniques

Refactoring technique Description


Extract method (EM) [3] extract a subset of the statements of a method as
a new method
Replace method with method a.k.a. “Extract utility class” [1], considered in its
object (RMMO) [3] simplest version (private or protected class with
public attributes and only one method: the con-
structor)
Merge method (MM) delete one of the two identical copies of a method
Pull up method (PUM) [3] move a method to the superclass
Pull up method object (PUMO) combination of “Pull up method” and “Replace
method with method object”
Form template method (FTM) introduce a Template Method design pattern to
[3] manage behaviour variation in subclasses
Leave unchanged (LU) do not refactor at all

Table 2. DCRA locations and refactoring suggestions (remaining locations have only
the LU suggestion)

Location EM FTM LU MM PUM PUMO RMMO


SAME METHOD × · × · · · ×
SAME CLASS × · × × · · ×
SIBLING CLASS · × × · × × ·
SAME EXTERNAL SUPERCLASS · × × · × × ·

into suitable numeric values. Currently, DCRA evaluates refactoring techniques


according to the following two criteria: 1) lines of code variation and 2) OOP
principles compliance: encapsulation, inheritance and polymorphism.

3.1 Locations and Refactoring Techniques


In Table 1, we report the list of the refactorings we consider in DCRA with a
short description. Refactorings without a reference were defined by us during
the development of DCRA; the last one, “Leave unchanged”, is actually the
suggestion to avoid refactoring. Since locations are the starting point of the
whole procedure and refactoring techniques are the ending point, Table 2 outlines
these elements and the way they are related (refactorings listed in the headers of
the table are defined in Table 1). Some of Golomingi’s and Fowler’s refactoring
suggestions were not included: 1) “Substitute algorithm”, because Type-4 clones
(code fragments implementing the same algorithm in different ways) were not
considered, and 2) “Push down method”, because DCRA does not currently
manage the SUPERCLASS location.
We added to Golomingi’s location set [5] the SAME EXTERNAL SUPER-
CLASS location: it describes all clones located within sibling classes extending a
A Duplicated Code Refactoring Advisor 7

Table 3. Distribution of clone types and granularity in locations in 50 systems

Location Type-1 Type-3 Block Method Total


# % # % # % # %
ancestor class 13 4.4 281 95.6 120 40.8 174 59.2 294
common hierarchy class 970 23.5 3,152 76.5 968 23.5 3,154 76.5 4,122
first cousin class 416 12.2 2,980 87.8 473 13.9 2,923 86.1 3,396
same class 5,645 9.9 51,308 90.1 17,096 30.0 39,857 70.0 56,953
same external superclass 4,384 6.2 66,391 93.8 31,534 44.6 39,241 55.4 70,775
same method 569 10.4 4,901 89.6 5,449 99.6 21 0.4 5,470
sibling class 2,721 16.4 13,868 83.6 2,830 17.1 13,759 82.9 16,589
superclass 91 8.4 981 91.6 431 40.2 641 59.8 1,072
unrelated class 2,758 7.3 35,035 92.7 23,103 61.1 14,690 38.9 37,793
Total 17,567 8.9 178,897 91.1 82,004 41.7 114,460 58.3 196,464

common external class, i.e., a class belonging to external libraries. This addition
is significant; in fact, our dedicated analysis reported in Section 3.2 revealed that
over 1/3 of all detected duplications is related to this location. Golomingi’s app-
roach classifies those instances as UNRELATED CLASS, therefore not manage-
able through an automatic procedure. SAME EXTERNAL SUPERCLASS and
SIBLING CLASS have similar characteristics, and share the same refactoring
suggestions. Anonymous classes are recurring examples of SAME EXTERNAL
SUPERCLASS instances, since they usually extend class Object.

3.2 Qualitas Corpus Analysis

To determine the most recurring characteristics featured by duplication instances,


a statistical assessment was achieved by analyzing 50 software projects, included
in the Qualitas Corpus [7] (v. 20120401). Software projects were analyzed by the
Clone Detector and the Clone Detailer modules of DCRA (see Section 4). This
assessment analyzed three aspects of duplicated code: clone pair types, clone
pair locations and clone pair granularity. Clones are grouped in pairs, and the
Clone Detector was configured to look for clones of blocks of code, which include
also clones of methods.
Table 3 counts the clone pairs found in the analyzed systems, classifying
them by location, type and granularity. Most (∼75 %) clone pairs belong to
the locations listed in Table 2. Type-3 clone pairs (code fragments with added,
removed or modified statements) are the most recurrent because, intuitively,
when a code fragment is duplicated, it is also slightly modified, as it rarely
matches the functionalities needed in both positions.
As for the granularity of clones, we classified the detected clone pairs as
block-only or method clones (block clones contain both cases). On average, func-
tion/method clones are more respect to block clones, supporting the choice of
function/method granularity made by Giesecke [9,10]. Methods are also more
8 F.A. Fontana et al.

cohesive units than blocks, featuring higher reusability. As a result, the detection
procedure of DCRA was configured to detect:
– Type-1 (identical code fragments, only white space differences allowed) and
Type-3 clones (code fragments with added, removed or modified statements);
– block-level clones, for their diffusion, and because they include method-level
clones.
The design and implementation efforts were focused on the locations reported
in Table 2. Also Fowler’s suggestions are mainly related to these four locations.
For all other locations, only “Leave unchanged” is suggested.

3.3 Refactoring Technique Implementation


Refactoring techniques reported in Table 1 are terms naming the generic strategy
to apply to correct clone pairs. Some refactorings need a further customization,
to be applied to a particular case. For example, the “Extract method” refactoring
has a “Flag” strategy, applied to Type-3 clones: to create a method usable from
all original positions, a flag parameter is added to the extracted method signature
and is checked by conditional branches within the extracted method body. This
kind of refactoring approach is not described in the literature; Roy and Cordy’s
survey [2] implicitly reports only Type-1 clones may be refactored with the
“Extract method” technique, since, if a flag parameter is introduced, the class
interface actually changes, and the risk of encapsulation reduction increases.
Every refactoring was decomposed in one or more implementation steps,
to compute the change of the code size (LOC variation) when a refactoring is
applied. Every implementation step is associated to a function, which computes
the LOC resulting after the application of the step. By computing the LOC for
each implementation step belonging to a refactoring, it is possible to estimate
the size of a clone pair after the refactoring.

4 Duplicated Code Refactoring Advisor


DCRA outputs a suitable list of techniques to be applied on the most problematic
duplications. The tool consists of four components:
– Clone Detector : external tool detecting clone pairs;
– Clone Detailer : analyzes the Clone Detector output to add all necessary
clone pair details;
– Refactoring Advisor : chooses the possible refactoring techniques related to
each clone pair;
– Refactoring Advice Aggregator : aggregates the available information about
clones and refactorings, grouping by class or package, and sorting by refac-
toring significance or clone pair impact.
Before the execution of DCRA, the end of line characters of the analyzed
source code are standardized, to allow a precise line count, and a more correct
evaluation of the solutions. A “toy example” of a clone pair, shown in Listing 1,
will be used throughout the section to show how the analysis works.
A Duplicated Code Refactoring Advisor 9

Listing 1. DCRA toy example: clone pair Listing 2. DCRA toy example: refactor-
public class SuperClass {} ing preview of the clone pair
public class SubCls1
extends SuperClass { public class SuperClass {
public void method () {
int a = 0; public void method () {
int b = 1; int a = 0;
a ++; int b = 1;
b ++; a ++;
System . out . print ( a + b ); b ++;
} System . out . print ( a + b );
} }
public class SubCls2
extends SuperClass { }
public void method () {
int a = 0; public class SubCls1
int b = 1; extends SuperClass {}
a ++;
b ++; public class SubCls2
System . out . print ( a + b ); extends SuperClass {}
}
} .

4.1 Clone Detector


NiCad [6] was chosen as the clone detector because it allows choosing between
function- and block-level clones. We setup the tool with these parameters:

– block-level granularity is chosen, since more manageable clones are detected;


– a minimum clone length of 5 lines, a commonly used value in the literature [2];
– a maximum dissimilarity percentage between code fragments of 30 % (NiCad’s
default); no common agreement appears to exist yet [1] on this parameter;
– no renaming allowed, since a large set of unmanageable clone pairs would
result; only Type-1 and the consequent Type-3 subset are detected;
– clones grouped in pairs, since they are easier to manage than n-ary groups;
this is common in the literature [5,9] and in many clone detection tools.

4.2 Clone Detailer


This component adds to clone pairs all details needed to select refactoring tech-
niques. Some of the relevant details it adds are:

– variables used in each clone, labelled using their declaration position and
usage;
– length of each clone, cloned lines and different lines (NiCad only reports the
total length of the longest clone);
10 F.A. Fontana et al.

– clone pair location (introduced in Section 3.1);


– clone pair granularity: method or block;
– clone pair type: Type-1 or Type-3.

Regarding the first point, the declaration position was classified in the follow-
ing categories: 1) inside the clone, 2) outside the clone but within its container
method, 3) class attribute, 4) inherited attribute; the usage, instead, was clas-
sified using these other categories: 1) used after clone but within its container
method, 2) read within clone, 3) modified within clone. These criteria were taken
from Higo et al. [11], and applied to our location-based classification, obtaining
a more precise characterization of each clone pair.

4.3 Refactoring Advisor

The Refactoring Advisor uses the Clone Detailer output to choose the possible
refactoring techniques for each clone pair.
We introduce now the “coupled entity” concept: when clones access variables
or attributes from their local scope (e.g., their container class or method), and
the application of a refactoring would move the code in a different scope, the
reference to those variables or attributes may increase the coupling level of the
refactored clone. A coupled entity is any of these variable or attribute references.
They are evaluated differently for each refactoring kind, because each refactoring
applies different transformations to the code. Coupled entities make the applica-
tion of a refactoring more costly, or not possible without changing the visibility
or placement of variables in the system.
The Refactoring Advisor works independently on each clone pair. First, it
selects all refactoring techniques applicable to the clone pair on the base of
its location, granularity, type and coupled entities. Second, it ranks the selected
techniques, relying on a score based on two criteria: i) relative LOC variation, ii)
compliance to OOP (inheritance, polymorphism and encapsulation). The score
is calculated as the average of two weights, one for each criterion, evaluating the
compliance to each principle. In our example, “Pull up method” would modify
the code as shown in Listing 2. We compute the two weights by evaluating the
code after the refactoring w.r.t. the original. In the following, we explain how
the two weights, i.e., LOC variation and OOP compliance are computed.
Equation 1 defines the refactoring evaluation score. The LOC variation is
obtained (Equation 2) as the ratio of LOC before and after the application of
the refactoring, normalized to the [−1, +1] range. OOP compliance (Equation 3)
is calculated as the average of the values assigned to its three principles: encap-
sulation, inheritance, polymorphism; each value is in the [−1, +1] range, and
has been manually determined for each refactoring during the assessment phase
of the DCRA development. Values (−1, 0, +1) correspond respectively to: the
maximum possible deterioration, no variation, the maximum improvement.
A Duplicated Code Refactoring Advisor 11

Table 4. Refactoring Advisor computation example

encapsulation: 0
OOP Compliance: 0.33 inheritance: 1
PUM Evaluation: 0.66 polymorphism: 0
LOC before: 10
LOC Variation: 1
LOC after: 5
encapsulation: 0
OOP Compliance: −0.66 inheritance: −1
LU Evaluation: −0.33 polymorphism: −1
LOC before: 10
LOC Variation: 0
LOC after: 10

LOCV ar + OOP
Evaluation = (1)
2
LOCBef ore
LOCV ar = −1 (2)
LOCAf ter
Encap + Inh + P olym
OOP = (3)
3
In our clone pair example, the values assigned and derived for each variable of
the two refactorings are resumed in Table 4 (every value depends on the ones on
its right). Our approach allows to give different relative weights to the different
criteria used to produce an evaluation, allowing to tune the refactoring selection
towards, e.g., more OOP quality or more LOC saving.

4.4 Refactoring Advice Aggregator

This component summarizes all advices and clone pair details, providing to the
developers the selected sets of refactoring techniques or clone pairs, sorted by
their weight: techniques are sorted by effectiveness, clone pairs by length. Effec-
tiveness is measured by combining the evaluation of each technique with the
length of the clone pair. Grouping by package was considered because it can
help developers to quickly identify the most problematic subsystems. A class
or package is considered refactorable if it contains effective refactorings, and is
considered affected if it participates to clone pairs.
For each clone pair, only the first refactoring (the one with the higher eval-
uation) is considered, and its weight is normalized according to its clone pair
length (the maximum length of the clones in the pair), to make the comparison
of different refactoring applications coherent. For instance, if the first technique
for a 5 lines-long duplication is evaluated as 1, and the first technique for a
20 lines-long duplication is evaluated as 0.5, the second refactoring will better
improve system quality, since the respective weight values would be 5 and 10.
12 F.A. Fontana et al.

Table 5. Systems used for validation

Project LOC Pairs Cloned LOC Cloned LOC %


fitjava-1.1 3,643 27 218 5.98
jgrapht-0.8.1 9,086 53 736 8.10
nekohtml-1.9.14 6,149 81 1,130 18.38
oscache-2.4.1 5,786 70 982 16.97

Table 6. Assessment results for clones in the same class

Location Type EM RMMO MM LU Total


1 2/2 1/1 0/0 0/0 3/3
SAME METHOD 44/46
3 8/10 0/0 0/0 33/33 41/43
1 6/6 0/0 0/0 0/0 6/6
SAME CLASS 97/106
3 81/90 0/0 0/0 10/10 91/100
1 8/8 1/1 0/0 0/0 9/9
Total 3 89/100 0/0 0/0 43/43 132/143
97/108 1/1 0/0 43/43 141/152

The Refactoring Advice Aggregator provides as output the: top N most effec-
tive refactorings; top N most harmful clone pairs; top N most refactorable pack-
ages and classes; top N most affected packages and classes. The value of N is
currently set to 20.

5 Validation
DCRA was tested on four projects of different size belonging to the Qualitas
Corpus [7], reported in Table 51 . The Refactoring Advisor provided advices for
more than 80 % of clone pairs2 . All refactoring suggestions were then assessed
by hand, to verify their usefulness. The results of the assessment are reported
in Table 6 and Table 7 for different locations, since different locations mean
different possible refactoring sets. In the tables, the number of advices is classified
by location, type, and refactoring suggestion. The shown numbers represent the
ratio of accepted advices (accepted/total), e.g., in Table 6, 81 suggestions out of
90 were accepted for clones in the SAME CLASS location, Type-3, and “Extract
method” suggestion.
The criteria producing the advices proved to be mostly effective, since mainly
refactoring-worthy duplications were proposed. The suggested refactorings were
accepted in most cases, in particular for “Extract method”, “Leave unchanged”,
“Replace method with method object”. Actually, we rejected only 8 % of the
whole advices. This led to suitably refactor 66 % of all duplications found in
1
LOC were computed by the tool CLOC 1.56.
2
The other ones are not managed in the current version of DCRA.
A Duplicated Code Refactoring Advisor 13

Table 7. Assessment results for clones in sibling classes

Location Type PUM PUMO FTM LU Total


1 2/2 0/0 0/0 0/0 2/2
SIBLING CLASS 3/6
3 0/2 0/0 1/2 0/0 1/4
1 8/9 0/0 0/0 0/0 8/9
SAME EXTERNAL SUPERCLASS 16/37
3 0/0 0/3 8/25 0/0 8/28
1 10/11 0/0 0/0 0/0 10/11
Total 3 0/2 0/3 9/27 0/0 9/32
10/13 0/3 9/27 0/0 19/43

the analyzed software systems. Refactoring suggestions in some categories were


less effective than others. For example, 9/32 refactoring advices regarding Type-
3 clone pairs between sibling classes (see Table 7), were actually not worth of
application. In particular, “Form template method” was often rejected because it
was suggested for too few cloned lines; “Pull up method” was usually preferred in
these cases. To prevent this issue, a higher lower bound to clone LOC is needed.
Another category of clone pairs having (minor) issues were the Type-3 ones
within the same class (see Table 6). In this case, the issue is that refactorings with
low rank were often application-unworthy, because of the small size of clones;
as in the previous consideration, a higher lower bound to cloned LOC is needed
for this scenario. Another result of the validation is that the “Replace method
with method object” and “Pull up method object” refactoring techniques were
suggested only a few times, as they are very line-expensive.
As a conclusion, our validation outlines that DCRA is effective for suggesting
refactorings in most cases. All the issues found during the validation can be
corrected by adjusting the thresholds of specific criteria.

6 Conclusions and Future Works


This work suggests it is possible to help developers towards the refactoring
of duplicated code, with the aim of improving the design quality, resulting in
increased manageability and consequently reducing valuable time spent in code
inspection phases. Our technique can be used to suggest the best refactoring to
apply to code clones, considering different properties of the code.
The proposed approach may be summarized as an automated technique
selecting the best refactorings, based on a classification of code clones, with the
aim to concretely reduce the human involvement during duplicated code refac-
toring procedures. We apply a scenario-based approach classifying clone pairs
by their location: a set of possible refactoring techniques is suggested for each
location, leaving only the other details to developers. Our approach extends an
existing set [5] of classification categories; the extension allows to automatically
suggest refactoring techniques for a large amount of duplications, which were
considered hardly manageable by the original approach.
14 F.A. Fontana et al.

In future work, we plan to extend DCRA to manage all remaining loca-


tions, and to refine the parameter settings, in particular the minimum clone
length and the minimum dissimilarity percentage. A planned enhancement of
the Clone Detailer is the tracking of read or modified coupled entities, to obtain
more detailed clues for the refactoring decision. Finally, we are investigating
an extension of the approach, allowing to consider clone groups in addition to
clone pairs. Another interesting topic of investigation regards the analysis of the
impact of refactoring of code clones on different software quality metrics. We
started a research in this direction [12] with the aim of prioritizing the clones to
remove.

References
1. Zibran, M.F., Roy, C.K.: The road to software clone management: A survey. Tech-
nical Report 2012–03, The Univ. of Saskatchewan, Dept. CS, February 2012
2. Roy, C.K., Cordy, J.R.: A survey on software clone detection research. Technical
Report 2007–541, Sch. Computing, Queen’s Univ., Kingston, Canada, September
2007
3. Fowler, M.: Refactoring: Improving the Design of Existing Code. Addison-Wesley
Longman Publishing Co. Inc., Boston (1999)
4. Roy, C.K., Cordy, J.R., Koschke, R.: Comparison and evaluation of code clone
detection techniques and tools: A qualitative approach. Science of Computer Pro-
gramming 74(7), 470–495 (2009). Special Issue on ICPC 2008
5. Golomingi Koni-N’Sapu, G.: Supremo – a scenario based approach for refactoring
duplicated code in object oriented systems. Master’s thesis, Inst. of Computer
Science, Faculty of Sciences, Univ. of Bern, June 2001
6. Roy, C., Cordy, J.: NICAD: accurate detection of near-miss intentional clones using
flexible pretty-printing and code normalization. In: Proc. the 16th IEEE Int’l Conf.
Program Comprehension (ICPC 2008), pp. 172–181. IEEE CS, Amsterdam (2008)
7. Tempero, E., Anslow, C., Dietrich, J., Han, T., Li, J., Lumpe, M., Melton, H.,
Noble, J.: The qualitas corpus: a curated collection of java code for empirical
studies. In: Proc. the 17th Asia Pacific Software Eng. Conf., pp. 336–345. IEEE
CS, Sydney, December 2010
8. Rattan, D., Bhatia, R., Singh, M.: Software clone detection: A systematic review.
Information and Software Technology 55(7), 1165–1199 (2013)
9. Giesecke, S.: Clone-based Reengineering für Java auf der Eclipse-Plattform.
Diplomarbeit, Carl von Ossietzky Universität Oldenburg, Dept. für Informatik,
Abteilung Software Eng., Germany (2003)
10. Giesecke, S.: Generic modelling of code clones. In: Koschke, R., Merlo, E.,
Walenstein, A. (eds.) Duplication, Redundancy, and Similarity in Software.
Dagstuhl Seminar Proc., vol. 06301. Int’les Begegnungs- und Forschungszentrum
für Informatik (IBFI), Germany (2007)
11. Higo, Y., Kusumoto, S., Inoue, K.: A metric-based approach to identifying refac-
toring opportunities for merging code clones in a java software system. J. Software
Maintenance and Evolution: Research and Practice 20(6), 435–461 (2008)
12. Arcelli Fontana, F., Zanoni, M., Ranchetti, A., Ranchetti, D.: Software clone detec-
tion and refactoring. ISRN Software Eng. 2013, 8 (2013)
Exploring the Variety of Random
Documents with Different Content
articles, leather and fur, of Assyrian, Phoenician and Persian origin,
tends to show that these peoples also possessed a considerable
degree of proficiency in tanning. Frequent references in the Greek
literature show that leopard and lion skins were worn as war cloaks,
and they undoubtedly were properly made. In the Iliad is described
an operation for the preparation of skins for use as garments, and
the method seems to be a sort of chamois dressing.
The first method of tanning skins was, in all probability, that of
rubbing into the skins various fatty materials found close at hand,
such as parts of the animal, fat, brains, milk, excrement, etc., such
an operation constituting the basis of what is now known as the
chamois dressing. One of the reasons for believing that it was the
first process to be used by primitive man, is the fact that certain
undeveloped tribes and races of the present day still dress skins by
it. The American Indians, even to this day prepare skins by rubbing
in, on the flesh side, the brains of the animals which furnished the
skins. The Eskimos dress skins by rubbing in animal fats or fish-oil,
and subsequently softening and stretching the skins with their teeth
in place of, or for want of other implements. Usually, however,
variously shaped stones or bones of animals are used to obtain the
proper degree of softness and flexibility. It is true, too, that some of
the skins dressed in this primitive fashion can scarcely be excelled by
any dressed with more modern processes and tanning methods.
The next step forward in the preparation of animal skins for use
was undoubtedly the utilization of substances found in the earth.
Common salt, sodium chloride, was the most universally used
substance of mineral origin, just as it is today. Our prehistoric
ancestors eventually discovered the preservative action of salt, and
applied it to skins. While it was effective, it was not sufficiently
permanent, so another mineral, also of very common and wide
occurrence was used in combination with the salt, and the result
proved quite satisfactory. This second common mineral was alum.
The use of alum, which is the basis of numerous tanning processes
to this day, seems to have been quite a popular method of ancient
times. Artemidorus, a Greco-Roman writer, mentions the use of alum
by the Greeks, and the Romans are known to have prepared a soft,
flexible leather called aluta (alum leather), by using it. In view of the
fact that Egypt had extensive deposits of alum, it is believed that the
alum-salt process was employed also by the Egyptians in the
preparation of leather. However, the evidence on this point is not
conclusive.
One of the most important methods of producing leather, either
as such or on furs, was with the aid of certain vegetable extracts,
known as the tannins, from which the process of tanning gets its
name. The discovery of the value of these materials for converting
the decaying raw skin into a leather which could be preserved for an
almost indefinite length of time, and which was flexible and soft as
desired, was of far-reaching importance. For it is only in very recent
times that these tannins have been superseded in part by new
tanning substances whose use is simpler and more time-saving. Yet
there are unmistakable indications that the tannins were employed
for tanning at a period which reaches back to the dawn of history.
Although it is scarcely probable that the people who used these
materials could have known of the existence or the nature of the
particular substances in the vegetable extracts which actually effect
the tanning action, experience taught them to employ these plants
which possessed the highest content of active ingredients, and
which, consequently, were most effective in use. Tychios, of Boetius,
a Greek supposed to have lived about 900 b.c. and mentioned in the
Iliad, is considered the oldest known tanner, and was regarded by
Pliny, a Roman writer, as the discoverer of tanning, and of the use of
the various vegetable tanning materials. At any rate, the Greeks
used the leaves of a so-called tanning-tree, which was probably the
sumach. The Egyptians worked with the acacia, while the Romans
used as tanning materials the barks of the pine, alder and
pomegranate trees, also nut-galls, sumach and acorns. The Romans
were quick to employ methods used by the peoples whom they
conquered, and it is in this way that they learned the use of many of
the plants mentioned, for tanning purposes.
Many other ancient peoples had various processes of tanning,
the methods probably differing in each country. Thus the Chinese,
Syrians, and much later, the Moors, were each known for proficiency
in a certain class of leather tanning. It has been said that in general,
even up to modern times, tanning with nut-galls was the
characteristic method of the Orient; with oak-tan, that of the
Occident, while the use of alum is regarded as the method peculiar
to the Saracens.
In prehistoric times and the early centuries of civilization, skins
or pelts were prepared for use by the individual, the work usually
being done by the housewife and daughters, while the masculine
members of the family were engaged in hunting the animals and
obtaining the skins. At a later period, when people had advanced to
the point where they lived in cities, the preparing or dressing of
skins became centered in the hands of a comparatively small
number of people, and thus the work took on the aspects of a trade.
The workers in fur were at first the same people who made leather
out of the skin, for the two kinds of work were very closely
associated. During the period of the Roman supremacy, historical
records show that the furriers, who did all the work connected with
furs, from purchasing the raw skins, dressing them, making them
into garments, to selling the latter, were organized into associations
together with the leather workers. After the fall of the Roman
empire, and throughout the centuries known as the Dark Ages, all
traces of the furriers seem to have been lost, but in the beginning of
the Renaissance period in the fourteenth and fifteenth centuries, we
again find records of the furriers, who were now all members of the
furriers’ guilds, also in association with the leather workers. As
formerly, all the work connected with the production of fur apparel
from the raw furs, was done by the master furrier and his
apprentices. The methods and the implements used, were
essentially the same as in Roman times, and in fact, up to a very
recent period there was very little change in either.
With the advent of the great industrial era at the beginning of
the nineteenth century, the guild system became ineffective, but the
furriers continued their work as heretofore. Up to about the middle
of the nineteenth century, the furrier continued to be the only factor
of any importance in the fur trade. There was no need for speed in
his work, for the demands of the trade were not so urgent. The fact
that the dressing of furs often occupied two to four weeks was no
deterring factor in his business. However, with the great expansion
of the fur trade about this time, it became impossible for the
individual furrier to do everything himself, and keep up with the
requirements of his customers. Specialization commenced, and
establishments were set up solely for fur dressing. The traditional
time- and labor-consuming processes were still used, but the
efficiency of work on a large scale enabled the fur dressers
successfully to fill their orders. But the fur trade continued to grow
by leaps and bounds, and very soon the fur dressers were no longer
able to meet the demands of the trade. It was then that the science
of chemistry came to the aid of the fur dresser, and helped him meet
the exigency. By devising dressing processes which were cheap and
efficient, and which only required several hours, or at the most one
or two days, as compared with as many weeks, the chemist brought
the fur dresser out of his dilemma. And with the adoption of
mechanical time- and labor-saving devices, the fur dressing industry
has made wonderful progress.
CHAPTER IV
FUR DRESSING
Preliminary Operations

T
he fur dresser receives the skins in one of two shapes, flat or
cased, depending on the manner in which they were removed
from the animal. Flat skins, as for example, beaver, are
obtained by cutting on the under side of the animal from the root of
the tail to the chin, and along the inner side of the legs from the foot
to the first cut. The skins are either fastened to boards or attached
to wooden hoops slightly larger than the skins, so as to stretch
them, and are then carefully dried, avoiding direct sunshine or
artificial heat, as it is very easy to overheat the skins and thereby
ruin them. The great majority of skins, however, are cased. The pelts
are cut on the under side of the tail, and along the hind legs across
the body, the skin being then removed by pulling it over the head off
the body like a glove, trimming carefully about the ears and nose.
The skin is thus obtained inside out, and is drawn over a stretching
board or wire stretcher of suitable shape and dimensions, so as to
allow the skin to dry without wrinkling. The pelts, after drying in a
dry, airy place, are removed from the stretchers and are ready for
the market. With some furs, as foxes, the skins are turned hair-side
out while still somewhat moist, and then put on the stretcher again
till fully dried. In most cases, however, skins are sold flesh-side out.
Throughout the various dressing operations cased skins are kept
intact, being turned flesh-side out or hair-side out according as the
processes are directed to the respective sides. The pelts are only cut
open if they have to be dyed, or after the manufacturer receives
them, when they have to be worked into manufactured garments.
A distinction which is made by fur dressers and dyers, and also
by the fur trade in general, divides furs into those derived from
domestic animals, particularly the various kinds of sheep, including
also the goat species, and those obtained from other animals by
trapping. In fact, at one time, and to a certain extent even to-day,
dressers were divided into two groups based on this distinction, one
class dealing only with furs obtained from the sheep family, and the
other working with other kinds of furs. This differentiation is not a
simple arbitrary one, but has a rational justification. As mentioned
before, the manner and habit of living of the animal are important
factors in determining the nature and constitution of its skin, both
leather and hair. The structure of the body being dependent
primarily upon the nature of the food absorbed by the animal, it is
only natural that herbivorous or vegetable-eating animals such as
sheep and goats, should possess fur of a different sort from that of
the carnivorous or meat-eating animals, such as the majority of fur-
bearers are. It also seems clear that furs differing in their character
and constitution should require somewhat different treatments, and
accordingly the methods are modified when furs like lambs or goats
are dressed. To a great extent, however, the fundamental operations
are similar for all furs, regardless of nature or origin, and these will
be discussed briefly.
Inasmuch as the first great purpose of fur dressing is to render
the skins more or less permanently immune from the processes of
decay, it is necessary to prepare the pelts so as to be most fit to
receive the preserving treatment. The skins as they are delivered to
the fur dresser have, in the majority of cases, been stretched and
dried to preserve them temporarily, while in some instances,
especially with the larger furs like bears and seals, they are salted
and kept moist. The flesh-side of the pelt still has considerable fleshy
and fatty tissues adhering to it, and the hair is generally soiled and
occasionally blood-stained. In order to get the pelts into such a
condition that they can be worked and manipulated, they first have
to be made soft and flexible. Very greasy skins are scraped raw in
order to remove as much as possible of the attached fat, the
operation being known as beaming or scraping. The typical beam,
shown in Fig. 3, consists of a sloping table usually made of some
hard wood, and placed at an angle of about 45°. It is generally flat,
although in some instances convex beams are also used, about a
yard long, 8 to 10 inches wide, and firmly supported at the upper
end. The skin is placed on the beam, flesh-side up, and is scraped
with a two-handled knife (Fig. 4), always in a downward direction.

Fig. 3. Beam.

Fig. 4. Knives Used in Fur Dressing.

The first step in softening the skins is to get them thoroughly


moistened, and this is variously done, depending on the nature of
the skin. Lambs, for example, require the gentlest means of wetting
them, while rabbits can stand soaking in water for several days. The
manner and duration of moistening must be adjusted to the
character of the pelt. For the putrefactive processes which were
stopped by stretching and drying the skins, continue as soon as the
pelt is again moistened. The progress of decay causes the evolution
of certain gases, the simplest of which is ammonia, and eventually, if
permitted to proceed, brings about the complete disintegration of
the skin tissue. It has been found that a certain amount of gas
formation is necessary to loosen up the fibres in order to get the
best quality of leather after tanning. This process must be
interrupted at the proper time and not allowed to proceed too far.
Skins which have been preserved fresh by salting, require only a
comparatively short time (about 2 hours) to become softened by
soaking in clean, soft water. Most dried skins need a longer
treatment before they are sufficiently flexible. The addition of certain
substances to the water facilitates and accelerates the softening. In
some instances salt water is used for soaking the pelts, the
preservative action of the salt tending to prevent any loosening of
the hair. A solution of 1⁄4% borax is very effective in rendering the
skins soft, and clean as well. Borax has an exceedingly mild alkaline
action, and causes a slight swelling of the skin tissue, which then
absorbs the water more readily. Being also preservative and
antiseptic, borax tends to prevent decomposition of the skin tissue.
Another chemical of a different nature, but equally effective is formic
acid, used in the proportion of 1.5–2.5 parts per 1000 parts of water.
Formic acid also induces a swelling of the skin, the pelts being
soaked in a short time, and the antiseptic action of the acid obviates
the possibility of the hair becoming loose. The water used should be
fresh and clean, and the soaking must be stopped as soon as the
skins have become soft and flexible. Sometimes the skins are
allowed to soak overnight in water, while in other cases, the pelts
are just moistened by dipping in water until thoroughly wet, and
then laying them in a pile for several hours, or overnight. Another
method which is practised with certain types of skins is the use of
wet sawdust or of sawdust moistened with salt water. The fur skins
are either embedded in the sawdust or drummed with it for several
hours, or until sufficient moisture has been absorbed to render them
flexible. By this means there is no danger of the skins being over-
soaked, or of the hair being loosened. When the skins have been
properly wetted, they are drawn with the flesh-side across the edge
of a dull knife-blade, in order to help loosen the texture of the skin.
They are then put into a tramping machine and worked until
completely softened. In the case of large or heavy skins, the
moistened pelts are worked on the beam with a dull beaming knife
to impart thorough softness and flexibility.
The pelts are then cleaned with particular reference to the hair.
With some furs this is accomplished simply by drumming for several
hours with dry sawdust, whereby the oil and dirt are removed from
the hair, and the hair is then freed from the sawdust by caging.
Other skins are washed, being passed through a weak soap solution
for a short time, the dirty spots being brushed. Occasionally an
extract of soap-bark is used in place of the soap, being even more
effective. The cleansed skins are then thoroughly rinsed to remove
any of the cleaning material, which would affect the gloss of the hair
if allowed to remain on the skins. Then in order to eliminate as much
as possible of the water in the skins, they are hydro-extracted, a
centrifugal machine of the type shown in Fig. 5 being used. The
basis of its action depends on the utilization of the principle of
centrifugal force. The machine consists essentially of a perforated
metal basket generally made of copper, capable of being rotated at a
high speed. Surrounding the basket is an iron framework, polished
or enamelled on the inside. The wet skins are placed in the rotating
basket, fur side toward the perforations, and the water which is
thrown off from the skins passes through the little holes, and is
caught up on the walls of the outside frame, from where it is led off
through suitable ducts. The centrifugal device is properly equipped
with balancing and regulating attachments, as well as with a brake.
The power may be applied by the over-drive or the under-drive as is
most desirable in the particular case. The inner surface of the basket
can also be enamelled or otherwise made resistant to the action of
acids or other chemicals.
Fig. 5. Centrifugal Machine.
(Fletcher Works, Inc., Philadelphia)

When the skin is removed from the animal, as much as possible


of the adhering fat and flesh is scraped off, but in spite of this, and
in spite of subsequent beaming by the fur dresser, there is always a
thin layer of flesh and fatty material remaining and this must be
removed so as to expose the corium, enabling the efficient action of
the chemicals used in the tanning processes. The process of
removing this undesirable layer from the flesh-side is known as
fleshing. It is a rather delicate operation, requiring considerable
experience and dexterity on the part of the worker, for it is
exceedingly easy to cut into the skin and damage the fur. A fleshing
knife of the type commonly used is shown in Fig. 6. It consists of a
sharp blade fastened at a slight angle from the vertical, with the
cutting edge away from the workman, who straddles the bench, and
by drawing the skins back and forth across the edge of the blade,
removes all flesh and fat, leaving the corium free and clean. Large
skins cannot conveniently be fleshed in this fashion. They are placed
on the beam, and fleshed with a fleshing or skiving knife similar to
the beaming knife, but consisting of a slightly curved, sharp two-
edged blade having handles at both ends. Frequent attempts have
been made to use suitable machines to do this work. A type of
machine which has met with considerable success is depicted in Fig.
7. It is fashioned after the models used for the fleshing of hides for
leather manufacture, and has special adjustments and regulating
devices which afford protection for the hair part of the fur. From time
to time other fleshing machines are put on the market, yet none of
them seems to enjoy any great popularity, for fleshing is still largely
a manual operation. With some classes of pelts, fleshing presents
some difficulties, and chemical means have to be resorted to in
order to loosen the flesh sufficiently to enable proper fleshing. In the
case of large furs like bears, leopards, and the like, which while of
no great importance in the fur trade, are occasionally met by the fur
dresser, the skins after being soaked, and washed with soap-water,
are partially dried; then the flesh-side is treated with technical butter
or oil, which is tramped in. A mixture of salt water and bran is then
applied to the skins, thereby causing a swelling action to set in, and
the flesh becomes loosened, and is easily removed by fleshing on
the beam. Seals receive a special treatment which makes them soft,
and gives them greater stretch after they are tanned. A paste made
by mixing a very dilute solution of caustic soda with an inert
substance like French chalk, china clay, etc., is applied to the corium
after the skins have been fleshed, then the pelts are folded up, and
allowed to lie for several hours. They are then entered into a dilute
solution of calcium chloride and left overnight. After being washed in
a paddle or drum, first with fresh water, and then in water
containing lactic or formic acid to remove the lime, the skins are
ready for tanning.
Fig. 6. Fleshing Knife on Bench.
Fig. 7. Fleshing Machine.
(Turner Tanning Machinery Co., Peabody, Mass.)
CHAPTER V
FUR DRESSING
Tanning Methods

A
fter the pelts have gone through the preliminary operations of
softening, washing and fleshing, they are ready to receive the
treatment which will convert the easily decomposing skin into
leather of more or less permanency, depending on the method used.
During the past century, considerable study has been made
both by scientific and technical people, of the problem of leather
formation. Numerous theories as to the nature of the process have
been evolved, but even to this day, no satisfactory explanation has
been given which would account for all the facts as they are now
known, so the matter is still a subject of considerable controversy.
Procter, who is one of the leading authorities on leather today
discusses the development of the tanning theories as follows:
“The cause of the horny nature of dried skin is that the
gelatinous and swollen fibres of which it is composed not merely
stiffen on drying but adhere to a homogeneous mass, as is
evidenced by its translucence. If in some way we can prevent the
adhesion of the fibres while drying we shall have made a step in the
desired direction, and this will be the more effective the more
perfectly we have split the fibre-bundles into their constituent fine
fibrils, and removed the substance which cements them. The
separation of the fibres can be partially attained by purely
mechanical means.... Knapp, to whom we owe our first intelligible
theories of the tanning process, showed that by physical means the
separation and drying of the fibres could be so far effected as to
produce without any tanning agent a substance with all the outward
characteristics of leather, although on soaking it returned completely
to the raw hide state. He soaked the prepared pelt in absolute
alcohol, which penetrated between, and separated the fibres and at
the same time dried them by its strong affinity for water. More
recently, Meunier has obtained a similar result by the use of a
concentrated solution of potassium carbonate which is even more
strongly dehydrating.
“Knapp made a further step by adding to his alcohol a small
quantity of stearic acid which, as the alcohol evaporated, left a thin
fatty covering on the fibres which completely prevented their
adhesion, and reduced their tendency to absorb water; and he so
produced a very soft and white leather. Somewhat similar are the
principles of the many primitive methods which apply fatty and
albuminous matters, grease, butter, milk, or brains to the wet skin,
and by mechanical kneading and stretching, aided by capillarity,
work these matters in between the fibres as the water evaporates.
Such methods are still used, and enter into many processes in which
other tanning agents are also employed.
“Building upon these facts, Prof. Knapp advanced the theory
that the effect of all tanning processes was not to cause a change in
the fibres themselves, chemical or otherwise, but merely to isolate
and coat them with water-resisting materials which prevented their
subsequent swelling and adhesion. True as this theory undoubtedly
is in many cases, it can hardly be accepted as the whole truth, and it
seems incontestable that frequently the fibres themselves undergo
actual chemical changes which render them insoluble and
nonadhesive.
“Before Knapp’s work, the prevalent theory, at least as regards
vegetable tannage, had been a chemical one, started by Sir
Humphrey Davy. If a solution of gelatine be mixed in proper
proportion with one of tannin, both unite to form a voluminous curdy
precipitate; and, according to Davy’s ideas, this was amorphous
leather. Against this, it was urged that even the supposed ‘tannate of
gelatine’ itself could not be a true chemical compound, since the
proportions of its constituents were considerably varied by changes
in the strength of the solutions, or by washing the precipitate with
hot water; and further, that in chemical compounds, the form was
changed, and no trace of the original constituents appeared in the
compound; while in leather apart from some change of color and
properties, the original fibrous structure remained unaltered.
“This reasoning appears much less conclusive now than it did in
Knapp’s day. Against the last objection guncotton may be quoted as
an instance of profound chemical change with no alteration in
outside appearance; and it is recognized that, especially among
complex organic substances, chemical reactions are rarely complete,
but that stable positions are reached, so-called ‘equilibria,’ in which
the proportion of changed and unchanged substance is dependent
on concentration or other conditions; and that therefore such a
precipitate might well be a mixture of gelatine with a true gelatine
tannate from which further portions of tannin might be dissociated
by water.
“With the clearing up of old difficulties, however, the conflict
between chemical and physical theories has, as is usually the case,
merely passed into a new phase. Years ago, it was shown by Linder
and Picton and others, that liquids could be obtained which were not
really solutions of ions or molecules, but merely suspensions like that
of clay in water, or butter-fat in milk; but so finely divided as to
appear clear and transparent, and pass through filters like true
solutions. Later, by means of the ultra-microscope their discrete
particles have actually been made visible, each of them consisting of
many molecules of the suspended substance. Nevertheless, these
particles have many molecular properties, possessing plus or minus
electrical charges; behaving like large ions under the influence of an
electrical current; and mutually precipitating and neutralizing each
other when positive and negative are brought together. Such
solutions are called ‘colloid,’ and those of gelatine and tannin are of
the class, so that it is now often said that the precipitation of
gelatine by tannin, and the fixation of tannin by gelatinous fibre are
merely ‘colloidal’ and ‘physical,’ and not ‘chemical’ phenomena.
Admitting the facts, the question still arises whether the distinction
between chemical and physical is not here one without a difference;
and whether between the purely ionized dilute solution of a salt and
the coarsely granular clay suspension there is any point where a
definite line of demarcation can be drawn. The writer inclines to the
view that there is not; and that ionic and colloidal combinations are
extreme cases of the same laws, both physical, and both chemical.”
There are several methods which are used in tanning furs, each
having its peculiar characteristics and qualities, and possessing
individual advantages and disadvantages. In order to be able to
judge the merits of the various processes, it is necessary to have a
criterion which can serve as a basis of reference. Fahrion, a
recognized authority and investigator in this field, gives a definition
of leather which is usually accepted as a standard for comparison.
He says: “Leather is animal skin, which on soaking in water and
subsequent drying does not become hard and tinny, but remains soft
and flexible; which does not decay in the presence of cold water;
and which does not yield any gelatine on boiling with water.” While
the requirements set forth in this statement are essential for leather,
and a compliance with them would also be desirable for tanned furs,
a somewhat less rigorous standard of conditions to fulfil is
satisfactory for the general needs and purposes of furs. The chief
qualities which tanned furs must possess, with particular reference
to the leather side of the pelt, are retention of softness and flexibility
after being moistened by the furrier for manufacturing purposes, and
subsequent drying; and freedom from a tendency to decay during
this operation and thereafter. If the furs are to be dyed, the effect of
the dyeing must also be considered, and the tanning must be such
as to enable the dyed furs to possess the above qualities.
The most important tanning processes employed for furs are the
following:

1. Salt-acid tan, or pickle.


2. Mineral tans.
3. Chamois tan.
4. Formaldehyde and similar tans.
5. Combination tans.
6. Vegetable tan.

1. Salt-acid Tan, or Pickle


This is one of the most extensively used methods for tanning
furs, and is also very cheap and easily applied. A typical formula for
this tan is the following: A solution of salt is prepared containing
about 10% of common salt, sodium chloride, and to this is added
1
⁄2–3⁄4 ounce of sulphuric acid for each gallon of tanning liquor. The
proportions may be varied within certain limits, but the figures here
given are those which have proven successful in practise. The
solution should be made in a wooden or earthenware container, free
from any metal, as it would be attacked by the acid. The liquor is
then applied to the flesh-side of the fleshed skins by means of a
brush, making sure to touch all parts of the pelt. They are then
placed in a pile and allowed to remain thus until tanned, an
operation which occupies a time ranging from a few hours to two or
three days depending on the thickness of the skins. When the
corium has lost its translucence and has become of a milky-white
color throughout the entire thickness of the skin, as can be seen by
viewing a cross-section, the skin may be considered tanned. In some
instances, where the hair of the fur can stand immersion without
injury, the skins are entered into the pickling solution and allowed to
remain for 12 to 24 hours, which is generally a sufficient time to tan
them in this manner.
The acid of the pickle causes the skin to swell, the salt then
penetrating between the fibres of the corium, and at the same time
reducing the swelling of the skin. The acid also neutralizes the
alkaline products of decomposition which may form, while the salt
acts as a deterrent to the progress of the putrefactive processes.
When the skin is dried after tanning, and stretched and finished, a
soft white leather is obtained which is permanent as long as it is
kept dry. It is the salt which causes the fibres of the skin to be
completely differentiated and thus prevents their adhesion.
It is interesting to note that other acids besides sulphuric can be
used for the pickle, organic as well as mineral, formic acid in 1⁄4%
solution being especially effective and giving excellent results, but is
more expensive than the mineral acid. A method, which in principle
is identical with the pickle, but carried out in an entirely different
manner, is the lactic acid fermentation process, or “Schrot-beize” as
it is called in German. The procedure is in general as follows: “The
fleshed skins are placed on tables, flesh-side up, and covered with a
layer of bruised barley grains, or a mixture of 3 parts of wheat bran
and 2 parts of rye flour. Then the head, tail and legs are turned
inward, and the skins rolled up in little cushions, hair-side out, and
placed in a vat. When this is filled with the skins a solution of
common salt is poured over them, and they are allowed to remain
thus in a moderately cool place for 24 hours. After this time, the
skins are carefully unrolled, so as not to remove any of the adhering
solid materials, and turning the skins hair-side inward, they are laid
flat together in pairs and placed in an empty vat. After another 24
hours they are again unpacked and replaced in another vat, care
being taken each time to keep all the solid particles adhering to the
flesh-side. This operation is continued and repeated until the skins
are properly tanned, which takes from 10 to 14 days, depending on
the weather and the temperature. The skins are then removed,
rinsed free of the tanning substances, pressed, dried and finished.” A
somewhat modified form of this process is the so-called Russian tan,
which is usually done in the following manner: 5 parts of bruised
barley grains are mixed with ten parts of luke-warm water in a vat,
which is then covered up. A small quantity of brewers’ yeast is also
added to aid in the fermentation. As soon as the mixture develops a
slight heat, one part of fresh whey is added, and the fleshed skins
entered into the tanning liquor in which they remain for about 12
hours. They are then tramped in the mixture so as to effect greater
penetration, and left until the tanning process is complete. Whey is
the milk fluid left after the casein and most of the fat have been
removed from the milk by coagulation, and consists practically of a
solution of all the milk-sugar or lactose, and the lactic acid of the
milk, together with a small percentage of mineral salts, and a slight
amount of fat. By fermentation, the milk-sugar is converted into
lactic acid, which helps to effect the tan by swelling the skin.
The effectiveness of the fermentation processes depends to a
considerable degree on the action of certain bacteria and yeasts.
Bacteria are one-celled organisms belonging to the vegetable
kingdom, and some are so small as to be scarcely visible under a
microscope, while some indeed cannot be seen by any means, their
existence being inferred from their effects. As they vary in size,
bacteria also vary in shape, some being spherical, others in the form
of long, thin rods, while still others are of a spiral shape; another
common form is the dumb-bell shaped bacterium. Some types are
provided with what are known as flagella, which resemble fine hairs
attached to the body of the organism, and which enable it to move
about actively in liquids. The food of bacteria is always in liquid
form, as only in this condition can it be absorbed. However, some
kinds of bacteria attack solid substances from which they obtain
their nourishment, but this is done in an indirect way, by secreting
certain fluids known as enzymes, which dissolve or digest the
material and convert it into a form that can easily be absorbed by
the bacteria. The enzymes are non-living chemical substances, which
possess the peculiar property of bringing about the chemical change
of an almost indefinite amount of material upon which they act,
without themselves being in any way changed. Yeasts also act in a
manner similar to the bacteria in causing various chemical changes,
particularly inducing fementations. In the simple “Schrot-beize,” the
starch contained in the bran or barley grains is first converted to a
soluble sugar by means of enzymes secreted by the bacteria which
are always present. This sugar then undergoes an acid fermentation,
with the formation of lactic and acetic acids, due in this case to
organisms known as the bacterium furfuris A and B. The action of
the Russian tan is similar, but quicker. In this case, the sugar is
already present in soluble form, and the yeast cells cause its
fermentation with the production of lactic acid. In both cases, the
acids as they form swell and loosen up the skin fibres slowly, the salt
penetrating between them, and keeping them separated on drying.
Both methods give results which are equally good, but by the
Russian tan the skins acquire a disagreeable odor, which makes this
method of dressing objectionable.
The lactic acid fermentation processes have an advantage over
the pickle, in that the slow formation of weak organic acids with
their gradual action produce a softer leather, with a gentler ‘feel,’ the
presence of the flour and the grains of the tan, aside from their
tanning action, contributing to the fullness and softness of the
leather. There is also less likelihood of the leather being
subsequently affected by the presence of the acid in it, as lactic and
acetic acids are much less injurious than sulphuric acid to leather.
These disadvantages of the pickle can to a large degree, be
overcome without any great difficulty. On the other hand, the matter
of the length of time of the tanning process, shows the acid pickle at
a great advantage, and so, especially for furs other than those
obtained from sheep and goats, the pickle is in most cases used as
the principle method of tanning. In Austria, Russia, and to a certain
extent in Germany also, the “Schrot-beize” is still considerably
employed, chiefly for dressing sheep and lamb skins. The dressing of
the various kinds of Persian lambs, caraculs, astrachans, etc., in the
native center of the industry in Buchara and surrounding districts, is
also a “Schrot-beize,” barley, rice flour or rye flour, and salt water
being used to prepare the skins, the manipulations being essentially
the same as those described above, although carried out in cruder
and more primitive fashion.

2. Mineral Tans
The basis of the tanning of furs by means of solutions of
mineral compounds is the fact that the basic salts of certain metals
are capable of producing leather. It has been found that compounds
of aluminum such as alum or aluminum sulphate, or any other
soluble neutral salt of aluminum, possess tanning powers. Other
metals which are capable of forming salts of the same type are also
endowed with the quality of converting skin to leather under suitable
conditions, chromium and iron being the most important metals in
this connection. Chemically these metals all belong to the same
group, and have properties which are very similar in many respects,
the characteristic of most importance for tanning purposes being the
quality of forming soluble basic salts by the addition of alkalies or
alkaline carbonates to solutions of their neutral salts, or in certain
instances simply by the action of water upon these neutral salts. By
neutral salts are meant those in which the metallic content is
combined with the normal proportion of acid; while basic salts are
those in which the acidic portion is present in less than the normal
ratio, being partially replaced by a hydroxide group. When the acid
part of the salt has been entirely replaced in this way, the compound
is called a hydroxide or hydrate of the metal. Between the neutral
salt and the hydroxide several different basic salts are possible,
some being soluble, while others are insoluble. If into a solution
containing a basic salt of either aluminum, iron or chromium a skin
be entered, a part of the basic salt will be precipitated on it in
insoluble form. Inasmuch as neutral salts of these metals when
dissolved in water split up to a small degree, into free acid and
soluble basic salt, a skin immersed in such a solution will also absorb
the basic salt in an insoluble form. Upon these facts in general,
depends the action of the mineral tans used in tanning furs.

A. Alum Tan

The alum tan is one of the oldest methods of producing leather,


being employed by the Romans about two thousand years ago, and
it is believed, by the Egyptians at a much earlier period. Its
extensive use in Europe, however, dates from the time of the
conquest of Spain by the Moors, who introduced the process.
At the present time, rabbits and moles are tanned by this
process, as are also at times other furs such as muskrats, squirrels,
sables, martens, etc., when a better tan is desired than that
produced by the pickle. Ordinary alum, which is a double sulphate of
aluminum and potassium, and aluminum sulphate are the chief
compounds used for this tan. In recent years, the aluminum
sulphate has to a considerable degree replaced the alum for tanning,
inasmuch as it can be cheaply obtained in a sufficiently pure form,
and contains about one and one-half times as much active aluminum
compound as does alum.
While the aluminum salt can be used alone for tanning, it
produces a stiff, imperfect leather, so salt is always added. The ratio
of the salt to the aluminum sulphate or alum can vary within rather
wide limits, the mixtures used in practise ranging from one part of
salt to four parts of the aluminum compound, up to equal parts of
both, or even in some formulas, a greater proportion of salt than of
the other constituent. Ratios which are most common are four of
alum to three of salt, or two of alum to one of salt.
When aluminum sulphate is dissolved in water, a small part of it
splits up into a soluble basic salt and an equivalent amount of free
acid. The reaction may be shown as follows:

Al2(SO4)3 + 2H2O = Al2(SO4)2(OH)2 + H2SO4


aluminum water basic aluminum sulphuric
sulphate sulphate acid
When a skin is entered into such a solution, the free acid is
absorbed, causing a swelling of the pelt. While this is taking place, a
further quantity of the neutral aluminum salt splits up into more
basic salt and free acid. At the same time the basic aluminum
sulphate is also taken up by the skin, probably attaching itself to
some of the acidic groups contained in the skin substance, in a
manner analogous to the combination of the acid with the basic
groups of the skin substance. A point is reached, however, when the
skin is no longer able to take up more of the basic salt, for the
presence of the acid undoubtedly acts as a deterrent. The skin, if
dried after such a treatment contains a small amount of aluminum,
which is insufficient to tan the pelt properly, and as a result this
comes out in an undesirable and quite useless condition. If to the
solution of the aluminum sulphate salt is added, a different result is
obtained. To a certain extent the salt acts here as in the pickle. The
skin on absorbing the free acid of the solution naturally swells, but
the salt reduces this swelling, and at the same time, by penetrating
between the fibres and dehydrating them, produces a leather as in
the pickle. In addition, the presence of the salt enables a greater
amount of basic aluminum sulphate to be formed, and thus a
greater quantity is taken up by the skin. On drying and stretching
after such a treatment, a soft, flexible and stretchable leather is
obtained.
The number of formulas for tanning furs by this process is
legion, the principle being the same in every instance, and mixtures
of salt and alum or aluminum sulphate form the basis of the various
tans. Following are a few typical formulas, which have been found to
be of practical value:
A solution is prepared by dissolving 7.5 lbs. of alum and 3 lbs. of
common salt in 20 gallons of water. When cool, the clean, fleshed
skins are entered, being paddled or drummed for a short time and
then allowed to remain until tanned. By this method the hair also
takes up some of the alum, and if the skins are to be dyed,
unevenness may result. In order to avoid this, the tanning may be
effected by brushing a stronger solution on the pelt. A mixture of 4
lbs. of alum and 3 lbs. of salt, dissolved in 8 gallons of water, and
made into a paste by the addition of 4 lbs. of flour, is applied to the
flesh-side of the skins. These are then placed in pairs, flesh-side
together, and allowed to remain in a pile until tanned. Sometimes a
second application is given. The flour may be omitted, but it serves
to cause the tanning mixture to adhere better to the skins.
Still another method is the following: Into the flesh of the moist,
fleshed skins is rubbed a mixture of two parts of dry powdered alum
with one part of salt. After allowing time for it to be absorbed,
another application is given, rubbing in well, and especially treating
the thick parts. The pelts are then folded up, or rolled together,
flesh-side in, and placed in a vat or tub, which is covered up to
prevent drying. They are left so until tanned, as shown by
examination and test. They are then rinsed, hydro-extracted and
dried, and after stretching and finishing, a soft, white, pliable leather
is obtained.

B. Chrome Tan

By using chrome alum instead of ordinary alum, together with


salt, skins can be tanned, but the leather formed is not altogether
satisfactory. The basic principle here is the same as in the alum tan,
depending on the formation of soluble basic chrome sulphates in the
solution of a neutral sulphate. The method employed at the present
time, the so-called one-bath process as distinct from the two-bath
process, which cannot be applied for tanning furs, involves the
production of the basic chrome sulphate by the addition of an alkali
or an alkaline carbonate to the solution of the neutral salt. It was
Prof. Knapp who first published this process as early as 1858; but it
was not until 1893 that it was shown to be of practical value, and
was then patented in this country by Martin Dennis. Since that time
it has been in general use with but slight modifications.
The chrome tan is used only to a limited extent in the tanning of
furs, the method requiring very careful treatment and accurate
supervision during the various stages of the process, and the leather
coming out colored a pale-blue-green tint, which for some purposes
is objectionable. In some plants ponies and rabbits are tanned with
chrome; and when the skins are to be dyed by means of certain coal
tar dyes, they have to receive a chrome tannage. The leather
produced by a chrome tan is very durable, and possesses great
resistance to the action of water.
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade

Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.

Let us accompany you on the journey of exploring knowledge and


personal growth!

textbookfull.com

You might also like