220 likes | 740 Views
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.
E N D
Early Intervention Techniques Dave Donaghy, Hewlett-Packard, Bristol, UK Tom Crick, Cardiff Metropolitan University, UK
The Authors • Dave Donaghy – Software EngineerHewlett-Packard, Bristol, UK • Dr Tom Crick – Senior Lecturer in Computing ScienceCardiff Metropolitan University, UK
Introduction • Developers often think up new methods for process improvement • Are those methods useful?
“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?
Restrictions on operations • typedef __attribute__((restriction("plus"))) int counter; • static counter c = 0; • void registerEvent() • { • c--; /* ERROR - decrement not allowed */ • /* Other functionality omitted ... */ • }
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); • }
What if … • typedef __attribute__((restriction("plus"))) int counter; • static counter c = 0; • void registerEvent() • { • c--; /* No-one ever makes this mistake! */ • /* Other functionality omitted ... */ • }
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); • }
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?
Testing in situ • “Does it work for us?” • Individual organizations can run this testing themselves
In-place industrial testing • 5 years+ of existing data • Massive opportunity for in-place testing
PhD at Cardiff Metropolitan University • Start early 2015 • Scaling Superoptimisation for Enterprise Applications