Abstract
Light weight development processes like Agile have emerged in response to rapidly changing market requirements. However such processes are inadequate for software in embedded systems. As embedded software undergoes frequent refactoring, targeting only immediate requirements. As a result maintainability decreases because the system is not designed to respond to changes in the associated hardware. In this paper, we propose a method for detection of variation points and variability mechanisms. We also propose a technique for evaluation of flexibility to changes. Our approach is based on analyses of the call graph and the inheritance structure of source code to identify a layer structure that is specific to embedded software. These techniques provide us with objective and quantitative information about costs of adding functionality. We applied the proposal method to an actual product’s code before and after the refactoring and could verify an improvement in system’s variability.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Ghanam, Y., Andreychuk, D., Maurer, F.: Reactive Variability Management Using Agile Software Development. In: The International Conference on Agile Methods in Software Development, Orlando, pp. 27–34 (2010)
Kang, K., Lee, J., Donohoe, P.: Feature-Oriented Product Line Engineering. IEEE Software 19(4), 58–65 (2002)
Sheldon, F.T., Jerath, K., Chung, H.: Metrics for maintainability of class inheritance hierarchies. Journal of Software Maintanance:Research and Practice 14(3), 147–160 (2002)
Walkinshaw, N., Roper, M., Wood, M.: Feature Location and Extraction using Landmarks and Barriers. In: Proceedings of International Conference on Software Maintenance, Paris, pp. 54–63 (2007)
Niere, J., Schafer, W., Wadsack, J.P., Wendehals, L., Welsh, J.: Towards pattern-based design recovery. In: Proceedings of the 24rd International Conference on Software Engineering, Orlando, FL, pp. 338–348 (2002)
Keepence, B., Mannion, M.: Using Patterns to Model Variability in Product Families. IEEE Software 16(4), 102–108 (1999)
Du Bois, B., Demeyer, S., Verelst, J.: Refactoring - Improving Coupling and Cohesion of Existing Code. In: Proceedings of 11th Working Conference on Reverse Engineering, pp. 144–151 (2004)
Xue, Y.: Reengineering legacy software products into software product line based on automatic variability analysis. In: 33rd International Conference on Software Engineering, Honolulu, pp. 1114–1117 (2011)
Ribeiro, M., Borba, P.: Improving Guidance when Restructuring Variabilities in Software Product Lines. In: 13th European Conference on Software Maintenance and Reengineering, Kaiserslautern, pp. 79–88 (2009)
Makkar, G., Chhabra, J.K., Challa, R.K.: Object oriented inheritance metric-reusability perspective. In: International Conference on Computing, Electronics and Electrical Technologies, Kumaracoil, pp. 852–859 (2012)
Breesam, K.M.: Metrics for Object-Oriented Design Focusing on Class Inheritance Metrics. In: 2nd International Conference on Dependability of Computer Systems, Szklarska, pp. 231–237 (2007)
Bansiya, J., Davis, C.G.: A hierarchical model for object-oriented design quality assessment. IEEE Transactions on Software Engineering 28(1), 4–7 (2002)
Hudli, R.V., Hoskins, C.L., Hudli, A.V.: Software Metrics for Object-oriented Designs. In: Proceedings of IEEE International Conference on Computer Design: VLSI in Computers and Processors, Cambridge, MA, pp. 492–495 (1994)
Rajasree, M.S., Janaki, R.D., Jithendra, K.R.: Pattern Oriented Approach for the Design of Frameworks for Software Productlines. In: Proceedings of International Workshop on Product Line Engineering: The Early Steps: Planning, Modeling, and Managing, pp. 65–70 (2002)
Claudia, F., Andreas, L., Thomas, S.: Evaluating Variability Implementation Mechanisms. In: Proceedings of International Workshop on Product Line Engineering: The Early Steps: Planning, Modeling, and Managing, pp. 59–64 (2002)
Duszynski, S., Knodel, J., Becker, M.: Analyzing the Source Code of Multiple Software Variants for Reuse Potential. In: 18th Working Conference on Reverse Engineering, Limerick, pp. 303–307 (2011)
Babar, M.A.: Evaluating Product Line Architectures- Methods and Techniques. In: 14th Asia-Pacific Software Engineering Conference, Aichi, p. 13 (2007)
Bengtsson, P., Lassing, N., Bosch, J., van Vliet, H.: Analyzing software architecture for modifiability. HK/R Research Report (2000)
Castaldi, M., Inverardi, P., Afsharian, S.: A Case Study in Performance, Modifiability and Extensibility Analysis of a Telecommunication System Software Architecture. In: Proceedings of the 10th IEEE Int’l Symp. on Modeling, Analysis, & Simulation of Computer & Telecommunications Systems, pp. 281–290 (2002)
Hattori, L., Guerrero, D., Figueiredo, J., Brunet, J., Damasio, J.: On the precision and accuracy of impact analysis techniques. In: Proceedings of the Seventh International Conference on Computer and Information Science, Portland, Oregon, pp. 513–518 (2008)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2014 Springer International Publishing Switzerland
About this paper
Cite this paper
Sasaki, T., Yoshioka, N., Tahara, Y., Ohsuga, A. (2014). Evaluation of Flexibility to Changes Focusing on the Variable Structures in Legacy Software. In: Kravets, A., Shcherbakov, M., Kultsova, M., Iijima, T. (eds) Knowledge-Based Software Engineering. JCKBSE 2014. Communications in Computer and Information Science, vol 466. Springer, Cham. https://doi.org/10.1007/978-3-319-11854-3_22
Download citation
DOI: https://doi.org/10.1007/978-3-319-11854-3_22
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-11853-6
Online ISBN: 978-3-319-11854-3
eBook Packages: Computer ScienceComputer Science (R0)