Download (15Mb)
Total Page:16
File Type:pdf, Size:1020Kb
University of Warwick institutional repository: http://go.warwick.ac.uk/wrap A Thesis Submitted for the Degree of PhD at the University of Warwick http://go.warwick.ac.uk/wrap/46969 This thesis is made available online and is protected by original copyright. Please scroll down to view the document itself. Please refer to the repository record for this item for information to help you to cite it. Our policy information is available from the repository home page. Supporting the Migration from Construal to Program: Rethinking Software Development by Nicolas William Pope Thesis Submitted to the University of Warwick for the degree of Doctor of Philosophy Department of Computer Science August 2011 Contents List of Tables vii List of Figures viii Acknowledgments xvi Declarations xvii Abstract xviii Abbreviations xix Chapter 1 Introduction 1 1.1 Plastic Applications . .1 1.2 Plastic Software Environments . .4 1.3 A Lack of Plasticity . .6 1.4 Thesis Aims . .9 1.5 Thesis Outline . 10 Chapter 2 Background 13 2.1 End-User Development . 13 2.1.1 Principles . 14 2.1.2 Common Approaches . 17 ii 2.1.3 Existing Environments . 17 2.1.4 Guidelines . 24 2.2 Empirical Modelling . 26 2.2.1 What is Empirical Modelling? . 26 2.2.2 The Principles . 32 2.2.3 Current Tools . 35 2.2.4 An Example Model . 38 2.2.5 EM and Software Development . 41 2.3 Miscellaneous Technologies . 43 Chapter 3 Enabling Plastic Applications 45 3.1 Empirical Modelling and Plastic Applications . 45 3.2 Dimensions of Refinement . 48 3.3 Limitations of EM Tools and Concepts . 51 3.3.1 Richness of Observables . 51 3.3.2 Analogue and Process Dependencies . 57 3.3.3 Notations and Agents . 61 3.3.4 Summary of Survey . 67 3.4 Looking for Solutions . 69 3.4.1 Richer Types and Semi-Structure . 70 3.4.2 Taking Advantage of Dependency . 72 3.5 A New Tool? . 74 Chapter 4 Cadence: A Prototype Tool 76 4.1 What is Cadence? . 77 4.2 Semi-structuring the OD-net . 78 4.2.1 How to Introduce Structure . 78 4.2.2 Developing a Textual Notation . 81 4.2.3 Cloning Sub-graphs . 85 iii 4.3 Making the OD-net Dynamic and Dynamical . 88 4.3.1 Computation by Navigation . 88 4.3.2 Definitions for Passive Dependency . 92 4.3.3 Definitions for Active Dependency . 96 4.3.4 Generic Definitions . 98 4.4 Implementing Cadence . 100 4.4.1 Architecture Overview . 100 4.4.2 Events and Queues . 102 4.4.3 Handlers and Agents . 106 4.4.4 C++ API . 107 4.4.5 Graphical Interfaces . 108 4.4.6 Other Extensions . 110 Chapter 5 Cadence Models and Examples 111 5.1 Stargate . 111 5.1.1 Shader Composition for Bloom Effect . 114 5.1.2 Applying Materials to a Model . 121 5.1.3 Use of Dynamical Dependencies . 125 5.1.4 Stargate Summary . 129 5.2 Hardware Device Drivers . 130 5.3 Network Distribution for a Video Wall . 132 5.4 Kinesin Biological Model . 135 5.5 Wii-fly Game and Presentation . 138 Chapter 6 Cadence Framework 142 6.1 The Concepts in Cadence . 143 6.1.1 Observables . 143 6.1.2 Relationships and Dependency . 147 6.1.3 Agency . 154 iv 6.2 Development Process . 156 6.3 Supporting Plastic Applications . 159 6.3.1 Supporting Personal Construals . 159 6.3.2 Supporting Public Programs . 165 6.3.3 Supporting Migration from Personal to Public . 167 Chapter 7 Cadence and Empirical Modelling 169 7.1 Cadence-in-Eden . 170 7.1.1 Cloning for Timetable and Bubble Sort . 175 7.1.2 Boolean Lattice Model . 178 7.1.3 Visualisation using the DMT . 180 7.2 Eden-with-Cadence . 183 7.2.1 Inter-Tool Communication . 184 7.2.2 Traffic Light System . 187 7.2.3 Timetable Revisited . 190 7.3 Cadence in the EM MSc Module . 194 7.3.1 Teaching Cadence . 194 7.3.2 Lab Sheets . 195 7.3.3 Coursework Models . 197 7.3.4 Student Feedback . 204 Chapter 8 Conclusions and Further Work 206 8.1 Contributions . 208 8.2 Further Work . 209 8.2.1 Larger Project and Complex Applications . 210 8.2.2 Interactive Development Environment . 210 8.2.3 Collaboration and Distribution . 211 8.2.4 Histories and Persistence . 211 8.2.5 Custom Agency: Security and Schema . 212 v 8.2.6 Support for Meta-Relations . 213 8.2.7 Optimisations and Concurrency . 213 8.2.8 Formal Account . 214 8.3 Limitations of the Approach . 214 8.4 Looking Forward . 215 Appendix A DASM Scripts for Models 216 A.1 Stargate Scripts . 216 A.2 Wii-fly Script . 236 Appendix B C++ Agents 240 Appendix C Student Questionnaire 243 vi List of Tables 2.1 EUD Principles . 16 2.2 EUD Guidelines [Repenning and Ioannidou, 2006] . 25 3.1 Illustrating DoNaLD to Eden translation . 64 3.2 20 problems of EM and its tools . 68 4.1 Main DOSTE event types . 103 7.1 CINE notation and the equivalent Eden expressions . 173 7.2 Comparison between EDEN and Cadence . 188 vii List of Figures 2.1 Original EM Conceptual Diagram . 28 2.2 Refinement from experience to \program" . 29 2.3 Problem Shapes . 30 2.4 EM ODA Framework . 32 2.5 Filing Cabinet and LCD Digit . 34 2.6 Agents interacting with a definitive script. As the script matures agent interactions are restricted. 34 2.7 Tkeden Input Window . 36 2.8 Web interface to Tkeden developed by Richard Myers . 36 2.9 Evolution of the Digital Watch. Top-left: Cartwright 1995, Top-right: Fischer 1999, Bottom-left: Roe 2001 and Bottom-right: Cartwright's Chess Clock 1995 . 39 2.10 EM Software Development Process, based upon diagram in [Beynon and Russ, 1995] . 42 3.1 Transition from personal to public. a) shows traditional programs that have no such on-line transition. b) gives Empirical Modellings attempt and c) shows the ideal plastic applications result. 47 3.2 A need to improve support for context and for construals implemented on a computer . 50 3.3 Left: Eden Logic Simulator. Right: Lines Model. 54 viii 3.4 Notation layering in EDEN . 63 3.5 Fraction of student models that explicitly or implicitly mentioned prob- lems in each category . 67 3.6 Fraction of student models that explicitly or implicitly mentioned specific problems . 69 3.7 ODA with active dependency. 73 4.1 Cadence conceptual model . 77 4.2 Cadence terminology for graph structures. Dark (blue) nodes and solid lines are what the terms refer to, whilst the grey and dashed lines set the context for use of those terms. 79 4.3 A graph example of representing a colour . 80 4.4 Navigating before an.