چکیده
در اغلب حوزه های بحرانی ایمنی لزوم قابلیت ردیابی توسط نهادهای گواهی دهنده تجویز می شوند. به طور کلی پیوندهای ردیابی در میان الزامات، طراحی، کد منبع، موارد آزمون و سایر محصولات مختلف ایجاد می گردد؛ با این حال، ایجاد چنین پیوندهایی به صورت دستی وقت گیر و مستعد خطا می باشد. راه حل های خودکار از بازیابی اطلاعات و تکنیک های یادگیری ماشین برای ایجاد پیوندهای ردیابی بهره می برند؛ با این حال، تکنیک های فعلی قادر به درک معنایی محصولات نرم افزاری و یا تلفیق دانش دامنه کاربرد در فرآیند ردیابی نبوذه و در نتیجه به ارائه نتایجی فاقد دقت و صحت می پردازند. در این مقاله، ما با استفاده از یادگیری عمیق برای تلفیق الزامات معنایی محصولات و دانش دامنه کاربرد در راه حل ردیابی به ارائه یک راه حل پرداختیم. ما یک معماری شبکه ردیابی را پیشنهاد نمودیم که از مدل های تعبیـــه یا جاسازی واژه و شبکه عصبی بازگشتی ((RNN) برای ایجاد پیوندهای ردیابی استفاده می کند. جاسازی واژه از بردارهای واژه می آموزد که نماینده و معرف پیکره دانش دامنه کاربرد باشد و شبکه عصبی بازگشتی (RNN) نیز از این بردارهای واژه برای یادگیری معناشتاسی جمله محصولات مورد نیاز استفاده می نماید. ما 360 پیکربندی مختلف شبکه ردیابی را با استفاده از پیوندهای ردیابی موجود در دامنه کنترل ایمن قطار مرتب نموده و واحد بازگشتی دریچه ای دو طرفه (BI-GRU) را به عنوان بهترین مدل برای امر ردیابی شناسایی نمودیم. عملکرد واحد بازگشتی دریچه ای دو طرفه (BI-GRU) به صورت معناداری بهتر از روش های به روز ردیابی از جمله: مدل فضای برداری و نمایه سازی معنایی نهفته می باشد.
I. مقدمه
نیاز به قابلیت ردیابی نقش اساسی را در فرآیند توسعه نرم افزار ایفا می کند. قابلیت ردیابی به عنوان "توانایی توصیف و پیگیری وجود یک نیاز در هر دو راستای پیشرو و پسرو از طریق دوره های پیرایش و تکرار مداوم" تعریف می گردد [26] و از مجموعه متنوعی از فعالیت های مهندسی نرم افزار از جمله: تجزیه و تحلیل تاثیر تغییرات، انتخاب آزمون رگرسیون، پیش بینی هزینه، و تایید انطباق حمایت می کند [25]. در سیستم های با قابلیت اعتماد بالا، استانداردهای نظارتی مانند: DO178b /c اداره هوانوردی فدرال (FAA) ایالات متحده [22]، ضرورت برقراری و حفظ پیوندهای ردیابی بین خطرات، قصورات، الزامات، طراحی، کد، و موارد آزمون را جهت نشان دادن ایمنی استفاده از یک سیستم توصیه می نمایند [23]، [38]. متاسفانه، انجام وظیفه ردیابی دشوار و مستعد خطاست [46]، حتی زمانی که از ابزار آلات صنعتی برای ایجاد پیوندهای دستی و یا تصرف آن ها به عنوان یک محصول جانبی فرآیند توسعه استفاده می گردد [14]. در عمل، پیوندهای ردیابی اغلب ناقص و نادرست [16] هستند، حتی در سیستم های بحرانی ایمنی [45]، [56]. برای پرداختن به این مسائل، محققان راه حل هایی را برای خودکار نمودن وظیفه ایجاد و حفظ پیوندهای ردیابی پیشنهاد و توسعه داده اند [1]، [17]، [34]. راه حل های مزبور شامل: رویکردهای بازیابی اطلاعات [17]، [18]، [5]، یادگیری ماشینی [47]، [30]، [30]، [51]، تکنیک های اکتشافی [64]، [28]، و الگوریتم های هوش مصنوعی ازدحامی [65] می باشند. رویکردهای دیگر، به ویژه در حوزه موقعیت ویژگی [20]، مستلزم کسب اطلاعات اضافی از اجرای ردیابی های معمول می باشد. نتایج در هم آمیخته اند، به ویژه هنگامی که با مجموعه داده های صنعتی به کار می روند که در اغلب موارد به سطوح فراخوان قابل قبول بالاتر از 90٪ تنها می توان با سطوح دقت بسیار پایین نائل شد [43].
Abstract
In most safety-critical domains the need for traceability is prescribed by certifying bodies. Trace links are generally created among requirements, design, source code, test cases and other artifacts; however, creating such links manually is time consuming and error prone. Automated solutions use information retrieval and machine learning techniques to generate trace links; however, current techniques fail to understand semantics of the software artifacts or to integrate domain knowledge into the tracing process and therefore tend to deliver imprecise and inaccurate results. In this paper, we present a solution that uses deep learning to incorporate requirements artifact semantics and domain knowledge into the tracing solution. We propose a tracing network architecture that utilizes Word Embedding and Recurrent Neural Network (RNN) models to generate trace links. Word embedding learns word vectors that represent knowledge of the domain corpus and RNN uses these word vectors to learn the sentence semantics of requirements artifacts. We trained 360 different configurations of the tracing network using existing trace links in the Positive Train Control domain and identified the Bidirectional Gated Recurrent Unit (BI-GRU) as the best model for the tracing task. BI-GRU significantly out-performed stateof-the-art tracing methods including the Vector Space Model and Latent Semantic Indexing.
I. Introduction
Requirements traceability plays an essential role in the software development process. Defined as “the ability to describe and follow the life of a requirement in both a forwards and backwards direction through periods of ongoing refinement and iteration” [26], traceability supports a diverse set of software engineering activities including change impact analysis, regression test selection, cost prediction, and compliance verification [25]. In high-dependability systems, regulatory standards, such as the US Federal Aviation Authority’s (FAA) DO178b/c [22], prescribe the need for trace links to be established and maintained between hazards, faults, requirements, design, code, and test cases in order to demonstrate that a system is safe for use [38], [23]. Unfortunately, the tracing task is arduous to perform and error-prone [46], even when industrial tools are used to manually create links or to capture them as a byproduct of the development process [14]. In practice, trace links are often incomplete and inaccurate [16], even in safety-critical systems [45], [56]. To address these problems, researchers have proposed and developed solutions for automating the task of creating and maintaining trace links [1], [17], [34]. Solutions have included information retrieval approaches [17], [18], [5], machine learning [47], [30], [30], [51], heuristic techniques [64], [28], and AI swarming algorithms [65]. Other approaches, especially in the area of feature location [20], require additional information obtained from runtime execution traces. Results have been mixed, especially when applied to industrial-sized datasets, where acceptable recall levels above 90% can often only be achieved at extremely low levels of precision [43].
چکیده
I. مقدمه
II. یادگیری عمیق برای پردازش زبان طبیعی
A. جاسازی واژه
B. ساختارهای شبکه عصبی
C. شبکه های عصبی بازگشتی (RNN) استاندارد
D. حافظه کوتاه مدت بلند مدت (LSTM)
E. واحد بازگشتی دریچه ای (GRU)
F. دیگر متغیرهای شبکه عصبی بازگشتی (RNN)
III. شبکه ردیابی
A. معماری شبکه
B. آموزش شبکه ردیابی
IV. راه اندازی آزمایش
A. آماده سازی داده ها
B. انتخاب مدل و بهینه سازی اَبَرپارامترها
C. مقایسه روش های ردیابی
V. نتایج و بحث
VI. کارهای مرتبط
VII. تهدید روایی
VIII. نتیجه گیری ها
IX. قدردانی
Abstract
I. Introduction
II. Deep Learning for Natural Language Processing
A. Word Embedding
B. Neural Network Structures
C. Standard Recurrent Neural Networks (RNN)
D. Long Short Term Memory (LSTM)
E. Gated Recurrent Unit (GRU)
F. Other RNN Variables
III. The Tracing Network
A. Network Architecture
B. Training the Tracing Network
IV. Experiment Setup
A. Data Preparation
B. Model Selection and Hyper-Parameters Optimization
C. Comparison of Tracing Methods
V. Results and Discussion
A. What is the best configuration for the tracing network?
B. Does the tracing network outperform leading trace retrieval algorithms?
C. How does the tracing network react to more training data?
VI. Related Work
VII. Threats to Validity
VIII. Conclusions