Applying Heuristic Search for Distributed Software Performance Enhancement
DOI: 10.4236/jsea.2009.23021   PDF   HTML     3,954 Downloads   7,080 Views   Citations


Software reverse engineering and reengineering techniques are most often applied to reconstruct the software archi-tecture with respect to quality constraints, or non-functional requirements such as maintainability or reusability. In this paper, the performance improvement of distributed software is modeled as a search problem that is solved by heuristic search algorithms such as genetic search methods. To achieve this, firstly, all aspects of the distributed execution of a software is specified by an analytical performance evaluation function that not only evaluates the current deployment of the software from the performance perspective but also can be applied to propose the near-optimal object deploy-ment for that software. This analytical function is applied as the Heuristic search objective function. In this paper a novel statement reordering method is also presented which is used to generate the search objective function such that the best solution in the search space can be found.

Share and Cite:

O. BUSHEHRIAN, "Applying Heuristic Search for Distributed Software Performance Enhancement," Journal of Software Engineering and Applications, Vol. 2 No. 3, 2009, pp. 144-149. doi: 10.4236/jsea.2009.23021.

Conflicts of Interest

The authors declare no conflicts of interest.


[1] B. Bellay and Gallh, “Reverse engineering to recover and de-scribe a systems architecture,” Development and Evolution of Software Architectures for Product Families Lecture Notes in Computer Science, Vol. 1429, 1998.
[2] D. R. Harris, H. B. Reubenstein and A.S.Yeh, “Reverse engi-neering to the architectural level,” Proc. 17th Int. Conf. Soft-ware Engineering, Seattle, Washington, US, 1995.
[3] S. Parsa and O. Bushehrian, “The design and implementation of a tool for automatic software modularization,” J. Supercomput., Vol. 32, No. 1, pp. 71–94, 2005.
[4] B. S. Mitchell and M. Spiros, “Bunch: A clustering tool for the recovery and maintenance of software system structure,” Proc. Int. Conf. Software Maintenance, 1999. (IEEE)
[5] L. Tahvildari, K. Kontoglannis and J. Mylopoulos, “Quality-driven software re-engineering,” J. Syst. Softw., Vol. 66, pp. 225–239, 2003.
[6] Hyunsang Youn, Suhyeon Jang and Eunseok Lee, “Deriving queuing network model for UML for software performance prediction,” Fifth International Conference on Software Engi-neering Research, Management and Application, pp. 125–131, 2007. (IEEE)
[7] J. M. Fernandes, S. Tjell, J. B. Jorgensen and O. R. Ribeiro, “Designing tool support for translating use cases and UML 2.0 sequence diagrams into a colored Petri Net,” Proc. 16th interna-tional Workshop on Scenarios and State Machines, 2007. (IEEE)
[8] R. G. Pettit and H. Gomma, “Analyzing behavior of concurrent software designs for embedded systems,” Proc. 10th Interna-tional Symposium on Object and Component-Oriented Real-Time Distributed Computing, 2007. (IEEE)
[9] Andolfif., F. Aquilani, S. Balsamo, and P. Inverardi, “Deriving performance models of software architectures from message sequence charts,” Proc. 2nd Int. Workshop on Software and Performance (WOSP2000), Canada, 2000.
[10] Y. Gourhant, S. Louboutin, V. Cahill, A. Condon, G. Starovic, and B. Tangney, “Dynamic clustering in an object-oriented distributed system,” Proc. OLDA-II (Objects in Large Distrib-uted Applications), Ottawa, Canada, October 1992.
[11] D. Deb, M. Fuad, and M. J. Oudshoom, “Towards autonomic distribution of existing object oriented programs,” Int. Conf. Autonomic and Autonomous Systems (ICAS’ 06), 2006. (IEEE)
[12] T. Fahringer and A. Jugravu, “JavaSymphony: New directives to control and synchronize locality, parallelism, and load bal-ancing for cluster and GRID-computing,” Proc. Joint ACM Java Grande–ISCOPE 2002 Conf., Seattle, Washington, No-vember 2002.
[13] S. Parsa and O. Bushehrian, “Genetic clustering with con-straints,” Journal of research and practice in information tech-nology, Vol. 39, No. 1, pp. 47–60, 2007.
[14], last visit: 12th Sep-tember 2009.
[15] M. Schoeberl, “A time predictable Java processor,” Proc. Conf. Design, Automation and Test in Europe, Germany, pp. 800–805, 2006.
[16] S. Parsa and O. Bushehrian, “Performance-driven object ori-ented program re-modularization,” Journal of IET Software, Vol. 2, No. 4, pp. 362–378, 2008.
[17] B. S. Mitchell, “A heuristic search approach to solving the software clustering problem,” Ph.D Thesis, Drexel University, March 2002.

Copyright © 2022 by authors and Scientific Research Publishing Inc.

Creative Commons License

This work and the related PDF file are licensed under a Creative Commons Attribution 4.0 International License.