15 research outputs found

    Exploiting Abstract Syntax Trees to Locate Software Defects

    Get PDF
    Context. Software defect prediction aims to reduce the large costs involved with faults in a software system. A wide range of traditional software metrics have been evaluated as potential defect indicators. These traditional metrics are derived from the source code or from the software development process. Studies have shown that no metric clearly out performs another and identifying defect-prone code using traditional metrics has reached a performance ceiling. Less traditional metrics have been studied, with these metrics being derived from the natural language of the source code. These newer, less traditional and finer grained metrics have shown promise within defect prediction. Aims. The aim of this dissertation is to study the relationship between short Java constructs and the faultiness of source code. To study this relationship this dissertation introduces the concept of a Java sequence and Java code snippet. Sequences are created by using the Java abstract syntax tree. The ordering of the nodes within the abstract syntax tree creates the sequences, while small sub sequences of this sequence are the code snippets. The dissertation tries to find a relationship between the code snippets and faulty and non-faulty code. This dissertation also looks at the evolution of the code snippets as a system matures, to discover whether code snippets significantly associated with faulty code change over time. Methods. To achieve the aims of the dissertation, two main techniques have been developed; finding defective code and extracting Java sequences and code snippets. Finding defective code has been split into two areas - finding the defect fix and defect insertion points. To find the defect fix points an implementation of the bug-linking algorithm has been developed, called S + e . Two algorithms were developed to extract the sequences and the code snippets. The code snippets are analysed using the binomial test to find which ones are significantly associated with faulty and non-faulty code. These techniques have been performed on five different Java datasets; ArgoUML, AspectJ and three releases of Eclipse.JDT.core Results. There are significant associations between some code snippets and faulty code. Frequently occurring fault-prone code snippets include those associated with identifiers, method calls and variables. There are some code snippets significantly associated with faults that are always in faulty code. There are 201 code snippets that are snippets significantly associated with faults across all five of the systems. The technique is unable to find any significant associations between code snippets and non-faulty code. The relationship between code snippets and faults seems to change as the system evolves with more snippets becoming fault-prone as Eclipse.JDT.core evolved over the three releases analysed. Conclusions. This dissertation has introduced the concept of code snippets into software engineering and defect prediction. The use of code snippets offers a promising approach to identifying potentially defective code. Unlike previous approaches, code snippets are based on a comprehensive analysis of low level code features and potentially allow the full set of code defects to be identified. Initial research into the relationship between code snippets and faults has shown that some code constructs or features are significantly related to software faults. The significant associations between code snippets and faults has provided additional empirical evidence to some already researched bad constructs within defect prediction. The code snippets have shown that some constructs significantly associated with faults are located in all five systems, and although this set is small finding any defect indicators that transfer successfully from one system to another is rare

    Empirically-Grounded Construction of Bug Prediction and Detection Tools

    Get PDF
    There is an increasing demand on high-quality software as software bugs have an economic impact not only on software projects, but also on national economies in general. Software quality is achieved via the main quality assurance activities of testing and code reviewing. However, these activities are expensive, thus they need to be carried out efficiently. Auxiliary software quality tools such as bug detection and bug prediction tools help developers focus their testing and reviewing activities on the parts of software that more likely contain bugs. However, these tools are far from adoption as mainstream development tools. Previous research points to their inability to adapt to the peculiarities of projects and their high rate of false positives as the main obstacles of their adoption. We propose empirically-grounded analysis to improve the adaptability and efficiency of bug detection and prediction tools. For a bug detector to be efficient, it needs to detect bugs that are conspicuous, frequent, and specific to a software project. We empirically show that the null-related bugs fulfill these criteria and are worth building detectors for. We analyze the null dereferencing problem and find that its root cause lies in methods that return null. We propose an empirical solution to this problem that depends on the wisdom of the crowd. For each API method, we extract the nullability measure that expresses how often the return value of this method is checked against null in the ecosystem of the API. We use nullability to annotate API methods with nullness annotation and warn developers about missing and excessive null checks. For a bug predictor to be efficient, it needs to be optimized as both a machine learning model and a software quality tool. We empirically show how feature selection and hyperparameter optimizations improve prediction accuracy. Then we optimize bug prediction to locate the maximum number of bugs in the minimum amount of code by finding the most cost-effective combination of bug prediction configurations, i.e., dependent variables, machine learning model, and response variable. We show that using both source code and change metrics as dependent variables, applying feature selection on them, then using an optimized Random Forest to predict the number of bugs results in the most cost-effective bug predictor. Throughout this thesis, we show how empirically-grounded analysis helps us achieve efficient bug prediction and detection tools and adapt them to the characteristics of each software project

    Opinion Dynamics and the Evolution of Social Power in Social Networks

    Get PDF
    A fundamental aspect of society is the exchange and discussion of opinions between individuals, occurring in mediums and situations as varied as company boardrooms, elementary school classrooms and online social media. This thesis studies several mathematical models of how an individual’s opinion(s) evolves via interaction with others in a social network, developed to reflect and capture different socio-psychological processes that occur during the interactions. In the first part, and inspired by Solomon E. Asch’s seminal experiments on conformity, a novel discrete-time model of opinion dynamics is proposed, with each individual having both an expressed and a private opinion on the same topic. Crucially, an individual’s expressed opinion is altered from the individual’s private opinion due to pressures to conform to the majority opinion of the social network. Exponential convergence of the opinion dynamical system to a unique configuration is established for general networks. Several conclusions are established, including how differences between an individual’s expressed and private opinions arise, and how to estimate disagreement among the private opinions at equilibrium. Asch’s experiments are revisited and re-examined, and then it is shown that a few extremists can create “pluralistic ignorance”, where people believe there is majority support for a position but in fact the position is privately rejected by the majority of individuals! The second part builds on the recently proposed discrete-time DeGroot–Friedkin model, which describes the evolution of an individual’s self-confidence (termed social power) in his/her opinion over the discussion of a sequence of issues. Using nonlinear contraction analysis, exponential convergence to a unique equilibrium is established for networks with constant topology. Networks with issue-varying topology (which remain constant for any given issue) are then studied; exponential convergence to a unique limiting trajectory is established. In a social context, this means that each individual forgets his/her initial social power exponentially fast; in the limit, his/her social power for a given issue depends only on the previously occurring sequence of dynamic topology. Two further related works are considered; a network modification problem, and a different convergence proof based on Lefschetz Fixed Point Theory. In the final part, a continuous-time model is proposed to capture simultaneous discussion of logically interdependent topics; the interdependence is captured by a “logic matrix”. When no individual remains attached to his/her initial opinion, a necessary and sufficient condition for the network to reach a consensus of opinions is provided. This condition depends on the interplay between the network interactions and the logic matrix; if the network interactions are too strong when compared to the logical couplings, instability can result. Last, when some individuals remain attached to their initial opinions, sufficient conditions are given for opinions to converge to a state of persistent disagreement

    Assembly Line

    Get PDF
    An assembly line is a manufacturing process in which parts are added to a product in a sequential manner using optimally planned logistics to create a finished product in the fastest possible way. It is a flow-oriented production system where the productive units performing the operations, referred to as stations, are aligned in a serial manner. The present edited book is a collection of 12 chapters written by experts and well-known professionals of the field. The volume is organized in three parts according to the last research works in assembly line subject. The first part of the book is devoted to the assembly line balancing problem. It includes chapters dealing with different problems of ALBP. In the second part of the book some optimization problems in assembly line structure are considered. In many situations there are several contradictory goals that have to be satisfied simultaneously. The third part of the book deals with testing problems in assembly line. This section gives an overview on new trends, techniques and methodologies for testing the quality of a product at the end of the assembling line

    Information Management and Market Engineering. Vol. II

    Get PDF
    The research program Information Management and Market Engineering focuses on the analysis and the design of electronic markets. Taking a holistic view of the conceptualization and realization of solutions, the research integrates the disciplines business administration, economics, computer science, and law. Topics of interest range from the implementation, quality assurance, and advancement of electronic markets to their integration into business processes and legal frameworks

    Operational Research: Methods and Applications

    Get PDF
    Throughout its history, Operational Research has evolved to include a variety of methods, models and algorithms that have been applied to a diverse and wide range of contexts. This encyclopedic article consists of two main sections: methods and applications. The first aims to summarise the up-to-date knowledge and provide an overview of the state-of-the-art methods and key developments in the various subdomains of the field. The second offers a wide-ranging list of areas where Operational Research has been applied. The article is meant to be read in a nonlinear fashion. It should be used as a point of reference or first-port-of-call for a diverse pool of readers: academics, researchers, students, and practitioners. The entries within the methods and applications sections are presented in alphabetical order. The authors dedicate this paper to the 2023 Turkey/Syria earthquake victims. We sincerely hope that advances in OR will play a role towards minimising the pain and suffering caused by this and future catastrophes

    K + K = 120 : Papers dedicated to LĂĄszlĂł KĂĄlmĂĄn and AndrĂĄs Kornai on the occasion of their 60th birthdays

    Get PDF

    Operational research:methods and applications

    Get PDF
    Throughout its history, Operational Research has evolved to include a variety of methods, models and algorithms that have been applied to a diverse and wide range of contexts. This encyclopedic article consists of two main sections: methods and applications. The first aims to summarise the up-to-date knowledge and provide an overview of the state-of-the-art methods and key developments in the various subdomains of the field. The second offers a wide-ranging list of areas where Operational Research has been applied. The article is meant to be read in a nonlinear fashion. It should be used as a point of reference or first-port-of-call for a diverse pool of readers: academics, researchers, students, and practitioners. The entries within the methods and applications sections are presented in alphabetical order

    Collected Papers (on Neutrosophic Theory and Applications), Volume VII

    Get PDF
    This seventh volume of Collected Papers includes 70 papers comprising 974 pages on (theoretic and applied) neutrosophics, written between 2013-2021 by the author alone or in collaboration with the following 122 co-authors from 22 countries: Mohamed Abdel-Basset, Abdel-Nasser Hussian, C. Alexander, Mumtaz Ali, Yaman Akbulut, Amir Abdullah, Amira S. Ashour, Assia Bakali, Kousik Bhattacharya, Kainat Bibi, R. N. Boyd, Ümit Budak, Lulu Cai, Cenap Özel, Chang Su Kim, Victor Christianto, Chunlai Du, Chunxin Bo, Rituparna Chutia, Cu Nguyen Giap, Dao The Son, Vinayak Devvrat, Arindam Dey, Partha Pratim Dey, Fahad Alsharari, Feng Yongfei, S. Ganesan, Shivam Ghildiyal, Bibhas C. Giri, Masooma Raza Hashmi, Ahmed Refaat Hawas, Hoang Viet Long, Le Hoang Son, Hongbo Wang, Hongnian Yu, Mihaiela Iliescu, Saeid Jafari, Temitope Gbolahan Jaiyeola, Naeem Jan, R. Jeevitha, Jun Ye, Anup Khan, Madad Khan, Salma Khan, Ilanthenral Kandasamy, W.B. Vasantha Kandasamy, Darjan KarabaĆĄević, Kifayat Ullah, Kishore Kumar P.K., Sujit Kumar De, Prasun Kumar Nayak, Malayalan Lathamaheswari, Luong Thi Hong Lan, Anam Luqman, Luu Quoc Dat, Tahir Mahmood, Hafsa M. Malik, Nivetha Martin, Mai Mohamed, Parimala Mani, Mingcong Deng, Mohammed A. Al Shumrani, Mohammad Hamidi, Mohamed Talea, Kalyan Mondal, Muhammad Akram, Muhammad Gulistan, Farshid Mofidnakhaei, Muhammad Shoaib, Muhammad Riaz, Karthika Muthusamy, Nabeela Ishfaq, Deivanayagampillai Nagarajan, Sumera Naz, Nguyen Dinh Hoa, Nguyen Tho Thong, Nguyen Xuan Thao, Noor ul Amin, Dragan Pamučar, Gabrijela Popović, S. Krishna Prabha, Surapati Pramanik, Priya R, Qiaoyan Li, Yaser Saber, Said Broumi, Saima Anis, Saleem Abdullah, Ganeshsree Selvachandran, Abdulkadir SengĂŒr, Seyed Ahmad Edalatpanah, Shahbaz Ali, Shahzaib Ashraf, Shouzhen Zeng, Shio Gai Quek, Shuangwu Zhu, Shumaiza, Sidra Sayed, Sohail Iqbal, Songtao Shao, Sundas Shahzadi, DragiĆĄa Stanujkić, Ćœeljko Stević, Udhayakumar Ramalingam, Zunaira Rashid, Hossein Rashmanlou, Rajkumar Verma, Luige Vlădăreanu, Victor Vlădăreanu, Desmond Jun Yi Tey, Selçuk Topal, Naveed Yaqoob, Yanhui Guo, Yee Fei Gan, Yingcang Ma, Young Bae Jun, Yuping Lai, Hafiz Abdul Wahab, Wei Yang, Xiaohong Zhang, Edmundas Kazimieras Zavadskas, Lemnaouar Zedam
    corecore