114,787 research outputs found

    Structured Review of the Evidence for Effects of Code Duplication on Software Quality

    Get PDF
    This report presents the detailed steps and results of a structured review of code clone literature. The aim of the review is to investigate the evidence for the claim that code duplication has a negative effect on code changeability. This report contains only the details of the review for which there is not enough place to include them in the companion paper published at a conference (Hordijk, Ponisio et al. 2009 - Harmfulness of Code Duplication - A Structured Review of the Evidence)

    Evaluating Software Architectures: Development Stability and Evolution

    Get PDF
    We survey seminal work on software architecture evaluationmethods. We then look at an emerging class of methodsthat explicates evaluating software architectures forstability and evolution. We define architectural stabilityand formulate the problem of evaluating software architecturesfor stability and evolution. We draw the attention onthe use of Architectures Description Languages (ADLs) forsupporting the evaluation of software architectures in generaland for architectural stability in specific

    A Systematic Aspect-Oriented Refactoring and Testing Strategy, and its Application to JHotDraw

    Full text link
    Aspect oriented programming aims at achieving better modularization for a system's crosscutting concerns in order to improve its key quality attributes, such as evolvability and reusability. Consequently, the adoption of aspect-oriented techniques in existing (legacy) software systems is of interest to remediate software aging. The refactoring of existing systems to employ aspect-orientation will be considerably eased by a systematic approach that will ensure a safe and consistent migration. In this paper, we propose a refactoring and testing strategy that supports such an approach and consider issues of behavior conservation and (incremental) integration of the aspect-oriented solution with the original system. The strategy is applied to the JHotDraw open source project and illustrated on a group of selected concerns. Finally, we abstract from the case study and present a number of generic refactorings which contribute to an incremental aspect-oriented refactoring process and associate particular types of crosscutting concerns to the model and features of the employed aspect language. The contributions of this paper are both in the area of supporting migration towards aspect-oriented solutions and supporting the development of aspect languages that are better suited for such migrations.Comment: 25 page

    The characteristics of the Computer Supported Collaborative Learning (CSCL) through Moodle: a view on students’ knowledge construction process

    Get PDF
    Computer Supported Collaborative Learning (CSCL) is based on the pedagogical process of observation where students will learn progressively through active group interaction. CSCL is an emerging branch of the learning sciences concerned with studying on how people can learn together with the help of computers. Thus, this research was conducted to measure the characteristics of the CSCL learning environment through Moodle that assists the process of students’ knowledge construction during the teaching and learning process. The CSCL learning environment is an educational learning system which develops to help the teachers and students in managing School Based Assessment (SBA) in selected secondary school in Malaysia. Samples involved two groups of students and two Technical and Vocational Education and Training (TVET) teachers from two different schools. A total of 61 students, who were taught using CSCL approach through Moodle, underwent the process of teaching and learning using their school computer laboratory. The finding shows that the characteristics of the CSCL learning approach that used in this learning environment for the first group are at a high level with overall mean of 4.17 and the second group at moderate level with overall mean of 3.62. The result proves that the characteristics of the CSCL learning environment help students to build their knowledge during teaching and learning process at the high level with an overall mean score of 3.87. The mean of these two groups may vary according to students’ background, as well as learning environment facilities. Although, CSCL leads to students’ self-development, improving learning quality, sharing knowledge and assisting students’ in the process of building their knowledge, implementation of CSCL must first considering the technology relevant facilities, especially computer laboratory and internet accessibility in school. The implication is that designing a good CSCL must also taking into account the targeted users’ cultural background and socioeconomic factor

    Proactive Empirical Assessment of New Language Feature Adoption via Automated Refactoring: The Case of Java 8 Default Methods

    Full text link
    Programming languages and platforms improve over time, sometimes resulting in new language features that offer many benefits. However, despite these benefits, developers may not always be willing to adopt them in their projects for various reasons. In this paper, we describe an empirical study where we assess the adoption of a particular new language feature. Studying how developers use (or do not use) new language features is important in programming language research and engineering because it gives designers insight into the usability of the language to create meaning programs in that language. This knowledge, in turn, can drive future innovations in the area. Here, we explore Java 8 default methods, which allow interfaces to contain (instance) method implementations. Default methods can ease interface evolution, make certain ubiquitous design patterns redundant, and improve both modularity and maintainability. A focus of this work is to discover, through a scientific approach and a novel technique, situations where developers found these constructs useful and where they did not, and the reasons for each. Although several studies center around assessing new language features, to the best of our knowledge, this kind of construct has not been previously considered. Despite their benefits, we found that developers did not adopt default methods in all situations. Our study consisted of submitting pull requests introducing the language feature to 19 real-world, open source Java projects without altering original program semantics. This novel assessment technique is proactive in that the adoption was driven by an automatic refactoring approach rather than waiting for developers to discover and integrate the feature themselves. In this way, we set forth best practices and patterns of using the language feature effectively earlier rather than later and are able to possibly guide (near) future language evolution. We foresee this technique to be useful in assessing other new language features, design patterns, and other programming idioms
    • 

    corecore