Research interests

My research in general concentrates on the intersection of three main branches of computer science: software engineering, business process management and the World Wide Web. In this context, I am particularly intrigued by all those research questions and challenges that ask either for the conception of new development capabilities and instruments or for making development accessible to an ever broader spectrum of developers, in the extreme case, even to end-users. More specifically, my research interests can be summarized with the following five topics.

Crowdsourcing and human computation

Crowdsourcing is the practice of outsourcing a piece of work (a so-called task) to a group of people (the crowd) via an open call for contributions. My interests in crowdsourcing focus on three correlated aspects: modeling and enactment of crowdsourcing processes, data mining with the crowd, and quality control. Article [J37] surveys the state of the art in composite crowdsourcing processes, while contribution [J33] proposes an own approach to the modeling and execution of crowdsourcing processes seamlessly integrated with common BPM practice. [J38] investigates how to mine complex mashup model patterns with the help of the crowd and concludes (i) that it is indeed feasible to identify patterns with the crowd, but also (ii) that it is less advisable to also ask the crowd to assess the quality of identified patterns. Given these difficulties, I am currently considering the problem of quality control in crowdsourcing, with survey [J42] comprehensively reviewing the respective state of the art and contribution [C56] approaching one concrete quality attribute, i.e., the speed of crowdsourcing processes. Paper [C58] applies crowdsourcing to BPM and studies how to leverage on the crowd to match activities among process models.

UI-oriented computing

Through the various attempts to make mashup development accessible to end-users I learned one important lesson, i.e., so far, we have been trying to enable end-users to use artifacts, e.g., APIs or Web services, that are simply not meant for them; the only software artifacts end-users are familiar with are graphical UIs. With the idea of UI-oriented computing I thus would like to study how to use graphical UIs as programming paradigm to enable end-users to define own “computations,” e.g., the extraction of data from Web pages, the reuse of forms, or the automation of simple Web processes. The goal is to develop an interactive, live, point-and-click, drag-and-drop development paradigm that stays inside the Surface Web (the UIs) and never asks the user to interact directly with the Deep Web (the APIs and services) [W23]. The idea is to equip pieces of Web UIs (e.g., a table or form) with graphical controls that allow the user to specify desired behaviors and integration logics directly inside the browser without writing any new line of code. A first example of UI-oriented computing applied to data integration is shown in [C53]. The challenge is to understand how many software development capabilities can be supported through the sensible reuse of UIs (and parts thereof), how to implement suitable tools and middleware, and how well end-users perform with this novel paradigm. I truly believe this change of perspective from APIs to UIs can lead to a breakthrough in end-user development.

Mashups

Mashups are composite Web applications that are developed by integrating resources available on the Web [B13], and my work ranges from fundamentals to end-user development. [C6] describes one of the first frameworks for the integration of presentation (UI) components inside the client browser, later turned into a so-called universal integration approach for data, application logic and UIs [C18]. The approach proposes an imperative mashup paradigm (data flow models), while [J9] also proposes a declarative approach (Datalog-like queries). [J8] goes one step further and devises a complete, conceptual tool suite for the development of custom mashup platforms, including custom languages and design/runtime environments. [J22] fosters the development of domain-specific mashup tools and demonstrates how these may lower the barriers to end-users, while [I8] and [C37] respectively mine mashup model patterns from a repository of ready models and recommend and weave patterns interactively inside the mashup editor. The user studies conducted [J31] provide substantive evidence for the effectiveness of the approach. Regarding a crosscutting concern that is important to both developers and end-users, references [J14], [C46] and [C32] study the quality of mashups and propose a quality-aware recommendation approach for mashup development. Book [B13] describes the mashup ecosystem in terms of concepts, models and architectures and brings the above contributions under one hood.

Business process management (BPM)

My research interests focus on two major aspects, i.e., process intelligence and new process modeling features. Process intelligence is particularly challenging if the available data is of low quality, e.g., incomplete or noisy. For instance, [J23] focuses on service-based business processes, but it does so with special attention to data quality, which it communicates to users in a dedicated dashboard. [J13] more specifically focuses on how to compute key indicators for processes in the presence of low-quality data and introduces the concept of uncertain key indicators. The research on new modeling features produced so far modeling languages (e.g., extensions of BPMN or BPEL) and runtime environments for project-centered learning [J11], user interface orchestration [J17] [C24], wireless sensor networks [C44], and crowdsourcing [J33].

Service-oriented computing (SOC)

My research in SOC concentrated on the analysis of service interactions and of the behavior of service compositions to see if they behave as expected by the developer, that is, by their design. Contributions [C8] and [C10], in this respect, study how to identify which observable Web service invocations (e.g., logged or sniffed) are likely to belong to a same composite service, so as to re-construct the conversation (the so-called protocol) of the composite service with its component services. [C22] pushes this thread further and discovers the actual protocol from message exchanges, also considering possible inaccuracies in the logged data, while [J23] complements the approach with a complete software suite (algorithms and a dashboard) for the analysis of compliance constraints in service-based business processes. Survey [J36] provides a comprehensive and up-to-date review of the core concerns of SOC and discusses research questions that are still open.

Model-driven Web engineering

Model-driven Web engineering studies the use of (graphical) modeling languages for the development of Web applications. My interest in this context was supporting the development of adaptive and context-aware behaviors that are typically considered only as afterthoughts in the development, while they are first-class design concerns. The respective research produced an extension of the Web Modeling Language (WebML) that enables the developer to model behaviors that are autonomous, active and context-aware [J3]. The approach also comes with the capability to track and react to long-running user navigation goals [J2] and with Event-Condition-Action (ECA) rules and a detached rule engine to provision active behaviors [J6] [J7]. Book [B1] reviews the field of Web engineering with a special attention to model-driven development.