Scaling up an end-user dependability framework for spreadsheets Public Deposited

http://ir.library.oregonstate.edu/concern/technical_reports/jm214q23g

Descriptions

Attribute NameValues
Creator
Abstract or Summary
  • The WYSIWYT (What You See is What You Test) methodology applies formal analysis and testing techniques to the spreadsheet paradigm. So far the methodology has been applied to a research spreadsheet prototype, Forms/3. However, this prototype lacks the mathematical libraries, referential functions, ranges, and macros of commercial spreadsheets like Excel and Lotus 1-2-3. Study subjects are also accustomed to the grid-like interface of commercial spreadsheet packages and many spreadsheets of interest are available in the Excel file format. This project addresses these areas by implementing WYSIWYT in Microsoft Excel and Gnumeric.
Resource Type
Date Available
Date Issued
Table of Contents
  • 1 Introduction 6 1.1 Approaches to Improving Dependability . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.2 Problems of Scale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.2.1 Complexity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.2.2 Correctness Decisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.2.3 Motivating Different Users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.3 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.4 Organization of this Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2 Background and Related Work 8 2.1 Forms/3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.2 WYSIWYT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.3 Regions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.4 Assertions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.5 Microsoft Excel and Gnumeric . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.6 Definitions, Acronyms, Abbreviations . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3 System Requirements 12 3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.1.1 Scope of the System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.2 General Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.2.1 System Perspective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.2.2 System Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.2.3 User Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.2.4 General Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.2.5 Assumptions and Dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.3 Specific Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.3.1 Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.3.2 Features and Constraints by Layer . . . . . . . . . . . . . . . . . . . . . . . . 14 3.3.3 Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.3.4 Extensibility/Maintenance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.3.5 Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3.3.6 External Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3.3.7 Internal Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3.3.8 Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3.3.9 Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 4 Plan of the Work 19 4.1 Initial Plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.2 Revised Plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 5 Design 22 5.1 Overall Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 5.2 Frontend Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 5.3 Backend Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 5.4 Communications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2 5.4.1 Communications Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 5.4.2 Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 5.4.3 Excel-Specific Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 5.4.4 Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 6 User Interface Design 29 6.1 Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 6.2 WYSIWYT User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 6.3 Regions User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 6.3.1 Region Borders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 6.3.2 Discontiguous Regions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 6.3.3 Modifying Regions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 6.4 Progress Bar User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 6.5 Fault Likelihood User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 6.6 Test Case Generation (HMT) User Interface . . . . . . . . . . . . . . . . . . . . . . . 33 6.7 Assertions User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 6.8 Arrows User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 6.9 Explanations User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 7 Implementation 39 7.1 Communications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 7.1.1 General Sockets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 7.1.2 Windows Sockets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 7.1.3 MacOS X Sockets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 7.1.4 Message Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 7.2 Excel Formula Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 7.2.1 Lexical Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 7.2.2 Parsing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 7.2.3 Reference Conversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 7.2.4 Evaluation Conversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 7.3 Testboxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 7.4 Request Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 7.5 Fault Localization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 7.6 Form-Level Indicators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 7.6.1 Testedness Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 7.6.2 Fault Localization Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 7.7 Arrows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 7.8 Explanations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 7.9 Transcripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 7.10 Clean Up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 7.11 Test Case Generation (HMT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 7.12 Optimizations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 7.13 Redesign Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 8 System Execution and Development 51 8.1 Execution and Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 8.2 Version Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 8.3 Style Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 8.3.1 General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 8.3.2 Visual Basic for Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 8.3.3 Common Lisp and CLOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 9 Gnumeric 57 9.1 Excel Shortcomings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 9.1.1 Inflexible User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 9.1.2 Difficult Native Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 9.1.3 Design Holes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 9.1.4 Testmeric . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 9.2 Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 9.3 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 9.3.1 Build System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 9.3.2 Library Communications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 9.3.3 Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 9.4 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 10 Conclusions and Future Work 61 11 Appendix A: Excel Formula Grammars 64 11.1 An Excel Formula Grammar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 11.2 Original Precedence Grammar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 11.3 Formula Lexemes as Regular Expressions . . . . . . . . . . . . . . . . . . . . . . . . 65 12 Appendix B: Communications Format 67 12.1 From Frontend to Backend Specification . . . . . . . . . . . . . . . . . . . . . . . . . 67 12.2 From Backend to Frontend Specification . . . . . . . . . . . . . . . . . . . . . . . . . 68 List of Figures 1 A cell relation graph. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2 A diagram of interoperability requirements for the system. . . . . . . . . . . . . . . . 17 3 The initial project plan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 4 The revised project plan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 5 The overall Excel architecture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 6 The Application hierarchy under ExcelForms. . . . . . . . . . . . . . . . . . . . . . . 23 7 The Collection and OLEObject hierarchies under ExcelForms. . . . . . . . . . . . . . 24 8 The displayable hierarchy under LispForms. . . . . . . . . . . . . . . . . . . . . . . . 25 9 The GSearchable hierarchy under LispForms. . . . . . . . . . . . . . . . . . . . . . . 26 10 A mockup of primary and paired testboxes. . . . . . . . . . . . . . . . . . . . . . . . 31 11 A mockup of the user interface for Regions. . . . . . . . . . . . . . . . . . . . . . . . 32 12 The testedness indicator originally used in Forms/3. . . . . . . . . . . . . . . . . . . 33 13 A case of Fault Localization masking testedness. . . . . . . . . . . . . . . . . . . . . 33 14 A mockup of the Regions user interface with Fault Localization. . . . . . . . . . . . 34 15 A mockup of the Help Me Test (HMT) user interface. . . . . . . . . . . . . . . . . . 34 16 An example spreadsheet with all cells having assertions. . . . . . . . . . . . . . . . . 36 17 An example of the floating assertions toolbar. . . . . . . . . . . . . . . . . . . . . . . 36 18 A mockup of the curved inter-row arrows. . . . . . . . . . . . . . . . . . . . . . . . . 37 19 A mockup of arrows between subexpressions under formula view. . . . . . . . . . . . 37 20 An example of arrows between cells under non-formula view. . . . . . . . . . . . . . 37 21 An example of arrows sharing endpoints, with the reddest arrows on top. . . . . . . 38 22 Evaluation of predicates under Excel for tracing. . . . . . . . . . . . . . . . . . . . . 45 23 Use of toolbar buttons to implement a progress bar on the Windows platform. . . . 46 24 The Fault Localization overview bar. . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 25 Arrows under WYSIWYT-XL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 26 The tooltip-based explanation system. . . . . . . . . . . . . . . . . . . . . . . . . . . 48 27 A diagram of the overall Testmeric architecture. . . . . . . . . . . . . . . . . . . . . 58 28 A screenshot of Testmeric. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 List of Tables 1 Spreadsheet Package Candidates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2 The platform requirements for WYSIWYT-XL. . . . . . . . . . . . . . . . . . . . . . 14 3 Formula and Value View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 4 Excel Formula Lexemes and Tokens . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 5 References Across Workbooks and Worksheets Are Scanned Specially . . . . . . . . . 42 6 Excel Formula Conversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 7 Use of VarType with Variant Function . . . . . . . . . . . . . . . . . . . . . . . . . . 58 List of Algorithms 1 Message Processing Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 2 Importing and Exporting CodePanes . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Rights Statement
Language
Replaces
Additional Information
  • description.provenance : Made available in DSpace on 2009-06-03T18:16:27Z (GMT). No. of bitstreams: 1 Tyler_Creelan.pdf: 704841 bytes, checksum: eda965e5fe53bd09dad69acfbc33dc9f (MD5)
  • description.provenance : Approved for entry into archive by Linda Kathman(linda.kathman@oregonstate.edu) on 2009-06-03T18:16:27Z (GMT) No. of bitstreams: 1 Tyler_Creelan.pdf: 704841 bytes, checksum: eda965e5fe53bd09dad69acfbc33dc9f (MD5)
  • description.provenance : Submitted by Philip Vue (vuep@onid.orst.edu) on 2009-06-03T17:24:26Z No. of bitstreams: 1 Tyler_Creelan.pdf: 704841 bytes, checksum: eda965e5fe53bd09dad69acfbc33dc9f (MD5)

Relationships

Parents:

This work has no parents.

Last modified

Downloadable Content

Download PDF

Items