61 research outputs found
Lessons learnt from using DSLs for automated software testing
Domain Specific Languages (DSLs) provide a means
of unambiguously expressing concepts in a particular domain.
Although they may not refer to it as such, companies build
and maintain DSLs for software testing on a day-to-day basis,
especially when they define test suites using the Gherkin language.
However, although the practice of specifying and automating test
cases using the Gherkin language and related technologies such
as Cucumber has become mainstream, the curation of such languages presents a number of challenges. In this paper we discuss
lessons learnt from five case studies on industry systems, two
involving the use of Gherkin-type syntax and another three case
studies using more rigidly defined language grammars. Initial
observations indicate that the likelihood of success of such efforts
is increased if one manages to use an approach which separates
the concerns of domain experts who curate the language, users
who write scripts with the language, and engineers who wire
the language into test automation technologies thus producing
executable test code. We also provide some insights into desirable
qualities of testing DSLs in different contexts.peer-reviewe
LARVA - safer monitoring of real-time Java programs (tool paper)
The use of runtime verification, as a lightweight approach to guarantee properties of systems, has been increasingly employed on real-life software. In this paper, we present the tool LARVA, for the runtime verification of properties of Java programs, including real-time properties. Properties can be expressed in a number of notations, including timed-automata enriched with stopwatches, Lustre, and a subset of the duration calculus. The tool has been successfully used on a number of case-studies, including an industrial system handling financial transactions. LARVA also performs analysis of real-time properties, to calculate, if possible, an upper-bound on the memory and temporal overheads induced by monitoring. Moreover, through property analysis, LARVA assesses the impact of slowing down the system through monitoring, on the satisfaction of the properties.peer-reviewe
Engineering adaptive user interfaces using monitoring-oriented programming
User interfaces which adapt based on usage patterns, for example based on frequency of use of certain features, have been proposed as a means of limiting the complexity of the user interface without specialising it unnecessarily to particular user profiles. However, from a software engineering perspective, adaptive user interfaces pose a challenge in code structuring, and separation of the different layers of user interface and application state and logic can introduce interdependencies which make software development and maintenance more challenging. In this paper we explore the use of monitoring-oriented programming to add adaptive features to user interfaces, an approach which has been touted as a means of separating certain layers of logic from the main system. We evaluate the approach both using standard software engineering measures and also through a user acceptance experiment - by having a number of developers use the proposed approach to add adaptation logic to an existing application.peer-reviewe
Mapping the landscape: Peer review in computing education research
Peer review is a mainstay of academic publication – indeed, it is the peer-review process that provides much of the publications’ credibility. As the number of computing education conferences and the number of submissions increase, the need for reviewers grows. This report does not attempt to set standards for reviewing; rather, as a first step toward meeting the need for well qualified reviewers, it presents an overview of the ways peer review is used in various venues, both inside computing education and, for com- parison, in closely-related areas outside our field. It considers four key components of peer review in some depth: criteria, the review process, roles and responsibilities, and ethics and etiquette. To do so, it draws on relevant literature, guidance and forms associated with peer review, interviews with journal editors and conference chairs, and a limited survey of the computing education research community. In addition to providing an overview of practice, this report identifies a number of themes running through the discourse that have relevance for decision making about how best to conduct peer review for a given venue
Toward High Performance Computing Education
High Performance Computing (HPC) is the ability to process data and perform complex calculations at extremely high speeds. Current HPC platforms can achieve calculations on the order of quadrillions of calculations per second with quintillions on the horizon. The past three decades witnessed a vast increase in the use of HPC across different scientific, engineering and business communities, for example, sequencing the genome, predicting climate changes, designing modern aerodynamics, or establishing customer preferences. Although HPC has been well incorporated into science curricula such as bioinformatics, the same cannot be said for most computing programs. This working group will explore how HPC can make inroads into computer science education, from the undergraduate to postgraduate levels. The group will address research questions designed to investigate topics such as identifying and handling barriers that inhibit the adoption of HPC in educational environments, how to incorporate HPC into various curricula, and how HPC can be leveraged to enhance applied critical thinking and problem solving skills. Four deliverables include: (1) a catalog of core HPC educational concepts, (2) HPC curricula for contemporary computing needs, such as in artificial intelligence, cyberanalytics, data science and engineering, or internet of things, (3) possible infrastructures for implementing HPC coursework, and (4) HPC-related feedback to the CC2020 project
Goal-oriented requirements engineering: from system objectives to UML models to precise software specifications
This tutorial presents a comprehensive overview of state-of-the-art techniques for eliciting, modeling, specifying, analyzing and documenting high-quality system requirements.Anglai
- …