258,163 research outputs found
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
Recommended from our members
Artificial Intelligence And Big Data Technologies To Close The Achievement Gap.
We observe achievement gaps even in rich western countries, such as the UK, which in principle have the resources as well as the social and technical infrastructure to provide a better deal for all learners. The reasons for such gaps are complex and include the social and material poverty of some learners with their resulting other deficits, as well as failure by government to allocate sufficient resources to remedy the situation. On the supply side of the equation, a single teacher or university lecturer, even helped by a classroom assistant or tutorial assistant, cannot give each learner the kind of one-to-one attention that would really help to boost both their motivation and their attainment in ways that might mitigate the achievement gap.
In this chapter Benedict du Boulay, Alexandra Poulovassilis, Wayne Holmes, and Manolis Mavrikis argue that we now have the technologies to assist both educators and learners, most commonly in science, technology, engineering and mathematics subjects (STEM), at least some of the time. We present case studies from the fields of Artificial Intelligence in Education (AIED) and Big Data. We look at how they can be used to provide personalised support for students and demonstrate that they are not designed to replace the teacher. In addition, we also describe tools for teachers to increase their awareness and, ultimately, free up time for them to provide nuanced, individualised support even in large cohorts
Towards a Tool-based Development Methodology for Pervasive Computing Applications
Despite much progress, developing a pervasive computing application remains a
challenge because of a lack of conceptual frameworks and supporting tools. This
challenge involves coping with heterogeneous devices, overcoming the
intricacies of distributed systems technologies, working out an architecture
for the application, encoding it in a program, writing specific code to test
the application, and finally deploying it. This paper presents a design
language and a tool suite covering the development life-cycle of a pervasive
computing application. The design language allows to define a taxonomy of
area-specific building-blocks, abstracting over their heterogeneity. This
language also includes a layer to define the architecture of an application,
following an architectural pattern commonly used in the pervasive computing
domain. Our underlying methodology assigns roles to the stakeholders, providing
separation of concerns. Our tool suite includes a compiler that takes design
artifacts written in our language as input and generates a programming
framework that supports the subsequent development stages, namely
implementation, testing, and deployment. Our methodology has been applied on a
wide spectrum of areas. Based on these experiments, we assess our approach
through three criteria: expressiveness, usability, and productivity
Addictive links: The motivational value of adaptive link annotation
Adaptive link annotation is a popular adaptive navigation support technology. Empirical studies of adaptive annotation in the educational context have demonstrated that it can help students to acquire knowledge faster, improve learning outcomes, reduce navigational overhead, and encourage non-sequential navigation. In this paper, we present our exploration of a lesser known effect of adaptive annotation, its ability to significantly increase students' motivation to work with non-mandatory educational content. We explored this effect and confirmed its significance in the context of two different adaptive hypermedia systems. The paper presents and discusses the results of our work
Recommended from our members
Sharing practice, problems and solutions for institutional change
This chapter critiques the roles of different forms of representation of practice as part of an institutional change process. It discusses how these representations can be used both to design and to share learning activities at the various levels of decision-making in a university. We illustrate our arguments with empirical data gathered on change processes associated with an institution-wide change programme: the introduction of a new virtual learning environment (VLE). In particular, we describe a case study of the introduction of the VLE tools in a business course. We focus on two particular forms of representations to describe the essence of the innovation: a pedagogical pattern and a visual learning design. We argue that pedagogical patterns and learning design have emerged as parallel approaches to describing practice in recent years. Despite their very different origins, both provide complementary representations, which emphasize different aspects of the practice being described. We are attempting to combine these approaches. We briefly outline the Open University Learning Design initiative, of which this work is part, and describe its key underpinning philosophies. We believe our approach provides a vehicle for enabling a better articulation of design principles and the discussion of issues concerning the re-use of educational resources and activities
Towards a re-engineering method for web services architectures
Recent developments in Web technologies â in particular
through the Web services framework â have greatly enhanced the flexible and interoperable implementation of service-oriented software architectures. Many older Web-based and other distributed software systems will be re-engineered to a Web services-oriented platform. Using an advanced
e-learning system as our case study, we investigate central aspects of a re-engineering approach for the Web services platform. Since our aim is to provide components of the legacy system also as services in the new platform, re-engineering to suit the new development paradigm is as important as re-engineering to suit the new architectural requirements
CompendiumLD â a tool for effective, efficient and creative learning design
Developers and teachers go through a complex decision making process when designing new learning activities â working towards an effective pedagogical mix, combining resources, tools, student and tutor support. This paper describes CompendiumLD, a prototype tool we have built to support practitioners through the process of designing learning activities. We describe how the tool fits into our vision of a dynamic, interactive set of resources and system tools to support effective, efficient and creative learning design. It describes CompendiumLD's features and explains the rationale behind their development. It shows how the tool is intended to aid designers make choices, and plan developments, facilitating creativity and efficiency in the design process. In our conclusions we consider how such a system can support the design of effective learning activities
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
Ontology-based patterns for the integration of business processes and enterprise application architectures
Increasingly, enterprises are using Service-Oriented Architecture (SOA) as an approach to Enterprise Application Integration (EAI). SOA has the potential to bridge
the gap between business and technology and to improve the reuse of existing applications and the interoperability with new ones. In addition to service architecture
descriptions, architecture abstractions like patterns and styles capture design knowledge and allow the reuse of successfully applied designs, thus improving the quality of
software. Knowledge gained from integration projects can be captured to build a repository of semantically enriched, experience-based solutions. Business patterns identify the interaction and structure between users, business processes, and data.
Specific integration and composition patterns at a more technical level address enterprise application integration and capture reliable architecture solutions. We use an
ontology-based approach to capture architecture and process patterns. Ontology techniques for pattern definition, extension and composition are developed and their
applicability in business process-driven application integration is demonstrated
- âŠ