[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1109/MiSE.2019.00018acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

On the difficulties of raising the level of abstraction and facilitating reuse in software modelling: the case for signature extension

Published: 26 May 2019 Publication History

Abstract

Reuse is central to improving the software development process, increasing software quality and decreasing time-to-market. Hence it is of paramount importance that modelling languages provide features that enable the specification and modularization of reusable artefacts, as well as their subsequent reuse. In this paper we outline several difficulties caused by the finality of method signatures that make it hard to specify and use reusable artefacts encapsulating several variants. The difficulties are illustrated with a running example. To evaluate whether these difficulties can be observed at the programming level, we report on an empirical study conducted on the Java Platform API as well as present workarounds used in various programming languages to deal with the rigid nature of signatures. Finally, we outline signature extension as an approach to overcome these problems at the modelling level.

References

[1]
O. Alam, J. Kienzle, and G. Mussbacher, "Concern-Oriented Software Design," in MODELS 2013. Springer, 2013, pp. 604--621.
[2]
C. Bensoussan, M. Schöttle, and J. Kienzle, "Associations in MDE: A Concern-Oriented, Reusable Solution," in Modelling Foundations and Applications - 12th European Conference, ECMFA 2016, Held as Part of STAF 2016, Vienna, Austria, July 6--7, 2016, Proceedings. Springer International Publishing, 2016, pp. 121--137.
[3]
J. Bloch, "How to Design a Good API and Why It Matters," in OOPSLA '06. New York, NY, USA: ACM, 2006, pp. 506--507.
[4]
P. Dimov, "Boost.Bind Documentation: Chapter 1. Boost.Bind," https://www.boost.org/doc/libs/1_69_0/libs/bind/doc/html/bind.html, 2018.
[5]
L. Eder, "Defensive API Evolution With Java Interfaces," https://dzone.com/articles/defensive-api-evolution-java, 2013.
[6]
B. Goetz, "Interface evolution via virtual extension methods," https://cr.openjdk.java.net/~briangoetz/lambda/Defender%20Methods%20v4.pdf, June 2011.
[7]
E. Henry and B. Faller, "Large-scale Industrial Reuse to Reduce Cost and CycleTime," IEEE Software, vol. 12, no. 5, pp. 47--53, Sep. 1995.
[8]
IBM Corporation, "Evolving Java-based APIs 2," https://wiki.eclipse.org/Evolving_Java-based_ApIs_2, 2017.
[9]
IBM Corporation, "Evolving Java-based APIs 3," https://wiki.eclipse.org/Evolving_Java-based_APIs_3, 2017.
[10]
JotaBe, "Pass extra parameters to jquery ajax promise callback," https://stackoverflow.com/a/21985202, Feb. 2014.
[11]
K. Kang, S. Cohen, J. Hess, W. Novak, and S. Peterson, "Feature-oriented domain analysis (FODA) feasibility study," SEI, CMU, Tech. Rep. CMU/SEI-90-TR-21, November 1990.
[12]
J. Kienzle, G. Mussbacher, O. Alam, M. Schöttle, N. Belloir, P. Collet, B. Combemale, J. DeAntoni, J. Klein, and B. Rumpe, "VCU: The Three Dimensions of Reuse," in International Conference on Software Reuse, ICSR 2016, ser. LNCS. Springer, 2016, no. 9679, pp. 122--137.
[13]
J. Kienzle, G. Mussbacher, P. Collet, and O. Alam, "Delaying Decisions in Variable Concern Hierarchies," in GPCE. ACM, 2016, pp. 93--103.
[14]
Krueger, "Software reuse," CSURV: Computing Surveys, vol. 24, 1992.
[15]
Mozilla MDN web docs, "Function.prototype.bind()," https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_objects/Function/bind, 2018.
[16]
Oracle, "Varargs," https://docs.oracle.com/javase/1.5.0/docs/guide/language/varargs.html, 2010.
[17]
D. L. Parnas, "On the Criteria To Be Used in Decomposing Systems into Modules," Communications of the ACM, vol. 15, no. 12, pp. 1053--1058, Dec. 1972.
[18]
K. Pohl, G. Bockle, and F. J. van der Linden, Software Product Line Engineering: Foundations, Principles and Techniques. Springer, 2005.
[19]
Python Software Foundation, "The Python Tutorial: Arbitrary Argument Lists," https://docs.python.org/3/tutorial/controlflow.html#arbitrary-argument-lists, 2019.
[20]
Radman Games, "How to use Boost.Bind," http://www.radmangames.com/programming/how-to-use-boost-bind, 2011.
[21]
M. Schöttle, O. Alam, J. Kienzle, and G. Mussbacher, "On the Modularization Provided by Concern-Oriented Reuse," in MODULARITY Companion 2016. ACM, 2016, pp. 184--189.
[22]
The Android Open Source Project, Inc., "Android XYZ-TouristAttractions Sample," https://github.com/googlesamples/android-XYZTouristAttractions/, Apr. 2018.
[23]
The Android Open Source Project, Inc., "Android XYZTouristAttractions Sample," https://github.com/googlesamples/android-XYZTouristAttractions/, Apr. 2018.
[24]
The Code Ship, "A guide to Python's function decorators," https://www.thecodeship.com/patterns/guide-to-python-function-decorators/, 2014.
[25]
The Go Authors, "The Go Programming Language Specification: Function Types," https://golang.org/ref/spec#Function_types, 2018.
[26]
w3schools.com, "JavaScript Function Parameters," https://www.w3schools.com/js/js_function_parameters.asp, 2019.
[27]
wxPyWiki, "Passing Arguments to Callbacks," https://wiki.wxpython.org/Passing%20Arguments%20to%20Callbacks, 2011.

Cited By

View all

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
MiSE '19: Proceedings of the 11th International Workshop on Modelling in Software Engineerings
May 2019
108 pages

Sponsors

Publisher

IEEE Press

Publication History

Published: 26 May 2019

Check for updates

Qualifiers

  • Research-article

Conference

ICSE '19
Sponsor:

Acceptance Rates

Overall Acceptance Rate 13 of 30 submissions, 43%

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)2
  • Downloads (Last 6 weeks)1
Reflects downloads up to 01 Jan 2025

Other Metrics

Citations

Cited By

View all

View Options

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