Abstract
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.
Keywords
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Fowler, M.: Domain-Specific Languages. In: The Addison-Wesley Signature Series. Addison-Wesley (2010)
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)
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)
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)
Stylos, J., Myers, B.A.: The implications of method placement on API learnability. In: Proc. of the 16th ACM SIGSOFT International Symposium on Foundations of Software Engineering, SIGSOFT 2008/FSE-16, pp. 105–112. ACM, New York (2008)
Graaumans, J.: A qualitative study to the usability of three xml query languages. In: Proc. of the Conference on Dutch Directions in HCI, Dutch HCI 2004, pp. 6–9. ACM, New York (2004)
Sapienza, F.: Usability, structured content, and single sourcing with xml. Technical Communication 51(3), 399–408 (2004)
Cwalina, K., Abrams, B.: Framework design guidelines: conventions, idioms, and patterns for reusable. net libraries, 1st edn. Addison-Wesley Prof. (2005)
Tulach, J.: Practical API Design: Confessions of a Java Framework Architect, 1st edn. Apress, Berkely (2008)
Clarke, S.: Measuring API usability. Dr. Dobb’s Journal 29, S6–S9 (2004)
Henning, M.: API design matters. Queue 5, 24–36 (2007)
Robillard, M.P.: What makes APIs hard to learn? answers from developers. IEEE Software 26, 27–34 (2009)
Fowler, M.: Inversion of Control Containers and the Dependency Injection pattern (January 2004), http://martinfowler.com/articles/injection.html
Nielsen, J.: Usability Engineering. Morgan Kaufmann, San Francisco (1994)
Scheller, T., Kühn, E.: Measurable concepts for the usability of software components. In: Proc. of the 37th EUROMICRO Conference on Software Engineering and Advanced Applications, SEAA 2011, pp. 129–133. IEEE Computer Society, Oulu (2011)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Scheller, T., Kühn, E. (2013). Usability Evaluation of Configuration-Based API Design Concepts. In: Holzinger, A., Ziefle, M., Hitz, M., Debevc, M. (eds) Human Factors in Computing and Informatics. SouthCHI 2013. Lecture Notes in Computer Science, vol 7946. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-39062-3_4
Download citation
DOI: https://doi.org/10.1007/978-3-642-39062-3_4
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-39061-6
Online ISBN: 978-3-642-39062-3
eBook Packages: Computer ScienceComputer Science (R0)