© The Institution of Engineering and Technology
The adaptation of open-source database applications is common in the industry. Most open-source database applications are incomplete. During adaptation, users usually have to implement additional data maintenance. Hence, the completeness of an application is an important concern for the adaptation as a key factor to indicate how much additional effort is required before using a system. From our study of database applications with complete functionalities, we observe that data in a database has common patterns of lifecycles. Anomaly in data lifecycles provides a good indicator on the completeness of database applications. In this paper, we propose a novel approach to automatically extract the data lifecycles out of the source code of database applications through inter-procedural static program analysis. This representative information can benefit the adaptation of database applications specifically for selection, maintenance and extension. We have developed a tool to implement the proposed approach for PHP (Hypertext Preprocessor)-based database applications. Case studies have shown that the proposed approach is useful in assisting adaptation and detecting faults of open-source database applications.
References
-
-
1)
-
7. Canfora, G., Di Penta, M., Cerulo, L.: ‘Achievements and challenges in software reverse engineering’, Commun. ACM, 2011, 54, (4), pp. 142–151 (doi: 10.1145/1924421.1924451).
-
2)
-
1. Jovanovic, N., Kruegel, C., Kirda, E.: ‘Pixy: A static analysis tool for detecting web application vulnerabilities’. Security and Privacy, 2006 IEEE Symp. IEEE, 2006, pp. 6–11.
-
3)
-
12. Malpani, A., Bernstein, P., Melnik, S., Terwilliger, J.: ‘Reverse engineering models from databases to bootstrap application development’. 2010 IEEE 26th Int. Conf. on Data Engineering, March 2010, pp. 1177–1180.
-
4)
-
11. Maatuk, A., Ali, M.A., Rossiter, N.: ‘Re-engineering relational databases: the way forward’. Proc. 2011 Int. Conf. on Intelligent Semantic Web-Services and Applications, ACM, 2011, p. 17.
-
5)
-
9. She, S., , Lotufo, R., , Berger, T., , Wasowski, A., , Czarnecki, K.: ‘Reverse engineering feature models’. Software Engineering (ICSE), 2011 33rd Int. Conf. on IEEE, 2011, pp. 461–470.
-
6)
-
13. Piattini, M., Calero, C., Genero, M.: ‘Table oriented metrics for relational databases’, Softw. Qual. J., 2001, 9, (2), pp. 79–97 (doi: 10.1023/A:1016670717863).
-
7)
-
2. Stamelos, I., Angelis, L., Oikonomou, A., Bleris, G.: ‘Code quality analysis in open source software development’, Inf. Syst. J., 2002, 12, (1), pp. 43–60 (doi: 10.1046/j.1365-2575.2002.00117.x).
-
8)
-
19. Liu, K., Tan, H.B.K.: ‘Automated insertion of exception handling for key and referential constraints’. 2012 19th Asia Pacific Software Engineering Conf. (APSEC), IEEE, 2011.
-
9)
-
20. Lemaitre, J., Hainaut, J.: ‘Transformation-based framework for the evaluation and improvement of database schemas’. Proc. Adv. Inf. Syst. Eng., 2010, pp. 317–331.
-
10)
-
10. Premerlani, W.J., Blaha, M.R.: ‘An approach for reverse engineering of relational databases’. Reverse Engineering, 1993, Proc. Working Conf. on IEEE, 1993, pp. 151–160.
-
11)
-
3. Polancic, G., Horvat, R., Rozman, T.: ‘Comparative assessment of open source software using easy accessible data’. Information Technology Interfaces, 2004. 26th Int. Conf. on. IEEE, 2004, pp. 673–678.
-
12)
-
16. Huang, Y., Yu, F., Hang, C., Tsai, C., Lee, D., Kuo, S.: ‘Securing web application code by static analysis and runtime protection’. Proc. 13th Int. Conf. on World Wide Web, ACM, 2004, pp. 40–52.
-
13)
-
4. Kawaguchi, S., Garg, P., Matsushita, M., Inoue, K.: ‘On automatic categorization of open source software’. ThirdWorkshop on Open Source Software Engineering. Citeseer, 2003, p. 79.
-
14)
-
14. Baroni, A., Calero, C., Brito e Abreu, F., Piattini, M.: ‘Object-relational database metrics formalization’. Quality Software, 2006. QSIC 2006. Sixth Int. Conf., 2006, pp. 30–37.
-
15)
-
8. Canfora, G., Di Penta, M.: ‘New frontiers of reverse engineering’. 2007 Future of Software Engineering, 2007, pp. 326–341, .
-
16)
-
7. Canfora, G., Di Penta, M., Cerulo, L.: ‘Achievements and challenges in software reverse engineering’, Commun. ACM, 2011, 54, (4), pp. 142–151 (doi: 10.1145/1924421.1924451).
-
17)
-
5. Koschke, R.: ‘Software visualization in software maintenance, reverse engineering, and re-engineering: a research survey’, J. Softw. Maint., 2003, 15, (2), pp. 87–109 (doi: 10.1002/smr.270).
-
18)
-
6. Müller, H., Orgun, M., Tilley, S., Uhl, J.: ‘A reverse-engineering approach to subsystem structure identification’, J. Softw. Maint.: Res. Pract., 1993, 5, (4), pp. 181–204 (doi: 10.1002/smr.4360050402).
-
19)
-
21. Lemaitre, J., Hainaut, J.: ‘Quality evaluation and improvement framework for database schemas-using defect taxonomies’. Proc. Adv. Inf. Syst. Eng., 2011, pp. 536–550.
-
20)
-
17. Dasgupta, A., Narasayya, V., Syamala, M.: ‘A static analysis framework for database applications’. IEEE 25th Int. Conf. on Data Engineering, 2009. ICDE'09, IEEE, 2009, pp. 1403–1414.
-
21)
-
15. Fu, X., Qian, K.: ‘Safeli: Sql injection scanner using symbolic execution’. Proc. 2008 Workshop on Testing, Analysis, and Verification of Web Services and Applications, ACM, 2008, pp. 34–39.
-
22)
-
18. Liu, K., Tan, H.B.K., Chen, X., Zhang, H., Padmanabhuni, B.: ‘Automated extraction of data lifecycle support from database applications’. Proc. 23rd Int. Conf. on Software Engineering and Knowledge Engineering (SEKE'2011), July 7–9, 2011, pp. 432–437.
http://iet.metastore.ingenta.com/content/journals/10.1049/iet-sen.2012.0105
Related content
content/journals/10.1049/iet-sen.2012.0105
pub_keyword,iet_inspecKeyword,pub_concept
6
6