1,359 research outputs found

    A clustering based technique for large scale prioritization during requirements elicitation

    Get PDF
    We consider the prioritization problem in cases where the number of requirements to prioritize is large using a clustering technique. Clustering is a method used to find classes of data elements with respect to their attributes. KMeans, one of the most popular clustering algorithms, was adopted in this research. To utilize k-means algorithm for solving requirements prioritization problems, weights of attributes of requirement sets from relevant project stakeholders are required as input parameters. This paper showed that, the output of running k-means algorithm on requirement sets varies depending on the weights provided by relevant stakeholders. The proposed approach was validated using a requirement dataset known as RALIC. The results suggested that, a synthetic method with scrambled centroids is effective for prioritizing requirements using k-means clustering

    Choosing a Suitable Requirement Prioritization Method: A Survey

    Full text link
    Software requirements prioritization plays a crucial role in software development. It can be viewed as the process of ordering requirements by determining which requirements must be done first and which can be done later. Powerful requirements prioritization techniques are of paramount importance to finish the implementation on time and within budget. Many factors affect requirement prioritization such as stakeholder expectations, complexity, dependency, scalability, risk, and cost. Therefore, finding the proper order of requirements is a challenging process. Hence, different types of requirements prioritization techniques have been developed to support this task. In this survey, we propose a novel classification that can classify the prioritization techniques under two major classes: relative and exact prioritization techniques class, where each class is divided into two subclasses. We depend in our classification on the way the value of ranking is given to the requirement, either explicitly as a specific value in the case of the exact prioritization techniques class, or implicitly in the case of the Relative prioritization technique class. An overview of fifteen different requirements prioritization techniques are presented and organized according to the proposed classification criteria's. Moreover, we make a comparison between methods that are related to the same subclass to analyze their strengths and weaknesses. Based on the comparison results, the properties for each proposed subclass of techniques are identified. Depending on these properties, we present some recommendations to help project managers in the process of selecting the most suitable technique to prioritize requirements based on their project characteristics (number of requirements, time, cost, and accuracy)

    A Framework to Automate Requirements Specification Task

    Get PDF
    Requirement identification and prioritisation are two principal activities of the requirement engineering process in the Software Development Life cycle. There are several approaches to prioritization of requirements identified by the stakeholders. However, there is a need for a deeper understanding of the optimal approach. Much study has been done and machine learning has proven to help automate requirement engineering tasks. A framework that identifies the types of requirements and assigns the priority to requirements does not exist. This study examines the behaviour of the different machine learning algorithms used for software requirements identification and prioritisation. Due to variations in research methodologies and datasets, the results of various studies are inherently contradictory. A framework that identifies the types of requirements and assigns the priority to requirements does not exist. This paper further discusses a framework for text preparation of requirements stated in natural language, type identification and requirements prioritisation has been proposed and implemented. After analysing the ML algorithms that are now in use, it can be concluded that it is necessary to take into account the various types of requirements when dealing with the identification and classification of requirements. A Multiple Correlation Coefficient-based Decision Tree (MCC-based DT) algorithm considers multiple features to map to a requirement and hence overcomes the limitations of the existing machine learning algorithms. The results demonstrated that the MCC-based DT algorithm has enhanced type identification performance compared to existing ML methods. The MCC-based DT algorithm is 4.42% more accurate than the Decision Tree algorithm. This study also tries to determine an optimisation algorithm that is likely to prioritise software requirements and further evaluate the performance. The sparse matrix produced for the text dataset indicates that Adam optimisation method must be modified to assign the requirement a more precise priority. To address the limitations of the Adam Algorithm, the Automated Requirement Prioritisation Technique, an innovative algorithm, is implemented in this work. Testing the ARPT on 43 projects reveals that the mean squared error is reduced to 1.34 and the error cost is reduced to 0.0001. The results indicate an 84% improvement in the prioritisation of requirements compared to the Adam algorithm

    Rationale Management Challenges in Requirements Engineering

    Get PDF
    Rationale and rationale management have been playing an increasingly prominent role in software system development mainly due to the knowledge demand during system evaluation, maintenance, and evolution, especially for large and complex systems. The rationale management for requirements engineering, as a commencing and critical phase in software development life cycle, is still under-exploited. In this paper, we first survey briefly the state-of-the-art on rationale employment and applications in requirements engineering. Secondly, we identify the challenges in integrating rationale management in requirements engineering activities in order to promote further investigations and define a research agenda on rationale management in requirements engineering.

    Understanding requirements dependency in requirements prioritization: a systematic literature review

    Get PDF
    Requirement prioritization (RP) is a crucial task in managing requirements as it determines the order of implementation and, thus, the delivery of a software system. Improper RP may cause software project failures due to over budget and schedule as well as a low-quality product. Several factors influence RP. One of which is requirements dependency. Handling inappropriate handling of requirements dependencies can lead to software development failures. If a requirement that serves as a prerequisite for other requirements is given low priority, it affects the overall project completion time. Despite its importance, little is known about requirements dependency in RP, particularly its impacts, types, and techniques. This study, therefore, aims to understand the phenomenon by analyzing the existing literature. It addresses three objectives, namely, to investigate the impacts of requirements dependency on RP, to identify different types of requirements dependency, and to discover the techniques used for requirements dependency problems in RP. To fulfill the objectives, this study adopts the Systematic Literature Review (SLR) method. Applying the SLR protocol, this study selected forty primary articles, which comprise 58% journal papers, 32% conference proceedings, and 10% book sections. The results of data synthesis indicate that requirements dependency has significant impacts on RP, and there are a number of requirements dependency types as well as techniques for addressing requirements dependency problems in RP. This research discovered various techniques employed, including the use of Graphs for RD visualization, Machine Learning for handling large-scale RP, decision making for multi-criteria handling, and optimization techniques utilizing evolutionary algorithms. The study also reveals that the existing techniques have encountered serious limitations in terms of scalability, time consumption, interdependencies of requirements, and limited types of requirement dependencies

    Requirements degradation for the creation of a first prototype

    Get PDF
    The requirements engineering process is typically executed, irrespective of the process model chosen, for the final commercially viable system. The system requirements generated are for a system deployed and used in its final form and function. However, the first prototype that is generated is typically representative of a minimum viable technology, and represents a degraded set of the initial system requirements specification. Typically, a first prototype is used as a technology demonstrator, and its failure or success will determine the continuation of the project, with success triggering the allocation of additional financial and personal resources. This paper explores techniques for requirements degradation that can be used to form the system requirements specification for the first prototype. A requirements Engineering methodology is proposed based upon a survey of literature. It takes into consideration the characteristics of the project, i.e. a market driven, technology implementation research project with limited budget and a flexible timeline executed in an academic environment. The techniques must take into cognizance the main risk items, and core requirements, that need to be demonstrated in the minimum viable technology to secure the future of the project. The degradation cannot undermine or jeopardize the future success of the commercially viable system in determining the subset of requirements for the minimum viable technology

    Mining app reviews to support software engineering

    Get PDF
    The thesis studies how mining app reviews can support software engineering. App reviews —short user reviews of an app in app stores— provide a potentially rich source of information to help software development teams maintain and evolve their products. Exploiting this information is however difficult due to the large number of reviews and the difficulty in extracting useful actionable information from short informal texts. A variety of app review mining techniques have been proposed to classify reviews and to extract information such as feature requests, bug descriptions, and user sentiments but the usefulness of these techniques in practice is still unknown. Research in this area has grown rapidly, resulting in a large number of scientific publications (at least 182 between 2010 and 2020) but nearly no independent evaluation and description of how diverse techniques fit together to support specific software engineering tasks have been performed so far. The thesis presents a series of contributions to address these limitations. We first report the findings of a systematic literature review in app review mining exposing the breadth and limitations of research in this area. Using findings from the literature review, we then present a reference model that relates features of app review mining tools to specific software engineering tasks supporting requirements engineering, software maintenance and evolution. We then present two additional contributions extending previous evaluations of app review mining techniques. We present a novel independent evaluation of opinion mining techniques using an annotated dataset created for our experiment. Our evaluation finds lower effectiveness than initially reported by the techniques authors. A final part of the thesis, evaluates approaches in searching for app reviews pertinent to a particular feature. The findings show a general purpose search technique is more effective than the state-of-the-art purpose-built app review mining techniques; and suggest their usefulness for requirements elicitation. Overall, the thesis contributes to improving the empirical evaluation of app review mining techniques and their application in software engineering practice. Researchers and developers of future app mining tools will benefit from the novel reference model, detailed experiments designs, and publicly available datasets presented in the thesis
    corecore