Component-based tailorability: Enabling highly flexible software applications

  • Authors:
  • Volker Wulf;Volkmar Pipek;Markus Won

  • Affiliations:
  • Institute for Information Systems, University of Siegen, Hölderlinstr. 3, 57068 Siegen, Germany and Fraunhofer Institute for Applied Computer Science (FhG-FIT), Schloss Birlinghoven, 53754 Sa ...;Institute for Information Systems, University of Siegen, Hölderlinstr. 3, 57068 Siegen, Germany;International Institute for Socio-Informatics (IISI), Stiftsgasse 25, 53111 Bonn, Germany

  • Venue:
  • International Journal of Human-Computer Studies
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

Component technologies are perceived as an important means to keep software architectures flexible. Flexibility offered by component technologies typically addresses software developers at design time. However, the design of software which should support social systems, such as work groups or communities, also demands 'use-time', or technically spoken, 'run-time' flexibility. In this paper, we summarize a decade of research efforts on component-based approaches to flexibilize groupware applications at run-time. We address the user as a 'casual programmer' who develops and individualizes software for his work context. To deal with the challenges of run-time flexibility, we developed a design approach which covers three levels: software architecture, user interface, and collaboration support. With regard to the software architecture, a component model, called FlexiBeans, has been developed. The FreEvolve platform serves as an environment in which component-based applications can be tailored at run-time. Additionally, we have developed three different types of graphical user interfaces, enabling users to tailor their applications by recomposing components. To enable collaborative tailoring activities, we have integrated functions that allow sharing component structures among users. We also present different types of support techniques which are integrated into the user interface in order to enable users' individual and collaborative tailoring activities. We conclude by elaborating on the notion of 'software infrastructure' which offers a holistic approach to support design activities of professional and non-professional programmers.