Nothing Special   »   [go: up one dir, main page]

Skip to main content
Log in

Automatic actor-based program partitioning

  • Published:
Journal of Zhejiang University SCIENCE C Aims and scope Submit manuscript

Abstract

Software reverse engineering techniques are applied most often to reconstruct the architecture of a program with respect to quality constraints, or non-functional requirements such as maintainability or reusability. In this paper, AOPR, a novel actor-oriented program reverse engineering approach, is proposed to reconstruct an object-oriented program architecture based on a high performance model such as an actor model. Reconstructing the program architecture based on this model results in the concurrent execution of the program invocations and consequently increases the overall performance of the program provided enough processors are available. The proposed reverse engineering approach applies a hill climbing clustering algorithm to find actors.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  • Agha, G., Thati, P., 2004. An algebraic theory of actors and its application to a simple object-based language from object-orientation to formal methods. LNCS, 2635:26–57. [doi:10.1007/b96089]

    Google Scholar 

  • Andolfi, F., Aquilani, F., Balsamo, S., Inverardi, P., 2000. Deriving Performance Models of Software Architectures from Message Sequence Charts. Proc. 2nd Int. Workshop on Software and Performance, p.47–57.

  • Bal, H.E., Kaashoek, M.F., 1993. Object Distribution in ORCA Using Compile-Time and Run-Time Techniques. ACM Conf. on Object-Oriented Programming Systems, Languages and Applications, p.162–177.

  • Chan, B., Abdelrahman, T.S., 2004. Runtime support for the automatic parallelization of Java programs. J. Supercomput., 28(1):91–117. [doi:10.1023/B:SUPE.0000014804.20789.21]

    Article  MATH  Google Scholar 

  • Deb, D., Fuad, M., Oudshoom, M.J., 2006. Towards Autonomic Distribution of Existing Object Oriented Programs. IEEE Int. Conf. on Autonomic and Autonomous System, p.17–17. [doi:10.1109/ICAS.2006.61]

  • Fahringer, T., Jugravu, A., 2002. JavaSymphony: New Directives to Control and Synchronize Locality, Parallelism, and Load Balancing for Cluster and GRID-Computing. Proc. joint ACM-ISCOPE conf. on Java Grande, p.8–17. [doi:10.1145/583810.583812]

  • Gourhant, Y., Louboutin, S., Cahill, V., Condon, A., Starovic, G., Tangney, B., 1992. Dynamic Clustering in an Object-Oriented Distributed System. Proc. OLDA-II (Objects in Large Distributed Applications), p.17–27.

  • Grimshaw, A.S., 1993. Easy-to-use object-oriented parallel processing with Mentat. IEEE Trans. Parall. Distr. Technol., 26:39–51.

    MathSciNet  Google Scholar 

  • Hyunsang, Y., Suhyeon, J., Eunseok, L., 2007. Deriving Queuing Network Model for UML for Software Performance Prediction. 5th Int. IEEE Conf. on Software Engineering Research, Management and Application, p.125–131.

  • Joao, M., Simon, T., Jense, B.J., Oscar, R., 2007. Designing Tool Support for Translating Use Cases and UML 2.0 Sequence Diagrams into a Colored Petri Net. IEEE Proc. 16th Int. Workshop on Scenarios and State Machines.

  • Maani, R., Parsa, S., 2007. An Algorithm to Improve Parallelism in Distributes Systems Using Asynchronous Calls. 7th Int. Conf. on Parallel Processing and Applied Math, p.312–317.

  • Mitchell, B.S., Spiros, M., 1999. Bunch: a Clustering Tool for the Recovery and Maintenance of Software System Structure. Proc. IEEE Int. Conf. on Software Maintenance, p.50–59.

  • Mitchell, S., 2002. A Heuristic Search Approach to Solving the Software Clustering Problem. PhD Thesis, Drexel University, Philadelphia, USA.

    Google Scholar 

  • Parsa, S., Bushehrian, O., 2005. The design and implementation of a tool for automatic software modularization. J. Supercomput., 32(1):71–94. [doi:10.1007/s11227-005-0159-5]

    Article  Google Scholar 

  • Philippsen, M., Zenger, M., 1997. JavaParty transparent remote objects in Java. Concurr.: Pract. & Exper., 9(11):1225–1242. [doi:10.1002/(SICI)1096-9128(199711)9:11<1225::AID-CPE332>3.0.CO;2-F]

    Article  Google Scholar 

  • Robert, G., Hassan, G., 2007. Analyzing Behavior of Concurrent Software Designs for Embedded Systems. IEEE Proc. 10th Int. Symp. on Object and Component-Oriented Real-Time Distributed Computing.

  • Schoeberl, M., 2006. A Time Predictable Java Processor. Proc. Conf. on Design, Automation and Test in Europe, p.800–805.

  • Sobral, J.L., Proenca, A.J., 1999. Dynamic Grain-Size Adaptation on Object-Oriented Parallel Programming the SCOOP Approach. Proc. 13th IEEE Int. Symp. on Parallel Processing, p.728–732.

  • Tahvildari, L., Kontoglannis, K., Mylopoulos, J., 2003. Quality-driven software re-engineering. J. Syst. Software, 66(3):225–239. [doi:10.1016/S0164-1212(02)00082-1]

    Article  Google Scholar 

  • Zima, H., Chapman, B., 1991. Supercompilers for Parallel and Vector Computers (1st Ed.). Addison Wesley, MA, USA.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Omid Bushehrian.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Bushehrian, O. Automatic actor-based program partitioning. J. Zhejiang Univ. - Sci. C 11, 45–55 (2010). https://doi.org/10.1631/jzus.C0910096

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1631/jzus.C0910096

Key words

CLC number

Navigation