26,765 research outputs found

    Studying and Assisting the Practice of Java and C# Exception Handling

    Get PDF
    Programming languages provide features that handle exceptions. These features separate error-handling from regular code and aim to assist software maintenance. Nevertheless, their misuse can cause reliability degradation or even catastrophic failures. Prior studies on exception handling aim to understand the practices of exception handling and their anti-patterns. However, little knowledge was shared about the prevalence of these anti-patterns, nor the relationship between exception handling practices and software quality. In this thesis, I, first, study the exception handling features by enriching the knowledge of handling code with a flow analysis of exceptions. Second, I investigate the prevalence of exception handling anti-patterns. Finally, I investigate the relationship between software quality and: (i) flow characteristics and (ii) 17 handling anti-patterns. Our case study is conducted with over 10K handling blocks, and over 77K related flows from 16 Java and C# projects. I built statistical models of the chance of post-release defects using traditional software metrics and exception handling metrics. Our case study results show the complexity of exception handling. Moreover, I found that although exception handling anti-patterns widely exist in all of our subjects, only a few anti-patterns can be commonly identified. Finally, I conclude that exception flow characteristics in Java projects and some exception handling anti-patterns can provide significant explanatory power to the chance of post-release defects

    How do developers fix issues and pay back technical debt in the Apache ecosystem?

    Get PDF
    During software evolution technical debt (TD) follows a constant ebb and flow, being incurred and paid back, sometimes in the same day and sometimes ten years later. There have been several studies in the literature investigating how technical debt in source code accumulates during time and the consequences of this accumulation for software maintenance. However, to the best of our knowledge there are no large scale studies that focus on the types of issues that are fixed and the amount of TD that is paid back during software evolution. In this paper we present the results of a case study, in which we analyzed the evolution of fifty-seven Java open-source software projects by the Apache Software Foundation at the temporal granularity level of weekly snapshots. In particular, we focus on the amount of technical debt that is paid back and the types of issues that are fixed. The findings reveal that a small subset of all issue types is responsible for the largest percentage of TD repayment and thus, targeting particular violations the development team can achieve higher benefits

    Italy (Year in Review)

    Get PDF

    Theoretical exploration of construction site management practices

    Get PDF
    The construction industry is vital to the existence of other industrial sector and provides the environment under which other sectors operate. It is the largest industry and contributes about 10% of the gross national product (GNP) in industrial-ized countries. It also plays a major role in development and reaching the goals of society. The current study aims to establish the factors required in the manage-ment of good site management on construction sites in Swaziland. The study is conducted with reference to existing theoretical literature, published and un-published research. The study is mainly a literature review/survey on site man-agement practices on construction sites. Findings emanating from the study reveal that realistic studies have identified a number of problems on site management practices such as management and administration problems, technical problems and communication problems. It also indicates that site management involves a mixture of activities which turn basic sources to a finished product. The study presents a strong background on site management practices on construction sites in the Swaziland construction industry

    Changing Course: Revisiting Instream Flow Rulemaking in Washington State Following \u3ci\u3eSwinomish v. Ecology\u3c/i\u3e

    Get PDF
    Since the adoption of Washington’s Water Resources Act in 1971, legal recognition of instream water uses to preserve fish, wildlife, and other environmental values have become firmly entrenched in Washington water law. By establishing “instream flow rules,” rules that require a certain amount of water to be left in streams before water may be withdrawn for any new uses, the Washington State Department of Ecology (Ecology) must protect the environment while also managing water to achieve “maximum net benefits” for the people of Washington State. Ecology may only allow new withdrawals of water that will impair established instream flows if it finds that “overriding considerations of the public interest” will be served. In two recent cases, Swinomish Indian Tribal Community v. Washington State Department of Ecology and Foster v. Washington State Department of Ecology, the Washington State Supreme Court invalidated Ecology’s reliance on this statutory exception in authorizing water rights that will impair instream flows, instead, interpreting the language of the exception very narrowly. This Comment analyzes instream flow rulemaking in light of these cases, concluding that the decisions constrain Ecology’s ability to adapt existing rules to changing conditions, and that current law is therefore inadequate to address future challenges, including limited water availability and climate change. To better address these challenges, instream flow rules should be both more precise and more responsive to future conditions. To this end, Washington law should require instream flow rules to conform to a “best available science” standard tailored toward achieving healthy fish populations. In addition, investment in infrastructure for Washington’s existing Trust Water Rights Program to help expand water banking activities throughout the state, is needed to facilitate market transfers of water to supply unmet instream flows and new out-of-stream uses

    "The Shift from Belt Conveyor Line to Work-cell Based Assembly Systems to Cope with Increasing Demand Variation and Fluctuation in The Japanese Electronics Industries"

    Get PDF
    As consumption patterns become increasingly sophisticated and manufacturers strive to improve their competitiveness, not only offering higher quality at competitive costs, but also by providing broader mix of products, and keeping it attractive by launching successively new products, the turbulence in the markets has intensified. This has impelled leading manufacturers to search the development of alternative production systems supposed to enable them operate more responsively. This paper discusses the trend of abandoning the strategy of relying on factory automation technologies and conveyor-based assembly lines, and shifting towards more human-centered production systems based on autonomous work-cells, observed in some industries in Japan (e.g. consumer electronics, computers, printers) since mid-1990s. The purpose of this study is to investigate this trend which is seemingly uneconomic to manufacturers established in a country where labor costs are among the highest in the world, so as to contribute in the elucidation of its background and rationality. This work starts with a theoretical review linking the need to cope with nowadays' market turbulence with the issue of nurturing more agile organizations. Then, a general view of the diffusion trend of work-cell based assembly systems in Japanese electronics industries is presented, and some empirical facts gathered in field studies conducted in Japan are discussed. It is worthy mentioning that the abandonment of short cycle-time tasks performed along conveyor lines and the organization of workforce around work-cells do not imply a rejection of the lean production paradigm and its distinctive process improvement approach. High man-hour productivity is realized as a key goal to justify the implementation of work-cells usually devised to run in longer cycle-time, and the moves towards this direction has been strikingly influenced by the kaizen philosophy and techniques that underline typical initiatives of lean production system implementation. Finally, it speculates that even though the subject trend is finding wide diffusion in the considered industries, it should not be regarded as a panacea. In industries such as manufacturing of autoparts, despite the notable product diversification observed in the automobile market, its circumstances have still allowed the firms to rely on capital-intensive process, and this has sustained the development of advanced manufacturing technologies that enable the agile implementation and re-configuration of highly automated assembly lines.

    Are Multi-language Design Smells Fault-prone? An Empirical Study

    Full text link
    Nowadays, modern applications are developed using components written in different programming languages. These systems introduce several advantages. However, as the number of languages increases, so does the challenges related to the development and maintenance of these systems. In such situations, developers may introduce design smells (i.e., anti-patterns and code smells) which are symptoms of poor design and implementation choices. Design smells are defined as poor design and coding choices that can negatively impact the quality of a software program despite satisfying functional requirements. Studies on mono-language systems suggest that the presence of design smells affects code comprehension, thus making systems harder to maintain. However, these studies target only mono-language systems and do not consider the interaction between different programming languages. In this paper, we present an approach to detect multi-language design smells in the context of JNI systems. We then investigate the prevalence of those design smells. Specifically, we detect 15 design smells in 98 releases of nine open-source JNI projects. Our results show that the design smells are prevalent in the selected projects and persist throughout the releases of the systems. We observe that in the analyzed systems, 33.95% of the files involving communications between Java and C/C++ contains occurrences of multi-language design smells. Some kinds of smells are more prevalent than others, e.g., Unused Parameters, Too Much Scattering, Unused Method Declaration. Our results suggest that files with multi-language design smells can often be more associated with bugs than files without these smells, and that specific smells are more correlated to fault-proneness than others

    ChimpCheck: Property-Based Randomized Test Generation for Interactive Apps

    Full text link
    We consider the problem of generating relevant execution traces to test rich interactive applications. Rich interactive applications, such as apps on mobile platforms, are complex stateful and often distributed systems where sufficiently exercising the app with user-interaction (UI) event sequences to expose defects is both hard and time-consuming. In particular, there is a fundamental tension between brute-force random UI exercising tools, which are fully-automated but offer low relevance, and UI test scripts, which are manual but offer high relevance. In this paper, we consider a middle way---enabling a seamless fusion of scripted and randomized UI testing. This fusion is prototyped in a testing tool called ChimpCheck for programming, generating, and executing property-based randomized test cases for Android apps. Our approach realizes this fusion by offering a high-level, embedded domain-specific language for defining custom generators of simulated user-interaction event sequences. What follows is a combinator library built on industrial strength frameworks for property-based testing (ScalaCheck) and Android testing (Android JUnit and Espresso) to implement property-based randomized testing for Android development. Driven by real, reported issues in open source Android apps, we show, through case studies, how ChimpCheck enables expressing effective testing patterns in a compact manner.Comment: 20 pages, 21 figures, Symposium on New ideas, New Paradigms, and Reflections on Programming and Software (Onward!2017
    • 

    corecore