Conference PaperPDF Available

Managing volatile requirements in web applications

Authors:
  • University of Rome Unitelma Sapienza, Rome, Italy

Abstract

Web applications allow business to offer services or products to numerous users with different culture, context, and needs. There are situations where applications must adapt to unforeseen and temporary business requirements, such as a one-off market campaign to launch a new product, beta features for engaging users, or disaster solidarity features that remain in the application for a period of time. In this paper, we summarize an approach for dealing with this sort of volatile requirements and present challenges in the research field that must be addressed.
A preview of the PDF is not available
Article
Nowadays, end-users are able to adapt Web applications when some of their requirements have not been taken into account by developers. One possible way to do adaptations is by using Web Augmentation techniques. Web Augmentation allows end-users to modify the Web sites’ user interfaces once these are loaded on the client-side, i.e., in the browser. They achieve these adaptations by developing and/or installing Web browser plugins (“augmenters”) that modify the user interface with new functionalities. This particular kind of software artifacts requires special attention regarding maintenance as–in most cases–they depend on third-party resources, such as HTML pages. When these resources are upgraded, unexpected results during the augmentation process may occur. Many communities have arisen around Web Augmentation, and today there are large repositories where developers share their augmenters; end-users may give feedback about existing augmentations and even ask for new ones. Maintenance is a key phase in the augmenters’ life-cycle, and currently, this task falls (as usual) on the developers. In this paper, we present a participatory approach for allowing end-users without programming skills to participate in the augmenters’ maintenance phase. In order to allow this, we also provide support for the development phase to bootstrap a first version of the augmenter and to reduce the load on developers in both phases, development and maintenance. We present an analysis of more than eight thousand augmenters, which helped us devise the approach. Finally, we present an experiment with 48 participants to validate our approach.
Article
Full-text available
Models at runtime can be defined as abstract representations of a system, including its structure and behaviour, which exist in tandem with the given system during the actual execution time of that system. Furthermore, these models should be causally connected to the system being modelled, offering a reflective capability. Significant advances have been made in recent years in applying this concept, most notably in adaptive systems. In this paper we argue that a similar approach can also be used to support the dynamic generation of software artefacts at execution time. An important area where this is relevant is the generation of software mediators to tackle the crucial problem of interoperability in distributed systems. We refer to this approach as emergent middleware, representing a fundamentally new approach to resolving interoperability problems in the complex distributed systems of today. In this context, the runtime models are used to capture meta-information about the underlying networked systems that need to interoperate, including their interfaces and additional knowledge about their associated behaviour. This is supplemented by ontological information to enable semantic reasoning. This paper focuses on this novel use of models at runtime, examining in detail the nature of such runtime models coupled with consideration of the supportive algorithms and tools that extract this knowledge and use it to synthesise the appropriate emergent middleware.
Article
Full-text available
One of the main characteristics of most Web applications is their high dynamism. Once implemented and deployed for the first time, new functionalities are added to meet new or changed requirements. Some of these functionalities may appear on the Web in response to an unexpected event, or phenomena (such as a natural calamity) after which they are removed. Some others are activated periodically, to coincide with a particular date, or period of the year (such as, return to school, Christmas holidays, etc.). Implementing such volatile functionalities usually impacts on a number of aspects of a Web application, including content, navigation, presentation, business processes, and user operations. Their cyclic activation/deactivation, which requires repetitive changes in the application code, may be the cause of waste of effort and application quality deterioration, up to incorrect functioning. In this paper, we present an approach to decouple the design and implementation of volatile functionalities from that of stable ones, i.e. the core functionalities of the application. The approach is instantiated in the context of the Object-Oriented Hypermedia Design Method (OOHDM), but its principles and related techniques are generally applicable to any other Web engineering method. We show how our approach enables the deployment and removal of these functionalities in a cost-effective and safe way and at runtime, thus providing business agility. A framework to classify volatile functionalities and a number of examples are also reported.
Conference Paper
Full-text available
In this paper we present an approach for oblivious composi- tion of Web user interfaces, particularly for volatile functionality. Our approach, which is inspired on well-known techniques for advanced separation of concerns such as aspect-oriented software design, allows to clearly separate the design of the core's interface from the one corre- sponding to more volatile services, i.e. those that are offered for short periods of time. Both interfaces are oblivious from each other and can be seamlessly composed using a transformation language. We show that in this way we simplify the application's evolution by preventing intru- sive edition of the interface code. Using some illustrative examples we focus both on design and implementation issues, presenting an exten- sion of the OOHDM design model which support modular design of volatile functionality
Article
Full-text available
Web applications are used to fast and continuous evolution. In response to new or changing requirements, additional code is developed and existing one is properly modified. When new requirements are temporary, i.e., when they specify some volatile functionality that is expected to be online only for some time and then removed, the additions and changes are destined to be later rolled back. This way to proceed, apart from being time and effort demanding, by involving the intrusive editing of the application's source code, brings along the risk of polluting it and introducing mistakes. In this paper, we present an approach to deal with volatile functionality in Web applications at the presentation level, based on oblivious composition of Web user interfaces. Our approach, which is inspired by well- known techniques for advanced separation of concerns such as aspect-oriented software design, allows to clearly separate the design of the application's core user interface from the one corresponding to more volatile functionality. Both core and volatile user interfaces are oblivious from each other and can be seamlessly composed using a transformation language. We show that in this way we simplify the application's evolution by preventing intrusive edition of the user interface code. Using some illustrative examples, we focus both on design and implementation issues, presenting an extension of the OOHDM design model that supports modular design of volatile functionality.
Book
Web Engineering: Modelling and Implementing Web Applications presents the state of the art approaches for obtaining a correct and complete Web software product from conceptual schemas, represented via well-known design notations. Describing mature and consolidated approaches to developing complex applications, this edited volume is divided into three parts and covers the challenges web application developers face; design issues for web applications; and how to measure and evaluate web applications in a consistent way. With contributions from leading researchers in the field this book will appeal to researchers and students as well as to software engineers, software architects and business analysts.
Conference Paper
Workflows play a major role in nowadays business and therefore its requirement elicitation must be accurate and clear for achieving the closest solution to business's needs. Due to Web applications popularity, the Web is becoming the standard platform for implementing business workflows. In this context, Web applications and their workflows must be adapted to market demands in such a way to minimize development effort. In this work we present a model-driven approach for specifying Web workflows adaptations using a Domain Specific Language for Web application requirement called WebSpec. We present an extension to WebSpec based on Pattern Specifications for dealing with crosscutting workflow requirements by identifying tangled and scattered behaviour and reducing inconsistencies early in the requirement gathering phase. Using simple but illustrative examples we show the expressive power of the approach.
Article
Proven, 100% Practical Guidance for Making Scrum and Agile Work in Any Organization This is the definitive, realistic, actionable guide to starting fast with Scrum and agileand then succeeding over the long haul. Leading agile consultant and practitioner Mike Cohn presents detailed recommendations, powerful tips, and real-world case studies drawn from his unparalleled experience helping hundreds of software organizations make Scrum and agile work. Succeeding with Agile is for pragmatic software professionals who want real answers to the most difficult challenges they face in implementing Scrum. Cohn covers every facet of the transition: getting started, helping individuals transition to new roles, structuring teams, scaling up, working with a distributed team, and finally, implementing effective metrics and continuous improvement. Throughout, Cohn presents Things to Try Now sections based on his most successful advice. Complementary Objection sections reproduce typical conversations with those resisting change and offer practical guidance for addressing their concerns. Coverage includes Practical ways to get started immediatelyand get good fast Overcoming individual resistance to the changes Scrum requires Staffing Scrum projects and building effective teams Establishing improvement communities of people who are passionate about driving change Choosing which agile technical practices to use or experiment with Leading self-organizing teams Making the most of Scrum sprints, planning, and quality techniques Scaling Scrum to distributed, multiteam projects Using Scrum on projects with complex sequential processes or challenging compliance and governance requirements Understanding Scrums impact on HR, facilities, and project management Whether you've completed a few sprints or multiple agile projects and whatever your rolemanager, developer, coach, ScrumMaster, product owner, analyst, team lead, or project leadthis book will help you succeed with your very next project. Then, it will help you go much further: It will help you transform your entire development organization.
Conference Paper
Separation of concerns is a well-established principle of software engineering. Nevertheless, the failure to separate concerns effectively has been identified as a continuing cause of the ongoing software crisis. This failure arises in part because most programming and modeling formalisms enforce a dominant decomposition that allows only a few concerns to be separated, whereas software in reality is subject to multiple simultaneous, overlapping, and crosscutting concerns.Several approaches to "advanced separation of concerns" have been proposed, including subject-oriented programming, aspect-oriented programming, and Hyperspaces. These focus mainly on coding but take a multidimensional view of concerns that applies across the software life cycle. To support such approaches, we are developing Cosmos, a general-purpose concern-space modeling schema. Cosmos distinguishes logical and physical concerns. Logical concerns include classifications, classes, instances, properties, and topics, physical include instances, collections, and attributes. Cosmos also identifies four categories of relationship, including categorical, interpretive, mapping, and physical. Cosmos can support software development activities such as rationale capture, impact analysis, compositional development, change propagation, customization, and reuse.
Conference Paper
A rapidly changing market leads to software systems with highly volatile requirements. These must be managed in a way that reduces the time and costs associated with updating a system to meet these new requirements. By externalizing volatile concerns, we can build a stepping-stone for future management of unanticipated requirements change. In this paper, we present a method for handling volatile concerns during early lifecycle software modeling. The key insight is that aspect-oriented techniques can be applied to modularize volatility and to weave volatile concerns into the base software artifacts.