(Semi-) Automatic Categorization of Natural Language Requirements Eric Knauss and Daniel Ott eric.knauss@cse.gu.se @oerich oerich.wordpress.com
Importance of Requirement Categorization Requirement ¡ Security ¡ Signal ¡ Func2onal ¡ Non-‑func2onal ¡ Temperature ¡ Test ¡ R1 ¡ yes ¡ yes ¡ yes ¡ R2 ¡ yes ¡ yes ¡ R3 ¡ yes ¡ yes ¡ yes ¡ R4 ¡ yes ¡ yes ¡ yes ¡ yes ¡ R5 ¡ yes ¡ yes ¡ yes ¡ Recognising ¡security ¡ ¡ Iden2fica2on ¡of ¡special ¡kinds ¡ issues ¡[1] ¡ [2] ¡for: ¡ -‑ Architectural ¡decisions ¡ -‑ Needed ¡equipment ¡ -‑ ¡Iden2fica2on ¡of ¡ dependencies ¡for ¡risk ¡ detec2on ¡ Improving ¡Review ¡efficiency[3] ¡ [1] ¡E. ¡Knauss, ¡S. ¡Houmb, ¡K. ¡Schneider, ¡S. ¡Islam, ¡and ¡J. ¡Jürjens. ¡Suppor>ng ¡requirements ¡engineers ¡in ¡recognising ¡security ¡issues. ¡Requirements ¡Engineering: ¡Founda>on ¡for ¡ SoGware ¡Quality, ¡pages ¡4-‑18, ¡2011. ¡ [2] ¡X. ¡Song ¡and ¡B. ¡Hwong. ¡Categorizing ¡requirements ¡for ¡a ¡contract-‑based ¡system ¡integra>on ¡project. ¡In ¡Requirements ¡Engineering ¡Conference ¡(RE), ¡pages ¡279-‑284. ¡IEEE, ¡2012. ¡ [3] ¡Daniel ¡OR. ¡Automa>c ¡requirement ¡categoriza>on ¡of ¡large ¡natural ¡language ¡specifica>ons ¡at ¡mercedes-‑benz ¡for ¡review ¡improvements. ¡In ¡Requirements ¡Engineering: ¡ Founda>on ¡for ¡SoGware ¡Quality, ¡2013. ¡ (Semi-) automatic reqt. categorization 2
Minimizing Efforts by Automation Today’s ¡specifica>ons ¡are ¡large ¡and ¡ For ¡example ¡at ¡Mercedes ¡Benz ¡ complex. ¡ ¡ Component specification Minimalize ¡manual ¡efforts ¡for ¡a ¡ categoriza2on ¡of ¡requirements ¡and ¡at ¡the ¡ same ¡2me ¡maximize ¡the ¡quality ¡of ¡the ¡ 290 req. 3.700 req. 850 req. resul2ng ¡categoriza2on ¡ ∅ 16 words / requirement Research ¡Goal ¡ 60 P. • Develop ¡ a ¡socio-‑technical ¡system ¡ for ¡ 2.000 P. requirements ¡categoriza>on ¡during ¡ the ¡specifica>on ¡wri>ng ¡process ¡ • Evaluate ¡at ¡Mercedes ¡Benz ¡with ¡ full-‑ automa2c, ¡semi-‑automa2c ¡and ¡ manual ¡classifica2on ¡ (Semi-) automatic reqt. categorization 3
Automatic Classification - Basics Topic ¡x ¡ classifica2on ¡ documents ¡ algorithm ¡ to ¡classify ¡ Topic ¡x ¡ topics ¡ training ¡data ¡ relevant ¡requirements ¡in ¡retrieved ¡ Goal ¡ requirements ¡𝐒 ¡∩ ¡𝐁 ¡ High ¡Recall ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡Recall ¡ ¡ ¡ ¡ ¡ ¡ ¡ • High ¡Precision ¡ ¡ ¡ ¡ ¡ ¡ ¡Precision ¡ ¡ • relevant ¡requirements ¡R ¡ retrieved ¡requirements ¡A ¡ (Semi-) automatic reqt. categorization 4
Machine Learning – Processing steps[1] Example ¡4-‑gram-‑indexing: ¡ non-‑assigned ¡ Pre-‑Processing ¡ requirements ¡ Requires ¡aRen2on ¡ K-‑gram-‑indexing ¡ requ, ¡equi, ¡quir, ¡uire, ¡ires; ¡aRe, ¡ Ren, ¡tent, ¡en>, ¡n>o, ¡>on ¡ Classifica>on ¡ training ¡ requirements ¡ Support ¡Vector ¡ Machines ¡(SVM) ¡ T1 ¡ Post-‑Processing ¡ T2, ¡T1, ¡ assigned ¡ T3, ¡T1, ¡ Topic ¡ requirements ¡ generaliza>on ¡ T4, ¡T7, ¡T1, ¡T3 ¡ Not ¡Classified ¡ [1] ¡D. ¡OR ¡, ¡„Automa>c ¡Requirement ¡Categoriza>on ¡of ¡Large ¡Natural ¡Language ¡Specifica>ons ¡at ¡Mercedes-‑Benz ¡for ¡Review ¡ Improvements”, ¡REFSQ ¡2013 ¡ (Semi-) automatic reqt. categorization 5
Idea Step ¡1: ¡Manually ¡classify, ¡train ¡automa>c ¡classifier, ¡gain ¡a ¡“spotlight” ¡ hRps://flic.kr/p/4NXkqE ¡ Step ¡2-‑n: ¡Use ¡“spotlight” ¡to ¡automa>cally ¡categorize ¡requirements ¡ever ¡aGer ¡ hRps://flic.kr/p/4NXkqE ¡ (Semi-) automatic reqt. categorization 6
Reality Step ¡1: ¡Manually ¡classify, ¡train ¡automa>c ¡classifier, ¡gain ¡a ¡“spotlight” ¡ hRps://flic.kr/p/4NXkqE ¡ Step ¡2: ¡“Spotlight” ¡only ¡applicable ¡to ¡ini>al ¡specifica>on ¡ X ¡ hRps://flic.kr/p/4NXkqE ¡ (Semi-) automatic reqt. categorization 7
Why? • Wri>ng ¡style ¡ • Project ¡culture ¡ • Domain ¡specific ¡words ¡ • … ¡ • Amount ¡of ¡training ¡data ¡ à ¡“Useful ¡in ¡product ¡line ¡ ¡ hRps://flic.kr/p/52rMVi ¡ and ¡soGware ¡evolu>on ¡ ¡ Shiny, ¡but ¡special ¡purpose ¡ scenarios” ¡ • Our vision was a bit different... (Semi-) automatic reqt. categorization 8
Socio-technical system for requirements categorization Open specification Update 1 ¡ training Write Classify data for requirement requirement this specification Classify requirement 2 ¡ Close specification Identify suitable Manually add class class manually to requirement yes no Automatic User confirms classification classification? support? yes no Initial trainingsdata? 3 ¡ yes: use training data from Automatically add other specifications Identify suitable class to no: use only training data class automatically requirement from this specification (Semi-) automatic reqt. categorization 9
Infrastructure for Evaluation 1 3 2 (Semi-) automatic reqt. categorization 10
What do we want to learn? quality ¡ + ¡Ability ¡to ¡adjust ¡ ¡ RQ2 ¡ Manual ¡ to ¡new ¡domain ¡ RQ1 ¡ Semi ¡automa>c ¡ Fully ¡automa>c ¡ effort ¡ (Semi-) automatic reqt. categorization 11
Four relevant treatments Treatment ¡ Automa2c ¡ Ini2al ¡training ¡ User ¡confirms ¡ classifica2on ¡ classifica2on ¡ support ¡ manual ¡ T1 ¡ No ¡ No ¡ Yes ¡ automa>c ¡ T2 ¡ Yes ¡ Yes ¡ No ¡ T3 ¡ Yes ¡ No ¡ Yes ¡ semi-‑ ¡ automa>c ¡ Ini>al ¡ T4 ¡ Yes ¡ Yes ¡ Yes ¡ training ¡ (Semi-) automatic reqt. categorization 12
Data sources hRps://flic.kr/p/kNtqEJ ¡ doi:10.1371/journal.pone.0062127.g002 ¡ End-‑result ¡vs. ¡Ground ¡truth ¡ Telemetry ¡ Ques>onnaire ¡ hRps://flic.kr/p/4HU1ta ¡ (Semi-) automatic reqt. categorization 13
Data sources hRps://flic.kr/p/kNtqEJ ¡ doi:10.1371/journal.pone.0062127.g002 ¡ End-‑result ¡vs. ¡Ground ¡truth ¡ Telemetry ¡ I have high confidence in the correctness of topic recommendations. Treatment 4 0% 100% Treatment 3 60% 40% I have high confidence in the completeness of topic recommendations. Treatment 4 20% 80% Treatment 3 80% 20% Before the Experiment, my confidence in fully − automatic topic classification was high. Treatment 4 67% 33% Treatment 3 40% 60% After the Experiment, my confidence in fully − automatic topic classification was high. Treatment 4 50% 50% Treatment 3 75% 25% I would prefer fully − automatic topic classification over semi − automatic topic classification. Treatment 4 50% 50% Treatment 3 100% 0% 100 50 0 50 100 Percentage Response strong disagree disagree rather disagree rather agree agree Ques>onnaire ¡ hRps://flic.kr/p/4HU1ta ¡ (Semi-) automatic reqt. categorization 14
Performance of fully auto. classif. • Quality: Not good enough – (typical goal: recall > 0.7, precision > 0.6) – Used training data from one domain in a different domain • Effort: Naïve answer is “Great!” – Automatic: init = 5min, classification < 1min – Manual: >>1hr • But: – We need high quality training data – Two raters, Cohen’s Kappa, 2000-3000 requirements >150hrs – This effort might never pay off! (Semi-) automatic reqt. categorization 15
Performance of semi-auto. approach Better quality than full automatic? Only ¡classifica+on: ¡ ¡ Less effort than manual? ¡ ¡ ¡ ¡ ¡ 1.6 min/reqt ¡ ¡ Reported ¡+me ¡by ¡par+cipants: ¡ 3.76min/reqt ¡= ¡ ¡ ¡(2.99 ¡+ ¡ .77 )min/reqt ¡ (Semi-) automatic reqt. categorization 16
Cold start: adjust to new domain Does initial training lead to better results? Ini>al ¡ training ¡ Ini>al ¡ training ¡ Does the classifier adopt quicker without initial training? (Semi-) automatic reqt. categorization 17
Recommend
More recommend