<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Predicting Requirements Volatility: An Industry Case Study</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Anıl</forename><surname>Holat</surname></persName>
							<affiliation key="aff0">
								<orgName type="institution">Aselsan Inc</orgName>
								<address>
									<settlement>Ankara</settlement>
									<country key="TR">Turkey</country>
								</address>
							</affiliation>
							<affiliation key="aff1">
								<orgName type="department">Faculty of Computer and Informatics Engineerings</orgName>
								<orgName type="institution">Istanbul Technical University</orgName>
								<address>
									<country key="TR">Turkey</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Ayse</forename><surname>Tosun</surname></persName>
							<affiliation key="aff1">
								<orgName type="department">Faculty of Computer and Informatics Engineerings</orgName>
								<orgName type="institution">Istanbul Technical University</orgName>
								<address>
									<country key="TR">Turkey</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Predicting Requirements Volatility: An Industry Case Study</title>
					</analytic>
					<monogr>
						<idno type="ISSN">1613-0073</idno>
					</monogr>
					<idno type="MD5">CACF21CD294F244F152C0DB0C591E0E8</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-23T22:26+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>Predicting Requirements Volatility</term>
					<term>Quality Metrics</term>
					<term>Network Metrics</term>
					<term>Requirements Quality</term>
					<term>Requirements Change</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Software requirements are exposed to many changes during their software development life-cycle. These changes namely additions, modifications or deletions are defined as requirements volatility. Prior requirement volatility prediction studies utilize different requirement volatility measures. In this study we predict number of changes per software requirement as requirement volatility for a large scale safety-critical avionics project in ASELSAN. We employ a comprehensive metric set to explain requirements volatility: requirement quality measures, project specific factors and requirement interdependencies. Predictive models are created through combining input metric sets with machine learners. Success of models in predicting requirement changes, the best performing input metric combinations, the best performing machine learners and success of models in predicting highly-volatile requirements are evaluated in this study. The best prediction results are obtained with the model employing quality metrics, project specific metrics, network metrics altogether with k-nearest neighbour machine learner (MMRE=0.366). Also the best model correctly identifies 63.2% of highly volatile requirements which are exposed to 80% of the total requirement changes. Our study results are encouraging in terms of creating requirement change prediction tools to prevent requirement volatility risks prior to the requirement review process.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1.">Introduction</head><p>Although software engineering has experienced significant advancements in the last decades, majority of the large-scale software projects still try to cope with requirement changes during their software development life cycle due to dynamic nature of software development activities <ref type="bibr" target="#b0">[1]</ref>. Changes for requirements namely additions, deletions or modifications are defined as requirements volatility <ref type="bibr" target="#b1">[2]</ref>. Continual requirement changes during software development have tremendous impact on the cost, the schedule and the quality of the final product. Unfortunately, significant number of software projects cannot be completed successfully or completed partially because of requirements' high volatility <ref type="bibr" target="#b1">[2]</ref>.</p><p>According to a survey conducted by Thakurta <ref type="bibr" target="#b2">[3]</ref>, project managers use various requirement volatility measures: number of changes to the identified use cases, number of changing requirements identified within the issued change requests, realized requirements out of total requirements, and amount of budget the project had to spent on the changing requirements. Alsalemi et al. <ref type="bibr" target="#b3">[4]</ref> also report a literature review on requirements volatility prediction. Accordingly, ten studies have employed machine learning methods to predict requirements volatility until 2017. These studies utilize different requirement volatility measures such as number of requirement QuASoQ'21: 9th International Workshop on Quantitative Approaches to Software Quality, December 06, 2021, Taipei, Taiwan Envelope aholat@aselsan.com.tr (A. Holat); tosunay@itu.edu.tr (A. Tosun) Orcid 0000-0002-8727-6768 (A. Holat); 0000-0003-1859-7872 (A. Tosun) changes <ref type="bibr" target="#b4">[5]</ref>, requirement stability index of the project <ref type="bibr" target="#b5">[6]</ref>, requirements that will be changed in next iteration <ref type="bibr" target="#b6">[7]</ref>, requirement change impact <ref type="bibr" target="#b7">[8]</ref>, the impact of requirements changes on project distribution and cost factor <ref type="bibr" target="#b8">[9]</ref>, software schedule <ref type="bibr" target="#b9">[10]</ref>. Related studies also propose requirements complexity metrics <ref type="bibr" target="#b5">[6]</ref>, requirement dependency metrics <ref type="bibr" target="#b7">[8]</ref>, requirement size metrics <ref type="bibr" target="#b4">[5]</ref> and requirements evolution metrics <ref type="bibr" target="#b6">[7]</ref> to predict their own definition of requirement volatility measure.</p><p>In our study we aim to predict number of changes per software requirement by using requirement quality measures, project specific factors and requirement interdependencies. We define requirement volatility as the number of change requests reported for a software requirement. This change request could be either for adding a new requirement or modifying an existing requirement. We chose a safety-critical avionics software project in ASELSAN with more than 20,000 requirements for our study. Loconsole et al. <ref type="bibr" target="#b4">[5]</ref> conducted a similar study to predict number of requirement changes using size measures on projects with less than 50 requirements. Our study complements the prior work by mining a larger dataset with thousands of requirements and a more comprehensive metric set considering quality and interdependency aspects of requirements as well as project specific factors. It should be noted that the change requests that we study in this work occured in any phase of software development after Software Requirements Specification (SRS) document has been reviewed and confirmed. Thus we investigate post-SRS requirements volatility for the avionics project under study.</p><p>The rest of paper is organized as follows. Section 2 presents related empirical studies carried on for requirement volatility prediction. Section 3 explains study design model in detail. Results and Threats to Validity of our work discussed in Section 4. Section 5 presents conclusion and points out possible directions for future work.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.">Related Work</head><p>In this section we present previous studies that aim to predict volatility for requirements, and we focus on the input metrics they employed. We report details of five relevant studies <ref type="bibr" target="#b10">[11,</ref><ref type="bibr" target="#b5">6,</ref><ref type="bibr" target="#b6">7,</ref><ref type="bibr" target="#b7">8,</ref><ref type="bibr" target="#b4">5]</ref> from the literature review conducted by Alsalemi et al. <ref type="bibr" target="#b3">[4]</ref>. We also discuss the approaches of other recently published, related studies <ref type="bibr" target="#b11">[12,</ref><ref type="bibr" target="#b12">13]</ref> in this section. Nakatani et al. <ref type="bibr" target="#b10">[11]</ref> propose a method to predict requirement volatility using social relations between executives, competitors, cooperative organizations, and the natural environment. Those measures can be applied to customer requirements easily but it would take some effort to associate them with software requirements. Christopher et al. <ref type="bibr" target="#b5">[6]</ref> present requirements complexity metrics to define volatility. Functional requirement complexity, non-functional requirement complexity, input-output complexity, interface and file complexity measures are used to calculate whole project's stability, whereas we seek to predict requirement volatility for each software requirement. Shi et al. <ref type="bibr" target="#b6">[7]</ref> present a model to predict future requirement changes by using previous requirement change metrics. They generated six history metrics for requirements that contain information about volatility of topic, frequency of changes and time duration between changes. History metrics can be used to predict requirements that will be changed in next iteration, but has little use in predicting requirements volatility for new projects. Pedrycz et al. <ref type="bibr" target="#b12">[13]</ref> also employ the following change logs as input metrics: created version of requirement, last developer, number of modifications, requirement lifetime duration. Change logs are created on later phases of software development thus they are again not very useful to predict requirements volatility for projects in earlier development phases. Goknil et al. <ref type="bibr" target="#b7">[8]</ref> and Hein et al. <ref type="bibr" target="#b11">[12]</ref> use requirements interrelations for volatility prediction. Goknil et al. <ref type="bibr" target="#b7">[8]</ref> utilize formal semantics of requirement relations as input features, whereas Hein et al. <ref type="bibr" target="#b11">[12]</ref> create network metrics by using syntactical natural language data. We have combined both measures and created network metrics by using links between system and software requirements instead of lingual relations between requirement texts. Regarding network metrics we employ degree centrality, eigenvector centrality, closeness centrality and betweenness centrality metrics, whereas Hein et al. <ref type="bibr" target="#b11">[12]</ref> used 40 network metrics.</p><p>According to the literature review, only one study conducted by Loconsole et al. <ref type="bibr" target="#b4">[5]</ref> present an empirical study to predict number of changes per requirement, so this study is the most relevant to our work. Following size measures are used to predict number of requirement changes: number of actors interacting with use cases, number of words in each file, number of revisions of files, number of lines per file. In our study, size measures are also used to represent requirement quality but we also enriched our metric set with project specific metrics and network metrics. It should be noted that we do not take deletion requests and deleted requirements into consideration while defining requirements volatility, because in our industrial context we rarely encounter such requests for the safety-critical software. Finally, we applied our model on more than 20,000 requirements that help us assess the generalizability of our findings on predicting volatility on every software requirement using different metrics sets.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.">Study Design</head><p>In this section we explain our empirical study design in detail. In Section 3.1 research questions are explained. The analyzed project for which a model would be proposed is described in Section 3.2. In Section 3.3 selected input metrics for requirement volatility prediction are described. Section 3.4 describes the output measure of the prediction model. The used tools are explained in Section 3.5. Machine learning techniques employed in this study are presented in Section 3.6. Finally in 3.7, performance evaluation measures are defined for our model.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1.">Research Questions</head><p>Our main goal is to predict requirements volatility at earlier stages of development lifecycle, and accordingly two research questions are defined.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Research Question(RQ) 1:</head><p>To what extent do requirement quality metrics, project specific metrics and network metrics predict the volatility of a software requirement?</p><p>Previous studies used different metric sets to predict requirements volatility. In this study we aim to use a comprehensive set of input metrics, and observe their individual effects on requirement volatility prediction. While predicting the volatility, we use the number of change (addition and modification) requests on a software requirement. Being inspired by the metric sets used in the literature, we form a group of requirement quality metrics and network metrics. Additionally, project specific metrics for this particular safety-critical avionics project are defined and utilized throughout this study. During model assessment, the performance of each in- Software requirements have a history of varying number of changes during software development life cycle. Some requirements do not change at all; however, some requirements expose to multiple changes and pose risks to a software project. Practically, our model should predict highly volatile requirements, so those requirements will be reviewed by experienced reviewers in detail. For this research question (RQ 2) we measure the success of our models on highly volatile requirements based on a technique in <ref type="bibr" target="#b13">[14]</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2.">Analyzed Project</head><p>We chose a safety-critical avionics software project to perform our analysis. We will refer to this project with AVPRJ in the rest of this paper. AVPRJ has many releases from which three releases are selected. Software requirements for those releases are related since they all belong to the same project; however they are partially distinct since each release consists of implementation of different software components developed by many software developers. AVPRJ has a total of 22,771 software requirements. Some release based descriptive statistic for AVPRJ are given in Table <ref type="table" target="#tab_0">1</ref>. CR is used as an abbreviation for change request, REQ is used as an abbreviation for a single requirement. Most of the employed requirements belong to second release and this release has highest mean change request per software requirement value. Third release has relatively fewer software requirements and less addition or modification is performed on requirements belong to this release. More than half of the requirements are modified at least once for this project; 9,848 out of 22,771 requirements are not changed which complies with Standish Group's survey results over more than 8,000 software projects <ref type="bibr" target="#b14">[15]</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.3.">Input Metrics</head><p>We have employed several metrics to predict the volatility of each software requirement in AVPRJ. The metrics represent three dimensions: requirement quality metrics, project specific metrics and requirement network metrics. Requirement quality metrics extracted by NASA Automated Requirements Measurement(ARM) tool have been used to predict faulty modules previously <ref type="bibr" target="#b15">[16]</ref>. Initially, we believed the way requirements are documented will affect requirements volatility besides fault proneness of modules. Some requirement quality size metrics are already utilized in predicting requirements volatility <ref type="bibr" target="#b4">[5]</ref>, therefore we decided to include requirement quality metric set in our study. Network metrics are employed to predict requirement change volatility in a recent study <ref type="bibr" target="#b11">[12]</ref>. This sparked the idea of utilizing network metrics for requirements volatility prediction. Initial observation of various change request notes confirmed that software requirements that are changed within a particular change request have a tendency to be linked to similar system requirements. Accordingly, we employed network metrics created by traceability information. In order to enrich input metric set with a new metric group we focused on safety-critical avionics project characteristics under this study. Features are evaluated separately and the ones would provide information on requirements volatility are selected as project specific metrics. Rationales of project specific metric selection are given in detail in subsection 3.3.2. Detailed explanations for each group are given in the following subsections.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.3.1.">Quality Metrics</head><p>While selecting requirement quality metrics to predict volatility, we have inspired by two studies. The first study propose requirement metrics in the context of NASA Metrics Data Program(MDP) to predict software faults <ref type="bibr" target="#b15">[16]</ref>. These metrics are calculated by automatically going through requirements documents to highlight vague, ambiguous, long, complex requirements. The second study also reports requirement quality metrics <ref type="bibr" target="#b16">[17]</ref> to find out which requirement quality analyze tool is more successful regarding measurement of those metrics.</p><p>Combining both studies' list and customizing that to the requirements document templates in our industrial context, we present 20 quality metrics in Table <ref type="table">2</ref>. All of these metrics take numeric values, e.g. number of flow sentences in a requirement, number of directives in a requirement.</p><p>During the preprocessing, stage, we had to remove three metrics from our analysis since they gave little to no information for AVPRJ: Conditional, Rationale and Subjective. Only one requirement contains conditional expressions, three requirements contain rationale expres-</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Table 2</head><p>Requirement Quality Metrics</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Acronyms</head><p>The number of abbreviations in a software requirement. For AVPRJ permitted acronym list is used to extract this metric.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Actions</head><p>The number of actions to be performed if conditions of a software requirement are satisfied.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Ambiguity</head><p>The number of ambiguous expressions in a software requirement, e.g. adequate, sufficiently, optimal, slow.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Chars between punctuation</head><p>Average character count between punctuation marks. Long sentences without punctuation marks decrease readability.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Conditions</head><p>The number of conditions need to be satisfied to perform a software requirement.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Conditional</head><p>The number of phrases that give the developers freedom to whether or not to implement a software requirement, e.g. maybe, can't, would.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Connectors</head><p>The number of connectors that are employed to link multiple sentences or group of words, e.g. and, or, as well as.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Directives</head><p>The number of directive expressions to refer a table, a note, a figure or an example.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Flow sentences</head><p>The number of expressions that semantically bond a sentence to another one, e.g. although, but, else.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Imperatives</head><p>The number of phrases that command to perform particular actions in a software requirement, e.g. shall, must, will.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Implicitness</head><p>The number of pronouns that make the software requirement difficult to understand, e.g. this, that, it. A software requirement should be defined explicitly.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Incompleteness</head><p>The number of expressions that indicate a software requirement is yet incomplete, e.g. and so on, tbd, etc.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>In links</head><p>The number of incoming links to a software requirement from other documents. For AVPRJ test cases are linked to software requirements, so the number of in links refer to the number of linked test cases.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Negative Sentences</head><p>The number of phrases that give negative meaning, e.g. doesn't, none, can't.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Nested levels</head><p>For AVPRJ nested level metric value is the greatest level in hierarchical nesting structure of a software requirement.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Out links</head><p>The number of out links of a software requirement. In AVPRJ software requirements are linked to system requirements. Therefore the number of out links is the total number of linked system requirements by a software requirement.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Rationale</head><p>The number of expressions that give justification in a software requirement, e.g. thus, in order to.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Speculative Sentences</head><p>The number of speculative phrases which lead to question necessity of a software requirement, e.g. normally, eventually, almost.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Subjectivity</head><p>The number of subjective expressions presenting personal opinion rather than objectivity e.g. I think, in my opinion.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Text length</head><p>The total number of characters in a software requirement.</p><p>sions and none of the requirements have subjective expressions. Thus we ended up having 17 metrics representing the quality aspect of requirements for predicting their volatility.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.3.2.">Project Specific Metrics</head><p>Project specific metrics may differ regarding the scope of a software project, but the metrics we chose to use are not so specific to the development environment, programming language, or domain in which the software is developed. We believe project specific metrics would provide information about development characteristics in an organization, and hence the factors affecting the change proneness of requirements. Table <ref type="table">3</ref> list these project spe-cific metrics employed in this study. If the project follows an inspection activity on requirements, it is more likely that the team would find the ambiguities and inconsistencies on the requirements. Since derived requirements are not part of customer needs, they cannot be validated through user acceptance tests. If a requirement has a safety aspect, more comprehensive software tests will be performed, thus exposure of a potential change is highly probable. Number of related components is a measure of impact of a software requirement on general product, thus more feedback will be given to requirements affecting many components by development team. Each software release has different dynamics that affect requirements maturity e.g. release schedule, experience of developers, complexity of system. For example if sched-</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Table 3</head><p>Project Specific Metrics</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Inspection</head><p>Indicates if a software requirement is evaluated through an inspection activity. This procedure might be preferred to complement functional tests.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Derived</head><p>Software requirements that are not explicitly stated in system requirements but derived based on design decisions <ref type="bibr" target="#b17">[18]</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Safety</head><p>Shows if a software requirement is safety critical.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>No. of Related Components</head><p>Number of isolated software components that a requirement is related.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Release Number</head><p>Release number that the software requirement belongs to.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Table 4 Network Metrics</head></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Degree centrality</head><p>Gives score to requirements based on the number of links.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Betweenness centrality</head><p>Measures how many times a requirement is on the shortest path in the graph.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Closeness centrality</head><p>Indicates how close a requirement to other requirements considering the whole graph.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Eigenvector centrality</head><p>Measures how a node influences other nodes in network through connections.</p><p>ule is too tight to complete SRS document, requirements could be immature and more requirements changes could be performed in the future for this release.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.3.3.">Network Metrics</head><p>Hein et al. <ref type="bibr" target="#b11">[12]</ref> earlier utilized 40 network metrics to predict requirements change volatility. On the other hand, Valente et al. <ref type="bibr" target="#b18">[19]</ref> present correlations between degree, betweenness, closeness, eigenvector centrality measures, and indicate that those measures are distinct but notionally related. Thus in this work instead of employing 40 metrics, we chose the metrics suggested in <ref type="bibr" target="#b18">[19]</ref> to predict requirements volatility for AVPRJ. These centrality metrics give each software requirement a value regarding their position in network. Brief explanations of the employed network metrics are given in Table <ref type="table">4</ref>.</p><p>Hein et al. <ref type="bibr" target="#b11">[12]</ref> used language processing to create network for requirements. In this study instead we used traceability information to create network graph for software requirements. Traceability links from software requirements to system requirements are used for this purpose. We assigned weights between software require-ments regarding system requirement traceability links. Software requirements which are derived from similar system requirements are tend to be closer in our model. Weight assignment formula is given below (Equation <ref type="formula" target="#formula_0">1</ref>). W is weight between software requirements, NCLINK is the number of common system requirement links between two software requirements and NTOTLINK is the total number of system requirements linked from those two software requirements. After weight assignment, a symmetrical 𝑛 × 𝑛 matrix is created where n denotes the number of software requirements. Then the network metrics are computed over this matrix.</p><formula xml:id="formula_0">𝑊 𝑖𝑗 = 𝑁 𝐶𝐿𝐼 𝑁 𝐾 𝑖,𝑗 𝑁 𝑇 𝑂𝑇 𝐿𝐼 𝑁 𝐾 𝑖,𝑗<label>(1)</label></formula></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.4.">Model Output</head><p>Our proposed model output is the number of change requests per software requirement. After the SRS document is reviewed and completed for AVPRJ, change requests linked to each software requirement are reported in the issue management system, and the document is modified accordingly by the analysis team. Thus we define requirements volatility in our industrial context with respect to number of change requests that have been applied to add a new requirement or to modify an existing requirement in the associated SRS document. Please note that our model outputs decimal values, but number of change request per requirement in practice can only get integer values. Therefore we round fractional parts to the nearest integer.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.5.">Tools</head><p>We wrote scripts to extract requirement quality and project specific metrics from SRS documents. Later, UCINET tool <ref type="bibr" target="#b19">[20]</ref> is used to create network metrics from the matrix that we extracted based on software and system requirements. Regression models with different machine learners are trained using WEKA tool <ref type="bibr" target="#b20">[21]</ref>. Prediction results are further post-processed in MATLAB to obtain the performance measures regarding all RQs.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.6.">Machine Learning Techniques</head><p>We train models using linear regression, random forest regression, support vector regression and k-nearest neighbor regression methods. Linear regression was utilized in <ref type="bibr" target="#b4">[5]</ref>, whereas classifier version of the other three techniques were used in <ref type="bibr" target="#b11">[12]</ref>. For k-nearest neighbor regression, inversely proportional weighting option is selected. Higher weights are assigned to closer training samples which resulted in better prediction results for our model. For support vector regression commonly used radial basis function kernel is selected. Increasing gamma parameter too much may result in over-fitting <ref type="bibr" target="#b21">[22]</ref> and we also experienced a great computational cost with little to no prediction success gain for large gamma. Thus C and gamma parameters are assigned as 1.</p><p>In this study 10-fold cross validation technique is used to split training and test sets. Firstly, the dataset containing all software requirements is shuffled randomly and split into 10 groups of approximately equal size. One group is labeled as a test set and other groups are used to train machine learning models. This procedure is repeated 10 times until each unique group is used as test set once.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.7.">Performance Evaluation</head><p>For RQ 1, the following measures are used for performance evaluation: Mean Magnitude of Relative Error (MMRE), Median Magnitude of Relative Error (MdMRE), Pred(0.5) and Pred(0.25) <ref type="bibr" target="#b22">[23]</ref>. Relative error is calculated according to Equation <ref type="formula" target="#formula_1">2</ref>. 𝐸𝑟𝑟 𝑟𝑒𝑙𝑎𝑡𝑖𝑣𝑒 is relative error, 𝑉 𝑎𝑙 𝑎𝑐𝑡 is the actual value, whereas 𝑉 𝑎𝑙 𝑝𝑟𝑒𝑑 is the predicted value.</p><formula xml:id="formula_1">𝐸𝑟𝑟 𝑟𝑒𝑙𝑎𝑡𝑖𝑣𝑒 = |𝑉 𝑎𝑙 𝑎𝑐𝑡 − 𝑉 𝑎𝑙 𝑝𝑟𝑒𝑑 | |𝑉 𝑎𝑙 𝑎𝑐𝑡 |<label>(2)</label></formula><p>There are requirements with zero change requests. Thus division by zero problem arises while calculating relative error. We made an assumption for unchanged requirements as presented in Equation <ref type="formula" target="#formula_2">3</ref>.</p><formula xml:id="formula_2">If 𝑉 𝑎𝑙 𝑎𝑐𝑡 = 0 𝐸𝑟𝑟 𝑟𝑒𝑙𝑎𝑡𝑖𝑣𝑒 = |𝑉 𝑎𝑙 𝑎𝑐𝑡 − 𝑉 𝑎𝑙 𝑝𝑟𝑒𝑑 | 1<label>(3)</label></formula><p>Pred(k) is a measure of variance of the error distribution. This measure is based on relative error and it shows the percentage of predictions whose errors are less than or equal to k.</p><p>For RQ2, we aim to predict highly volatile requirements, and thus, we first employ a method to identify those among the set of requirements:</p><p>• Step 1: Rank requirements by their actual number of change requests in descending order and record their rank as 𝑅 𝑎𝑐𝑡𝑢𝑎𝑙 . • Step 2: Obtain regression prediction results for each software requirement. • Step 3: Rank requirements by their predicted number of change requests in descending order and record their rank as 𝑅 𝑝𝑟𝑒𝑑𝑖𝑐𝑡𝑒𝑑 . • Step 4: Evaluate results according to the listing in Table <ref type="table" target="#tab_1">5</ref>. P denotes percentage of requirements which are perceived as highly volatile, and 𝑁 𝑟𝑒𝑞 denotes total number of requirements in validation set. Table <ref type="table" target="#tab_1">5</ref> can be interpreted as follows: True Positive instances are requirements that are actually highly volatile and the model also categorizes those as highly volatile. In the case of True Negatives, a requirement is actually less volatile, so is its prediction. False Negatives occur when highly volatile requirements are regarded as less volatile by the predictor. Finally, False Positives indicate less volatile requirements predicted as highly volatile.</p><p>To answer RQ2, recall, accuracy and false alarm rate measures are computed. Recall result shows how successful model in predicting highly volatile requirements. According to us this measure is the most important one regarding RQ2. Accuracy measure shows the prediction success for both highly volatile and less volatile requirements. False alarm rate presents how much effort has put in vain by mis-evaluating less volatile requirements.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.">Results and Discussion</head><p>We present and discuss the performance of the models with respect to two RQs in this section. We also compare the performance of the prediction models proposed in this study with the prior work <ref type="bibr" target="#b4">[5]</ref> .</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.1.">RQ 1</head><p>After obtaining processed data, machine learning regression methods are applied to answer the question if requirement quality metrics, network metrics, project specific metrics can be used to predict the number of changes on each software requirement by employing machine learning methods. Model performance results are gathered for all input metric and machine learning method combinations separately.</p><p>Results for RQ 1 is given in Table <ref type="table" target="#tab_2">6</ref>. The following abbreviations are used: ML for machine learning, Q for requirement quality metrics, P for project specific metrics, N for network metrics, KNN for k-nearest neighbor regression, LR for linear regression, RF for random forest regression and SVR for support vector regression.</p><p>In terms of input metric combinations, the best MMRE results are achieved with Q&amp;P&amp;N(0.366), Q&amp;N(0.381) and MdMRE is zero for the following metric and machine learner combinations: Q&amp;P&amp;N+KNN, Q&amp;P&amp;N+RF, Q&amp;P&amp;N+SVR, Q&amp;P+KNN, P&amp;N+KNN, Q&amp;N+KNN, Q&amp;N+RF and Q&amp;N+SVR. Number of change requests for more than half of the software requirements are predicted correctly with these models. Since many predic-tion models give the same best result, we do not rank the best performing models with regard to MdMRE.</p><p>The best performance with respect to Pred(0.25) and Pred(0.5) are obtained with Q&amp;P&amp;N+KNN. Q&amp;N+KNN and Q&amp;P+KNN report the second and third best results. Those results indicate that requirement quality metrics and k-nearest neighbor algorithm are also successful with respect to Pred measures.</p><p>To sum up, best performance results are achieved by using requirement quality metrics, project specific metrics and network metrics altogether. Accordingly, K-nearest neighbor algorithm gives best performance results for all measures. In all best performing models, quality metrics are utilized either as a pair with project or network metrics or as combination of all three. It seems the way requirements are documented has a high effect on the volatility rates.</p><p>We compared our findings against the study conducted by Loconsole et al. <ref type="bibr" target="#b4">[5]</ref>. Table <ref type="table">7</ref> reports the performance of linear regression model with the best metric set in our study, our best performing model and the best performing model of <ref type="bibr" target="#b4">[5]</ref>. If we compare the findings only on LR, we observe that using number of lines predicts volatility better on their commercial setting, while in our context using quality metrics only does not give the best result. Other algorithms like KNN in combination with all metrics significantly improve the prediction performance by reducing MMRE down to 0.36 and MdMRE down to 0, and increasing Pred(0.25) up to 57%.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.2.">RQ 2</head><p>RQ 2 aims to measure the success of our model in predicting highly volatile requirements. We present our technique to identify highly volatile requirements in Section 3.7. We first need to determine change request coverage to categorize highly-volatile requirements, and later calculate recall, accuracy and false alarm rates. Rates for various change request coverage by most volatile requirements are given in Table <ref type="table" target="#tab_3">8</ref>. As change request coverage grows more requirements are labeled as highly volatile. We chose 80% change request coverage since approximately 40% percent of reviewers are considered as well-experienced in AVPRJ. Therefore by applying this model we could assign review task of 38.6% of total requirements, which are possibly highly volatile, to experienced developers in early phase of development. We did not present other coverage results in this study due to page limitation.</p><p>In Table <ref type="table">9</ref> the best recall results are achieved with Q&amp;P&amp;N+KNN(0.632), Q&amp;N+RF(0.616) and Q&amp;P+KNN(0.604). Again, all best performing models have requirement quality metrics in common, whereas the best combination consists of all metrics. The best accuracy results are obtained from Q&amp;P&amp;N+KNN(0.716), The most important measure for RQ 2 is recall since the purpose of this question is to measure success on predicting highly volatile requirements. We correctly identify 63.2% of highly volatile requirements which are exposed to 80% of the total requirement changes.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.3.">Threats to Validity</head><p>Internal validity: In this study we present requirements volatility in a software project can be predicted to some extent utilizing requirement quality metrics, project specific factors and network metrics altogether. However, this does not imply causal relationship between input and output metrics since we did not conduct a controlled experiment.</p><p>External validity: We have conducted the case study on one project, so results have local validity. However, the dataset is quite large with more than 20,000 requirements from three distinct releases developed by many software developers. Nonetheless, applying the predictive models on different projects in the future would be better in terms of generalization of results.</p><p>Construct validity: Developers did not use their native language in software requirements. Thus there could be some typos which may affect textual requirement quality metrics. Also there could be some expressions used by developers in software requirements, e.g. subjective expressions that should have taken into consideration while creating requirement quality metrics but we missed. Due to the size of dataset we couldn't manually check these kinds of typos and grammatical errors, but we know that reviewers are responsible for correcting those. We create network graphs based on traceability links between software and system requirements as indicated in the SRS. We could have use linguistic data to connect software requirements as previous study <ref type="bibr" target="#b11">[12]</ref> and it may reflect relationship between requirements in a better way. We plan to do it as a future work.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Conclusion validity:</head><p>For RQ 2 only the results of 80% change request coverage are presented due to page limitation. Regarding the results of other CR coverage, we observe higher recall and accuracy whereas false alarm rate grows undesirably as the coverage grows. Therefore RQ 2 results would differ in that way if we had chosen other CR coverage rate.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.">Conclusion and Future Work</head><p>In this paper, we have carried out an empirical study to predict number of changes per software requirement by using requirement quality measures, project specific factors and requirement interdependencies. 22,771 software requirements from a safety-critical software project in ASELSAN are utilized to build 28 prediction models and assess the best performing metric suite and algorithm. We conclude that we can predict volatility of requirements with an average MMRE of 36% by observing metrics of similar requirements through KNN. We also observe that measuring requirements from different aspects like quality, project and network dependencies gives a much better performance. We plan to integrate such a predictor model into requirement management tools like DOORS to be used prior to the SRS review activity so that highly-volatile requirements could be automatically and accurately identified. This way, software development leads could take precautions beforehand to reduce requirements volatility related risks. Since there is not enough empirical studies conducted in related area, more empirical research should be carried out to validate the best performing models.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_0"><head>Table 1</head><label>1</label><figDesc>Release based AVPRJ statistics How successful are the proposed models in predicting highly volatile software requirements?</figDesc><table><row><cell>Release</cell><cell>Number</cell><cell>Mean CR</cell><cell>Median CR</cell></row><row><cell></cell><cell>of REQs</cell><cell>per REQ</cell><cell>Per REQ</cell></row><row><cell cols="2">Release 1 8,640</cell><cell>0.7457</cell><cell>1</cell></row><row><cell cols="2">Release 2 11,401</cell><cell>1.1165</cell><cell>1</cell></row><row><cell cols="2">Release 3 2,730</cell><cell>0.5267</cell><cell>0</cell></row><row><cell>Total</cell><cell>22,771</cell><cell>0.9051</cell><cell>1</cell></row><row><cell cols="4">put metric set and the combination of those are reported.</cell></row><row><cell cols="4">Detailed sub-questions related to RQ 1 are also listed</cell></row><row><cell>below:</cell><cell></cell><cell></cell><cell></cell></row><row><cell cols="4">RQ 1.1: Which metric group is a better indicator of</cell></row><row><cell cols="3">the number of requirement changes?</cell><cell></cell></row><row><cell cols="4">RQ 1.2: Which machine learning algorithm is better</cell></row><row><cell cols="4">at predicting the number of requirement changes?</cell></row><row><cell>RQ 2:</cell><cell></cell><cell></cell><cell></cell></row></table></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_1"><head>Table 5</head><label>5</label><figDesc>Requirements volatility rank results evaluation Condition Evaluation 𝑅 𝑎𝑐𝑡𝑢𝑎𝑙 ,𝑅 𝑝𝑟𝑒𝑑𝑖𝑐𝑡𝑒𝑑 ≤ 𝑁 𝑟𝑒𝑞 × 𝑃 True Positive 𝑅 𝑎𝑐𝑡𝑢𝑎𝑙 ,𝑅 𝑝𝑟𝑒𝑑𝑖𝑐𝑡𝑒𝑑 &gt; 𝑁 𝑟𝑒𝑞 × 𝑃 True Negative 𝑅 𝑎𝑐𝑡𝑢𝑎𝑙 ≤ 𝑁 𝑟𝑒𝑞 × 𝑃, 𝑅 𝑝𝑟𝑒𝑑𝑖𝑐𝑡𝑒𝑑 &gt; 𝑁 𝑟𝑒𝑞 × 𝑃 False Negative 𝑅 𝑎𝑐𝑡𝑢𝑎𝑙 &gt; 𝑁 𝑟𝑒𝑞 × 𝑃, 𝑅 𝑝𝑟𝑒𝑑𝑖𝑐𝑡𝑒𝑑 ≤ 𝑁 𝑟𝑒𝑞 × 𝑃 False Positive • Step 5: Calculate recall, accuracy and false alarm rate.</figDesc><table /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_2"><head>Table 6</head><label>6</label><figDesc>Performance evaluation results for RQ 1</figDesc><table><row><cell>Metrics+ML</cell><cell cols="4">MMRE MdMRE Pred(0.5) Pred(0.25)</cell></row><row><cell>method</cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell cols="3">Q&amp;P&amp;N+KNN 0.366 0</cell><cell>0.681</cell><cell>0.57</cell></row><row><cell>Q&amp;P&amp;N+LR</cell><cell>0.53</cell><cell>0.5</cell><cell>0.524</cell><cell>0.411</cell></row><row><cell>Q&amp;P&amp;N+RF</cell><cell cols="2">0.392 0</cell><cell>0.663</cell><cell>0.545</cell></row><row><cell cols="3">Q&amp;P&amp;N+SVR 0.392 0</cell><cell>0.662</cell><cell>0.554</cell></row><row><cell>Q&amp;P+KNN</cell><cell cols="2">0.402 0</cell><cell>0.641</cell><cell>0.529</cell></row><row><cell>Q&amp;P+LR</cell><cell cols="2">0.513 0.5</cell><cell>0.541</cell><cell>0.428</cell></row><row><cell>Q&amp;P+RF</cell><cell>0.45</cell><cell>0.333</cell><cell>0.6</cell><cell>0.486</cell></row><row><cell>Q&amp;P+SVR</cell><cell cols="2">0.459 0.5</cell><cell>0.584</cell><cell>0.479</cell></row><row><cell>P&amp;N+KNN</cell><cell cols="2">0.422 0</cell><cell>0.632</cell><cell>0.52</cell></row><row><cell>P&amp;N+LR</cell><cell>0.55</cell><cell>0.667</cell><cell>0.484</cell><cell>0.372</cell></row><row><cell>P&amp;N+RF</cell><cell cols="2">0.454 0.5</cell><cell>0.595</cell><cell>0.48</cell></row><row><cell>P&amp;N+SVR</cell><cell cols="2">0.469 0.5</cell><cell>0.561</cell><cell>0.475</cell></row><row><cell>Q&amp;N+KNN</cell><cell cols="2">0.381 0</cell><cell>0.665</cell><cell>0.553</cell></row><row><cell>Q&amp;N+LR</cell><cell cols="2">0.534 0.5</cell><cell>0.52</cell><cell>0.407</cell></row><row><cell>Q&amp;N+RF</cell><cell cols="2">0.394 0</cell><cell>0.662</cell><cell>0.545</cell></row><row><cell>Q&amp;N+SVR</cell><cell cols="2">0.426 0</cell><cell>0.621</cell><cell>0.515</cell></row><row><cell>Q+KNN</cell><cell cols="2">0.443 0.333</cell><cell>0.598</cell><cell>0.488</cell></row><row><cell>Q+LR</cell><cell cols="2">0.512 0.5</cell><cell>0.542</cell><cell>0.43</cell></row><row><cell>Q+RF</cell><cell cols="2">0.455 0.5</cell><cell>0.594</cell><cell>0.483</cell></row><row><cell>Q+SVR</cell><cell cols="2">0.483 0.5</cell><cell>0.556</cell><cell>0.446</cell></row><row><cell>P+KNN</cell><cell cols="2">0.555 0.667</cell><cell>0.483</cell><cell>0.37</cell></row><row><cell>P+LR</cell><cell cols="2">0.548 0.667</cell><cell>0.485</cell><cell>0.373</cell></row><row><cell>P+RF</cell><cell cols="2">0.556 0.667</cell><cell>0.483</cell><cell>0.371</cell></row><row><cell>P+SVR</cell><cell cols="2">0.516 0.5</cell><cell>0.512</cell><cell>0.417</cell></row><row><cell>N+KNN</cell><cell cols="2">0.448 0.5</cell><cell>0.596</cell><cell>0.482</cell></row><row><cell>N+LR</cell><cell cols="2">0.549 0.667</cell><cell>0.484</cell><cell>0.372</cell></row><row><cell>N+RF</cell><cell cols="2">0.485 0.5</cell><cell>0.561</cell><cell>0.446</cell></row><row><cell>N+SVR</cell><cell>0.53</cell><cell>0.5</cell><cell>0.5</cell><cell>0.392</cell></row><row><cell>Table 7</cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell cols="5">Comparison of our performance (RQ 1) against [5]</cell></row><row><cell></cell><cell cols="4">MMRE MdMRE Pred(0.25) Pred(0.5)</cell></row><row><cell>Q+LR</cell><cell>0.51</cell><cell>0.5</cell><cell>0.43</cell><cell>0.54</cell></row><row><cell>Best model</cell><cell>0.36</cell><cell>0</cell><cell>0.57</cell><cell>0.68</cell></row><row><cell cols="2">NLines+LR [5] 0.58</cell><cell>0.27</cell><cell>0.5</cell><cell>0.63</cell></row><row><cell cols="5">Q&amp;P(0.402). We may interpret that requirement quality</cell></row><row><cell cols="5">metrics (Q) are successful at predicting number of change</cell></row><row><cell cols="5">requests per software requirement, and its combinations</cell></row><row><cell cols="5">with the other metrics also give good results. With re-</cell></row><row><cell cols="5">spect to the machine learning algorithm, the three best</cell></row><row><cell cols="5">performing metric combinations give the highest predic-</cell></row><row><cell cols="5">tion performance when k-nearest neighbor algorithm is</cell></row><row><cell>utilized.</cell><cell></cell><cell></cell><cell></cell><cell></cell></row></table></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_3"><head>Table 8</head><label>8</label><figDesc>Change request and requirement coverage relation for AVPRJ</figDesc><table><row><cell cols="5">CR Coverage Percent REQ Coverage</cell></row><row><cell>60%</cell><cell></cell><cell>20.5%</cell><cell></cell></row><row><cell>70%</cell><cell></cell><cell>29.6%</cell><cell></cell></row><row><cell>80%</cell><cell></cell><cell>38.6%</cell><cell></cell></row><row><cell>90%</cell><cell></cell><cell>47.7%</cell><cell></cell></row><row><cell>Table 9</cell><cell></cell><cell></cell><cell></cell></row><row><cell cols="5">Performance results of RQ 2 model for 80% CR coverage</cell></row><row><cell>Metrics+ML</cell><cell>Re-</cell><cell>Accu-</cell><cell cols="2">False Alarm</cell></row><row><cell>method</cell><cell>call</cell><cell>racy</cell><cell>Rate</cell></row><row><cell>Q&amp;P&amp;N+KNN</cell><cell>0.632</cell><cell>0.716</cell><cell>0.232</cell></row><row><cell>Q&amp;P&amp;N+LR</cell><cell>0.531</cell><cell>0.638</cell><cell>0.295</cell></row><row><cell>Q&amp;P&amp;N+RF</cell><cell>0.624</cell><cell>0.71</cell><cell>0.237</cell></row><row><cell>Q&amp;P&amp;N+SVR</cell><cell>0.591</cell><cell>0.684</cell><cell>0.258</cell></row><row><cell>Q&amp;P+KNN</cell><cell>0.604</cell><cell>0.694</cell><cell>0.249</cell></row><row><cell>Q&amp;P+LR</cell><cell>0.508</cell><cell>0.62</cell><cell>0.31</cell></row><row><cell>Q&amp;P+RF</cell><cell>0.602</cell><cell>0.692</cell><cell>0.251</cell></row><row><cell>Q&amp;P+SVR</cell><cell>0.558</cell><cell>0.658</cell><cell>0.278</cell></row><row><cell>P&amp;N+KNN</cell><cell>0.574</cell><cell>0.671</cell><cell>0.268</cell></row><row><cell>P&amp;N+LR</cell><cell>0.418</cell><cell>0.55</cell><cell>0.366</cell></row><row><cell>P&amp;N+RF</cell><cell>0.557</cell><cell>0.658</cell><cell>0.279</cell></row><row><cell>P&amp;N+SVR</cell><cell>0.496</cell><cell>0.61</cell><cell>0.318</cell></row><row><cell>Q&amp;N+KNN</cell><cell>0.614</cell><cell>0.702</cell><cell>0.243</cell></row><row><cell>Q&amp;N+LR</cell><cell>0.53</cell><cell>0.637</cell><cell>0.296</cell></row><row><cell>Q&amp;N+RF</cell><cell>0.616</cell><cell>0.703</cell><cell>0.242</cell></row><row><cell>Q&amp;N+SVR</cell><cell>0.569</cell><cell>0.667</cell><cell>0.271</cell></row><row><cell>Q+KNN</cell><cell>0.586</cell><cell>0.68</cell><cell>0.261</cell></row><row><cell>Q+LR</cell><cell>0.508</cell><cell>0.62</cell><cell>0.31</cell></row><row><cell>Q+RF</cell><cell>0.582</cell><cell>0.677</cell><cell>0.263</cell></row><row><cell>Q+SVR</cell><cell>0.529</cell><cell>0.636</cell><cell>0.296</cell></row><row><cell>P+KNN</cell><cell>0.503</cell><cell>0.616</cell><cell>0.313</cell></row><row><cell>P+LR</cell><cell>0.423</cell><cell>0.554</cell><cell>0.363</cell></row><row><cell>P+RF</cell><cell>0.496</cell><cell>0.611</cell><cell>0.317</cell></row><row><cell>P+SVR</cell><cell>0.462</cell><cell>0.584</cell><cell>0.339</cell></row><row><cell>N+KNN</cell><cell>0.557</cell><cell>0.657</cell><cell>0.279</cell></row><row><cell>N+LR</cell><cell>0.404</cell><cell>0.539</cell><cell>0.376</cell></row><row><cell>N+RF</cell><cell>0.565</cell><cell>0.664</cell><cell>0.274</cell></row><row><cell>N+SVR</cell><cell>0.498</cell><cell>0.612</cell><cell>0.316</cell></row><row><cell cols="5">Q&amp;N+RF(0.703) and Q&amp;P+KNN(0.694). The lowest false</cell></row><row><cell cols="5">alarm rate results are achieved by Q&amp;P&amp;N+KNN(0.232),</cell></row><row><cell cols="4">Q&amp;N+RF(0.242) and Q&amp;P+KNN(0.249).</cell><cell>K-nearest</cell></row><row><cell cols="5">neighbor and random forest regression methods are</cell></row><row><cell cols="5">successful in predicting highly volatile requirements for</cell></row><row><cell cols="2">80% change request coverage.</cell><cell></cell><cell></cell></row></table></figure>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Analysis of requirements volatility during software development life cycle</title>
		<author>
			<persName><forename type="first">N</forename><surname>Nurmuliani</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Zowghi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Powell</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Australian Software Engineering Conference</title>
				<imprint>
			<publisher>IEEE</publisher>
			<date type="published" when="2004">2004. 2004</date>
			<biblScope unit="page" from="28" to="37" />
		</imprint>
	</monogr>
	<note>ASWEC &apos;04</note>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Writing software requirements specification quality requirements: An approach to manage requirements volatility</title>
		<author>
			<persName><forename type="first">G</forename><surname>Swathi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Jagan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Prasad</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Int. J. Comp. Tech. Appl</title>
		<imprint>
			<biblScope unit="volume">2</biblScope>
			<biblScope unit="page" from="631" to="638" />
			<date type="published" when="2011">2011</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">A mixed mode analysis of the impact of requirement volatility on software project success</title>
		<author>
			<persName><forename type="first">R</forename><surname>Thakurta</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Journal of International Technology and Information Management</title>
		<imprint>
			<biblScope unit="volume">20</biblScope>
			<date type="published" when="2011">2011</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">A systematic literature review of requirements volatility prediction</title>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">M</forename><surname>Alsalemi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E.-T</forename><surname>Yeoh</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">2017 International Conference on Current Trends in Computer, Electrical, Electronics and Communication</title>
				<meeting><address><addrLine>ICCTCEEC-</addrLine></address></meeting>
		<imprint>
			<publisher>IEEE</publisher>
			<date type="published" when="2017">2017. 2017</date>
			<biblScope unit="page" from="55" to="64" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<monogr>
		<author>
			<persName><forename type="first">A</forename><surname>Loconsole</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Börstler</surname></persName>
		</author>
		<title level="m">Construction and Validation of Prediction Models for Number of Changes to Requirements</title>
				<imprint>
			<date type="published" when="2007">2007</date>
		</imprint>
		<respStmt>
			<orgName>Umeå University Technical ; Umeå University Department of Computing Science, UMEÅ, SWEDEN</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">Report UMINF-07.03</note>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Prediction of software requirements stability based on complexity point measurement using multi-criteria fuzzy approach</title>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">F X</forename><surname>Christopher</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Chandra</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">International Journal of Software Engineering &amp; Applications</title>
		<imprint>
			<biblScope unit="volume">3</biblScope>
			<biblScope unit="page" from="101" to="115" />
			<date type="published" when="2012">2012</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">Learning from evolution history to predict future requirement changes</title>
		<author>
			<persName><forename type="first">L</forename><surname>Shi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Q</forename><surname>Wang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Li</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">2013 21st IEEE International Requirements Engineering Conference, RE-2013</title>
				<imprint>
			<publisher>IEEE</publisher>
			<date type="published" when="2013">2013</date>
			<biblScope unit="page" from="135" to="144" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Experimental evaluation of a tool for change impact prediction in requirements models: Design, results, and lessons learned</title>
		<author>
			<persName><forename type="first">A</forename><surname>Goknil</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Van Domburg</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><surname>Kurtev</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Van Den Berg</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Wijnhoven</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">IEEE 4th International Model-Driven Requirements Engineering Workshop (MoDRE), MoDRE 2014</title>
				<meeting><address><addrLine>Karlskrona, Sweden</addrLine></address></meeting>
		<imprint>
			<publisher>IEEE</publisher>
			<date type="published" when="2014">2014. 2014</date>
			<biblScope unit="page" from="57" to="66" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">Comparative analysis of requirements change prediction models: manual, linguistic, and neural network</title>
		<author>
			<persName><forename type="first">B</forename><surname>Morkos</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Mathieson</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">D</forename><surname>Summers</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Research in Engineering Design</title>
		<imprint>
			<biblScope unit="volume">25</biblScope>
			<biblScope unit="page" from="139" to="156" />
			<date type="published" when="2014">2014</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Software project schedule variance prediction using bayesian network</title>
		<author>
			<persName><forename type="first">X</forename><surname>Wang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Wu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Ma</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">IEEE International Conference on Advanced Management Science</title>
				<meeting><address><addrLine>ICAMS; Chengdu, China</addrLine></address></meeting>
		<imprint>
			<publisher>IEEE</publisher>
			<date type="published" when="2010">2010. 2010. 2010</date>
			<biblScope unit="volume">2</biblScope>
			<biblScope unit="page" from="26" to="30" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">Predicting requirements changes by focusing on the social relations</title>
		<author>
			<persName><forename type="first">T</forename><surname>Nakatani</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Tsumaki</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the Tenth Asia-Pacific Conference on Conceptual Modelling</title>
				<meeting>the Tenth Asia-Pacific Conference on Conceptual Modelling<address><addrLine>APCCM; Auckland, New Zealand</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2014">2014. 2014</date>
			<biblScope unit="volume">154</biblScope>
			<biblScope unit="page" from="65" to="70" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">Employing machine learning techniques to assess requirement change volatility</title>
		<author>
			<persName><forename type="first">P</forename><forename type="middle">H</forename><surname>Hein</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Kames</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Chen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Morkos</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Research in Engineering Design</title>
		<imprint>
			<biblScope unit="volume">32</biblScope>
			<biblScope unit="page" from="245" to="269" />
			<date type="published" when="2021">2021</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<monogr>
		<author>
			<persName><forename type="first">W</forename><surname>Pedrycz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Iljazi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Sillitti</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Succi</surname></persName>
		</author>
		<title level="m">Prediction of the successful completion of requirements in software development-an initial study</title>
				<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2016">2016</date>
			<biblScope unit="page" from="261" to="269" />
		</imprint>
	</monogr>
	<note>Agent and Multi-Agent Systems: Technology and Applications</note>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">How to measure success of fault prediction models</title>
		<author>
			<persName><forename type="first">T</forename><forename type="middle">J</forename><surname>Ostrand</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><forename type="middle">J</forename><surname>Weyuker</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Fourth international workshop on Software quality assurance: in conjunction with the 6th ESEC/FSE joint meeting, SOQUA&apos;07</title>
				<meeting><address><addrLine>Dubrovnik, Croatia</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2007">2007</date>
			<biblScope unit="page" from="25" to="30" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<monogr>
		<author>
			<persName><forename type="first">T</forename><surname>Clancy</surname></persName>
		</author>
		<title level="m">The standish group report</title>
				<imprint>
			<date type="published" when="1995">1995</date>
		</imprint>
	</monogr>
	<note type="report_type">Chaos report</note>
