1,478,069 research outputs found
Design Principles in Architectural Evolution: a Case Study
We wish to investigate how structural design principles are used in practice, in order to assess the utility and relevance of such principles to the maintenance of large, complex, long-lived, successful systems. In this paper we take Eclipse as the case study and check whether its architecture follows, throughout multiple releases, some principles proposed in the literature
A theory of monitors
We develop a behavioural theory for monitors — software entities that passively analyse the runtime behaviour of systems so as to infer properties about them. First, we extend the monitor language and instrumentation relation of [17] to handle piCalculus process monitoring. We then identify contextual behavioural preorders that allow us to re-late monitors according to criteria defined over monitored executions of piCalculus processes. Subsequently, we develop alternative monitor pre-orders that are more tractable, and prove full-abstraction for the latter alternative preorders with respect to the contextual preorders.peer-reviewe
Towards an information driven software development life cycle
Although software engineering has matured greatly over the years, a large number of ICT projects continue to fail. Studies continue to identify non-technical issues such as poor communication, shifting requirements and poor executive involvement as the main causes of these failures. This paper identifies such well known causes and poses the question as to why currently available software development life cycles fall short of dealing with them. Drawing on results from a research exercise carried out by the authors, a link is made between the quality of information used throughout the development life cycle and the quality of the resultant product. Consequently, it is proposed that organisations knowingly or unknowingly maintain a knowledge context and the quality of this knowledge context has direct impact on product quality. Furthermore, it is proposed that a software development life cycle be developed in which participants do not focus explicitly on the traditional phases of software development. Rather, a conscious decision is made to focus instead on information which is being created, manipulated and utilised throughout the lifetime of a product. If a link can be established between the quality of the knowledge context and the quality of a finished product, then it is sound to argue that if one nurtures a high quality knowledge context, a high- quality product will naturally follow.peer-reviewe
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
International conference on software engineering and knowledge engineering: Session chair
The Thirtieth International Conference on Software Engineering and Knowledge Engineering (SEKE 2018) will be held at the Hotel Pullman, San Francisco Bay, USA, from July 1 to July 3, 2018. SEKE2018 will also be dedicated in memory of Professor Lofti Zadeh, a great scholar, pioneer and leader in fuzzy sets theory and soft computing.
The conference aims at bringing together experts in software engineering and knowledge engineering to discuss on relevant results in either software engineering or knowledge engineering or both. Special emphasis will be put on the transference of methods between both domains. The theme this year is soft computing in software engineering & knowledge engineering. Submission of papers and demos are both welcome
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
- …