A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://doi.org/10.1007/s10664-011-9186-4 below:

What should developers be aware of? An empirical study on the directives of API documentation

Abstract

Application Programming Interfaces (API) are exposed to developers in order to reuse software libraries. API directives are natural-language statements in API documentation that make developers aware of constraints and guidelines related to the usage of an API. This paper presents the design and the results of an empirical study on the directives of API documentation of object-oriented libraries. Its main contribution is to propose and extensively discuss a taxonomy of 23 kinds of API directives.

This is a preview of subscription content, log in via an institution to check access.

Access this article Subscribe and save

Springer+ Basic

€34.99 /Month

Subscribe now Buy Now

Price includes VAT (Germany)

Instant access to the full article PDF.

Institutional subscriptions

Similar content being viewed by others Explore related subjectsDiscover the latest articles and news from researchers in related subjects, suggested using machine learning. Notes
  1. Eclipse is an extensible development environment primarily targeted for Java.

  2. See http://jgrapht.sourceforge.net.

  3. See http://www.oracle.com/technetwork/java/javase/index.html.

  4. See http://www.microsoft.com/net/.

  5. See http://www.boost.org/.

  6. See http://msdn.microsoft.com/en-us/library/d06h2x6e(v=VS.100).aspx.

  7. This version of JDK is available at http://download.java.net/jdk6/6u21/promoted/b05/.

  8. See http://wiki.eclipse.org/index.php/JFace.

  9. $ cvs -d :pserver:anonymous@dev.eclipse.org/cvsroot/eclipse/ co -D “15 Oct 2009” org.eclipse.jface

  10. See http://commons.apache.org/collections/.

  11. To create and query the index, we used Lucene, see http://lucene.apache.net.

  12. in Commons Collections’ CollatingIterator.addIterator(iterator)

  13. in JDK’s RuntimePermission.RuntimePermission(name, actions)

  14. in JFace’s IInformationControlExtension5.getInformationPresenterControlCreator()

  15. in JDK’s Math.cos(a)

  16. in JFace’s Dialog.getParent()

  17. in JDK’s JobAttributes.getPageRanges()

  18. in JDK’s RMIClassLoaderSpi.loadClass(codebase, name, defaultLoader)

  19. in JFace’s PopupDialog.createDialogArea(parent)

  20. in JDK’s Logger.setParent(parent)

  21. in Commons Collections’ AbstractOrderedMapDecorator.AbstractOrderedMapDecorator()

  22. in JFace’s ListEditor.getShell()

  23. in JDK’s ActivationDesc.ActivationDesc(groupID, className, location, data, restart)

  24. in JDK’s PolicySpi

  25. in JDK’s LSParserFilter

  26. in JDK’s Map.Entry.getKey()

  27. in JDK’s DatabaseMetaData.getColumnPrivileges(catalog, schema, table, columnNamePattern)

  28. in JFace’s ContentProposalAdapter.setAutoActivationCharacters(autoActivationCharacters)

  29. Runtime.load(filename): “The filename argument must be a complete path name, (for example Runtime.getRuntime().load(“/home/avh/lib/libX11.so‘’);)”.

  30. in JDK’s HttpCookie.HttpCookie(name, value)

  31. in JDK’s ManagementPermission.ManagementPermission(name, actions). Although this may seem to be a bad design, we include it here since examples like this do appear in the APIs we studied.

  32. in JDK’s Statement.execute(sql, autoGeneratedKeys)

  33. in JDK’s ServerSocket.ServerSocket(port, backlog, bindAddr)

  34. in JDK’s CallableStatement.registerOutParameter(parameterIndex, sqlType, scale)

  35. in JDK’s DateFormat.format(obj, toAppendTo, fieldPosition)

  36. in JDK’s CertPathValidator.validate(certPath, params)

  37. in JDK’s MarshalledObject.MarshalledObject(obj)

  38. in JDK’s KeyStore.setKeyEntry(alias, key, password, chain)

  39. in JDK’s CallableStatement.setNClob(parameterName, reader, length)

  40. in AlgorithmParameters.getInstance(algorithm)

  41. in JDK’s File.renameTo(dest)

  42. in JDK’s PortableRemoteObject.toStub(obj)

  43. in JDK’s Runtime.addShutdownHook(hook)

  44. in JDK’s ActivationGroup.inactiveObject(id)

  45. in JFace’s LabelProvider

  46. in Apache Commons Collections’ AbstractLinkedList.isEqualValue(value1, value2)

  47. in JDK’s ThreadLocal.initialValue()

  48. in JFace’s StyledCellLabelProvider

  49. in Apache Commons Collections’ AbstractLinkedList

  50. in JDK’s BigDecimal.setScale(newScale, roundingMode)

  51. in JFace’s Dialog.createDialogArea(parent

  52. in Apache Commons Collections’ Bag.remove(object)

  53. in JFace’s StringFieldEditor.doFillIntoGrid(parent, numColumns)

  54. in JDK’s Component.removeNotify()

  55. in Apache Commons Collections’ AbstractLinkedList.init()

  56. in JFace’s ErrorDialog.createDropDownList(parent)

  57. in JDK’s Object.equals(obj)

  58. in JFace’s ViewerColumn

  59. in JFace’s IDocumentAdapter

  60. in JDK’s Format

  61. in JFace’s AbstractInformationControl.create()

  62. in JDK’s SecurityManager.checkAccess(t)

  63. in JFace’s ErrorDialog

  64. in JDK’s Condition

  65. in JDK’s PrivilegedExceptionAction.run()

  66. in JDK’s ClassLoader.getSystemClassLoader()

  67. in JDK’s KeyStore.Builder.getProtectionParameter(alias)

  68. in Apache Commons Collections’ ComparatorChain.ComparatorChain()

  69. in JDK’s Inflater.setInput(b)

  70. in JFace’s JFaceResources.setFontRegistry(registry)

  71. in JDK’s ActivationGroup.createGroup(id, desc, incarnation)

  72. in JDK’s Socket.setReceiveBufferSize(size)

  73. in SWT’s Event.gc

  74. in JDK’s File.delete()

  75. in JDK’s Acl.removeEntry(caller, entry)

  76. in JDK’s Object.wait(timeout)

  77. in JFace’s DefaultAutoIndentStrategy

  78. in JDK’s StringBuffer

  79. in JFace’s ContentViewer.setInput(input)

  80. in JDK’s HashMap

  81. in Apache Commons Collections’ FixedSizeMap

  82. in JDK’s BeanContextSupport.addAll(c)

  83. in JDK’s CertStoreSpi

  84. in JDK’s SuppressWarnings.value()

  85. in JDK’s Statement.executeBatch()

  86. See http://en.wikipedia.org/wiki/Abundance_(ecology).

  87. in JFace OwnerDrawLabelProvider.erase(event, element)

  88. in JDK’s Logger.setParent(parent)

  89. We exclusively focus on API directives and not on other concerns of API documentation (audience, writing process, etc.). For a comprehensive discussion of these other concerns, we refer to the excellent paper written by a senior technical writer at Sun: “API documentation from source code comments: a case study of Javadoc” (Kramer 1999).

References

Download references

Author information Authors and Affiliations
  1. ADAM, University of Lille, Cité Scientifique, 59655, Villeneuve d’Ascq Cedex, France

    Martin Monperrus

  2. Software Technology Group, Darmstadt University of Technology, Hochschulstr. 10, 64289, Germany

    Michael Eichberg & Mira Mezini

  3. PSI Logistics GmBh, Boschstraße 6, 63741, Aschaffenburg, Germany

    Elif Tekes

Authors
  1. Martin Monperrus
  2. Michael Eichberg
  3. Elif Tekes
  4. Mira Mezini
Corresponding author

Correspondence to Martin Monperrus.

Electronic Supplementary Material

Below is the link to the electronic supplementary material.

About this article Cite this article

Monperrus, M., Eichberg, M., Tekes, E. et al. What should developers be aware of? An empirical study on the directives of API documentation. Empir Software Eng 17, 703–737 (2012). https://doi.org/10.1007/s10664-011-9186-4

Download citation

Keywords

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4