Abstract
Product metrics are widely used in the maintenance and evolution phase of software development to advise the development team about software quality. Although most of these metrics are defined for mainstream languages, several of them were adapted to fourth generation languages (4GL) as well. Usual concepts like size, complexity and coupling need to be re-interpreted and adapted to program elements defined by these languages. In this paper we take a further step in this process to address product line development in 4GL. Adopting product line architecture is a necessary step to handle challenges of a growing number of similar product variants. The product line adoption process itself is a tedious task where features of the product variants play crucial role. Features represent a higher level of abstraction that are cross-cutting to program elements of 4GL applications. We propose a set of metrics related to features by linking existing program elements to metrics and by relating features with each other. The focus of this study is on complexity and coupling metrics. We provide a metrics based analysis of several variants of a large scale industrial product line written in the Magic XPA 4GL language.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Chidamber, S.R., Kemerer, C.F.: A metrics suite for object oriented design. IEEE Trans. Softw. Eng. 20(6), 476–493 (1994)
Nagy, C., Vidács, L., Ferenc, R., Gyimóthy, T., Kocsis, F., Kovács, I.: MAGISTER: quality assurance of magic applications for software developers and end users. In: 26th IEEE International Conference on Software Maintenance, pp. 1–6. IEEE Computer Society, September 2010
Nagy, C., Vidács, L., Ferenc, R., Gyimóthy, T., Kocsis, F., Kovács, I.: Solutions for reverse engineering 4GL applications, recovering the design of a logistical wholesale system. In: Proceedings of CSMR 2011, 15th European Conference on Software Maintenance and Reengineering, pp. 343–346. IEEE Computer Society, March 2011
Clements, P., Northrop, L.: Software Product Lines: Practices and Patterns. Addison-Wesley Professional, Boston (2001)
Krueger, C.W.: Easing the transition to software mass customization. In: van der Linden, F. (ed.) PFE 2001. LNCS, vol. 2290, pp. 282–293. Springer, Heidelberg (2002). https://doi.org/10.1007/3-540-47833-7_25
Kästner, C., Dreiling, A., Ostermann, K.: Variability mining: consistent semi-automatic detection of product-line features. IEEE Trans. Softw. Eng. 40(1), 67–82 (2014)
Assunção, W.K.G., Vergilio, S.R.: Feature location for software product line migration. In: Proceedings of the 18th International Software Product Line Conference on Companion Volume for Workshops, Demonstrations and Tools - SPLC 2014, pp. 52–59. ACM Press, New York (2014)
Eyal-Salman, H., Seriai, A.D., Dony, C., Al-msie’deen, R.: Recovering traceability links between feature models and source code of product variants. In: Proceedings of the VARiability for You Workshop on Variability Modeling Made Useful for Everyone - VARY 2012, pp. 21–25. ACM Press, New York (2012)
Nagy, C., et al.: Complexity measures in 4GL environment. In: Murgante, B., Gervasi, O., Iglesias, A., Taniar, D., Apduhan, B.O. (eds.) ICCSA 2011. LNCS, vol. 6786, pp. 293–309. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-21934-4_25
Katzmarski, B., Koschke, R.: Program complexity metrics and programmer opinions. In: 2012 20th IEEE International Conference on Program Comprehension (ICPC), pp. 17–26. IEEE, June 2012
Kicsi, A., Vidács, L., Beszédes, A., Kocsis, F., Kovács, I.: Information retrieval based feature analysis for product line adoption in 4GL systems. In: Proceedings of the 17th International Conference on Computational Science and Its Applications - ICCSA 2017, pp. 1–6. IEEE (2017)
Kicsi, A., et al.: Supporting product line adoption by combining syntactic and textual feature extraction. In: Capilla, R., Gallina, B., Cetina, C. (eds.) ICSR 2018. LNCS, vol. 10826, pp. 148–163. Springer, Heidelberg (2018). https://doi.org/10.1007/978-3-319-90421-4_10
Halstead, M.H.: Elements of Software Science. Operating and Programming Systems Series. Elsevier Science Inc., New York (1977)
Verner, J., Tate, G.: Estimating size and effort in fourth-generation development. IEEE Softw. 5, 15–22 (1988)
Witting, G., Finnie, G.: Using artificial neural networks and function points to estimate 4GL software development effort. Australas. J. Inf. Syst. 1(2), 87–94 (1994)
Harrison, J.V., Lim, W.M.: Automated reverse engineering of legacy 4GL information system applications using the ITOC workbench. In: Pernici, B., Thanos, C. (eds.) CAiSE 1998. LNCS, vol. 1413, pp. 41–57. Springer, Heidelberg (1998). https://doi.org/10.1007/BFb0054218
Ocean Software Solutions: Homepage of Magic Optimizer. http://www.magic-optimizer.com. Accessed Feb 2018
M2J Software LLC: Homepage of M2J. http://www.magic2java.com. Accessed Feb 2018
McCabe, T.: A complexity measure. IEEE Trans. Softw. Eng. SE-2(4) (1976)
Albrecht, A.J., Gaffney, J.E.: Software function, source lines of code, and development effort prediction: a software science validation. IEEE Trans. Softw. Eng. 9, 639–648 (1983)
Navlakha, J.K.: A survey of system complexity metrics. Comput. J. 30, 233–238 (1987)
Yu, S., Zhou, S.: A survey on metric of software complexity. In: Proceedings of ICIME 2010, The 2nd IEEE International Conference on Information Management and Engineering, pp. 352–356, April 2010
van der Meulen, M., Revilla, M.: Correlations between internal software metrics and software dependability in a large population of small C/C++ programs. In: Proceedings of ISSRE 2007, The 18th IEEE International Symposium on Software Reliability, pp. 203–208, November 2007
MacDonell, S.: Metrics for database systems: an empirical study. In: IEEE International Symposium on Software Metrics, pp. 99–107 (1997)
Valente, M.T., Borges, V., Passos, L.: A semi-automatic approach for extracting software product lines. IEEE Trans. Softw. Eng. 38(4), 737–754 (2012)
Assunção, W.K.G., Lopez-Herrejon, R.E., Linsbauer, L., Vergilio, S.R., Egyed, A.: Multi-objective reverse engineering of variability-safe feature models based on code dependencies of system variants. Empir. Softw. Eng. 22(4), 1763–1794 (2017)
Haslinger, E.N., Lopez-Herrejon, R.E., Egyed, A.: Reverse engineering feature models from programs’ feature sets. In: 18th Working Conference on Reverse Engineering, pp. 308–312. IEEE, October 2011
Lima, C., Chavez, C., de Almeida, E.S.: Investigating the recovery of product line architectures: an approach proposal. In: Botterweck, G., Werner, C. (eds.) ICSR 2017. LNCS, vol. 10221, pp. 201–207. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-56856-0_15
Krüger, J., Fenske, W., Meinicke, J., Leich, T., Saake, G.: Extracting software product lines: a cost estimation perspective. In: Proceedings of the 20th International Systems and Software Product Line Conference on - SPLC 2016, pp. 354–361. ACM Press, New York (2016)
She, S., Lotufo, R., Berger, T., Wa̧sowski, A., Czarnecki, K.: Reverse engineering feature models. In: Proceeding of the 33rd International Conference on Software Engineering - ICSE 2011, p. 461. ACM Press, New York (2011)
Lee, K., Kang, K.C., Lee, J.: Concepts and guidelines of feature modeling for product line software engineering. In: Gacek, C. (ed.) ICSR 2002. LNCS, vol. 2319, pp. 62–77. Springer, Heidelberg (2002). https://doi.org/10.1007/3-540-46020-9_5
Baresi, L., Quinton, C.: Dynamically evolving the structural variability of dynamic software product lines. In: 10th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (2015)
Bashari, M., Bagheri, E., Du, W.: Dynamic software product line engineering: a reference framework. Int. J. Softw. Eng. Knowl. Eng. 27(02), 191–234 (2017)
Capilla, R., Bosch, J., Trinidad, P., Ruiz-Cortés, A., Hinchey, M.: An overview of dynamic software product line architectures and techniques: observations from research and industry. J. Syst. Softw. 91(1), 3–23 (2014)
Uchôa, A.G., Bezerra, C.I.M., Machado, I.C., Monteiro, J.M., Andrade, R.M.C.: ReMINDER: an approach to modeling non-functional properties in dynamic software product lines. In: Botterweck, G., Werner, C. (eds.) ICSR 2017. LNCS, vol. 10221, pp. 65–73. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-56856-0_5
Acknowledgements
The project has been supported by the European Union, co-financed by the European Social Fund (EFOP-3.6.3-VEKOP-16-2017-00002). We acknowledge the help of Magic experts of the SZEGED Software Llc.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2018 Springer International Publishing AG, part of Springer Nature
About this paper
Cite this paper
Kicsi, A., Csuvik, V., Vidács, L., Beszédes, Á., Gyimóthy, T. (2018). Feature Level Complexity and Coupling Analysis in 4GL Systems. In: Gervasi, O., et al. Computational Science and Its Applications – ICCSA 2018. ICCSA 2018. Lecture Notes in Computer Science(), vol 10964. Springer, Cham. https://doi.org/10.1007/978-3-319-95174-4_35
Download citation
DOI: https://doi.org/10.1007/978-3-319-95174-4_35
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-95173-7
Online ISBN: 978-3-319-95174-4
eBook Packages: Computer ScienceComputer Science (R0)