130,485 research outputs found
Recommended from our members
On the sustainability of web systems evolution
In the last twenty years, the evolution of web systems has been driven along three dimensions: the processes used to develop, evolve, maintain and re-engineer the systems themselves; the end products (the pages, content and links) of such processes; and finally the people dimension, with the extraordinary shift in how developers and users shape, interact and maintain the code and content that they put online. This paper reviews the questions that each of these dimensions has addressed in the past, and indicates which ones will need to be addressed in the future, in order for web system evolution to be sustainable. We show that the study on websites evolution has shifted from server- to client-side, focusing on better technologies and processes, and that the users becoming creators of content open several open questions, in particular the issue of credibility of the content created and the sustainability of such resources in the long term
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)
An open source collaboration infrastructure for Calibre
The study of Free and Open Source (Libre) software and the benefits provided by its processes and products to collaborative software development has been somewhat ad hoc. Each project wishing to use tools and techniques drawn from Libre software conducts its own research, thus duplicating effort, consequently there is a lack of established community practice on which new projects can draw. Long-standing intuitive theories of Libre development lack empirical validation. The long-term goal is to provide a resource to guide the evolution of Libre-software projects, from inception to maturity. The CALIBRE project is a co-ordination action aiming to address these issues through its research, its wider educational goals, and with an open invitation to the community to contribute. To succeed, the CALIBRE project needs an effective technological infrastructure which must support internal and external collaboration, communication and contribution to the project.
The requirements of CALIBRE are similar to those of a Libre software project; this suggests that adopting a SourceForge-style environment which will be incrementally enhanced with further specialised tools as the requirements become better understood will be a sensible strategy
Supporting collaboration within the eScience community
Collaboration is a core activity at the heart of large-scale co-
operative scientific experimentation. In order to support the
emergence of Grid-based scientific collaboration, new models of
e-Science working methods are needed.
Scientific collaboration involves production and manipulation of
various artefacts. Based on work done in the software
engineering field, this paper proposes models and tools which
will support the representation and production of such artefacts.
It is necessary to provide facilities to classify, organise, acquire,
process, share, and reuse artefacts generated during collaborative
working. The concept of a "design space" will be used to
organise scientific design and the composition of experiments,
and methods such as self-organising maps will be used to support
the reuse of existing artefacts.
It is proposed that this work can be carried out and evaluated in
the UK e-Science community, using an "industry as laboratory"
approach to the research, building on the knowledge, expertise,
and experience of those directly involved in e-Science
Environments to support collaborative software engineering
With increasing globalisation of software production, widespread use of
software components, and the need to maintain software systems over long
periods of time, there has been a recognition that better support
for collaborative working is needed by software engineers.
In this paper, two approaches to developing
improved system support for collaborative software engineering are
described: GENESIS and OPHELIA.
As both projects are moving towards industrial trials and eventual publicreleases of their systems, this exercise of comparing and
contrasting our approaches has provided the basis for future
collaboration between our projects particularly in carrying out
comparative studies of our approaches in practical use
Support for collaborative component-based software engineering
Collaborative system composition during design has been poorly supported by traditional CASE tools (which have usually concentrated on supporting individual projects) and almost exclusively focused on static composition. Little support for maintaining large distributed collections of heterogeneous software components across a number of projects has been developed. The CoDEEDS project addresses the collaborative determination, elaboration, and evolution of design spaces that describe both static and dynamic compositions of software components from sources such as component libraries, software service directories, and reuse repositories. The GENESIS project has focussed, in the development of OSCAR, on the creation and maintenance of large software artefact repositories. The most recent extensions are explicitly addressing the provision of cross-project global views of large software collections and historical views of individual artefacts within a collection. The long-term benefits of such support can only be realised if OSCAR and CoDEEDS are widely adopted and steps to facilitate this are described.
This book continues to provide a forum, which a recent book, Software Evolution with UML and XML, started, where expert insights are presented on the subject.
In that book, initial efforts were made to link together three current phenomena: software evolution, UML, and XML. In this book, focus will be on the practical side of linking them, that is, how UML and XML and their related methods/tools can assist software evolution in practice.
Considering that nowadays software starts evolving before it is delivered, an apparent feature for software evolution is that it happens over all stages and over all aspects.
Therefore, all possible techniques should be explored. This book explores techniques based on UML/XML and a combination of them with other techniques (i.e., over all techniques from theory to tools).
Software evolution happens at all stages. Chapters in this book describe that software evolution issues present at stages of software architecturing, modeling/specifying,
assessing, coding, validating, design recovering, program understanding, and reusing.
Software evolution happens in all aspects. Chapters in this book illustrate that software evolution issues are involved in Web application, embedded system, software repository, component-based development, object model, development environment, software metrics, UML use case diagram, system model, Legacy system, safety critical system, user interface, software reuse, evolution management, and variability modeling. Software evolution needs to be facilitated with all possible techniques. Chapters in this book demonstrate techniques, such as formal methods, program transformation,
empirical study, tool development, standardisation, visualisation, to control system changes to meet organisational and business objectives in a cost-effective way. On the journey of the grand challenge posed by software evolution, the journey that we have to make, the contributory authors of this book have already made further
advances
Supporting collaborative grid application development within the escience community
The systemic representation and organisation of software artefacts, e.g. specifications, designs, interfaces, and implementations, resulting from the development of large distributed systems from software components have been addressed by our research within the Practitioner and AMES projects [1,2,3,4]. Without appropriate representations and organisations, large collections of existing software are not amenable to the activities of software reuse and software maintenance, as these activities are likely to be severely hindered by the difficulties of understanding the software applications and their associated components. In both of these projects, static analysis of source code and other development artefacts, where available, and subsequent application of reverse engineering techniques were successfully used to develop a more comprehensive understanding of the software applications under study [5,6]. Later research addressed the maintenance of a component library in the context of component-based software product line development and maintenance [7]. The classic software decompositions, horizontal and vertical, proposed by Goguen [8] influenced all of this research. While they are adequate for static composition, they fail to address the dynamic aspects of composing large distributed software applications from components especially where these include software services. The separation of component co-ordination concerns from component functionality proposed in [9] offers a partial solution
Fault Detection Effectiveness of Metamorphic Relations Developed for Testing Supervised Classifiers
In machine learning, supervised classifiers are used to obtain predictions
for unlabeled data by inferring prediction functions using labeled data.
Supervised classifiers are widely applied in domains such as computational
biology, computational physics and healthcare to make critical decisions.
However, it is often hard to test supervised classifiers since the expected
answers are unknown. This is commonly known as the \emph{oracle problem} and
metamorphic testing (MT) has been used to test such programs. In MT,
metamorphic relations (MRs) are developed from intrinsic characteristics of the
software under test (SUT). These MRs are used to generate test data and to
verify the correctness of the test results without the presence of a test
oracle. Effectiveness of MT heavily depends on the MRs used for testing. In
this paper we have conducted an extensive empirical study to evaluate the fault
detection effectiveness of MRs that have been used in multiple previous studies
to test supervised classifiers. Our study uses a total of 709 reachable mutants
generated by multiple mutation engines and uses data sets with varying
characteristics to test the SUT. Our results reveal that only 14.8\% of these
mutants are detected using the MRs and that the fault detection effectiveness
of these MRs do not scale with the increased number of mutants when compared to
what was reported in previous studies.Comment: 8 pages, AITesting 201
- …