YouTube

Got a YouTube account?

New: enable viewer-created translations and captions on your YouTube channel!

English subtitles

← Problem Domain Solution - Software Debugging

Get Embed Code
2 Languages

Showing Revision 3 created 05/24/2016 by Udacity Robot.

  1. The answer to that is a clear yes.

  2. In studies of Firefox and Eclipse
  3. we found one specific feature of the code
  4. that dominated all others.
  5. These were the imports made by individual modules.
  6. That is, the other modules that the module in question would interact with.
  7. More specifically, whatever a module imported
  8. would determine its likelihood to have a defect.
  9. In Firefox, for instance, if you're module included nsIPrivateDOMEvent.h
  10. and nsReadableutils.h--that is, used these specific APIs or interacted with these specific APIs,
  11. then you're code would be doomed.
  12. Because 20 modules that also included these two files
  13. l had at least one security issue.
  14. Likewise, in Eclipse if you imported something that dealt with internal features
  15. of the compiler, your code would be 4-5 times as error prone as code that only dealt
  16. with a graphical user interface.
  17. Why is that so?
  18. Well, if you write import compiler internal, this means you're going to write some compiler code,
  19. and compiler code is more error prone than user interface code,
  20. in particular because if you worked with a user interface,
  21. most errors you make will be immediately visible to the human eye.
  22. Whereas if you deal with compiler internals,
  23. it's a long path from a bug in the compiler to a bug in the actual compiled program,
  24. which then, again, has to be executed in order to have the bug cause a failure.
  25. None of this cause needs to be discovered right away.
  26. All of these are reasons why this domain, namely the compiler,
  27. is way more error prone than the user interface.