2008 02 01 Zeller

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    2008 02 01 Zeller - Presentation Transcript

    1. Die Programmierumgebung der Zukunft Andreas Zeller Universität des Saarlandes
    2. Programmierumgebungen
    3. Werkzeuge
    4. Größere Werkzeuge
    5. Integrierte Werkzeuge
    6. Zusammenspiel
    7. Zusammenspiel
    8. Modelle Specs Code Traces Profile Tests e-mail Fehler Aufwand Navigation Versionen Chats
    9. Modelle Specs Code Traces Profile Tests e-mail Fehler Aufwand Navigation Versionen Chats
    10. Fehler Versionen
    11. Fehler auf Code abbilden Bugs Versionen
    12. Warum sind manche Komponenten Fehlerdichte in Eclipse fehlerträchtiger als andere?
    13. Sind es die Entwickler? Macht Je mehr Erfahrung einen Erfahrung, desto Unterschied? mehr Fehler!
    14. Ist es die Geschichte? Wir haben hier Dann sind hier viele Fehler noch mehr! gefunden…
    15. Ist es die Programmiersprache? Sind gotos Keine Korrelation! schädlich?
    16. Wie steht es mit Metriken? Korrelieren Metriken mit Fehlerdichte?
    17. Projekte • Internet Explorer 6 • IIS Server • Windows Process Messaging • DirectX • NetMeeting >1.000.000 Codezeilen
    18. Projekte A B C D E
    19. Korrelieren Metriken mit Fehlerdichte? Projekt Korrelierte Metriken A #Classes und 5 abgeleitete B fast alle C alle außer MaxInheritanceDepth D nur #Lines E #Functions, #Arcs, McCabe
    20. Wie steht es mit Metriken? Korrelieren Metriken mit Fehlerdichte? Manchmal!
    21. Vorhersage fehlerträchtiger Module • Grundidee: Metriken kombinieren • Größtes Gewicht für vorhersagende Metriken • Problem: Metriken sind untereinander korreliert • Lösung: Principal Component Analysis (PCA)
    22. 6 4 4 8 8 3 1 5 5 1 7 7 3 10 9 2 10 6 2 9 Vorhersage Tatsache
    23. 6 4 4 8 8 3 1 5 5 1 7 7 3 10 9 2 10 6 2 9 Vorhersage Tatsache
    24. 6 4 4 8 8 3 1 5 5 1 7 7 3 10 9 2 10 6 2 9 Vorhersage Tatsache
    25. 6 4 4 8 8 3 1 5 5 1 7 7 3 10 9 2 10 6 2 9 Vorhersage Tatsache
    26. Ist es die Geschichte? Wir haben hier Dann sind noch mehr Fehler viele Fehler in ähnlichen gefunden… Modulen!
    27. Ok. Problembereich? Welche Tokens import • extends sind relevant? • implements
    28. Eclipse Imports 71% aller Komponenten, die compiler importieren, müssen nach dem Release korrigiert werden import org.eclipse.jdt.internal.compiler.lookup.*; import org.eclipse.jdt.internal.compiler.*; import org.eclipse.jdt.internal.compiler.ast.*; import org.eclipse.jdt.internal.compiler.util.*; ... import org.eclipse.pde.core.*; import org.eclipse.jface.wizard.*; import org.eclipse.ui.*; 14% aller Komponenten, die ui importieren, müssen korrigiert werden Joint work with Adrian Schröter • Tom Zimmermann
    29. Eclipse Imports Korrelation mit Fehlschlagen import org.eclipse.jdt.internal.compiler.lookup.*; import org.eclipse.jdt.internal.compiler.*; import org.eclipse.jdt.internal.compiler.ast.*; import org.eclipse.jdt.internal.compiler.util.*; ... import org.eclipse.pde.core.*; import org.eclipse.jface.wizard.*; import org.eclipse.ui.*; Korrelation mit Erfolg
    30. Vorhersage Defekt kein Defekt top 5% 10% ~300 Pakete 90%
    31. Sicherheitslücken in Firefox
    32. ✘ ✘ ✘ ✘ ✘ ✘ nsIContent.h ✘ ✘ ✘ ✘ ✘ ✘ nsIContentUtils.h ✘ ✘ ✘ ✘ ✘ ✘ nsIScriptSecurityManager.h ✘ ✔ ✘ ✘
    33. ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ nsIPrivateDOMEvent.h ✘ ✘ ✘ ✘ ✘ ✘ ✘ nsReadableUtils.h ✘ ✘ ✘ ✘
    34. Vorhersage Komponente Tatsache 1 nsDOMClassInfo 3 2 SGridRowLayout 95 3 xpcprivate 6 4 jsxml 2 5 nsGenericHTMLElement 8 6 jsgc 3 7 nsISEnvironment 12 8 jsfun 1 9 nsHTMLLabelElement 18 10 nsHttpTransaction 35
    35. • Wissen, wo die Fehler sind • Kalibrieren der Fehlervorhersage • Wissen, wo die nächsten Fehler sind • Vollautomatisch!
    36. Software-Archive • enthalten komplette Projektgeschichte • gepflegt durch Programmierumgebungen • automatischer Zugang • frei verfügbar durch Open-Source Projekte Bugs Changes
    37. Modelle Specs Code Traces Profile Tests e-mail Fehler Aufwand Navigation Versionen Chats
    38. Modelle Specs Code Traces Profile Tests “Welche Module sollte ich am meisten testen?” e-mail Fehler Aufwand Navigation Versionen Chats
    39. Modelle Specs Code Traces Profile Tests “Wie lange wird es dauern, diesen Fehler zu beheben?” e-mail Fehler Aufwand Navigation Versionen Chats
    40. Modelle Specs Code Traces Profile Tests “Diese Anforderung ist riskant” e-mail Fehler Aufwand Navigation Versionen Chats
    41. Modelle Specs Code Traces Profile Tests e-mail Fehler Aufwand Navigation Versionen Chats
    42. Jazz.net IBM Jazz Faculty Award für Fehlervorhersage aus Entwicklungsdaten 25,000$
    43. Daten sammeln
    44. Aus Abläufen lernen <init> isEmpty() add(3) remove(2) remove(1) remove(3) add(2) add(1) v:Vector false true 1 2 3 <init> add() add() isEmpty() ¬isEmpty() remove() remove()
    45. Strukturiertes Lernen Erfolgreiche Läufe Fehlschlagende Läufe add() <init> add() <init> add() isEmpty() ¬isEmpty isEmpty() ¬isEmpty clear() clear() ✔ remove() ↯ Programm Lerner ✔ ↯
    46. Modelle Specs Code Traces Profile Tests Lerner e-mail Fehler Aufwand Navigation Versionen Chats
    47. Fehlerdichte in Eclipse
    48. Studien Make this Actionable! Rosenberg, L. and Hyatt, L. “Developing An Effective Metrics Program” European Space Agency Software Assurance Symposium, Netherlands, March, 1996
    49. Zukünftige Programmierumgebungen werden • Muster in Programm und Prozess erkennen • Regeln anwenden, um Vorhersagen zu machen • alle Entwicklungsentscheidungen unterstützen • ihre Unterstützung an das Projekt anpassen
    50. Wikis Joy of Use Participation Usability Recommendation Social Software Collaboration Perpetual Beta Simplicity Empirie 2.0 Trust Economy Remixability The Long Tail DataDriven
    51. Herausforderungen
    52. Modelle Specs Code Traces Profile Tests Programm-Daten Prozess-Daten e-mail Fehler Aufwand Navigation Versionen Chats
    53. Modelle Specs Code Traces Profile Tests Deduktion Induktion e-mail Fehler Aufwand Navigation Versionen Chats
    54. Modelle Specs Code Traces Profile Tests e-mail Fehler Aufwand Navigation Versionen Chats
    55. Modelle Specs Code Traces Profile Tests e-mail Fehler Aufwand Navigation Versionen Chats
    56. Fazit

    + CHOOSE CHOOSE , 2 years ago

    custom

    531 views, 0 favs, 1 embeds more stats

    Andreas Zeller - Die Programmierumgebung der Zukunf more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 531
      • 514 on SlideShare
      • 17 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 0
    Most viewed embeds
    • 17 views on http://choose.s-i.ch

    more

    All embeds
    • 17 views on http://choose.s-i.ch

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories