Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1109/ICSE.2007.92acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
Article

Usability Implications of Requiring Parameters in Objects' Constructors

Published: 24 May 2007 Publication History

Abstract

The usability of APIs is increasingly important to programmer productivity. Based on experience with usability studies of specific APIs, techniques were explored for studying the usability of design choices common to many APIs. A comparative study was performed to assess how professional programmers use APIs with required parameters in objects' constructors as opposed to parameterless "default" constructors. It was hypothesized that required parameters would create more usable and self-documenting APIs by guiding programmers toward the correct use of objects and preventing errors. However, in the study, it was found that, contrary to expectations, programmers strongly preferred and were more effective with APIs that did not require constructor parameters. Participants' behavior was analyzed using the cognitive dimensions framework, and revealing that required constructor parameters interfere with common learning strategies, causing undesirable premature commitment.

References

[1]
{1} B Bloch, J., Effective Java Programming Language Guide, Sun Microsystems, Mountain View, CA, 2001.
[2]
{2} Bore, C, and S. Bore, "Profiling software API usability for consumer electronics", Consumer Electronics, 2005
[3]
{3} Clarke, S., "API Usability and the Cognitive Dimensions Framework", http://blogs.msdn.com/stevencl/archive/2003/10/08/57040.as px, 2003.
[4]
{4} Clarke, S., "Measuring API Usability", Dr. Dobbs Journal, 2004, pp S6-S9.
[5]
{5} Cwalina, K. and B. Abrams, Framework Design Guidelines, Addison-Wesley Professional, 2005.
[6]
{6} Gamma, E., R. Helm, R. Johnson, and J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, Boston, MA, 1, 1995.
[7]
{7} Green, T. R. G., and M. Petre, "Usability Analysis of Visual Programming Environments: A 'Cognitive Dimensions' Framework", Journal of Visual Language and Computing, 1996, pp 131-174.
[8]
{8} Grudin, J. and J. Pruitt, Personas, Participatory Design and Product Development: An Infrastructure for Engagement, 2002.
[9]
{9} McLellan, S. G., A. W. Roesler, et al, "Building More Usable APIs", Software, IEEE, 1998, 15(3) pp 78-86.

Cited By

View all
  • (2024)An Investigation into Misuse of Java Security APIs by Large Language ModelsProceedings of the 19th ACM Asia Conference on Computer and Communications Security10.1145/3634737.3661134(1299-1315)Online publication date: 1-Jul-2024
  • (2023)The Sequential Initializer Tree PatternProceedings of the 28th European Conference on Pattern Languages of Programs10.1145/3628034.3628041(1-9)Online publication date: 5-Jul-2023
  • (2023)On the Support for Designing a Conversational Software API: An Action Research StudyProceedings of the XXXVII Brazilian Symposium on Software Engineering10.1145/3613372.3613400(57-66)Online publication date: 25-Sep-2023
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ICSE '07: Proceedings of the 29th international conference on Software Engineering
May 2007
784 pages
ISBN:0769528287

Sponsors

Publisher

IEEE Computer Society

United States

Publication History

Published: 24 May 2007

Check for updates

Qualifiers

  • Article

Acceptance Rates

Overall Acceptance Rate 276 of 1,856 submissions, 15%

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 15 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2024)An Investigation into Misuse of Java Security APIs by Large Language ModelsProceedings of the 19th ACM Asia Conference on Computer and Communications Security10.1145/3634737.3661134(1299-1315)Online publication date: 1-Jul-2024
  • (2023)The Sequential Initializer Tree PatternProceedings of the 28th European Conference on Pattern Languages of Programs10.1145/3628034.3628041(1-9)Online publication date: 5-Jul-2023
  • (2023)On the Support for Designing a Conversational Software API: An Action Research StudyProceedings of the XXXVII Brazilian Symposium on Software Engineering10.1145/3613372.3613400(57-66)Online publication date: 25-Sep-2023
  • (2023)Blindspots in Python and Java APIs Result in Vulnerable CodeACM Transactions on Software Engineering and Methodology10.1145/357185032:3(1-31)Online publication date: 26-Apr-2023
  • (2020)ObsidianACM Transactions on Programming Languages and Systems10.1145/341751642:3(1-82)Online publication date: 25-Nov-2020
  • (2020)Enabling Data-Driven API Design with Community Usage DataProceedings of the 2020 CHI Conference on Human Factors in Computing Systems10.1145/3313831.3376382(1-13)Online publication date: 21-Apr-2020
  • (2019)How developers use API documentationCommunication Design Quarterly10.1145/3358931.33589377:2(40-49)Online publication date: 26-Aug-2019
  • (2019)Exploring tools and strategies used during regular expression composition tasksProceedings of the 27th International Conference on Program Comprehension10.1109/ICPC.2019.00039(197-208)Online publication date: 25-May-2019
  • (2018)API blindspotsProceedings of the Fourteenth USENIX Conference on Usable Privacy and Security10.5555/3291228.3291253(315-328)Online publication date: 12-Aug-2018
  • (2017)On the role of fitness dimensions in API design assessmentProceedings of the 1st International Workshop on API Usage and Evolution10.5555/3106028.3106038(19-22)Online publication date: 20-May-2017
  • Show More Cited By

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media