tenance tasks and related them to successful sub-
mission rates. As a result, we concluded that the
self-configured group was performing much better in
terms of producing correctly behaving code.
In terms of correctly returned submissions, the
self-configured group outperformed the transparent
persistency group by a factor of three. This result is a
statistically significant difference (p value α < 0.05)
between the two populations.
In productivity, the self-configured group outper-
formed the transparent persistency group by a factor
of four: on average, the self-configured group was
able to produce a correct submission in under half an
hour. In the transparent persistency, on average it took
almost two hours to do the same. However, due to the
low sample size, we did not perform any statistical
analysis on productivity.
This result casts a shadow of disbelief on the con-
cept of transparent persistency: if the application is
going to access a database, it probably is not a good
idea to try to disguise its functionality to be something
else. This disguise seemed to be the main source of
program miscomprehension within the test subjects in
the transparent persistency group. However, the small
sample application limits the generalizability of the
result. Experiments with larger software and larger
populations are needed to understand the usefulness
of transparent persistency for software development.
On the other hand, the result gives an initial empirical
validation of the usefulness of using self-configuring
software components to reduce the maintenance effort
and to improve architectural modularity.
REFERENCES
Arisholm, E. and Sjoberg, D. I. K. (2004). Evaluating
the effect of a delegated versus centralized control
style on the maintainability of object-oriented soft-
ware. IEEE Trans. Softw. Eng., 30(8):521–534.
Atkinson, M. and Morrison, R. (1995). Orthogonally per-
sistent object systems. The VLDB Journal, 4(3):319–
402.
Atkinson, M. P., Bailey, P. J., Chisholm, K., Cockshott,
W. P., and Morrison, R. (1983). An approach to per-
sistent programming. Comput. J., 26(4):360–365.
Bartsch, M. and Harrison, R. (2008). An exploratory study
of the effect of aspect-oriented programming on main-
tainability. Software Quality Control, 16(1):23–44.
Bauer, C. and King, G. (2004). Hibernate in Action (In
Action series). Manning Publications Co., Greenwich,
CT, USA.
DeMichiel, L. and Keith, M. (2007). JSR 220: Enterprise
JavaBeans 3.0. Technical report, Sun Microsystems.
Elliott, C., Finne, S., and de Moor, O. (2003). Compiling
embedded languages. Journal of Functional Program-
ming, 13(2).
Endrikat, S. and Hanenberg, S. (2011). Is aspect-oriented
programming a rewarding investment into future code
changes? A socio-technical study on development and
maintenance time. In Proceedings of IEEE 19th In-
ternational Conference on Program Comprehension,
ICPC’11, pages 51 –60.
Fisher, M., Ellis, J., and Bruce, J. C. (2003). JDBC API
Tutorial and Reference. Pearson Education, 3 edition.
Gamma, E., Helm, R., Johnson, R. E., and Vlissides,
J. (1995). Design Patterns: Elements of Reusable
Object-Oriented Software. Addison-Wesley, Reading,
MA.
Gorla, N. (1991). Techniques for application software
maintenance. Inf. Softw. Technol., 33(1):65–73.
Ibrahim, A. and Cook, W. R. (2006). Automatic prefetch-
ing by traversal profiling in object persistence archi-
tectures. In Proceedings of the 20th European confer-
ence on Object-Oriented Programming, ECOOP’06,
pages 50–73, Berlin, Heidelberg. Springer-Verlag.
IEEE14764 (2006). International Standard - ISO/IEC
14764 IEEE Std 14764-2006 software engineering
#2013; software life cycle processes #2013; mainte-
nance. ISO/IEC 14764:2006 (E) IEEE Std 14764-
2006 Revision of IEEE Std 1219-1998), pages 1–46.
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C.,
Lopes, C. V., Loingtier, J.-M., and Irwin, J. (1997).
Aspect-oriented programming. In Proceedings of the
11th European Conference on Object-Oriented Pro-
gramming, ECOOP’97, pages 220–242.
Kulesza, U., Sant’Anna, C., Garcia, A., Coelho, R., von
Staa, A., and Lucena, C. (2006). Quantifying the
effects of aspect-oriented programming: A mainte-
nance study. In Proceedings of 22nd IEEE Interna-
tional Conference on Software Maintenance, ICSM
’06, pages 223 –233.
Pohjalainen, P. (2010). Self-configuring user interface com-
ponents. In Proceedings of the 1st International Work-
shop on Semantic Models for Adaptive Interactive
Systems, SEMAIS ’10, pages 33–37, New York, NY,
USA. ACM.
Pohjalainen, P. (2011). Bottom-up modeling for a software
product line: An experience report on agile modeling
of governmental mobile networks. In Proceedings of
15th International Software Product Line Conference,
SPLC’11, pages 323–332.
Pohjalainen, P. and Taina, J. (2008). Self-configuring
object-to-relational mapping queries. In Proceedings
of the 6th international symposium on Principles and
practice of programming in Java, PPPJ ’08, pages 53–
59, New York, NY, USA. ACM.
Rice, H. G. (1953). Classes of recursively enumerable sets
and their decision problems. Trans. Amer. Math. Soc.,
74:358–366.
Robson, C. (2011). Real World Research: A Resource for
Users of Social Research Methods in Applied Settings.
John Wiley & Sons.
Vihavainen, A. and Luukkainen, M. (2013). Results from
a three-year transition to the extreme apprenticeship
method. In To appear in Proceedings of the The 13th
ENASE2013-8thInternationalConferenceonEvaluationofNovelSoftwareApproachestoSoftwareEngineering
34