اندازه‌گیری کمّی قابلیت استفاده‌ی مجدد مؤلفه‌های نرم‌افزاری: روش‌ها، کاربردها و چالش‌ها

نویسندگان

دانشگاه فردوسی مشهد

چکیده

هدف اصلی استفاده‏‌‍‌ی مجدد از مؤلفه‌های نرم‏‌افزاری، تولید نرم‌افزار‏های جدید با استفاده از مؤلفه‌های موجود به جای تولید آن‏ها از ابتدا است. توسعه‏‌ی مبتنی بر مؤلفه، یکی از روش‌های مطرح توسعه نرم‌افزار می‌باشد. امروزه در گرایش‌های مختلف مهندسی، ترکیب مؤلفه‏‌های قابل استفاده‏‌ی مجدد و باکیفیت از اهمیت بسزایی برخوردار است اما در مهندسی نرم‏‌افزار، استفاده‏‌ی مجدد از مؤلفه‏‌ها هنوز با چالش‏‌های متعددی مواجه است. به‏‌منظور افزایش کارآمدی و سرعت بخشیدن به فرآیند استفاده‏‌ی مجدد در توسعه‏‌ی نرم‏‌افزار، اندازه‏‌گیری کمّی قابلیت استفاده‏‌ی مجدد مؤلفه‏‌ها امری ضروری می‌باشد. در این راستا مدل‏‌ها و سنجه‏‌های مختلفی ارائه شده‏‌اند. با توجه به تعدّد روش‌های موجود، ضرورت ارائه‌ی یک مرور جامع، کامل و منصفانه در این زمینه، به شدّت احساس می‌گردد. در این مقاله، با انجام یک مرور نظام‌مند و با ارائه‌ی یک دسته‌بندی جدید، روش‌های موجود به دقت مورد بررسی و مطالعه قرار گرفته‌اند و به تحلیل نقاط قوّت، محدودیت‌ها و کاربردهای آن‌ها پرداخته شده‌است. در نهایت، بر مبنای نتایج مطالعات و تحلیل‌های صورت پذیرفته، برخی از چالش‌ها و مسائل باز مرتبط معرفی شده‌اند.

کلیدواژه‌ها


عنوان مقاله [English]

The Quantitative Measurement of Software Components Reusability: Methods, Applications, Challenges

نویسندگان [English]

  • Bahareh Bafandeh
  • Abbas Rasoolzadegan
چکیده [English]

The main goal of reusing software components is to produce new software systems using existing components rather than building it from scratch. Component-based software development is one of the most common approaches found today in different branches of engineering, but in software engineering reusing components is still faced with numerous challenges. In order to increase efficiency and accelerate the adoption of component reuse in software development, quantitative measurement of component reusability is necessary. In this regard, various models and metrics have been proposed, so it is important to review the research literature on this concept fairly and comprehensively. In this paper, we conducted a systematic review to identify and evaluate the methods that have been used for measuring component reusability and provide a new classification. Finally, based on the results of studies carried out, some of the relating challenges and issues have been introduced.

کلیدواژه‌ها [English]

  • Software Components Reusability
  • Component based Software Development
  • Quantitative Measurement
  • Black Box Evaluation Methods
  • White Box Evaluation Methods
 

Kakarontzas, G., Constantinou, E., Ampatzoglou, A., & Stamelos, I. (2013). "Layer assessment of object-oriented software: A metric facilitating white-box reuse". Journal of Systems and Software, 86(2), 349-366.

[1]

Gill, N. S. (2006). "Importance of software component characterization for better software reusability". ACM SIGSOFT Software Engineering Notes, 31(1), 1-3.

[2]

Mistrík, I., Bahsoon, R., Eeles, P., Roshandel, R., & Stal, M. (Eds.). (2014). "Relating System Quality and Software Architecture". Morgan Kaufmann.

[3]

Kahtan, H., Bakar, N. A., & Nordin, R. (2012, October). "Reviewing the challenges of security features in component based software development models". In Proceedings of the IEEE Symposium on E-Learning, E-Management and E-Services (pp. 1-6).

[4]

Washizaki, H., Yamamoto, H., & Fukazawa, Y. (2003, September). "A metrics suite for measuring reusability of software components". In Software Metrics Symposium, 2003. Proceedings. Ninth International (pp. 211-223). IEEE.

