We combine the advantages of the Word2Vec Skip-gram model in extracting subtle semantic differences from complex software requirement documents and propose a non-functional requirements method based on Tri-Training semi-supervised learning. This approach addresses the challenge of limited labeled samples in software requirements engineering, thus mitigating the performance degradation in non-functional requirement classification. Unlike traditional semi-supervised learning algorithms applied to entirely redundant views or a single classifier, the semi-supervised Tri-Training algorithm initializes three distinct classifiers with three different labeled datasets generated through bootstrapping. It employs the majority voting rule among these classifiers to produce pseudo-labeled data, thereby mitigating constraints on the training set and augmenting the generality and applicability of the classification framework. The method described in this paper is applied to the PROMISE software requirements dataset covering multiple industrial domains. The results demonstrate that the non-functional requirement classification method based on Tri-Training semi-supervised learning exhibits commendable classification performance across datasets with various labeled proportions, particularly under conditions of insufficient labeled data. Compared to supervised learning and other semi-supervised learning algorithms, this method shows significant recall and F1 score advantages.
在同一数据集和相同训练标记数据下,比较了本文方法与常见的监督学习方法KNN、DT、RF和简化的深度森林[28](Simplified Deep Forest, SDF)在不同标记比例(20%~90%)下的分类性能。深度森林[29]是一种新颖的决策树集成方法,由多粒度扫描和级联森林两部分构成,由于软件需求数据包含低维特征,因此本文采用了Xu等[28]提出的只包含级联结构的简化的深度森林模型。实验结果如图3所示。
LIB, LIZ, YANGY L. Classification of non-functional software requirements using word embeddings and long short-term memory[J]. Journal of Guangxi Normal University (Natural Science Edition), 2021, 39(5): 110-121. DOI: 10.16088/j.issn.1001-6600.2020111401(Ch ).
XUY, WUG Q, LIUX, et al. A formal model for analyzing the SCR-style requirements specifications[J]. Journal of Wuhan University (Natural Science Edition), 1998, 44(3): 302-306 (Ch).
[5]
KRASNERH. The cost of poor quality software in the US: A 2018 report[EB/OL]. [2018-10-31].
XIAOS, LIZ, TANGS Q. Requirement analysis and design based on software architecture[J]. Journal of Wuhan University (Natural Science Edition), 1999, 45(5): 665-668 (Ch).
[8]
YOUNASM, WAKILK, DAYANGN, et al. An automated approach for identification of non-functional requirements using Word2Vec Model[J]. International Journal of Advanced Computer Science and Applications, 2019, 10(8): 539-547. DOI: 10.14569/ijacsa.2019.0100871 .
NIY Z, PENGR, SUND, et al. Potential evolution requirements detect method based on user comments[J]. Journal of Wuhan University (Natural Science Edition), 2015, 61(4): 347-355. DOI: 10.14188/j.1671-8836.2015.04.009(Ch ).
LUOX C, XUEY X. Accurately classify software requirements using prompt learning on BERT[J]. Information Technology and Network Security, 2022, 41(2): 39-45. DOI: 10.19358/j.issn.2096-5133.2022.02.007(Ch ).
[13]
CLELAND-HUANGJ, SETTIMIR, ZOUX C, et al. The detection and classification of non-functional requirements with application to early aspects[C]//14th IEEE International Requirements Engineering Conference. New York: IEEE Press, 2006: 39-48. DOI: 10.1109/RE.2006.65 .
[14]
MUNAIAHN, MENEELYA, MURUKANNAIAHP K. A domain-independent model for identifying security requirements[C]//2017 IEEE 25th International Requirements Engineering Conference. New York: IEEE Press, 2017: 506-511. DOI: 10.1109/RE.2017.79 .
[15]
KURTANOVIĆZ, MAALEJW. Automatically classifying functional and non-functional requirements using supervised machine learning[C]//2017 IEEE 25th International Requirements Engineering Conference. New York: IEEE Press, 2017: 490-495. DOI: 10.1109/RE.2017.82 .
[16]
HUSSAINI, KOSSEIML, ORMANDJIEVAO. Using linguistic knowledge to classify non-functional requirements in SRS documents[C]//International Conference on Application of Natural Language to Information Systems. Berlin: Springer, 2008: 287-298. DOI: 10.1007/978-3-540-69858-6_28 .
[17]
ABADZ S H, KARRASO, GHAZIP, et al. What works better? A study of classifying requirements[C]//2017 IEEE 25th International Requirements Engineering Conference. New York: IEEE Press, 2017: 496-501. DOI: 10.1109/RE.2017.36 .
[18]
TIUNS, MOKHTARU A, BAKARS H, et al. Classification of functional and non-functional requirement in software requirement using Word2Vec and fast Text[J]. Journal of Physics: Conference Series, 2020, 1529(4): 042077. DOI: 10.1088/1742-6596/1529/4/042077 .
[19]
LEELAPRUTEP, AMASAKIS. A comparative study on vectorization methods for non-functional requirements classification[J]. Information and Software Technology, 2022, 150: 106991. DOI: 10.1016/j.infsof.2022.106991 .
[20]
HEY T, KEIMJ, KOZIOLEKA, et al. NoRBERT: Transfer learning for requirements classification[C]//2020 IEEE 28th International Requirements Engineering Conference. New York: IEEE Press, 2020: 169-179. DOI: 10.1109/RE48521.2020.00028 .
[21]
ALDHAFERO, AHMADI, MAHMOODS. An end-to-end deep learning system for requirements classification using recurrent neural networks[J]. Information and Software Technology, 2022, 147: 106877. DOI: 10.1016/j.infsof.2022.106877 .
[22]
KAURK, KAURP. BERT-CNN: Improving BERT for requirements classification using CNN[J]. Procedia Computer Science, 2023, 218(C): 2604-2611. DOI: 10.1016/j.procs.2023.01.234 .
[23]
RAHMANK, GHANIA, AHMADR, et al. Hybrid deep learning approach for nonfunctional software requirements classifications[C]//2023 International Conference on Communication, Computing and Digital Systems. New York: IEEE Press, 2023: 1-5. DOI: 10.1109/C-CODE58145.2023.10139907 .
[24]
ZHOUZ H, LIM. Tri-training: Exploiting unlabeled data using three classifiers[J]. IEEE Transactions on Knowledge and Data Engineering, 2005, 17(11): 1529-1541. DOI: 10.1109/TKDE.2005.186 .
[25]
CASAMAYORA, GODOYD, CAMPOM. Semi-supervised classification of non-functional requirements: An empirical analysis[J]. Inteligencia Artificial, 2009, 13(44): 35-45. DOI: 10.4114/ia.v13i44.1044 .
[26]
DEOCADEZR, HARRISONR, RODRIGUEZD. Automatically classifying requirements from app stores: A preliminary study[C]//2017 IEEE 25th International Requirements Engineering Conference Workshops. New York: IEEE Press, 2017: 367-371. DOI: 10.1109/REW.2017.58 .
[27]
LIC Y, HUANGL G, GEJ D, et al. Automatically classifying user requests in crowdsourcing requirements engineering[J]. Journal of Systems and Software, 2018, 138: 108-123. DOI: 10.1016/j.jss.2017.12.028 .
[28]
YOUNASM, JAWAWID N A, GHANII, et al. Extraction of non-functional requirement using semantic similarity distance[J]. Neural Computing and Applications, 2020, 32(11): 7383-7397. DOI: 10.1007/s00521-019-04226-5 .
[29]
LIG, ZHENGC P, LIM, et al. Automatic requirements classification based on graph attention network[J]. IEEE Access, 2022, 10: 30080-30090. DOI: 10.1109/ACCESS.2022.3159238 .
[30]
CHELIGEERC, HUANGJ W, WUG S, et al. Machine learning in requirements elicitation: A literature review[J]. Artificial Intelligence for Engineering Design, Analysis and Manufacturing, 2022, 36: e32. DOI: 10.1017/s0890060422000166 .
[31]
CLELAND-HUANGJ, MAZROUEES, HUANGL, et al. Nfr[EB/OL].[2020-12-30].
[32]
LIW W, ZHANGW Z, JIAX Y, et al. Effort-aware semi-supervised just-in-time defect prediction[J]. Information and Software Technology, 2020, 126: 106364. DOI: 10.1016/j.infsof.2020.106364 .
[33]
ZHAOK S, XUZ, ZHANGT, et al. Simplified deep forest model based just-in-time defect prediction for Android mobile APPs[J]. IEEE Transactions on Reliability, 2021, 70(2): 848-859. DOI: 10.1109/TR.2021.3060937 .
[34]
ZHOUZ H, FENGJ. Deep forest[J]. National Science Review, 2019, 6(1): 74-86. DOI: 10.1093/nsr/nwy108 .
[35]
BLUMA, MITCHELLT. Combining labeled and unlabeled data with co-training[C]//Proceedings of the Eleventh Annual Conference on Computational Learning Theory. New York:ACM. 1998: 92–100. DOI: 10.1145/279943.279962 .