API Evolution and Usability

Post on 06-May-2015

230 views 1 download

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

Thiago Colares@thicolaresUFBA / UEFS

MotivationAPIsEvolutionUsabilityFinal thoughts

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

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

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

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

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

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

AbstractFactory f = AbstractFactory.getDefault();

Widget w = f.createWidget();

AbstractFactory f = AbstractFactory.getDefault();

Widget w = f.createWidget();

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

BrowseSelectReadNavigateSearchSwitchUseBacktrack

Discovering Relevant DependenciesQuery FormulationExceptionsWeb versus Documentation

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

“Usability of software tools impacts developer efficiency”

Steven Clarke

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.

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

@thicolares