[5]

Singh, Y., Bhatia, P. K., & Sangwan, O. (2011). "Software reusability assessment using soft computing techniques". ACM SIGSOFT Software Engineering Notes, 36(1), 1-7.

[6]

Lingyun, F., Guang, S., & Jianli, C. (2010, July). "An approach for component-based software development". In Information Technology and Applications (IFITA), 2010 International Forum on (Vol. 1, pp. 22-25). IEEE.

[7]

Hu, K., Guo, Z., Jiang, Y., Feng, Y., & Shen, F. (2012, October). "Component-based development framework for ocean information system". In Oceans, 2012 (pp. 1-7). IEEE.

[8]

Zhang, H. Y., Zhang, L., Urtado, C., Vauttier, S., & Huchard, M. (2012, September). "A three-level component model in component based software development". In ACM SIGPLAN Notices (Vol. 48, No. 3, pp. 70-79). ACM.

[9]

Gamma, E., Helm, R., Johnson, R., & Vlissides, J. (1994). "Design patterns: elements of reusable object-oriented software". Pearson Education.

[10]

Pressman, R. S. (2005). "Software engineering: a practitioner's approach". Palgrave Macmillan.

[11]

Singh, S., Thapa, M., Singh, S., & Singh, G. (2010). Software Engineering-Survey of Reusability Based on Software Component.

[12]

Sommerville, I. (2010). "Software Engineering". 9 ed. Addison-Wesley.

[13]

Caldiera, G., & Basili, V. R. (1991). "Identifying and qualifying reusable software components". Computer, 24(2), 61-70.

[14]

Halstead, M. H. (1977). "Elements of software science". Amsterdam, Elsvier North-Holland.

[15]

McCabe, T. J. (1976). "A complexity measure". Software Engineering, IEEE Transactions on, (4), 308-320.

[16]

Chidamber, S. R., & Kemerer, C. F. (1994). "A metrics suite for object oriented design". Software Engineering, IEEE Transactions on, 20(6), 476-493.

[17]

Lee, Y., & Chang, K. H. (2000, April). "Reusability and maintainability metrics for object-oriented software". In Proceedings of the 38th annual on Southeast regional conference (pp. 88-94). ACM.

[18]

Cho, E. S., Kim, M. S., & Kim, S. D. (2001, December). "Component metrics to measure component quality". In Software Engineering Conference, 2001. APSEC 2001. Eighth Asia-Pacific (pp. 419-426). IEEE.    

[19]

Gui, G., & Scott, P. D. (2008, November). "New coupling and cohesion metrics for evaluation of software component reusability". In Young Computer Scientists, 2008. ICYCS 2008. The 9th International Conference for (pp. 1181-1186). IEEE.

[20]

Poulin, J. S. (2006). "The business case for software reuse: Reuse metrics, economic models, organizational issues, and case studies". In Reuse of Off-the-Shelf Components (pp. 439-439). Springer Berlin Heidelberg.

[21]

Boxall, M. A., & Araban, S. (2004). "Interface metrics for reusability analysis of components". In Software Engineering Conference, 2004. Proceedings. 2004 Australian (pp. 40-51). IEEE.

[22]

Etzkorn, L. H., Hughes, W. E., & Davis, C. G. (2001). "Automated reusability quality analysis of OO legacy software". Information and Software Technology, 43(5), 295-308.

[23]

Selby, R. W. (2005). "Enabling reuse-based software development of large-scale systems". Software Engineering, IEEE Transactions on, 31(6), 495-510.

[24]

Sandhu, P. S., & Singh, H. (2006). "Automatic reusability appraisal of software components using neuro-fuzzy approach". International Journal Of Information Technology, 3(3), 209-214.

[25]

Sandhu, P. S., Blecharz, P., & Singh, H. (2007). "A Taguchi approach to investigate impact of factors for reusability of software components". Transactions on Engineering, Computing and Technology, 19, 135-140.

[26]

Sandhu, P. S., Kaur, H., & Singh, A. (2009). "Modeling of reusability of object oriented software system". World Academy of Science, Engineering and Technology, 56(32).

[27]

Manhas, S., Vashisht, R., Sandhu, P. S., & Neeru, N. (2010). "Reusability evaluation model for procedure based software systems". International Journal of Computer and Electrical Engineering, 2(6), 1107-1110.

