20 research outputs found

    The role of Artificial Intelligence in Software Engineering

    Full text link
    There has been a recent surge in interest in the application of Artificial Intelligence (AI) techniques to Software Engineering (SE) problems. The work is typified by recent advances in Search Based Software Engineering, but also by long established work in Probabilistic reasoning and machine learning for Software Engineering. This paper explores some of the relationships between these strands of closely related work, arguing that they have much in common and sets out some future challenges in the area of AI for SE. © 2012 IEEE

    Exact Scalable Sensitivity Analysis for the Next Release Problem

    Get PDF
    The nature of the requirements analysis problem, based as it is on uncertain and often inaccurate estimates of costs and effort, makes sensitivity analysis important. Sensitivity analysis allows the decision maker to identify those requirements and budgets that are particularly sensitive to misestimation. However, finding scalable sensitivity analysis techniques is not easy because the underlying optimization problem is NP-hard. This article introduces an approach to sensitivity analysis based on exact optimization. We implemented this approach as a tool, OATSAC, which allowed us to experimentally evaluate the scalability and applicability of Requirements Sensitivity Analysis (RSA). Our results show that OATSAC scales sufficiently well for practical applications in Requirements Sensitivity Analysis. We also show how the sensitivity analysis can yield insights into difficult and otherwise obscure interactions between budgets, requirements costs, and estimate inaccuracies using a real-world case study

    Towards a highly customizable framework for release planning process

    Get PDF
    U razvoju softvera, planiranjem puštanja u promet izabiru se važna svojstva i zahtjevi temeljeni na tehničkim ograničenjima i ograničenjima sredstava te odnosima između zahtjeva. Planiranje puštanja u promet usmjereno je na pronalaženje optimalnog rješenja traženjem raznih stanja. Takav način traženja rješenja otkriva dvije stvari. Prvo, pokazuje da postoje različiti nejasni i nesigurni parametri koji utječu na rješenje. Drugo, da ne postoji samo jedno rješenja za neki problem. Mogu postojati različita rješenja koja se razlikuju po svojim karakteristikama (na pr. u odnosu na trajanje, složenost itd.). Stoga su mnoge metode planiranja puštanja u promet često specifične za samo neke aspekte problema. U ovom se radu istražuju razne postojeće metode za planiranje pokretanja u svrhu pronalaženja nekih općih razmišljanja i aktivnosti za uspostavljanje prilagodljivog okvira za planiranje puštanja u promet. Prilagodba se postiže identificiranjem učinkovitih parametara ili primjera parametara i njihovih odnosa tako da se može izabrati pravi algoritam ili metoda za svaku aktivnost. Karakteristike projekta mogu se odrediti na osnovu primjera parametara te se oni tada primjenjuju za određivanje odgovarajuće metode za izvršavanje pojedine aktivnosti u okviru čitavog postupka planiranja puštanja u promet, a čiji se rezultati bilježe. Taj predloženi okvir vrlo prilagodljivog postupka sa svojim mogućim obilježjima prilagođavanja zatim se ocjenjuje u nekoliko softverskih poduzeća. U 85 % slučajeva predloženi okvir za svaku aktivnost u skladu je s uvjetima poduzeća i pomaže u ubrzanju postupka planiranja puštanja u promet.In software development, release planning is performed to select important features and requirements based on resource and technical constraints and the relationships between requirements. Release planning focuses on finding an optimal solution by seeking various states. This kind of solution finding reveals two remarks. First, it shows that there are various, ambiguous and uncertain parameters that influence the solution. Second, there is not only one solution to any problem. Various solutions can be found that differ in their performance (e.g. time performance, complexity performance, etc.). Consequently, many methods for release planning are often specific to only certain problem domains. This paper examines various current release planning methods to extract the common activities and thoughts in order to establish a customizable framework for release planning. Customization is done by identifying effective parameters, parameter instances and their relationships so that they can affect the selection of the right algorithm or method for each activity. Project characteristics can be specified based on the parameter instances and they are then used to determine the suitable method for achieving each activity within the whole release planning process and the results of which are recorded. This proposed highly customizable process framework with its possible customization features is then validated in several software companies. In 85 % of the cases, the suggested framework for every activity of the process fits the companies’ circumstances and helps to hasten the process of release planning

    Dependency-Aware Software Requirements Selection using Fuzzy Graphs and Integer Programming

    Full text link
    Software requirements selection aims to find an optimal subset of the requirements with the highest value while respecting the project constraints. But the value of a requirement may depend on the presence or absence of other requirements in the optimal subset. Such Value Dependencies, however, are imprecise and hard to capture. In this paper, we propose a method based on integer programming and fuzzy graphs to account for value dependencies and their imprecision in software requirements selection. The proposed method, referred to as Dependency-Aware Software Requirements Selection (DARS), is comprised of three components: (i) an automated technique for the identification of value dependencies from user preferences, (ii) a modeling technique based on fuzzy graphs that allows for capturing the imprecision of value dependencies, and (iii) an Integer Linear Programming (ILP) model that takes into account user preferences and value dependencies identified from those preferences to reduce the risk of value loss in software projects. Our work is verified by studying a real-world software project. The results show that our proposed method reduces the value loss in software projects and is scalable to large requirement sets.Comment: arXiv admin note: text overlap with arXiv:2003.0480

    An Empirical Study of Meta- and Hyper-Heuristic Search for Multi-Objective Release Planning

    Get PDF
    A variety of meta-heuristic search algorithms have been introduced for optimising software release planning. However, there has been no comprehensive empirical study of different search algorithms across multiple different real-world datasets. In this article, we present an empirical study of global, local, and hybrid meta- and hyper-heuristic search-based algorithms on 10 real-world datasets. We find that the hyper-heuristics are particularly effective. For example, the hyper-heuristic genetic algorithm significantly outperformed the other six approaches (and with high effect size) for solution quality 85% of the time, and was also faster than all others 70% of the time. Furthermore, correlation analysis reveals that it scales well as the number of requirements increases
    corecore