Refactoring-Based Requirements Refinement Towards Design By

Refactoring-Based Requirements Refinement Towards Design By

Refactoring-based Requirements Refinement Towards Design by Wendy WenQian Liu A thesis submitted in conformity with the requirements for the degree of Doctor of Philosophy Graduate Department of Computer Science University of Toronto Copyright c 2009 by Wendy WenQian Liu Library and Archives Bibliothèque et Canada Archives Canada Published Heritage Direction du Branch Patrimoine de l’édition 395 Wellington Street 395, rue Wellington Ottawa ON K1A 0N4 Ottawa ON K1A 0N4 Canada Canada Your file Votre référence ISBN: 978-0-494-61009-1 Our file Notre référence ISBN: 978-0-494-61009-1 NOTICE: AVIS: The author has granted a non- L’auteur a accordé une licence non exclusive exclusive license allowing Library and permettant à la Bibliothèque et Archives Archives Canada to reproduce, Canada de reproduire, publier, archiver, publish, archive, preserve, conserve, sauvegarder, conserver, transmettre au public communicate to the public by par télécommunication ou par l’Internet, prêter, telecommunication or on the Internet, distribuer et vendre des thèses partout dans le loan, distribute and sell theses monde, à des fins commerciales ou autres, sur worldwide, for commercial or non- support microforme, papier, électronique et/ou commercial purposes, in microform, autres formats. paper, electronic and/or any other formats. The author retains copyright L’auteur conserve la propriété du droit d’auteur ownership and moral rights in this et des droits moraux qui protège cette thèse. Ni thesis. Neither the thesis nor la thèse ni des extraits substantiels de celle-ci substantial extracts from it may be ne doivent être imprimés ou autrement printed or otherwise reproduced reproduits sans son autorisation. without the author’s permission. In compliance with the Canadian Conformément à la loi canadienne sur la Privacy Act some supporting forms protection de la vie privée, quelques may have been removed from this formulaires secondaires ont été enlevés de thesis. cette thèse. While these forms may be included Bien que ces formulaires aient inclus dans in the document page count, their la pagination, il n’y aura aucun contenu removal does not represent any loss manquant. of content from the thesis. Abstract Refactoring-based Requirements Refinement Towards Design Wendy WenQian Liu Doctor of Philosophy Graduate Department of Computer Science University of Toronto 2009 Building systems that satisfy the given requirements is a main goal of software engineer- ing. The success of this process relies largely on the presence of an adequate architectural design. Traditional paradigms deal with requirements separately from design. Our empir- ical studies show that crossing the boundary between requirements and design is difficult, existing tools and methods for bridging the gap inadequate, and that software architects rely heavily on experience, prior solutions, and creativity. Current approaches in moving from requirements to design follow two schools. One is architecture-centric, focused on providing assistance to architects in reuse. The other is requirements-centric, and tends to extend established development frameworks and employ mappings to transition from requirements to architecture. Jackson indicates that clear understanding of requirements (the problem) is crucial to building useful systems, and that to evolve successfully, their design must reflect problem structure. Taylor et al. argue that design is the central activity in connecting requirements and architecture. Nonetheless, existing approaches either overlook underlying structure of requirements or design considerations. This dissertation presents a novel theory enabling requirements structuring and de- sign analysis through requirements refinement and refactoring. The theory introduces a refinement process model operating on four abstraction levels, and a set of refactoring ii operators and algorithms. The method works in small, well-guided steps with visible progress. The theory provides a basis for designers to analyze and simplify requirement de- scriptions, remove redundancy, uncover dependencies, extract lower-level requirements, incorporate design concerns, and produce a system decomposition reflecting the under- lying problem structure. A design built on top of this decomposition is better suited for evolution than one created without explicit structural analysis. The theory is validated on an industrial-sized project, wherein a suitable system decomposition is produced and a comparison made to a conventionally-devised solution. Examples demonstrate that the theory handles changes incrementally. It is explained how the theory addresses the existing challenges in going from requirements to design and supports fundamental software engineering principles. The method is assessed against common validation criteria. The approach is compared with prominent related work. iii To my family iv Acknowledgements It has been a long journey, and I could not have completed it all on my own. I have many people to thank, who have accompanied me, enlightened me, supported me, encouraged me, challenged me, and helped me. To all of them, I am deeply grateful. Foremost, I thank my thesis supervisor, Steve Easterbrook, for his advice, input, encouragement, and support over the years of my graduate study. I am grateful to my thesis committee | Eric Yu, John Mylopoulos, and Kelly Lyons, and external examiner, Julio Leite, for their suggestions and input. I owe a special thank-you to Eric Hehner for his involvement and influence upon my research. I am grateful to have had the opportunity to collaborate with Dewayne Perry and his team at University of Texas at Austin. He always welcomes discussions and is very generous with his time and feedback. I thank Sharon Lymer and Mike Starkey for presenting challenging real-world problems and collaborating on research. I thank Marin Litoiu for guiding me during my time at IBM CAS. I am grateful to Martin Glinz for an enlightening discussion at a key point in my research. I thank all the participants of my empirical studies. I am indebted to my friends and colleagues, Borys Bradel and Jie Ren, for critiquing early drafts of my work and offering ideas and encouragement. I wish to thank my many friends for providing me with moral support. Leslie Wang cheers me up when I feel down. Tao Zheng has made my fellowship-stays delightful. Arbi Ghazarian never fails to strike up a good conversation. Yiqiao Wang offers her empathy for the ups and downs of student life. Edmund Fok persuades me to attend bridge tournaments as a distraction and to challenge my mind in an entirely different way. I wish to thank Stuart Thompson for giving me the courage to leave the industry and take a step into the unknown. v To the many people who have influenced me and my work, and are not mentioned by name, I thank you. I would not be who I am or be able to complete this difficult task without the influ- ence and education I received from my family. I thank my father, David, for his strong influence in reaching higher achievements, and my mother, Ling, for provoking my philo- sophical curiosity. I thank my brother, Harry, for reminding me to be a better person, and my grandmother, Guiying, for her loving care and nurturing. Finally, I wish to express my deepest gratitude to my husband, Peter, for his love, kindness, patience, encouragement, emotional support, mentoring, research input, and walking with me through the entire journey. vi Contents Abstract ii Acknowledgements v 1 Introduction 1 1.1 Background . 2 1.1.1 From Software Requirements to Architecture . 3 1.1.2 Software Engineering Principles . 9 1.2 Research Approach . 11 1.3 Contributions . 13 1.4 Dissertation Outline . 15 2 Requirements Decomposition, Refinement & Refactoring 17 2.1 Foundation of Requirements Engineering . 18 2.2 Requirements Decomposition . 21 2.2.1 Requirements Partition . 22 2.2.2 Problem Decomposition . 24 2.2.3 Goal Decomposition . 27 2.2.4 Formal Methods . 29 2.2.5 Viewpoints . 32 vii 2.2.6 Traceability . 34 2.3 Requirements Refinement . 36 2.3.1 Goal Refinement . 37 2.3.2 Refinement Through Non-functional Decomposition and Conflict Resolution . 40 2.3.3 Inquiry Cycle Model . 44 2.3.4 Process-oriented Refinement . 46 2.4 Refactoring in Software Engineering . 47 2.4.1 Software Refactoring . 47 2.4.2 Program Refactoring . 49 2.4.3 Design Refactoring . 50 2.5 Critical Analysis . 52 2.5.1 On Decomposition Criteria . 52 2.5.2 On Refinement and Design . 53 2.5.3 On the Role of Refactoring . 53 2.5.4 Concluding Remarks . 56 2.6 Summary . 58 3 Empirical Evidence 60 3.1 Business Scenario Framework . 60 3.1.1 Overview of Business Scenario Framework (BSF) . 61 3.1.2 Lessons Learned . 62 3.2 On the Meaning of Software Architecture . 68 3.2.1 Study Design . 69 3.2.2 Data Digest . 70 3.2.3 Evidence Collected in Going from Requirements to Architecture . 71 viii 3.3 Discussions . 73 3.4 Summary . 75 4 A Simple Requirements Refactoring Example 76 4.1 A Simple Requirements Refactoring Method . 77 4.1.1 Definitions . 77 4.1.2 Method . 81 4.1.3 The KWIC Example . 82 4.2 Insight to Requirements Refactoring . 96 4.2.1 Meaning of Requirements Refactoring . 96 4.2.2 Role of Requirements Refactoring . 97 4.3 Summary . 98 5 Theory of Refactoring-based Requirements Refinement 99 5.1 Theory Constructs and Goal . 99 5.1.1 Principal Concepts and Relationship . 100 5.1.2 Goal of the Theory . 102 5.2 Refinement Model (Framework) . 103 5.2.1 Designer versus User Stance . 106 5.2.2 Requirements Abstraction Levels and Refinement Phases . 106 5.3 Refactoring Method . 109 5.3.1 Definitions . 110 5.3.2 Refactoring Operators . 115 5.3.2.1 Properties of Operator Composition . 123 5.3.3 Refactoring Algorithms . 128 5.3.3.1 Problem-level Refactoring . 128 5.3.3.2 Domain-level Refactoring . 134 ix 5.3.3.3 Product-level Refactoring . 138 5.3.3.4 Component-level Refactoring .

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    264 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us