Proper definition of functional requirements is a prerequisite for succesful software project development. Inaccurate and/or missing functional requirements are among the top reasons that lead to failure of the software development process, since incomplete definition of functional requirements results in erroneous scheduling of necessary tasks and subsequently failure in the implementation of the software project. This dissertation initially builds a dataset of functional requirements of software projects from various sources, which is missing from bibliography. Then an ontology is defined, that captures the static view of a software project. The functional require ments of the dataset are mapped to the defined entities and the data is efficiently stored using the ontology format. In the next step, machine learning algorithms are employed in order to extract recommendations for better software requirements elicitation. For the evaluation of their performance the models are fed with take a new software project with incomplete functionality as input and the extracted recommendations are evaluated.
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...
Employing Machine Learning and Intelligent Information Management Techniques for efficient Software Requirements Elicitation
1. Εφαρμογή τεχνικών μηχανικής μάθησης και ευφυούς
διαχείρισης πληροφορίας για τη βελτιστοποίηση των φάσεων
ανάλυσης απαιτήσεων λογισμικού
Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης
Πολυτεχνική Σχολή
Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών
Υπολογιστών
Επιβλέπων: Ανδρέας Συμεωνίδης
Αν. Καθηγητής Α.Π.Θ.
Αναστάσιος Μουρατίδης
ΑΕΜ: 9040
Θεσσαλονίκη, Μάρτιος 2022
2. Μάρτιος 2022 Εφαρμογή τεχνικών μηχανικής μάθησης και ευφυούς διαχείρισης πληροφορίας για τη
βελτιστοποίηση των φάσεων ανάλυσης απαιτήσεων λογισμικού
2
02 Μεθοδολογία
05
Μελλοντική Εργασία
01
Εισαγωγή
04 Συμπεράσματα
03
Αποτελέσματα &
Αξιολόγηση
3. Περιγραφή του προβλήματος
Μάρτιος 2022 Εφαρμογή τεχνικών μηχανικής μάθησης και ευφυούς διαχείρισης πληροφορίας για τη
βελτιστοποίηση των φάσεων ανάλυσης απαιτήσεων λογισμικού
3
4. Σκοπός της διπλωματικής
Συλλογή συνόλου δεδομένων με
σωστές λειτουργικές απαιτήσεις
Μάρτιος 2022 Εφαρμογή τεχνικών μηχανικής μάθησης και ευφυούς διαχείρισης πληροφορίας για τη
βελτιστοποίηση των φάσεων ανάλυσης απαιτήσεων λογισμικού
4
Αποθήκευση με αποδοτικό τρόπο
Ομαδοποίηση δεδομένων και
συμπεράσματα
Εξαγωγή προτάσεων για νέο έργο
λογισμικού
5. Μάρτιος 2022 Εφαρμογή τεχνικών μηχανικής μάθησης και ευφυούς διαχείρισης πληροφορίας για τη
βελτιστοποίηση των φάσεων ανάλυσης απαιτήσεων λογισμικού
5
02 Μεθοδολογία
05
Μελλοντική Εργασία
01
Εισαγωγή
04 Συμπεράσματα
03
Αποτελέσματα &
Αξιολόγηση
6. Μεθοδολογία
Μάρτιος 2022 Εφαρμογή τεχνικών μηχανικής μάθησης και ευφυούς διαχείρισης πληροφορίας για τη
βελτιστοποίηση των φάσεων ανάλυσης απαιτήσεων λογισμικού
6
7. Δεδομένα
Μάρτιος 2022 Εφαρμογή τεχνικών μηχανικής μάθησης και ευφυούς διαχείρισης πληροφορίας για τη
βελτιστοποίηση των φάσεων ανάλυσης απαιτήσεων λογισμικού
7
• Συλλογή δεδομένων από 4 διαφορετικές πηγές
• Συνδυασμός τεχνικών επεξεργασίας φυσικής γλώσσας και χειροκίνητων παρεμβάσεων για την παραγωγή
δεδομένων με παρόμοια μορφή
A user must be able to create an account by providing a username and a password.
123 Έργα Λογισμικού – 4030 Λειτουργικές Απαιτήσεις
• Καθαρισμός από δεδομένα που δεν εισάγουν χρήσιμη πληροφορία
8. Προεπεξεργασία δεδομένων
Μάρτιος 2022 Εφαρμογή τεχνικών μηχανικής μάθησης και ευφυούς διαχείρισης πληροφορίας για τη
βελτιστοποίηση των φάσεων ανάλυσης απαιτήσεων λογισμικού
8
• Απλοποίηση της σύνταξης: Μετατροπή δευτερευουσών προτάσεων σε κύριες
• Μετατροπή παθητικής φωνής σε ενεργητική
• Όλες οι λειτουργικές απαιτήσεις ξεκινούν με
• A user must be able to…
• A user must have the ability to…
9. Επεξεργασία Φυσικής Γλώσσας - spaCy
Μάρτιος 2022 Εφαρμογή τεχνικών μηχανικής μάθησης και ευφυούς διαχείρισης πληροφορίας για τη
βελτιστοποίηση των φάσεων ανάλυσης απαιτήσεων λογισμικού
9
• Τμηματοποίηση σε λέξεις (Tokenization)
• Αναγνώριση μέρους του λόγου (Part of speech tagging)
• Λημματοποίηση (Lemmatization)
• changes, changing, changed → change
• Ανάλυση Εξαρτήσεων (Dependency Parsing)
• Αφαίρεση stopwords (the, be, have)
• spaCy: Open-source βιβλιοθήκη
• Γλωσσικά μοντέλα για 64 γλώσσες
10. Οντότητες Οντολογίας
A user must be able to create an account by providing a username and a password.
Μάρτιος 2022 Εφαρμογή τεχνικών μηχανικής μάθησης και ευφυούς διαχείρισης πληροφορίας για τη
βελτιστοποίηση των φάσεων ανάλυσης απαιτήσεων λογισμικού
10
A user must be able to create an account by providing a username and a password.
Object
Action
Property
A user must be able to create an account by providing a username and a password.
A user must be able to create an account by providing a username and a password.
Actor
11. Εξαγωγή κανόνων συσχέτισης – Αλγόριθμος Apriori
• Είσοδος: Projects αποθηκευμένα με βάση την οντολογία Actor/Action & Action/Object
• Εξαγωγή κανόνων συσχέτισης για συγκεκριμένες τιμές της υποστήριξης (σ) και εμπιστοσύνης (c)
Μάρτιος 2022 Εφαρμογή τεχνικών μηχανικής μάθησης και ευφυούς διαχείρισης πληροφορίας για τη
βελτιστοποίηση των φάσεων ανάλυσης απαιτήσεων λογισμικού
11
𝑆𝑢𝑝𝑝𝑜𝑟𝑡: 𝑠 𝑋 → 𝛶 =
𝜎(𝛸 ∪ 𝛶)
𝛮
𝐶𝑜𝑛𝑓𝑖𝑑𝑒𝑛𝑐𝑒: 𝑐 𝑋 → 𝛶 =
𝜎(𝛸 ∪ 𝛶)
𝜎(𝛸)
• Κανόνες → Υπόδειξη απούσας λειτουργικότητας
12. Θεματική Μοντελοποίηση – Αλγόριθμος LDA
• Κατανομή θεμάτων − λέξεων
• Κατανομή εγγράφων − θεμάτων
Μάρτιος 2022 Εφαρμογή τεχνικών μηχανικής μάθησης και ευφυούς διαχείρισης πληροφορίας για τη
βελτιστοποίηση των φάσεων ανάλυσης απαιτήσεων λογισμικού
12
13. • Αναπαράσταση λέξεων ως διανύσματα
Ιεραρχική Ταξινόμηση με TF-IDF
Μάρτιος 2022 Εφαρμογή τεχνικών μηχανικής μάθησης και ευφυούς διαχείρισης πληροφορίας για τη
βελτιστοποίηση των φάσεων ανάλυσης απαιτήσεων λογισμικού
13
𝑇𝐹(𝑡) =
Αριθμός εμφάνισης του όρου t στο έγγραφο
Αριθμός όρων στο έγγραφο
IDF(𝑡) =
Αριθμός εγγράφων
Αριθμός εγγράφων που περιέχουν τον όρο t
TF−IDF(t) = 𝑇𝐹 𝑡 × 𝐼𝐷𝐹 𝑡
• Απόσταση λέξεων
𝑑𝑖𝑠𝑡 = 1 − 𝑠𝑖𝑚 𝑨, 𝑩 = 1 −
𝑨 ∙ 𝑩
𝑨 ∙ 𝑩
• Υπολογισμός πίνακα Linkage
• Μέθοδος Ward
14. Μάρτιος 2022 Εφαρμογή τεχνικών μηχανικής μάθησης και ευφυούς διαχείρισης πληροφορίας για τη
βελτιστοποίηση των φάσεων ανάλυσης απαιτήσεων λογισμικού
14
02 Μεθοδολογία
05
Μελλοντική Εργασία
01
Εισαγωγή
04 Συμπεράσματα
03
Αποτελέσματα &
Αξιολόγηση
15. Έργο Λογισμικού Εισόδου
Μάρτιος 2022 Εφαρμογή τεχνικών μηχανικής μάθησης και ευφυούς διαχείρισης πληροφορίας για τη
βελτιστοποίηση των φάσεων ανάλυσης απαιτήσεων λογισμικού
15
• Ημιτελές project: Stereo, εφαρμογή μουσικής με λειτουργικότητα κοινωνικού δικτύου
• 2 παρόμοια projects στο σύνολο δεδομένων: Mob, Spotify
16. Κανόνες συσχέτισης για το σετ εκπαίδευσης
Μάρτιος 2022 Εφαρμογή τεχνικών μηχανικής μάθησης και ευφυούς διαχείρισης πληροφορίας για τη
βελτιστοποίηση των φάσεων ανάλυσης απαιτήσεων λογισμικού
16
Left Hand Side Right Hand Side Support Confidence
user/edit user/search 0.138 0.630
user/search user/view 0.138 0.405
user/create user/search 0.130 0.615
user/delete user/edit 0.122 0.652
user/delete user/search 0.106 0.565
user/search user/select 0.106 0.310
user/create user/delete 0.098 0.462
user/search user/see 0.098 0.286
notify/user system/notify 0.089 0.786
create/account user/create 0.089 0.579
user/delete user/view 0.089 0.478
user/create user/edit 0.089 0.423
user/create user/view 0.089 0.423
login/system user/login 0.081 0.833
system/notify user/search 0.081 0.714
user/add user/delete 0.081 0.455
user/add user/search 0.081 0.455
Left Hand Side Right Hand Side Support Confidence
user/add user/select 0.081 0.455
user/login user/search 0.081 0.417
user/edit user/select 0.081 0.370
user/navigate user/search 0.073 0.750
notify/user user/search 0.073 0.643
user/add user/edit 0.073 0.409
user/see user/select 0.073 0.360
user/create user/see 0.073 0.346
user/edit user/view 0.073 0.333
user/rate user/search 0.065 0.727
administrator/delete user/login 0.065 0.571
create/account user/search 0.065 0.421
user/delete user/login 0.065 0.348
user/delete user/select 0.065 0.348
user/login user/logout 0.065 0.333
user/login user/select 0.065 0.333
user/create user/login 0.065 0.308
17. Κανόνες για το Stereo
Μάρτιος 2022 Εφαρμογή τεχνικών μηχανικής μάθησης και ευφυούς διαχείρισης πληροφορίας για τη
βελτιστοποίηση των φάσεων ανάλυσης απαιτήσεων λογισμικού
17
18. Σενάρια χρήσης LDA
Μάρτιος 2022 Εφαρμογή τεχνικών μηχανικής μάθησης και ευφυούς διαχείρισης πληροφορίας για τη
βελτιστοποίηση των φάσεων ανάλυσης απαιτήσεων λογισμικού
18
Νο.
Σύνολο
δεδομένων
Αρχείο εισόδου
Φιλτράρισμα
λέξεων
1 Ολόκληρο Οντολογία τύπου «all» Όχι
2 Ολόκληρο Ολόκληρα τα Projects Όχι
3 Ολόκληρο Οντολογία τύπου «all» Ναι
4 Ολόκληρο Ολόκληρα τα Projects Ναι
5 Υποσύνολο Οντολογία τύπου «all» Όχι
6 Υποσύνολο Ολόκληρα τα Projects Όχι
7 Υποσύνολο Οντολογία τύπου «all» Ναι
8 Υποσύνολο Ολόκληρα τα Projects Ναι
access, account, add, be, change, create, delete,
edit, have, information, login, other, provide, search,
select, system, that, use, user, see, view, new,
update, datum, administrator, log, know, able, ability
Φιλτράρισμα Λέξεων
• Συχνότερη εμφάνιση στα δεδομένα
• Λέξεις που περιγράφουν την κοινή
λειτουργικότητα
19. Επιλογή καλύτερων σεναρίων χρήσης
• Υπολογισμός topic coherence για κάθε σενάριο για αριθμό θεμάτων από 2 μέχρι το μήκος
του συνόλου δεδομένων
• Εκπαίδευση των 10 καλύτερων μοντέλων για κάθε σενάριο
• Εισαγωγή του ημιτελούς project σε κάθε μοντέλο
• Απόφαση καλύτερων ομαδοποιήσεων
• Έστω ένα από τα δύο παρόμοια projects να έχει το ίδιο κυρίαρχο θέμα
• Μικρός άλλων projects με το ίδιο κυρίαρχο θέμα
Μάρτιος 2022 Εφαρμογή τεχνικών μηχανικής μάθησης και ευφυούς διαχείρισης πληροφορίας για τη
βελτιστοποίηση των φάσεων ανάλυσης απαιτήσεων λογισμικού
19
20. Καλύτερα σενάρια χρήσης
• Σενάριο χρήσης 3, Αριθμός Θεμάτων: 10, 14
• Σενάριο χρήσης 4 , Αριθμός Θεμάτων: 5
• Σενάριο χρήσης 7 , Αριθμός Θεμάτων: 9, 11
• Σενάριο χρήσης 8 , Αριθμός Θεμάτων: 7, 10
Μάρτιος 2022 Εφαρμογή τεχνικών μηχανικής μάθησης και ευφυούς διαχείρισης πληροφορίας για τη
βελτιστοποίηση των φάσεων ανάλυσης απαιτήσεων λογισμικού
20
21. Ενδεικτικά: Σενάριο χρήσης 7, αριθμός θεμάτων 9
Μάρτιος 2022 Εφαρμογή τεχνικών μηχανικής μάθησης και ευφυούς διαχείρισης πληροφορίας για τη
βελτιστοποίηση των φάσεων ανάλυσης απαιτήσεων λογισμικού
21
• 14 projects στην ομάδα του Stereo
• Και οι 2 παρόμοιες εφαρμογές
22. Ιεραρχική ομαδοποίηση
• Ιεραρχική ομαδοποίηση για τα καλύτερα σενάρια χρήσης του LDA με αντιστοίχιση αριθμού θεμάτων σε
αριθμό clusters
• Ενδεικτικά: Σενάριο χρήσης 7, Αριθμός clusters 9
• 5 projects στην ομάδα του Stereo
• 1 παρόμοια εφαρμογή
Μάρτιος 2022 Εφαρμογή τεχνικών μηχανικής μάθησης και ευφυούς διαχείρισης πληροφορίας για τη
βελτιστοποίηση των φάσεων ανάλυσης απαιτήσεων λογισμικού
22
23. Μάρτιος 2022 Εφαρμογή τεχνικών μηχανικής μάθησης και ευφυούς διαχείρισης πληροφορίας για τη
βελτιστοποίηση των φάσεων ανάλυσης απαιτήσεων λογισμικού
23
02 Μεθοδολογία
05
Μελλοντική Εργασία
01
Εισαγωγή
04 Συμπεράσματα
03
Αποτελέσματα &
Αξιολόγηση
24. Συμπεράσματα
• Παραγωγή του πρώτου συνόλου δεδομένων λειτουργικών απαιτήσεων
• Αποδοτική εξαγωγή της οντολογίας από τις λειτουργικές απαιτήσεις παρά την απλή προσέγγιση με χρήση
εμπειρικών κανόνων
• Εύκολη δυνατότητα επαναχρησιμοποίησης
• Κανόνες συσχέτισης που υποδεικνύουν επιτυχημένα απούσα λειτουργικότητα
• Καλύτερα αποτελέσματα LDA για τα σενάρια χρήσης που πρότειναν την αφαίρεση της κοινής λειτουργικότητας
• Ιεραρχική ομαδοποίηση: αποδοτικές ομαδοποιήσεις για τα καλύτερα σενάρια χρήσης του LDA
Μάρτιος 2022 Εφαρμογή τεχνικών μηχανικής μάθησης και ευφυούς διαχείρισης πληροφορίας για τη
βελτιστοποίηση των φάσεων ανάλυσης απαιτήσεων λογισμικού
24
25. Μάρτιος 2022 Εφαρμογή τεχνικών μηχανικής μάθησης και ευφυούς διαχείρισης πληροφορίας για τη
βελτιστοποίηση των φάσεων ανάλυσης απαιτήσεων λογισμικού
25
02 Μεθοδολογία
05
Μελλοντική Εργασία
01
Εισαγωγή
04 Συμπεράσματα
03
Αποτελέσματα &
Αξιολόγηση
26. Μελλοντική εργασία
Χρήση αλγορίθμου Word2Vec αντί για
τον TF-IDF
Ενσωμάτωση συστήματος προτάσεων
στην πλατφόρμα UseReq
Μάρτιος 2022 Εφαρμογή τεχνικών μηχανικής μάθησης και ευφυούς διαχείρισης πληροφορίας για τη
βελτιστοποίηση των φάσεων ανάλυσης απαιτήσεων λογισμικού
26
27. Ευχαριστώ πολύ για την προσοχή σας!
Ερωτήσεις;
Μάρτιος 2022 Εφαρμογή τεχνικών μηχανικής μάθησης και ευφυούς διαχείρισης πληροφορίας για τη
βελτιστοποίηση των φάσεων ανάλυσης απαιτήσεων λογισμικού
27
Notas del editor
Εδώ μπορείς να πεις ότι με τη βοήθεια την προεπεξεργασίας
Actor: Πρόκειται για τον δράστη του εκάστοτε project όπως π.χ. Χρήστης - User, ∆ιαχειριστής -Administrator, Σύστημα - System
Object: Πρόκειται για οποιοδήποτε αντικείμενο ή πόρο πάνω στο οποίο εκτελείται κάποια ενέργεια όπως π.χ. A user must be able to create an account by providing a username and a password.
Action: Πρόκειται για μια διαδικασία την οποία εκτελεί ο Actor πάνω σε ένα Object όπως π.χ. A user must be able to create an account by providing a username and a password.
Property: Πρόκειται για οποιαδήποτε ιδιότητα μπορεί να προσδιορίζει το Object όπως π.χ. A user must be able to create an account by providing a username and a password.