DOOR: Distributed Object Oriented Software Restructuring Approach Using Neural Network
https://doi.org/10.15514/ISPRAS–2019–31(5)–8
Abstract
To develop common software systems, engineers and designers are currently using an object-oriented approach that helps build distributed object-oriented systems. A distinctive feature of distributed object-oriented systems is the distribution of classes of objects among various nodes. Typically, there is no information about the distribution of classes across servers in applications, which encourages a restructuring procedure that improves productivity. In the proposed approach, software restructuring of distributed object-oriented systems is carried out using the adaptive method using a neural network. At the initial stage, a graph of class dependencies is created, in which nodes represent classes, and relations between nodes correspond to dependencies between classes. Then, the properties of the classes included in this graph are extracted, which are transmitted as input to the neural network for its training. After that, based on the account of class dependencies, clustering is performed, leading to the partition of the set of classes of the distributed object-oriented system into loosely coupled subsets. Next, a graph of clusters is created, the vertices in which correspond to clusters, and the edges correspond to communication channels that may exist between clusters. The k-medoids algorithm is applied to the resulting graph, which is used to collect the clusters in such a way that the number of collected cluster groups becomes equal to the number of available system nodes. The resulting cluster groups are loosely coupled. Finally, cluster groups are assigned to various available nodes in a distributed environment. The simulation results showed that the proposed work gives more effective results compared to existing methods.
About the Author
Ahmed KhanPakistan
Lecture at the Department of Computer Science
References
1. Wang J., Ai J., Yang Y., Su W. Identifying key classes of object-oriented software based on software complex network. In Proc. of the 2nd International Conference on System Reliability and Safety, 2017, pp. 444-449.
2. Tarwani S., Chug A. Prioritization of code restructuring for severely affected classes under release time constraints. In Proc. of the 1st India International Conference on Information Processing, 2016, pp. 1-6.
3. Boucher A., Badri M. Predicting Fault-Prone Classes in Object-Oriented Software: An Adaptation of an Unsupervised Hybrid SOM Algorithm. In Proc. of the IEEE International Conference on Software Quality, Reliability and Security, 2017, pp. 306-317.
4. Rajdev U., Kaur A. Automatic detection of bad smells from excel sheets and refactor for performance improvement. In Proc. of the International Conference on Inventive Computation Technologies, vol. 2, 2016, pp. 1-8.
5. Kaya M., Fawcett J.W. A new cohesion metric and restructuring technique for object oriented paradigm. In Proc. of the IEEE 36th Annual Computer Software and Applications Conference Workshops, 2012, pp. 296-301.
6. Mourad B., Badri L., Hachemane O., Ouellet A. Exploring the Impact of Clone Refactoring on Test Code Size in Object-Oriented Software. In Proc. of the 16th IEEE International Conference on Machine Learning and Applications, 2017, pp. 586-592.
7. Amirat A., Bouchouk A., Yeslem M.O., Gasmallah N. Refactor Software architecture using graph transformation approach. In Proc. of the Second International Conference on Innovative Computing Technology, 2012, pp. 117-122.
8. Bhatti M.U., Ducasse S., Huchard M. Reconsidering classes in procedural object-oriented code. In Proc. of the 15th Working Conference on Reverse Engineering, 2008, pp. 257-266.
9. Liu H., Li G., Ma Z.Y., Shao W.Z. Conflict-aware schedule of software refactorings. IET software, vol. 2, issue 5, 2008, pp. 446-460.
10. Nongpong K. Feature envy factor: A metric for automatic feature envy detection. In Proc. of the 7th International Conference on Knowledge and Smart Technology, 2015, pp. 7-12.
11. Tomyim J., Pohthong A. Requirements change management based on object-oriented software engineering with unified modeling language. In Proc. of the 7th IEEE International Conference on Software Engineering and Service Science, 2016, pp. 7-10.
12. Hamad S.H., Ammar R.A., Khalifa M.E., Fergany T. Randomized Algorithms for Mapping Clustered Object-Oriented Software onto Distributed Architectures. In Proc. of the 7th IEEE International Symposium on Signal Processing and Information Technology, 2018, pp. 426-431.
13. Sugandhi R., Srivastava P., Sanyasi A., Awasthi L.M., Parmar V., Makadia K., Patel I., Shah S. Implementation of object oriented software engineering on LabVIEW graphical design framework for data acquisition in large volume plasma device. In Proc. of the 7th International Conference on Cloud Computing, Data Science & Engineering, 2017, pp. 798-803.
14. Faheem M.T., Ammar R.A., Sarhan A.M., Ragab H.A.M. A hybrid algorithm for restructuring distributed Object-oriented software. In Proc. of the International Symposium on Signal Processing and Information Technology, 2010, pp. 202-208.
15. Cosma D.C. Reverse engineering object-oriented distributed systems. In Proc. of the IEEE International Conference on Software Maintenance, 2010, pp. 1-6.
16. Gu A., Zhou X., Li Z., Li Q., Li L. Measuring Object-Oriented Class Cohesion Based on Complex Networks. Arabian Journal for Science and Engineering, vol. 42, no. 8, 2017, pp. 3551-3561.
17. Ajienka N., Capiluppi A., Counsell S. An empirical study on the interplay between semantic coupling and co-change of software classes. Empirical Software Engineering, 2017. pp. 1-35.
18. Kumar N., Dadhich R., Shastri A. MAQM: a generic object-oriented framework to build quality models for Web-based applications. International Journal of System Assurance Engineering and Management, vol. 8, no. 2, pp. 2017, pp. 716-729.
19. Parashar A., Chhabra J.K. Mining software change data stream to predict changeability of classes of object-oriented software system. Evolving Systems, vol. 7, no. 2, 2016, pp. 117-128.
20. Nucci D.D., Palomba F., Rosa G.D., Bavota G., Oliveto R., Lucia A.D. A developer centered bug prediction model, IEEE Transactions on Software Engineering, vol. 44, no. 1, 2018, pp. 5-24.
21. Aslam W., Ijaz F. A Quantitative Framework for Task Allocation in Distributed Agile Software Development. IEEE Access, vol. 6, 2018, pp. 15380-15390.
Review
For citations:
Khan A. DOOR: Distributed Object Oriented Software Restructuring Approach Using Neural Network. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2019;31(5):109-126. (In Russ.) https://doi.org/10.15514/ISPRAS–2019–31(5)–8