What Java']Java developers know about compatibility, and why this matters

被引:10
作者
Dietrich, Jens [1 ]
Jezek, Kamil [2 ]
Brada, Premek [2 ]
机构
[1] Massey Univ, Sch Engn & Adv Technol, Turitea Palmerston North Campus, Palmerston North, New Zealand
[2] Univ W Bohemia, Fac Sci Appl, Univ 8, Plzen 30614, Czech Republic
关键词
!text type='Java']Java[!/text; Binary compatibility; API compatibility; Empirical study; User survey; Linking;
D O I
10.1007/s10664-015-9389-1
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Real-world programs are neither monolithic nor static-they are constructed using platform and third party libraries, and both programs and libraries continuously evolve in response to change pressure. In case of the Java language, rules defined in the Java Language and Java Virtual Machine Specifications define when library evolution is safe. These rules distinguish between three types of compatibility-binary, source and behavioural. We claim that some of these rules are counter intuitive and not well-understood by many developers. We present the results of a survey where we quizzed developers about their understanding of the various types of compatibility. 414 developers responded to our survey. We find that while most programmers are familiar with the rules of source compatibility, they generally lack knowledge about the rules of binary and behavioural compatibility. This can be problematic when organisations switch from integration builds to technologies that require dynamic linking, such as OSGi. We have assessed the gravity of the problem by studying how often linkage-related problems are referenced in issue tracking systems, and find that they are common.
引用
收藏
页码:1371 / 1396
页数:26
相关论文
共 38 条
  • [1] [Anonymous], 2007, EVOLVING JAVA BASED
  • [2] [Anonymous], 1985, Program Evolution: Processes of Software Change
  • [3] [Anonymous], 2012, P 20 ACM SIGSOFT S F
  • [4] [Anonymous], 2012, OSGI COR REL 5
  • [5] Refactoring support for class library migration
    Balaban, I
    Tip, F
    Fuhrer, R
    [J]. ACM SIGPLAN NOTICES, 2005, 40 (10) : 265 - 279
  • [6] Safe upgrading without restarting
    Barr, M
    Eisenbach, S
    [J]. INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE, PROCEEDINGS, 2003, : 129 - 137
  • [7] Automated Versioning in OSGi: a Mechanism for Component Software Consistency Guarantee
    Bauml, Jaroslav
    Brada, Premek
    [J]. 2009 35TH EUROMICRO CONFERENCE ON SOFTWARE ENGINEERING AND ADVANCED APPLICATIONS, PROCEEDINGS, 2009, : 428 - 435
  • [8] Formalization of Component Substitutability
    Belguidoum, Meriem
    Dagnat, Fabien
    [J]. ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE, 2008, 215 : 75 - 92
  • [9] Making components contract aware
    Beugnard, A
    Jézéquel, JM
    Plouzeau, N
    Watkins, D
    [J]. COMPUTER, 1999, 32 (07) : 38 - +
  • [10] Bloch Joshua, 2005, Java Puzzlers: Traps, Pitfalls, and Corner Cases