Natural Language Processing and Artificial Intelligence Methods in Software Engineering

Tóth László
Natural Language Processing and Artificial Intelligence Methods in Software Engineering.
[Thesis]

[thumbnail of dissertation.pdf]
Preview
PDF (disszertáció)
Download (2MB) | Preview
[thumbnail of theses.pdf]
Preview
PDF (tézis)
Download (1MB) | Preview

Abstract in Hungarian

A szoftverfejlesztés olyan összetett tevékenység, amely a szakmai ismeretek és a technikai készségek mellett a körülöttünk lévő világ jelenségeinek analitikus szemléletét is megköveteli. Ahhoz, hogy egy adott szoftver megfelelő szinten lássa el feladatát, szükség van az általa modellezett jelenség alapos megértésére és elemzésére, a probléma szakértői és az érintettek által megfogalmazott, és az üzleti elemzésben részletezett funkcionális és nem funkcionális követelmények alapján. A követelmények túlnyomórészt természetes nyelven állnak rendelkezésre, és a fejlesztés alatt álló szoftverre vonatkozó követelmények az érintett üzleti terület sajátos nyelvén fogalmazódnak meg. Mindezek mellett a követelmények jelentős része nemcsak ellenőrzött üzleti dokumentumokban és szabályzatokban, hanem az interjúk során szóban megfogalmazott ötletek és koncepciók formájában jelenik meg. Az utóbbiak sokszor pontatlanok, ellentmondásosak vagy hiányosak lehetnek. Ezenkívül az üzleti terminológia használata olyan hallgatólagos tudást is feltételez, amely magától értetődő az érintettek számára, de jellemzően nem ismert a fejlesztőcsapat tagjai számára. A természetes nyelvfeldolgozó módszerek és a mesterséges intelligencia eszközök alkalmazása segítheti a fejlesztőcsapatot a természetes nyelven megfogalmazott követelmények feldolgozásának automatizálásában. Jelen kutatásban a követelmények osztályozására, valamint az érintettek és a fejlesztők különböző nyelvhasználatából adódó szemantikai eltérések egyeztetésére és kezelésére szolgáló eszközök kidolgozására összpontosítottunk. A disszertációban bemutatott kutatási eredmények alapján megállapítható, hogy a természetes nyelvfeldolgozó módszerek, valamint a mesterséges intelligencia eszközök, a gépi tanulás és a szemantikai hálózatok alkalmasak a kitűzött célok elérésére, a követelmény-feldolgozási folyamatok támogatására, illetőleg kiterjeszthetők a fejlesztői és üzleti interakciók egyéb eseteire is, például a felhasználói támogatási folyamatokra. A szoftverfejlesztés az elmúlt évtizedekben jelentős átalakuláson ment keresztül. Ma már nem várható el senkitől, hogy egyetemleges ismeretekkel rendelkezzen a keretrendszerek, programozási nyelvek és eszközök hatalmas tárházáról. A fejlesztés ugyanakkor egyre inkább olyan újrafelhasználható elemekre támaszkodik, amelyeket korábban már elkészítettek és a fejlesztő közösségek rendelkezésére bocsátottak. A magas szintű specializáció alapján kijelenthető, hogy egyre fontosabbá válik, hogy a fejlesztők hatékonyan osszák meg tudásukat, és tudjanak segítséget kérni a különböző szakterületen dolgozó szakemberektől a napi munkájuk során felmerülő problémák megoldásához. A specializációból adódó problémák kezelése érdekében számos kérdezz-felelek portált hoztak létre az interneten, amelyek célja a fejlesztői tapasztalatok megosztása, valamint a fejlesztők támogatása a napi munka során felmerülő problémák megoldásában. Ezek közül a legismertebb a Stack Overflow, amelynek dedikált célja, hogy támogassa a fejlesztői munkát azáltal, hogy böngészhető tudástárat hoz létre a már előzetesen megoldott problémák gyűjteményéből. Egy kérdezz-felelek oldal minőségének megőrzése a forgalom növekedésével jelentős kihívássá válik a moderátorok számára, ugyanakkor a közösségi elvárásoknak megfelelő kérdések megfogalmazása nem mindig egyszerű. Jelen kutatás a Stack Overflow-ra feltett kérdések minőségének meghatározására, illetőleg azok későbbi lezárásának becslésére összpontosított a természetes nyelvfeldolgozó eszközök, illetve a mélytanulás alkalmazásával. A kutatás része volt az esetleges kérdéslezárások okainak vizsgálata is. A kutatási eredményekből olyan gyakorlatban is használható modellek születtek, amelyek segítségével a felhasználók ellenőrizhetik kérdéseik követelményeknek való megfelelését, csökkentve ezzel mind a moderátorok leterheltségét, mind az utólagos lezárások lehetőségét, közvetve megőrizve a portálok szakmai színvonalát is.

