Design Structure Matrices for Software Nederlandstalige Samenvatting In deze dissertatie presenteren

download Design Structure Matrices for Software Nederlandstalige Samenvatting In deze dissertatie presenteren

of 129

  • date post

    23-Sep-2019
  • Category

    Documents

  • view

    0
  • download

    0

Embed Size (px)

Transcript of Design Structure Matrices for Software Nederlandstalige Samenvatting In deze dissertatie presenteren

  • Faculteit Wetenschappen Vakgroep Computerwetenschappen

    Design Structure Matrices for Software Development

    Proefschrift ingediend met het oog op het behalen van de graad van Licentiaat in de Informatica

    Matthias Stevens

    Promotor: Prof. Dr. Theo D’Hondt Begeleiders: Dr. Johan Brichau

    Dr. Andy Kellens

    20 augustus 2007

  • Faculty of Science Department of Computer Science

    Design Structure Matrices for Software Development

    Graduation thesis submitted with intention to obtain the degree of Licenciate in Computer Science

    Matthias Stevens

    Promotor: Prof. Dr. Theo D’Hondt Advisors: Dr. Johan Brichau

    Dr. Andy Kellens

    August 20, 2007

  • Nederlandstalige Samenvatting

    In deze dissertatie presenteren we ons onderzoek naar toepassingen van Design Structure Matrices (DSMs) en gerelateerde technieken in de context van software ontwikkeling. We spitsen ons toe op twee invalshoeken.

    Enerzijds onderzoeken we of de combinatie van DSMs en het Net Option Value (NOV) model kan gebruikt worden als een kwantitatieve methodologie voor het onderzoeken van modulariteit in software ontwerpen. Om deze methodologie te evalueren introduceren we een software programma om ze te ondersteunen en passen we ze toe om een vergelijkend onderzoek te doen op aspect-georiënteerde en object-georiënteerde implementaties van de- sign patronen. Op basis van deze experimenten formuleren we kritieken met betrekking tot de toepasbaarheid van het NOV model als een modulariteitsmetriek voor software.

    Anderzijds onderzoeken we of DSM diagrammen kunnen dienen als een basis voor een nieuw soort software applicatie ter ondersteuning van software ontwikkelaars. We for- muleren vereisten en een concrete aanpak voor een DSM-gebaseerde source-code browser voor object-georiënteerde software ontwikkeling. Om deze aanpak te valideren presenteren we een prototype van een dergelijke applicatie en demonstreren we hoe deze kan gebruikt worden in realistische situaties.

    iv

  • Abstract

    In this dissertation we present our research into applications of Design Structure Matrices (DSMs) and related techniques in the context of software development. We pursue two research angles.

    On the one hand, we investigate whether the combination of DSMs and the Net Option Value (NOV) model can be used as a quantitative methodology to assess modularity in software design. In order to evaluate this methodology we introduce a tool to facilitate its use and we apply it to conduct a comparative assessment on aspect-oriented and object- oriented design pattern implementations. Based on these experiments we formulate critiques with regard to the applicability of the NOV model as a modularity metric for software.

    On the other hand, we investigate whether DSM diagrams can serve as a basis for a novel kind of support tool for software developers. We formulate requirements and a concrete approach for a DSM-based source-code browser for object-oriented software development. In order to validate this approach we present a prototype implementation of such a tool and we demonstrate how it can be used in real-world situations.

    v

  • Acknowledgements

    I would never have completed this dissertation without the support I received from a number of people. Therefore I would like to express my gratitude towards:

    Prof. Dr. Theo D’Hondt, for promoting this thesis.

    My advisors Dr. Andy Kellens and Dr. Johan Brichau, for coming up with the initial ideas for and contributions to the research that is covered by this dissertation. I would also like to thank them for proofreading and commenting on the text and for the dedication and patience they showed while I was writing it, as well as during my apprenticeship at the lab.

    My girlfriend Sarah, for her invaluable support, her patience and her love. I will do every- thing in my power to make up for many long weeks she had to miss me while I was slaving away at this dissertation.

    My parents, for their unconditional support and encouragement and for giving me the pos- sibility to obtain a second higher education degree. I would also like to thank my mother for supplying me with provisions and my farther for his last-minute proofreading.

    My brother Jasper, for his support and for the fun phone calls during his and my absence.

    Andreas, Axel, Erwin, Jonas, Julie, Matthias, Pieter, Rien and my other friends in Ghent, for distracting me and for constantly enquiring when I would join them to go out again.

    Karlien, for her companionship and support during our daily long working sessions at the lab in the course of the best part of July and August.

    Clément, Dries, Erik, Isabel, Karlien, Lode, Pierre, Pieter, Thomas and my other fellow students and members of Infogroep, for making the past three years at the university such a fun time.

    Everyone at the Programming Technology Lab, for providing a pleasant and serene working environment.

    The Vrije Universiteit Brussel and its Departement of Computer Science, for providing an excellent education.

    And last but not least, my cat Puck, for always cheering me up.

    And of course, Ever Marcassou for his support and companionship.

    vi

  • Contents

    1 Introduction 1 1.1 Context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 DSMs for Software Development . . . . . . . . . . . . . . . . . . . . . . 2

    1.2.1 Evaluating Modularity with DSMs and NOV . . . . . . . . . . . . 2 1.2.2 DSM-based Support Tools . . . . . . . . . . . . . . . . . . . . . . 3

    1.3 Approach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.4 Outline of the Dissertation . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.5 Notable Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

    2 Design Structure Matrices 6 2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2 Basic Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

    2.2.1 A Matrix of Parameters . . . . . . . . . . . . . . . . . . . . . . . 7 2.2.2 Dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

    2.3 Baldwin & Clark: DSMs & Modularity . . . . . . . . . . . . . . . . . . . 9 2.3.1 What is Modularity? . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.3.2 Representing Modularity in Designs using DSMs . . . . . . . . . . 10 2.3.3 Design Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.3.4 Modularity in Design . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.3.5 Modular Operators . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.3.6 Net Option Value of a Modular Design . . . . . . . . . . . . . . . 13

    2.3.6.1 Real Options . . . . . . . . . . . . . . . . . . . . . . . . 13 2.3.6.2 NOV Formulae . . . . . . . . . . . . . . . . . . . . . . . 14 2.3.6.3 NOV Calculation Example . . . . . . . . . . . . . . . . . 16 2.3.6.4 Strength and Weakness . . . . . . . . . . . . . . . . . . 18

    2.4 Overview of Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.4.1 Roles of DSMs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

    2.4.1.1 Project Management Tool . . . . . . . . . . . . . . . . . 19 2.4.1.2 System Analysis Tool . . . . . . . . . . . . . . . . . . . 20

    2.4.2 Types of DSMs . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.5 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

    vii

  • 3 DSM+NOV Tool 23 3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.2 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.3 Approach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.4 DSM+NOV Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

    3.4.1 Net Option Value Calculation . . . . . . . . . . . . . . . . . . . . 27 3.4.2 Module- and Parameter-level DSMs . . . . . . . . . . . . . . . . . 28

    3.5 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

    4 Assessing Aspect-Orientation using DSMs and NOV 33 4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.2 Aspect-Oriented Software Development . . . . . . . . . . . . . . . . . . . 34

    4.2.1 Modularisation and Separation of Concerns . . . . . . . . . . . . . 35 4.2.2 Crosscutting Concerns . . . . . . . . . . . . . . . . . . . . . . . . 35 4.2.3 Aspectual Decomposition & Aspects . . . . . . . . . . . . . . . . 37 4.2.4 AspectJ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.2.5 The Fragile Pointcut Problem . . . . . . . . . . . . . . . . . . . . 41

    4.3 Related Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 4.4 Design Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

    4.4.1 Aspect-Oriented Design Patterns . . . . . . . . . . . . . . . . . . 44 4.5 Experiments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

    4.5.1 Approach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 4.5.2 Observer Pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.5.3 Provisional Conclusions . . . . . . . . . . . . . . . . . . . . . . . 50 4.5.4 Builder Pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 4.5.5 Composite Pattern . . . . . . . . . . . . . . . . . . . . . . . . . . 52 4.5.6 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

    4.5.6.1 Summary . . . . . . . . . . . .