Towards Understanding the Behavior of Classes Using Probabilistic Models of Program Inputs

  • Arbi Bouchoucha
  • Houari Sahraoui
  • Pierre L’Ecuyer
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7793)


We propose an approach to characterize the behavior of classes using dynamic coupling distributions. To this end, we propose a general framework for modeling execution possibilities of a program by defining a probabilistic model over the inputs that drive the program. Because specifying inputs determines a particular execution, this model defines implicitly a probability distribution over the set of executions, and also over the coupling values calculated from them. Our approach is illustrated through two case studies representing two categories of programs. In the first case, the number of inputs is fixed (batch and command line programs) whereas, in the second case, the number of inputs is variable (interactive programs).


Class role dependency analysis program behavior Monte-Carlo simulation probabilistic model 


  1. 1.
    Allier, S., Vaucher, S., Dufour, B., Sahraoui, H.A.: Deriving coupling metrics from call graphs. In: Int. Work. Conf. on Source Code Analysis and Manipulation, pp. 43–52 (2010)Google Scholar
  2. 2.
    Arisholm, E., Briand, L.C., Foyen, A.: Dynamic coupling measurement for object-oriented software. IEEE Trans. Softw. Eng. 30(8), 491–506 (2004)CrossRefGoogle Scholar
  3. 3.
    Asmussen, S., Glynn, P.W.: Stochastic Simulation. Springer (2007)Google Scholar
  4. 4.
    Biggerstaff, T., Mitbander, B., Webster, D.: The concept assignment problem in program understanding. In: Int. Conf. on Software Engineering, pp. 482–498 (1993)Google Scholar
  5. 5.
    L’Ecuyer, P.: SSJ: A Java Library for Stochastic Simulation (2008), Software user’s guide, available at
  6. 6.
    Nelsen, R.B.: An Introduction to Copulas. Lecture Notes in Statistics, vol. 139. Springer (1999)Google Scholar
  7. 7.
    Rajlich, V., Wilde, N.: The role of concepts in program comprehension. In: 10th International Workshop on Program Comprehension, pp. 271–278 (2002)Google Scholar
  8. 8.
    Setamanit, S., Wakeland, W., Raffo, D.: Planning and improving global software development process using simulation. In: Int. Workshop on Global Software Development for the Practitioner (2006)Google Scholar
  9. 9.
    Shao, J.: Mathematical Statistics. Springer (1999)Google Scholar
  10. 10.
    Stopford, B., Counsell, S.: A framework for the simulation of structural software evolution. ACM Trans. Model. Comput. Simul. 18(4), 1–36 (2008)CrossRefGoogle Scholar
  11. 11.
    Tahvildar, L., Kontogiannis, K.: Improving design quality using meta-pattern transformations: a metric-based approach. J. Softw. Maint. Evol. 16(4-5), 331–361 (2004)CrossRefGoogle Scholar
  12. 12.
    Yacoub, S.M., Ammar, H.H., Robinson, T.: Dynamic metrics for object oriented designs. In: METRICS 1999, pp. 50–61 (1999)Google Scholar
  13. 13.
    Zaidman, A., Demeyer, S.: Automatic identification of key classes in a software system using webmining techniques. J. Softw. Maint. Evol. 20(6), 387–417 (2008)CrossRefGoogle Scholar
  14. 14.
    Zhou, Y., Leung, H., Winoto, P.: Mnav: A markov model-based web site navigability measure. IEEE Trans. Softw. Eng. 33(12), 869–890 (2007)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Arbi Bouchoucha
    • 1
  • Houari Sahraoui
    • 1
  • Pierre L’Ecuyer
    • 1
  1. 1.DIROUniversité de MontréalCanada

Personalised recommendations