Abstract
Database access is in the core of many software systems. When building an object-oriented system with a relational backend, a common approach is to use an object-to-relational mapping component to make the relational database oblivious to the application programmer.
Self-configuring database queries is a way to reduce the effect of internal dependencies within a software. To assess its usability, we organized a randomized, controlled study for software engineering students, who were given a number of maintenance tasks on a sample software with two versions: the first one using transparent persistency as a control group and the second using self-configuring queries.
Although the attendees in both groups used equal time in completing the tasks, it turned out that the group using self-configuring queries outperformed the control group in code quality by a factor of three. This gives us evidence to believe that self-configuration in a software’s architecture can be beneficial for maintainability.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Fisher, M., Ellis, J., Bruce, J.C.: JDBC API Tutorial and Reference, 3rd edn. Pearson Education (2003)
Atkinson, M.P., Bailey, P.J., Chisholm, K., Cockshott, W.P., Morrison, R.: An approach to persistent programming. Comput. J. 26, 360–365 (1983)
Bauer, C., King, G.: Hibernate in Action (In Action series). Manning Publications Co., Greenwich (2004)
DeMichiel, L., Keith, M.: JSR 220: Enterprise JavaBeans 3.0. Technical report, Sun Microsystems (2007)
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C.V., Loingtier, J.M., Irwin, J.: Aspect-oriented programming. In: Akşit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)
Pohjalainen, P.: Self-configuring user interface components. In: Proceedings of the 1st International Workshop on Semantic Models for Adaptive Interactive Systems, SEMAIS 2010, pp. 33–37. ACM, New York (2010)
Pohjalainen, P., Taina, J.: Self-configuring object-to-relational mapping queries. In: Proceedings of the 6th International Symposium on Principles and Practice of Programming in Java, PPPJ 2008, pp. 53–59. ACM, New York (2008)
Gamma, E., Helm, R., Johnson, R.E., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)
Fowler, M.: Patterns of Enterprise Application Architecture. Addison-Wesley Longman Publishing Co., Inc., Boston (2002)
International Standard - ISO/IEC 14764 IEEE Std 14764-2006 software engineering #2013; software life cycle processes #2013; maintenance. ISO/IEC 14764:2006 (E) IEEE Std 14764-2006 Revision of IEEE Std 1219-1998, pp. 1–46 (2006)
Robson, C.: Real World Research: A Resource for Users of Social Research Methods in Applied Settings. John Wiley & Sons (2011)
Arisholm, E., Sjoberg, D.I.K.: Evaluating the effect of a delegated versus centralized control style on the maintainability of object-oriented software. IEEE Trans. Softw. Eng. 30, 521–534 (2004)
Gorla, N.: Techniques for application software maintenance. Inf. Softw. Technol. 33, 65–73 (1991)
Atkinson, M., Morrison, R.: Orthogonally persistent object systems. The VLDB Journal 4, 319–402 (1995)
Elliott, C., Finne, S., de Moor, O.: Compiling embedded languages. Journal of Functional Programming 13 (2003)
Yermolovich, A., Gal, A., Franz, M.: Portable execution of legacy binaries on the Java virtual machine. In: Proceedings of the 6th International Symposium on Principles and Practice of Programming in Java, PPPJ 2008, pp. 63–72. ACM, New York (2008)
Ibrahim, A., Cook, W.R.: Automatic prefetching by traversal profiling in object persistence architectures. In: Thomas, D. (ed.) ECOOP 2006. LNCS, vol. 4067, pp. 50–73. Springer, Heidelberg (2006)
Wiedermann, B., Ibrahim, A., Cook, W.R.: Interprocedural query extraction for transparent persistence. In: Proceedings of the 23rd ACM SIGPLAN Conference on Object-Oriented Programming Systems Languages and Applications, OOPSLA 2008, pp. 19–36. ACM, New York (2008)
Rice, H.G.: Classes of recursively enumerable sets and their decision problems. Trans. Amer. Math. Soc. 74, 358–366 (1953)
Pohjalainen, P.: 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 2011, pp. 323–332 (2011)
Piccioni, M., Furia, C.A., Meyer, B.: An empirical study of api usability. In: Proceedings of 7th International Symposium on Empirical Software Engineering and Measurement, ESEM 2013 (2013)
Bartsch, M., Harrison, R.: An exploratory study of the effect of aspect-oriented programming on maintainability. Software Quality Control 16, 23–44 (2008)
Kulesza, U., Sant’Anna, C., Garcia, A., Coelho, R., von Staa, A., Lucena, C.: Quantifying the effects of aspect-oriented programming: A maintenance study. In: Proceedings of 22nd IEEE International Conference on Software Maintenance, ICSM 2006, pp. 223–233 (2006)
Endrikat, S., Hanenberg, S.: 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 International Conference on Program Comprehension, ICPC 2011, pp. 51–60 (2011)
Vihavainen, A., Luukkainen, M.: Results from a three-year transition to the extreme apprenticeship method. In: 2013 IEEE 13th International Conference on Advanced Learning Technologies (ICALT), pp. 336–340 (2013)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Pohjalainen, P. (2013). An Experiment on Self-configuring Database Queries. In: Filipe, J., Maciaszek, L.A. (eds) Evaluation of Novel Approaches to Software Engineering. ENASE 2013. Communications in Computer and Information Science, vol 417. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-54092-9_3
Download citation
DOI: https://doi.org/10.1007/978-3-642-54092-9_3
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-54091-2
Online ISBN: 978-3-642-54092-9
eBook Packages: Computer ScienceComputer Science (R0)