Multimedia Tools and Applications

, Volume 78, Issue 14, pp 20065–20086 | Cite as

Reusability in multimedia softwares using structural and lexical dependencies

  • Amit RatheeEmail author
  • Jitender Kumar Chhabra


Software reuse focuses on developing software using reusability principles. Component Based Software Engineering (CBSE) is one of the approaches that support software reuse by utilizing reusable software components. Many approaches have been proposed in the literature to mine reusable components from existing object-oriented software. But, almost all of these approaches are dependent on the selection of third-party application software as clients. Therefore, this paper proposes a reusable component identification approach from the source-code of a singular object-oriented software system especially related to multimedia tools. The proposed approach is based on making use of two kinds of dependency relations among different software elements namely structural and lexical relations. These relations, help us to measure cohesion at the component level using two proposed cohesion metrics. The cohesion values are further used as objective functions in the multi-objective search-based evolutionary algorithm, namely NSGA-III to identify the set of reusable components as different clusters. The proposed approach is validated by applying it to six open source Java applications of different sizes and belonging to multimedia domains.


Reusable Component identification Structural relation Lexical relations 



  1. 1.
    Adjoyan S, Seriai AD, Shatnawi A (2014) Service identification based on quality metrics object - oriented legacy system migration towards SOA. In: SEKE: Software Engineering and Knowledge Engineering, pp 1–6Google Scholar
  2. 2.
    Allen AA, Costa FM, Clarke PJ (2016) A user-centric approach to dynamic adaptation of reusable communication services. Pers Ubiquit Comput 20(2):209–227CrossRefGoogle Scholar
  3. 3.
    Allier S, Sahraoui HA, Sadou S, Vaucher S (2010) Restructuring object-oriented applications into component-oriented applications by using consistency with execution traces. In: Proceedings of the 13th international conference on component-based software engineering, CBSE’10. Springer-Verlag, Berlin, pp 216–231Google Scholar
  4. 4.
    Allier S, Sadou S, Sahraoui H, Fleurquin R (2011) From object-oriented applications to component-oriented applications via component-oriented architecture. In: 2011 9th working IEEE/IFIP conference on software architecture, pp 214–223.
  5. 5.
    Alshara Z, Seriai AD, Tibermacine C, Bouziane HL, Dony C, Shatnawi A (2015) Migrating large object-oriented applications into component-based ones: Instantiation and inheritance transformation. SIGPLAN Not 51(3):55–64CrossRefGoogle Scholar
  6. 6.
    Amarjeet, Chhabra JK (2017) Improving modular structure of software system using structural and lexical dependency. Inf Softw Technol 82:96–120CrossRefGoogle Scholar
  7. 7.
    Basha NMJ, Moiz SA (2012) Component based software development: A state of art. In: IEEE-international conference on advances in engineering, science and management (ICAESM -2012), pp 599–604Google Scholar
  8. 8.
    Chardigny S, Seriai A, Oussalah M, Tamzalit D (2008) Extraction of component-based architecture from object-oriented systems. In: 7th working IEEE/IFIP conference on software architecture (WICSA 2008), pp 285–288.
  9. 9.
    Darvas KR (2016) System architecture recovery based on software structure model. In: 2016 13th Working IEEE/IFIP Conference on Software Architecture (WICSA), pp 109–114.
  10. 10.
    Deb K, Jain H (2014) An evolutionary many-objective optimization algorithm using reference-point-based nondominated sorting approach, part i: Solving problems with box constraints. IEEE Trans Evol Comput 18(4):577–601. CrossRefGoogle Scholar
  11. 11.
    Eyal Salman H (2017) Identification multi-level frequent usage patterns from apis. J Syst Softw 130(C):42–56CrossRefGoogle Scholar
  12. 12.
    Frakes WB, Kang K (2005) Software reuse research: status and future. IEEE Trans Softw Eng 31(7):529–536. CrossRefGoogle Scholar
  13. 13.
    Frenzel P, Koschke R, Breu APJ, Angstmann K (2007) Extending the reflexion method for consolidating software variants into product lines. In: 14th working conference on reverse engineering (WCRE 2007), pp 160–169.
  14. 14.
    Fuente D, Barba J, López JC, Peñil P, Posadas H, Sánchez P (2017) Synthesis of simulation and implementation code for openmax multimedia heterogeneous systems from uml/marte models. Multimed Tools Appl 76(6):8195–8226. CrossRefGoogle Scholar
  15. 15.
    Garcia J, Ivkovic I, Medvidovic N (2013) A comparative analysis of software architecture recovery techniques. In: 2013 28th IEEE/ACM international conference on automated software engineering (ASE), pp 486–496.
  16. 16.
    Hamza HS (2009) A framework for identifying reusable software components using formal concept analysis. In: 2009 6th international conference on information technology: New generations, pp 813–818.
  17. 17.
    Kebir S, Seriai AD, Chardigny S, Chaoui A (2012) Quality-centric approach for software component identification from object-oriented code. In: 2012 Joint Working IEEE/IFIP conference on software architecture and european conference on software architecture, pp 181–190.
  18. 18.
    Li J, Lu K, Huang Z, Zhu L, Shen HT (2018) Transfer independently together: A generalized framework for domain adaptation. IEEE Transactions on Cybernetics, pp 1–12Google Scholar
  19. 19.
    López-Fernández L, García B, Gallego M, Gortázar F (2017) Designing and evaluating the usability of an api for real-time multimedia services in the internet. Multimed Tools Appl 76(12):14247–14304CrossRefGoogle Scholar
  20. 20.
    Martin RC (2003) Agile Software Development: Principles, patterns, and practices. Prentice Hall PTR, Upper Saddle RiverGoogle Scholar
  21. 21.
    Minović M, Milovanović M, Starčević D (2013) Learning object repurposing for various multimedia platforms. Multimed Tools Appl 63(3):927–946CrossRefGoogle Scholar
  22. 22.
    Mishra S, Kushwaha D, Misra A (2009) Creating reusable software component from object-oriented legacy software through reverse engineering. Journal of Object Technology 8(5):133–152CrossRefGoogle Scholar
  23. 23.
    Mkaouer W, Kessentini M, Shaout A, Koligheu P, Bechikh S, Deb K, Ouni A (2015) Many-objective software remodularization using nsga-iii. ACM Trans Softw Eng Methodol 24(3):17:1–17:45CrossRefGoogle Scholar
  24. 24.
    Nierstrasz O, Dami L (1995) Component-oriented software technology. Object-Oriented Software Composition, pp 3–28Google Scholar
  25. 25.
    Parashar A, Chhabra JK (2019) Assessing Impact of Class Change by Mining Class Associations. International Arab Journal of Information Technology 16(1):98–107Google Scholar
  26. 26.
    Rathee A, Chhabra JK (2018) Improving cohesion of a software system by performing usage pattern based clustering. Prog Comput Sci 125:740–746. The 6th International Conference on Smart Computing and CommunicationsCrossRefGoogle Scholar
  27. 27.
    Reps T, Srinivasan VK (2013) Software-architecture recovery from machine code. Tech. rep., College of Letters and Science University of Wisconsin MadisonGoogle Scholar
  28. 28.
    Saied MA, Benomar O, Abdeen H, Sahraoui H (2015) Mining multi-level api usage patterns. In: 2015 IEEE 22nd international conference on software analysis, evolution, and reengineering (SANER), pp 23–32.
  29. 29.
    Shatnawi A, Seriai AD (2013) Mining reusable software components from object-oriented source code of a set of similar software. In: 2013 IEEE 14th international conference on information reuse integration (IRI), pp 193–200.
  30. 30.
    Shatnawi A, Seriai A, Sahraoui H (2014) Recovering architectural variability of a family of product variants. In: Schaefer I, Stamelos I (eds) Software Reuse for Dynamic Systems in the Cloud and Beyond. Springer International Publishing, Cham, pp 17–33Google Scholar
  31. 31.
    Shatnawi A, Seriai AD, Sahraoui H, Alshara Z (2017) Reverse engineering reusable software components from object-oriented apis. J Syst Softw 131:442–460CrossRefGoogle Scholar
  32. 32.
    Shatnawi A, Shatnawi H, Saied MA, Alshara Z, Sahraoui HA, Seriai A (2018) Identifying components from object-oriented apis based on dynamic analysis. arXiv:1803.06235
  33. 33.
    von Detten M, Platenius MC, Becker S (2014) Reengineering component-based software systems with archimetrix. Softw Syst Model 13(4):1239–1268CrossRefGoogle Scholar
  34. 34.
    Zhu L, Huang Z, Liu X, He X, Sun J, Zhou X (2017) Discrete multimodal hashing with canonical views for robust mobile landmark search. IEEE Trans Multimed 19(9):2066–2079CrossRefGoogle Scholar
  35. 35.
    Zhu L, Huang Z, Li Z, Xie L, Shen HT (2018) Exploring auxiliary context: Discrete semantic transfer hashing for scalable image retrieval. IEEE Transactions on Neural Networks and Learning Systems 29(11):5264–5276MathSciNetCrossRefGoogle Scholar

Copyright information

© Springer Science+Business Media, LLC, part of Springer Nature 2019

Authors and Affiliations

  1. 1.National Institute of TechnologyHaryanaIndia

Personalised recommendations