Abstract in foreign language

Software development is a complex activity that requires, in addition to professional knowledge and technical skills, an analytical approach to the phenomena of the world around us. For software to perform its task at the appropriate level requires a thorough understanding and analysis of the phenomenon it is modeling, based on the functional and non-functional requirements formulated by the experts and stakeholders of the problem and detailed in the business analysis. The requirements are predominantly available in natural language and are formulated using the particular language of the business area for which the software is being developed. In addition, a significant part of the requirements is not only conveyed in the form of verified business documents and policies but also in the form of ideas and concepts expressed verbally during interviews. The latter are often ambiguous, contradictory, or incomplete. In addition, the use of business terminology also implies tacit knowledge that is self-evident to the stakeholders but often unknown to the development team. The use of natural language processing methods and artificial intelligence tools can help the development team automate processing requirements given in natural language forms. The present research has focused on classifying requirements and developing tools for reconciling and managing semantic obstacles arising from different language usage by the stakeholders and the developers. Based on the results of the research presented in this thesis, it can be stated that natural language processing methods, as well as artificial intelligence tools, machine learning, and semantic networks, are suitable to achieve the declared objectives of supporting the requirements engineering tasks of software developers, which can be extended to other cases of interactions between the development and business domains, such as the end-user support processes. Software development has undergone a significant transformation in recent deca-des. Nowadays, no one is expected to have universal knowledge of the vast array of frameworks, programming languages, and tools. At the same time, development is increasingly relying on reusable elements that have been previously built and made available to the development communities. Because of the high specialization, it can be stated that it is increasingly important for developers to share their knowledge efficiently and to ask specialists from different professional areas for help in solving problems they encounter in their daily work. Addressing the problem that arose from the specialization, a number of Q\&A sites have been created on the Internet to share the experiences of the developers and help them solve problems they encounter in their work. The best known such sites is Stack Overflow, which is dedicated to supporting developers' work by creating a repository of knowledge of their solved problems. Maintaining the quality of a Q\&A site while its traffic is growing is a significant challenge for moderators, but at the same time, formulating questions that meet the expectations of the community of that particular site is not always straightforward. Our research focused on predicting the quality of the questions asked on Stack Overflow using natural language processing tools and deep learning, respectively, and the prediction of the likelihood for their subsequent closure. The research also investigated the possible reasons for the question closures. The results have led to models that can be used in practice to check the compliance of questions under assembling by the user with the requirements of the Stack Overflow, thus reducing both the moderator workload and the likelihood of the subsequent closures thus indirectly preserving the professional quality of the portal.

Item Type: Thesis (Doktori értekezés)
Creators: Tóth László
Magyar cím: Természetes nyelvfeldolgozó eljárások és mesterséges intelligencia módszerek a szoftverfejlesztésben
Témavezető(k):
Supervisor
Beosztás, tudományos fokozat, intézmény
MTMT author ID
Gyimóthy Tibor
egyetemi tanár, Szoftverfejlesztés Tanszék SZTE / TTIK / INF
10010796
Vidács László
tudományos munkatárs, Szoftverfejlesztés Tanszék SZTE / TTIK / INF
10017596
Subjects: 01. Natural sciences > 01.02. Computer and information sciences > 01.02.01. Computer sciences, information science and bioinformatics > 01.02.01.18. Human computer interaction and interface, visualization and natural language processing
Divisions: Doctoral School of Computer Science
Tudományterület / tudományág: Engineering > Information Technology
Nyelv: English
Date: 2022. November 22.
Uncontrolled Keywords: Natural Language Processing, Machine Learning, Deep Learning, Requirements Engineering, Semantic Space, Semantic Network, Noun Phrases, Automation, Phrase Structural Grammar, Stack Overflow, Question Closing, Question Quality, Classification
Item ID: 11239
Date Deposited: 2022. Mar. 25. 10:19
Last Modified: 2022. Nov. 28. 08:16
Depository no.: B 7119
URI: https://doktori.bibl.u-szeged.hu/id/eprint/11239
Defence/Citable status: Not Defended. (Do not cite until it has not assigned DOI number!)

Actions (login required)

View Item View Item