114,787 research outputs found
Structured Review of the Evidence for Effects of Code Duplication on Software Quality
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
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
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
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
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
- âŠ