Techniques and Practices for Software Architecture Work · PDF fileTechniques and Practices...
date post
28-Jun-2018Category
Documents
view
214download
0
Embed Size (px)
Transcript of Techniques and Practices for Software Architecture Work · PDF fileTechniques and Practices...
Tampere University of Technology
Techniques and Practices for Software Architecture Work in Agile SoftwareDevelopment
CitationEloranta, V-P. (2015). Techniques and Practices for Software Architecture Work in Agile Software Development.(Tampere University of Technology. Publication; Vol. 1293). Tampere University of Technology.
Year2015
VersionPublisher's PDF (version of record)
Link to publicationTUTCRIS Portal (http://www.tut.fi/tutcris)
Take down policyIf you believe that this document breaches copyright, please contact [email protected], and we will remove access tothe work immediately and investigate your claim.
Download date:13.07.2018
https://tutcris.tut.fi/portal/en/publications/techniques-and-practices-for-software-architecture-work-in-agile-software-development(237ae8f5-80cc-4f8a-a21e-3839ae4e58ab).html
Tampereen teknillinen yliopisto. Julkaisu 1293 Tampere University of Technology. Publication 1293 Veli-Pekka Eloranta Techniques and Practices for Software Architecture Work in Agile Software Development Thesis for the degree of Doctor of Science in Technology to be presented with due permission for public examination and criticism in Tietotalo Building, Auditorium TB109, at Tampere University of Technology, on the 8th of May 2015, at 12 noon. Tampereen teknillinen yliopisto - Tampere University of Technology Tampere 2015
ISBN 978-952-15-3507-9 (printed) ISBN 978-952-15-3511-6 (PDF) ISSN 1459-2045
II
ABSTRACT
Eloranta, Veli-Pekka
Techniques and Practices for Software Architecture Work in Agile Software Development
Keywords: software architecture, agile software development, software architecture
knowledge management, software architecture evaluation, software architecture
knowledge repository
Since the publishing of Agile Manifesto in 2001, the agile software development has
taken the world by storm. Agile software development does not emphasize the im-
portance of software architecture, even though software architecture is often seen as a
key factor for achieving the quality goals set for the software system. It has been even
said that agile software development and software architecture are a clash of two cul-
tures.
In many software projects there is no need to consider software architecture any-
more. For example, when designing a mobile application, the ecosystem forces the de-
veloper to use certain architecture style provided by the platform. In web development
ready-made frameworks and project templates are available offering complete software
architecture designs for the application developer.
There are still domains and systems where careful architecture design is needed. When
developing complex systems or systems with a long life-cycle, diligent software archi-
tecture design is a key to avoid massive rework during the development. It cannot be a
coincidence that companies developing these kinds of systems struggle with agile soft-
ware development the most.
On the one hand, the goal of this thesis was to study software architecture practices used
in agile software development in the industry. On the other hand, the goal was to devel-
op new methods and techniques to support incremental software architecture working
practices which can be aligned with agile methods such as Scrum. The study applied
case study, interviews and design science as the main research methods.
The results show that there are four main ways to carry out software architecture work
while using agile methods. Basing on this result, models for aligning software architec-
ture knowledge management were developed. These models can be used as guidelines
for selecting the appropriate software architecture practices in an organization.
As a part of the research work, an architecture knowledge repository was developed for
sharing the knowledge in agile projects and for automatic software architecture docu-
ment generation. Additionally, the results of this study show that by taking a decision-
centric approach to software architecture evaluation, the evaluation method can be
lightweight enough to make incremental evaluation a viable option. Similarly, existing
software architecture evaluation methods can be boosted to fit agile software develop-
ment by utilizing domain knowledge.
III
PREFACE
This journey began in 2008 in Sulake project and continued in another Tekes funded
project: Sulava. During those projects I have met and worked with numerous people
who have gave me valuable feedback and input for carrying out the research for this
thesis. I would like to express my gratitude to those people.
First and foremost, I want to thank my supervisor Kai Koskimies for his guidance,
ideas and support. He has read numerous versions of my publications and gave me very
valuable feedback during the process. Especially, I want to point out the freedom Pro-
fessor Koskimies gave me to do the right thing instead of always following the rules. I
want also give a very special thank you to my second supervisor Tommi Mikkonen,
who helped me to finish the thesis.
Additionally, I want to thank my co-authors of the publications. Especially I want to
thank team Groningen: Uwe van Heesch, Paris Avgeriou, Neil Harrison and Rick
Hilliard for their support in DCAR work. Furthermore, I want to thank the co-authors of
the pattern book: Johannes Koskinen, Marko Leppnen and Ville Reijonen. I am confi-
dent that those discussions we had in sauna are reflected in this work as well.
I also want to thank folks from the pattern community. You have been very support-
ive and I have learned a lot from you guys. Especially I want to thank Jim Coplien for
introducing me to patterns and guiding me during the first steps into the world of pat-
terns. I am also grateful to Jim for his insights on Scrum.
This work has been supported by Nokia Foundation, Ulla Tuomisen sti and
Eemil Aaltosen sti.
Finally, I want to thank my wife Aija for supporting me in writing this thesis. Espe-
cially during the last months of writing, your support was invaluable. Special thanks to
my big brother Tero, who has always encouraged me to pursue post-graduate studies. I
also want to thank my parents who have always been there for me. Special thanks my
passed away uncle Erkki, who also constantly encouraged me to go further with my
research work.
Konkolankatu, Tampere 06.01. 2015
Veli-Pekka Eloranta
IV
CONTENTS
Abstract ........................................................................................................................... II
Preface ............................................................................................................................. III
Contents ......................................................................................................................... IV
List of Figures ............................................................................................................. VIII
List of Tables .................................................................................................................. IX
List of Included Publications .......................................................................................... X
PART I - INTRODUCTION .......................................................................................... 1
1 Introduction .................................................................................................................. 2
1.1 Motivation ......................................................................................................... 2
1.2 Scope of the Work ............................................................................................. 4
1.3 Organization of this Dissertation ...................................................................... 6
2 Research Overview....................................................................................................... 8
2.1 Research Problem.............................................................................................. 8
2.2 Research Method ............................................................................................. 10
2.2.1 Case Study ......................................................................................... 10
2.2.2 Design Science ................................................................................... 11
2.2.3 Survey Research ................................................................................ 11
2.2.4 Grounded Theory ............................................................................... 12
2.2.5 Action Research ................................................................................. 12
2.3 Research Process ............................................................................................. 13
2.4 Contributions ................................................................................................... 15
PART II - SETTING THE LANDSCAPE .................................................................. 18
3 Background ..............................................................................................................