1 / 18

Early Intervention Techniques

Early Intervention Techniques. Dave Donaghy, Hewlett-Packard, Bristol, UK Tom Crick, Cardiff Metropolitan University, UK. The Authors. Dave Donaghy – Software Engineer Hewlett-Packard, Bristol, UK Dr Tom Crick – Senior Lecturer in Computing Science Cardiff Metropolitan University, UK.

Download Presentation

Early Intervention Techniques

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Early Intervention Techniques Dave Donaghy, Hewlett-Packard, Bristol, UK Tom Crick, Cardiff Metropolitan University, UK

  2. The Authors • Dave Donaghy – Software EngineerHewlett-Packard, Bristol, UK • Dr Tom Crick – Senior Lecturer in Computing ScienceCardiff Metropolitan University, UK

  3. Introduction • Developers often think up new methods for process improvement • Are those methods useful?

  4. Cool New Tricks

  5. “I’ve got this cool idea …” • In the development environment … • How often do developers come up with cool new tricks to make their lives easier?

  6. Restrictions on operations • typedef __attribute__((restriction("plus"))) int counter; • static counter c = 0; • void registerEvent() • { • c--; /* ERROR - decrement not allowed */ • /* Other functionality omitted ... */ • }

  7. Tagging physical types • typedef __attribute__((physical("m"))) double length; /* metres */ • typedef __attribute__((physical("s"))) double time; /* seconds */ • length calculateDistance() • { • lengthlen = getLengthFromElsewhere(); • len += getTimeFromElsewhere(); /* ERROR - incompatible addition! */ • return (len); • }

  8. Testing Interventions

  9. What if … • typedef __attribute__((restriction("plus"))) int counter; • static counter c = 0; • void registerEvent() • { • c--; /* No-one ever makes this mistake! */ • /* Other functionality omitted ... */ • }

  10. What if … • typedef __attribute__((physical("m"))) double length; /* metres */ • typedef __attribute__((physical("s"))) double time; /* seconds */ • length calculateDistance() • { • length len = getLengthFromElsewhere(); • len += getTimeFromElsewhere(); /* There are better ways to prevent this! */ • return (len); • }

  11. Testing a new intervention • Does my intervention detect errors at all? • Does it detect enough errors? • Does it provide a business benefit? • Does it make things worse?

  12. Testing in situ • “Does it work for us?” • Individual organizations can run this testing themselves

  13. Next Steps

  14. In-place industrial testing • 5 years+ of existing data • Massive opportunity for in-place testing

  15. Questions?

  16. Additional …

  17. PhD at Cardiff Metropolitan University • Start early 2015 • Scaling Superoptimisation for Enterprise Applications

  18. End

More Related