26 research outputs found
Software Sustainability: The Modern Tower of Babel
<p>The aim of this paper is to explore the emerging definitions of software sustainability from the field of software engineering in order to contribute to the question, what is software sustainability?</p
Return of the Great Spaghetti Monster : Learnings from a Twelve-Year Adventure in Web Software Development
The widespread adoption of the World Wide Web has fundamentally changed the landscape of software development. Only ten years ago, very few developers would write software for the Web, let alone consider using JavaScript or other web technologies for writing any serious software applications. In this paper, we reflect upon a twelve-year adventure in web development that began with the development of the Lively Kernel system at Sun Microsystems Labs in 2006. Back then, we also published some papers that identified important challenges in web-based software development based on established software engineering principles. We will revisit our earlier findings and compare the state of the art in web development today to our earlier learnings, followed by some reflections and suggestions for the road forward.Peer reviewe
Software Sustainability: The Modern Tower of Babel
The development of sustainable software has been identified as one of the key challenges in the field of computational science and engineering. However, there is currently no agreed definition of the concept. Current definitions range from a composite, non-functional requirement to simply an emergent property. This lack of clarity leads to confusion, and potentially to ineffective and inefficient efforts to develop sustainable software systems. The aim of this paper is to explore the emerging definitions of software sustainability from the field of software engineering in order to contribute to the question, what is software sustainability? The preliminary analysis suggests that the concept of software sustainability is complex and multifaceted with any consensus towards a shared definition within the field of software engineering yet to be achieved
applying design patterns to remove software performance antipatterns a preliminary approach
Abstract: Patterns and antipatterns represent powerful instruments in the hands of software designers, for improving the quality of software systems. A large variety of design patterns arose since decades, as well as several performance antipatterns have been defined. In this paper we propose a preliminary approach for antipattern-based refactoring of software systems, driven by design patterns application. The approach is focused on refactoring software artifacts (i.e., models, code) by applying design patterns, with the aim of removing possible performance antipatterns occurring on such artifacts. Based on our approach, design patterns are ranked in order to drive the refactoring choice. We also provide an illustrative example as a preliminary validation of our approach, showing how the ranking method works over three design patterns for removing the Empty Semi-Trucks performance antipattern, and we finally identify future research directions of our work
TESL: A Model with Metric Time for Modeling and Simulation
Real-time and distributed systems are increasingly finding their way into critical embedded systems. On one side, computations need to be achieved within specific time constraints. On the other side, computations may be spread among various units which are not necessarily sharing a global clock. Our study is focused on a specification language - named TESL - used for coordinating concurrent models with timed constraints. We explore various questions related to time when modeling systems, and aim at showing that TESL can be introduced as a reasonable balance of expressiveness and decidability to tackle issues in complex systems. This paper introduces (1) an overview of the TESL language and its main properties (polychrony, stutter-invariance, coinduction for simulation), (2) extensions to the language and their applications
A system of customer co-creation for new product development of digital products with a pilot study of the Swiss media industry
In the age of digitisation, the media industry is faced with declining advertising revenues. Therefore, the focus on the development of new digital products is a key element to survive in such a fast-changing market and to increase the innovation performance. One of the most important elements thereby is the involvement of customers as co-creators in the new product development (NPD) process, so that new digital products are developed that are in demand on the market. However, the process of how companies turn external knowledge from customers into knowledge creation for generating new ideas and the development of innovative products has not been analysed. This pilot study, which presents an initial system of customer co-creation for NPD of digital products from the literature and searches for similarities and dissimilarities through an abductive qualitative data analysis from interviews with three managers in three different Swiss media companies, explores this unresolved research gap. The system of this study is based on an overarching phase model, which is derived from Application Lifecycle Management (ALM). The process anchored in it, which focuses on the customer co creation of digital products, integrates process elements from the two user-centered approaches, namely User Centered Design (UCD) and Design Thinking (DT). The results from the interviews show that the system is largely in line with the NPD process procedures in the three media companies. It was found that customers can be involved everywhere in the NPD process, but that this is not yet implemented in practice. However, as the future ambition in media companies is to become even more customer centric, the proposed system in this study is very promising
DAG-Based Attack and Defense Modeling: Don't Miss the Forest for the Attack Trees
This paper presents the current state of the art on attack and defense
modeling approaches that are based on directed acyclic graphs (DAGs). DAGs
allow for a hierarchical decomposition of complex scenarios into simple, easily
understandable and quantifiable actions. Methods based on threat trees and
Bayesian networks are two well-known approaches to security modeling. However
there exist more than 30 DAG-based methodologies, each having different
features and goals. The objective of this survey is to present a complete
overview of graphical attack and defense modeling techniques based on DAGs.
This consists of summarizing the existing methodologies, comparing their
features and proposing a taxonomy of the described formalisms. This article
also supports the selection of an adequate modeling technique depending on user
requirements