API Evolution and Usability

30
Thiago Colares @thicolares UFBA / UEFS

description

Presentation I did at the Master Course (UFBA/UEFS) about (1) the role of refactoring and (2) usability in the evolution of APIs. Feel free to download it, so you can see the notes (almost everything is in portuguese, sorry about that )

Transcript of API Evolution and Usability

Page 1: API Evolution and Usability

Thiago Colares@thicolaresUFBA / UEFS

Page 2: API Evolution and Usability

MotivationAPIsEvolutionUsabilityFinal thoughts

Page 3: API Evolution and Usability
Page 4: API Evolution and Usability
Page 5: API Evolution and Usability

http://net.tutsplus.com/articles/news/the-increasing-importance-of-apis-in-web-development/

Page 6: API Evolution and Usability

http://net.tutsplus.com/articles/news/the-increasing-importance-of-apis-in-web-development/

Page 7: API Evolution and Usability

http://net.tutsplus.com/articles/news/the-increasing-importance-of-apis-in-web-development/

Page 8: API Evolution and Usability
Page 9: API Evolution and Usability
Page 10: API Evolution and Usability
Page 11: API Evolution and Usability
Page 12: API Evolution and Usability

String locale = context.getResources().getConfiguration().locale.getDisplayName();

String locale = context.getResources().getConfiguration().locale.getDisplayName();

Page 13: API Evolution and Usability
Page 14: API Evolution and Usability
Page 15: API Evolution and Usability
Page 16: API Evolution and Usability
Page 17: API Evolution and Usability

What this API does?Main entities?How those entities communicates?

Page 18: API Evolution and Usability

AbstractFactory f = AbstractFactory.getDefault();

Widget w = f.createWidget();

AbstractFactory f = AbstractFactory.getDefault();

Widget w = f.createWidget();

Widget w = Widget.create(); Widget w = Widget.create();

Page 19: API Evolution and Usability
Page 20: API Evolution and Usability
Page 21: API Evolution and Usability
Page 22: API Evolution and Usability
Page 23: API Evolution and Usability
Page 24: API Evolution and Usability
Page 25: API Evolution and Usability

BrowseSelectReadNavigateSearchSwitchUseBacktrack

Page 26: API Evolution and Usability

Discovering Relevant DependenciesQuery FormulationExceptionsWeb versus Documentation

Page 27: API Evolution and Usability

…To regard the design refactoring…To review documentation…To improve de development tools

“Usability of software tools impacts developer efficiency”

Steven Clarke

Page 28: API Evolution and Usability

The results also suggest the need of new software en- gineering tools that detect and correct inconsistent program updates when developers apply refactorings.

Number of bug fixes increases after refactorings while the time taken to fix bugs decreases after refactorings.

API usability can be a significant barrier for programmers Scenario-based design / User-centered designYou don’t need expensive usability labsBut time, patience, willing participants, and a framework

with which to understand the results of your analysis.

Page 29: API Evolution and Usability

Kim, Miryung, Dongxiang Cai, and Sunghun Kim. "An empirical investigation into the role of API-level refactorings during software evolution." Software Engineering (ICSE), 2011 33rd International Conference on. IEEE, 2011.

Brian Ellis, Jeffrey Stylos, and Brad Myers. 2007. The Factory Pattern in API Design: A Usability Evaluation. In Proceedings of the 29th international conference on Software Engineering (ICSE '07). IEEE Computer Society, Washington, DC, USA, 302-312. DOI=10.1109/ICSE.2007.85 http://dx.doi.org/10.1109/ICSE.2007.85

Jeffrey Stylos and Steven Clarke. 2007. Usability Implications of Requiring Parameters in Objects' Constructors. In Proceedings of the 29th international conference on Software Engineering (ICSE '07). IEEE Computer Society, Washington, DC, USA, 529-539. DOI=10.1109/ICSE.2007.92 http://dx.doi.org/10.1109/ICSE.2007.9

J. Stylos and S. Clarke, “Usability implications of requir- ing parameters in objects’ constructors,” in Proceedings of the 29th International Conference on Software Engineering, 2007, pp. 529–539.

Ubo Icons Theme 0.1alpha, http://gnome-look.org/content/show.php/Ubo+Icons+Theme?content=122078

Page 30: API Evolution and Usability

@thicolares