Usability Evaluation of Configuration-Based API Design Concepts
Usability is an important quality attribute for designing APIs, but usability-related decision factors are often unknown. This is also the case when looking at APIs for configuration tasks, like for dependency injection or object-relational mapping. In these areas three different API design concepts can be found, which are annotations, fluent interfaces, and XML. There exists no research concerning usability-related characteristics and differences between these concepts.
In this paper, we present a usability study that identifies such characteristics and differences between the three concepts, by comparing three different variants of an API for dependency injection. From the study results we evaluate advantages and disadvantages in different use cases, and show how to build more usable configuration-based APIs.
KeywordsAPI Usability API Design Fluent Interfaces Annotations XML
Unable to display preview. Download preview PDF.
- 1.Fowler, M.: Domain-Specific Languages. In: The Addison-Wesley Signature Series. Addison-Wesley (2010)Google Scholar
- 2.Ellis, B., Stylos, J., Myers, B.: The factory pattern in API design: A usability evaluation. In: Proc. of the 29th International Conference on Software Engineering, ICSE 2007, pp. 302–312. IEEE Computer Society, Washington, DC (2007)Google Scholar
- 3.Scheller, T., Kühn, E.: Influencing factors on the usability of api classes and methods. In: 19th Annual IEEE International Conference and Workshops on the Engineering of Computer Based Systems, ECBS 2012, Novi Sad, Serbia, pp. 232–241. IEEE Computer Society (2012)Google Scholar
- 4.Stylos, J., Clarke, S.: Usability implications of requiring parameters in objects’ constructors. In: Proc. of the 29th International Conference on Software Engineering, ICSE 2007, pp. 529–539. IEEE Computer Society, Washington, DC (2007)Google Scholar
- 7.Sapienza, F.: Usability, structured content, and single sourcing with xml. Technical Communication 51(3), 399–408 (2004)Google Scholar
- 8.Cwalina, K., Abrams, B.: Framework design guidelines: conventions, idioms, and patterns for reusable. net libraries, 1st edn. Addison-Wesley Prof. (2005)Google Scholar
- 9.Tulach, J.: Practical API Design: Confessions of a Java Framework Architect, 1st edn. Apress, Berkely (2008)Google Scholar
- 10.Clarke, S.: Measuring API usability. Dr. Dobb’s Journal 29, S6–S9 (2004)Google Scholar
- 13.Fowler, M.: Inversion of Control Containers and the Dependency Injection pattern (January 2004), http://martinfowler.com/articles/injection.html
- 14.Nielsen, J.: Usability Engineering. Morgan Kaufmann, San Francisco (1994)Google Scholar