[28]

Mahmood, A. K., & Oxley, A. (2011). "Reusability Assessment of Open Source Components for Software Product Lines". International Journal of New Computer Architectures and their Applications (IJNCAA), 1(3), 519-533.

[29]

Kumar, A. (2012). "Measuring Software reusability using SVM based classifier approach". International Journal of Information Technology and Knowledge Management, 5(1), 205-209.

[30]

Hristov, D., Hummel, O., Huq, M., & Janjic, W. (2012, November). "Structuring Software Reusability Metrics for Component-Based Software Development". In ICSEA 2012, The Seventh International Conference on Software Engineering Advances (pp. 421-429).

[31]

Barnard, J. (1998). "A new reusability metric for object-oriented software". Software Quality Journal, 7(1), 35-50.

[32]

Yingmei, L., Jingbo, S., & Weining, X. (2012). "On Reusability Metric Model for Software Component". In Software Engineering and Knowledge Engineering: Theory and Practice (pp. 865-870). Springer Berlin Heidelberg.

[33]

Khoshkbarforoushha, A., Jamshidi, P., & Shams, F. (2010, May). "A metric for composite service reusability analysis". In Proceedings of the 2010 ICSE Workshop on Emerging Trends in Software Metrics (pp. 67-74). ACM.

[34]

Sharma, A., Kumar, R., & Grover, P. S. (2007). "A critical survey of reusability aspects for component-based systems". World academy of science, Engineering and Technology, 19, 411-415.

[35]

Mahmood, A. K., & Oxley, A. (2011). "A Review of Software Component Reusability Assessment Approaches". Research Journal of Information Technology, (3), 1-10.

[36]

Ismail, S., Wan-Kadir, W. M., Saman, Y. M., & Mohd-Hashim, S. Z. (2008, August). "A review on the component evaluation approaches to support software reuse". In Information Technology, 2008. ITSim 2008. International Symposium on (Vol. 4, pp. 1-6). IEEE.

[37]

Parmeza, D., & Fifo, M. (2013). "A Survey of Methods for Measuring and Enhancing Component Reusability". IDT Mini-conference on Interesting Results in Computer Science and Engineering.

[38]

Sandhu, P. S., Kakkar, P., & Sharma, S. (2010, September). "A survey on Software Reusability". In Mechanical and Electrical Technology (ICMET), 2010 2nd International Conference on (pp. 769-773). IEEE.

[39]

Subedhaa, V., & Sridharb, S. (2012). "A Systematic Review of Reusability Assessment Model and Related Approach for Reusable Component Mining". Journal of Computer Applications (JCA), 5(2)

[40]

Sadana, N., Dhaiya, S., & Ahuja, M. S. "An empirical review on factors affecting reusability of programs in software engineering".

[41]

Thakral, S., & Sagar, S. (2014). "Reusability in Component Based Software Development-A Review". World Applied Sciences Journal, 31(12).

[42]

Kitchenham, B. (2004). "Procedures for performing systematic reviews". Keele, UK, Keele University, 33(2004), 1-26.

[43]

Keele, S. (2007). "Guidelines for performing systematic literature reviews in software engineering". (pp. 1-57), Technical report, EBSE Technical Report EBSE-2007-01.

[44]

Brereton, P., Kitchenham, B. A., Budgen, D., Turner, M., & Khalil, M. (2007). "Lessons from applying the systematic literature review process within the software engineering domain". Journal of systems and software, 80(4), 571-583.

[45]

Kitchenham, B., Brereton, O. P., Budgen, D., Turner, M., Bailey, J., & Linkman, S. (2009). "Systematic literature reviews in software engineering–a systematic literature review". Information and software technology, 51(1), 7-15.

[46]

Kitchenham, B., Pretorius, R., Budgen, D., Brereton, O. P., Turner, M., Niazi, M., & Linkman, S. (2010). "Systematic literature reviews in software engineering–a tertiary study". Information and Software Technology, 52(8), 792-805.

[47]

Da Silva, F. Q., Santos, A. L., Soares, S., França, A. C. C., Monteiro, C. V., & Maciel, F. F. (2011). "Six years of systematic literature reviews in software engineering: An updated tertiary study". Information and Software Technology, 53(9), 899-913.

 

[48]