DOOR: Подход к реструктуризации распределенных объектно-ориентированных систем на основе нейронных сетей
https://doi.org/10.15514/ISPRAS–2019–31(5)–8
Аннотация
Для развития распространенных программных систем инженерами и дизайнерами в настоящее время используется объектно-ориентированный подход, который помогает строить распределенные объектно-ориентированные системы. Отличительной особенностью распределенных объектно-ориентированных систем является компетентное распределение классов объектов по различным узлам. Обычно информация о распределении классов по серверам в приложениях отсутствует, что стимулирует проведение процедуры реструктуризации, позволяющей повысить производительность. В предлагаемом подходе реструктуризация программного обеспечения систем осуществляется с помощью адаптивного метода с использованием нейронной сети. На начальном этапе создается граф зависимости классов, узлы в котором представляют классы, а связи между узлами соответствуют зависимостям между классами. Затем извлекаются свойства классов, входящих в этот граф, которые передаются в качестве входных данных в нейронную сеть для ее обучения. После этого на основе учета зависимостей классов выполняется кластеризация, приводящая к разбиению множества классов распределенной объектно-ориентированной системы на слабосвязанные подмножества. Далее создается граф кластеров, вершины в котором соответствуют кластерам, а ребра – каналам связи, которые могут существовать между кластерами. К полученному графу применяется алгоритм k-medoids, который используется для сбора кластеров таким образом, что количество собранных групп кластеров становится равным количеству доступных узлов системы. Сформированные в результате группы кластеров оказываются слабосвязанными. В завершение группы кластеров приписываются различным доступным узлам в распределенной среде. Результаты моделирования показали, что предлагаемая работа дает более эффективные результаты по сравнению с существующими методами.
Об авторе
Ахмед ХанПакистан
Преподаватель на факультете компьютерных наук
Список литературы
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.
Рецензия
Для цитирования:
Хан А. DOOR: Подход к реструктуризации распределенных объектно-ориентированных систем на основе нейронных сетей. Труды Института системного программирования РАН. 2019;31(5):109-126. https://doi.org/10.15514/ISPRAS–2019–31(5)–8
For citation:
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