| Preface | 5 |
---|
| Organization | 7 |
---|
| Table of Contents | 9 |
---|
| The End of the Computing Era: Hephaestus Meets the Olympians | 11 |
---|
| Modeling of Component Environment in Presence of Callbacks and Autonomous Activities | 12 |
---|
| Introduction | 12 |
| Goals and Structure of the Paper | 16 |
| Behavior Protocols | 16 |
| Modeling Environment via Behavior Protocols | 17 |
| Calling Protocol vs. Callbacks and Autonomous Activities | 20 |
| Calling | 20 |
| 22 | 20 |
---|
| Construction of Calling and Trigger Protocol | 23 |
| Tools and Experiments | 24 |
| Evaluation and Related Work | 25 |
| Conclusion | 27 |
| References | 27 |
| Efficient Model Checking of Networked Applications | 32 |
---|
| Introduction | 32 |
| Intuition of the Caching Algorithm | 33 |
| SoftwareModel Checking | 33 |
| Handling Redundant Actions After Backtracking | 34 |
| Extension to More Complex Protocols | 37 |
| Formalization of the Caching Algorithm | 37 |
| Stream Abstraction | 38 |
| Execution Semantics | 38 |
| Example Execution Scenario | 39 |
| Limitations of Our Approach | 41 |
| Implementation | 42 |
| Experiments | 43 |
| Example Applications | 44 |
| Results | 44 |
| Summary | 46 |
| Related Work | 47 |
| Conclusions | 48 |
| Future Work | 49 |
| References | 49 |
| Controlling Accessibility in Agile Projects with the Access Modifier Modifier | 51 |
---|
| Introduction | 51 |
| Motivation | 52 |
| Sufficient and Excessive Accessibility | 54 |
| Accessibility Status and APIs | 55 |
| Accessibility Status and Subtyping | 57 |
| Interface Implementation | 57 |
| Anonymous Subclasses | 58 |
| Accessibility and Program Semantics | 58 |
| Dynamic Binding: Overriding with Open Recursion | 58 |
| Static Binding: Overloading and the Most Specific Method | 60 |
| The Access Modifier Modifier Tool | 60 |
| Full Build | 61 |
| Incremental Build | 62 |
| Reducing Accessibility or Adding an @API Annotation | 62 |
| Increasing Accessibility | 62 |
| Evaluation | 63 |
| Usefulness | 63 |
| Cost | 65 |
| Discussion | 65 |
| Related Work | 66 |
| Future Work | 67 |
| Conclusion | 68 |
| References | 68 |
| Towards Raising the Failure of Unit Tests to the Level of Compiler-Reported Errors | 70 |
---|
| Introduction | 70 |
| Problem | 72 |
| Fault Locators | 73 |
| Fault Locators Based on Prior Knowledge | 74 |
| Fault Locators Based on Posterior Knowledge | 74 |
| Evaluation | 76 |
| Evaluation Based on Flawed Historical Releases | 76 |
| Evaluation Based on Error Seeding | 79 |
| Evaluation in Practice | 81 |
| Architecture of EZUNIT | 83 |
| Call Graph Computation | 83 |
| Adding New Fault Locators | 84 |
| Other Possible Fault Locators | 85 |
| Related Work | 86 |
| Conclusion | 87 |
| References | 88 |
| Virtual Machine Support for Stateful Aspects | 90 |
---|
| Introduction | 90 |
| Stateful Aspects Examples |