Techniques and Practices for Software Architecture Work · PDF fileTechniques and Practices...

Click here to load reader

  • date post

    28-Jun-2018
  • Category

    Documents

  • view

    214
  • download

    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 ..............................................................................................................