Abstract
Code branching and merging plays a very critical role in the software development in an enterprise. Branching provides parallel development by enabling several development teams to work in isolation on multiple piece of code in parallel without impacting each other. Merging is a process to integrate the code of different teams together, which is achieved by moving the code around the branches. The process of merging can be very troublesome as it may contribute to enormous code merge or integration defects also known as code merge conflicts. One of the major problems faced by the practitioners is to predict the number of code merge conflicts and plan for the resolution of these conflicts. Another problem that is faced in an enterprise is to select an appropriate code branching strategy. Selection of a suitable code branching strategy is a multi-criteria decision making problem which involves multiple criteria and alternatives. This paper proposes a hybrid approach for predicting code merge conflicts and selecting the most suitable code branching strategy. Artificial neural network (ANN) is applied in a large enterprise to predict the code merge conflicts; thereafter analytic hierarchy process (AHP) is applied to select the most suitable code branching strategy. Total four code branching strategies have been considered in this paper. The outcome from the proposed approach successfully predicts the number of code conflicts and selects Branching Set-A as the most suitable code branching strategy with the highest priority weight of 0.287. The proposed methodology proved out to be very useful instrument for enterprises to quantitatively predict code merge conflicts and select the most suitable code branching strategy.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Baudiš, P. (2014). Current concepts in version control systems. arXiv preprint arXiv:1405.3496.
Buffenbarger, J., & Gruell, K. (1999). A branching/merging strategy for parallel software development. In System Configuration Management (pp. 86–99).
Phillips, S., Sillito, J., & Walker, R. (2011) Branching and merging: an investigation into current version control practices. In Proceedings of the 4th International Workshop on Cooperative and Human Aspects of Software Engineering (pp. 9–15). ACM.
Branching (version control). Website. https://en.wikipedia.org/wiki/Branching(version_control).
Merge (version control). Website. https://en.wikipedia.org/wiki/Merge_(version_control).
Jacob, J., Rodriguez, M., & Barry, G. Team foundation server branching guidance. Microsoft.
Somerville, I. (2001). Software engineering (6th ed.). Boston, MA: Addison-Wesley.
Kaushik, A., Soni, A. K., & Soni, R. (2013). A simple neural network approach to software cost estimation. Global Journal of Computer Science and Technology, 13(1).
Shihab, E., Bird, C., & Zimmermann, T. (2012) The effect of branching strategies on software quality. In Proceedings of the 2012 ACM-IEEE International Symposium on Empirical Software Engineering and Measurement (pp. 301–310). IEEE.
Saaty, T. L. (2008). Decision making with the analytic hierarchy process. International Journal Services Sciences, 1(1), 83–98.
Meier, J. D. (2009). Microsoft application architecture guide (2nd ed.). Website. https://www.microsoft.com/downloads/details.asp.
Appleton, B., Berczuk, S., Cabrera, R., & Orenstein, R. (1998). Streamed lines: Branching patterns for parallel software development. In Proceedings of the Pattern Languages of Programs Conference, PLoP, (Vol. 98).
Walrad, C., & Strom, D. (2002) The importance of branching models in SCM. Computer, 35, 31–38.
Kapur, P. K., Pham, H., Gupta, A., & Jha, P. C. (2011). Software reliability assessment with OR applications. London: Springer.
Kapur, P. K., Garg, R. B., & Kumar, S. (1999) Contributions to hardware and software reliability. World Scientific.
Bird, C., Zimmermann, T., & Teterev, A. (2011). A theory of branches as goals and virtual teams. In Proceedings of the International Workshop on Cooperative and Human Aspects of Software Engineering (pp. 53–56).
Brun, Y., Holmes, R., Ernst, M. D., & Notkin, D. (2011). Proactive detection of collaboration conflicts. In Proceedings of the 19th ACM SIGSOFT Symposium and the 13th European Conference on Foundations of Software Engineering (pp. 168–178). ACM.
Arve, D. (2010). Branching strategies with distributed version control in Agile projects. Website. http://fileadmin.cs.lth.se/cs/Personal/lars_bendix/research/ascm/in-depth/arve-2010.pdf.
McCulloch, W. S., & Pitts, W. (1943). A logical calculus of the ideas immanent in nervous activity. The Bulletin of Mathematical Biophysics, 5(4), 115–133.
Singh, Y., Kaur, A., & Malhotra, R. (2008). Predicting testing effort using artificial neural network. In Proceedings of the World Congress on Engineering and Computer Science, WCECS, San Francisco, USA.
Philip, A. A., Taofiki, A. A., & Bidemi, A. A. (2011). Artificial neural network for forecasting foreign exchange rate. World of Computer Science and Information Technology Journal, 1(3), 110–118.
Zhang, G., Patuwo, B. E., & Hu, M. Y. (1998). Forecasting with artificial neural networks: The state of the art. International Journal of Forecasting, 14, 35–62.
Aggarwal, K. K., Singh, Y., Chandra, P., & Puri, M. (2005). Bayesian regularization in a neural network model to estimate lines of code using function points. Journal of Computer Sciences, 1(4), 505–509.
Sarcià , S. A., Cantone, G., & Basili, V. R. (2007) A statistical neural network framework for risk management process. In ICSOFT SE (pp. 168–177).
Oladokun, V. O., Adebanjo, A. T., & Charles-Owaba, O. E. (2008) Predicting student’s academic performance using artificial neural network: A case study of an engineering course, The Pacific Journal of Science and Technology, 9(1), 72–79.
Triantaphyllou, E., & Mann, S. H. (1995). Using the analytic hierarchy process for decision making in engineering applications: Some challenges. International Journal of Industrial Engineering: Applications and Practice, 2(1), 35–44.
Kapur, P. K., Nagpal, S., & Khatri, S. K. (2014). Critical success factor utility based tool for ERP health assessment—A general framework. International Journal of System Assurance Engineering and Management, 5(2), 133–148.
Cheong, C. W., Jie, L. H., Meng, M. C., & Lan, A. L. H. (2008). Design and development of decision making system using fuzzy analytic hierarchy process. American Journal of Applied Sciences, 5(7), 783–787.
Reddy, C. S., & Raju, K. (2009) A concise neural network model for estimating software effort. International Journal of Recent Trends in Engineering, 1(1), 188–193.
Zhu, L., Aurum, A., Gorton, I., & Jeffery, R. (2005). Trade off and sensitivity analysis in software architecture evaluation using analytic hierarchy process. Software Quality Journal, 14(4), 357–375.
Kalyani, K. (2012). Recent trends and challenges in enterprise application integration. International Journal of Application or Innovation in Engineering & Management, 1(4), 62–71.
Perry, W. E. (2006). Effective methods for software testing (3rd ed.). Indianapolis, IN: Wiley.
Khaze, A. R., Masdari, M., & Hojjatkhah, S. (2013). Application of artificial neural networks in estimating participation in elections. International Journal of Information Technology, Modeling and Computing, 1(3), 23–31.
Lai, V. S., Trueblood, R. P., & Wong, B. K. (1999). Software selection: A case study of the application of the analytic hierarchy process to the selection of a multimedia authoring system. Information & Management, 36(4), 221–232.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Singapore Pte Ltd.
About this chapter
Cite this chapter
Gupta, V., Kapur, P.K., Kumar, D., Singh, S.P. (2019). Predicting Code Merge Conflicts and Selecting Optimal Code Branching Strategy for Quality Improvement in Banking Sector. In: Kapur, P., Klochkov, Y., Verma, A., Singh, G. (eds) System Performance and Management Analytics. Asset Analytics. Springer, Singapore. https://doi.org/10.1007/978-981-10-7323-6_2
Download citation
DOI: https://doi.org/10.1007/978-981-10-7323-6_2
Published:
Publisher Name: Springer, Singapore
Print ISBN: 978-981-10-7322-9
Online ISBN: 978-981-10-7323-6
eBook Packages: Business and ManagementBusiness and Management (R0)