Design patterns facilitate reuse of good design practices. They are typically given by using conventional notations that lack well-defined semantics and, therefore reasoning about their behaviors requires formaliza-tion. Even when formalized, conventional communication abstractions may lead to too laborious formaliza-tions when addressing the temporal… (More)
The software industry is currently in the middle of a paradigm shift. Applications are increasingly written for the World Wide Web rather than for any specific type of an operating system, computer or device. Unfortunately, the technologies used for web application development today violate well-known software engineering principles. Furthermore,they have… (More)
While the users of completed applications are heavily moving from desktop to the web browser, the majority of developers are still working with desktop IDEs such as Eclipse or Visual Studio. In contrast to professional installable IDEs, current web-based code editors are simple text editors with extra features. They usually understand lexical syntax and can… (More)
Testing is regarded as one of the most resource consuming tasks of an average software project. A common goal of testing related activities is to make sure that requirements are satisfied by the implementation. Although existing tools are often effective in functional testing, emerging nonfunctional requirements set new demands. Aspect-oriented techniques… (More)
For better or worse, the web browser has become a widely used target platform for software applications. Desktop-style applications such as word processors, spreadsheets, calendars, games and instant messaging systems that were earlier written for specific operating systems, CPU architectures or devices are now written for the World Wide Web, to be used… (More)
Mobile devices have become a commodity: we use several devices for various purposes. Although we carry only some of our devices with us, we still want to access content originating from any device. To overcome this issue, device users often upload content into a hosting service available in the cloud. However, cloud-based hosting can alienate the control… (More)
The development of entirely new types of Web-based software systems built to leverage the vast capabilities of the World Wide Web allows the use of dynamically downloaded applications and services from any type of terminal, including both desktop computers and mobile devices, implying radical changes in the ways people develop, deploy, and use software.
Aspects have emerged as an attractive mechanism for implementing "testability features" to existing systems. Their invasive nature facilitates increasing the testability of systems that could be very hard to test otherwise. However, prior to industrial adoption, case studies are needed to understand how they differ from conventional techniques. Such… (More)