</biblStruct>

<biblStruct xml:id="b15">
	<analytic>
		<title level="a" type="main">Fault prediction using early lifecycle data</title>
		<author>
			<persName><forename type="first">Y</forename><surname>Jiang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Cukic</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Menzies</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">The 18th IEEE International Symposium on Software Reliability, ISSRE&apos;07</title>
				<imprint>
			<publisher>IEEE</publisher>
			<date type="published" when="2007">2007</date>
			<biblScope unit="page" from="237" to="246" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b16">
	<analytic>
		<title level="a" type="main">A framework to measure and improve the quality of textual requirements</title>
		<author>
			<persName><forename type="first">G</forename><surname>Génova</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">M</forename><surname>Fuentes</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Llorens</surname></persName>
		</author>
		<author>
			<persName><forename type="first">O</forename><surname>Hurtado</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Moreno</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Requirements engineering</title>
		<imprint>
			<biblScope unit="volume">18</biblScope>
			<biblScope unit="page" from="25" to="41" />
			<date type="published" when="2013">2013</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b17">
	<monogr>
		<author>
			<persName><forename type="first">A</forename><surname>Faisandier</surname></persName>
		</author>
		<title level="m">Systems architecture and design</title>
				<meeting><address><addrLine>France</addrLine></address></meeting>
		<imprint>
			<publisher>Sinergy&apos;Com Belberaud</publisher>
			<date type="published" when="2013">2013</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b18">
	<analytic>
		<title level="a" type="main">How correlated are network centrality measures?</title>
		<author>
			<persName><forename type="first">T</forename><forename type="middle">W</forename><surname>Valente</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Coronges</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Lakon</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Costenbader</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Connections</title>
		<imprint>
			<biblScope unit="volume">28</biblScope>
			<biblScope unit="page" from="16" to="26" />
			<date type="published" when="2008">2008</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b19">
	<analytic>
		<title level="a" type="main">Ucinet for windows: Software for social network analysis</title>
		<author>
			<persName><forename type="first">S</forename><forename type="middle">P</forename><surname>Borgatti</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">G</forename><surname>Everett</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><forename type="middle">C</forename><surname>Freeman</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">analytic technologies</title>
		<imprint>
			<biblScope unit="volume">6</biblScope>
			<date type="published" when="2002">2002</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b20">
	<monogr>
		<author>
			<persName><forename type="first">F</forename><surname>Eibe</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">A</forename><surname>Hall</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><forename type="middle">H</forename><surname>Witten</surname></persName>
		</author>
		<title level="m">The weka workbench. online appendix for data mining: practical machine learning tools and techniques</title>
				<imprint>
			<publisher>Morgan Kaufmann</publisher>
			<date type="published" when="2016">2016</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b21">
	<analytic>
		<title level="a" type="main">A user&apos;s guide to support vector machines</title>
		<author>
			<persName><forename type="first">A</forename><surname>Ben-Hur</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Weston</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Data mining techniques for the life sciences</title>
				<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2010">2010</date>
			<biblScope unit="page" from="223" to="239" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b22">
	<monogr>
		<author>
			<persName><forename type="first">D</forename><surname>Zhang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">J</forename><surname>Tsai</surname></persName>
		</author>
		<title level="m">Machine learning applications in software engineering</title>
				<imprint>
			<publisher>World Scientific</publisher>
			<date type="published" when="2005">2005</date>
			<biblScope unit="volume">16</biblScope>
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
