Component-based tailorability: Enabling highly flexible software applications
Introduction
The need for flexible software systems is well known and well addressed in the research areas of software engineering. Driven by the need to be more efficient in software development, the approaches worked towards a better reuse of code and an increased comprehensiveness of software architectures (e.g. object-oriented programming, component-based systems, and lately service-oriented architectures). In the research area of computer-supported cooperative work (CSCW), the driving force of flexibilization is a different one: software needs to be flexible in order to be adapted to new or changing work situations in its context of use. As a matter of fact, end users, not professional designers, typically take action to adapt their software applications according to the everyday routines and problems they encounter. Tools, techniques and methods that have been developed to make an evolutionary software engineering process more efficient, usually do not consider this ‘end-user’ aspect. Component-based technologies have gained considerable attention in this context (cf. e.g. Szyperski, 2002), since they offer ‘black box’ reusability (Ravichandran and Rothenberger, 2003) by making the integration of third-party components possible without having to know or manipulate their code. Empirical studies confirmed that end users consider replacing software rather than re-programming it (e.g. Robertson, 1998). Component-based systems offer both ways of re-designing software, replacing as well as reprogramming, during use-time. Therefore, they can be seen as an interesting starting point to support end-user-oriented tailoring of software applications.
Flexibility of software artifacts has been a major research issue in human–computer interaction (HCI), from its beginnings. Since the individual abilities of specific users are diverse and develop constantly, suitability for individualization is an important principle for the design of the dialogue interface. In general, users were supposed to adapt the software artifacts according to their abilities and requirements (cf. Ackermann and Ulich, 1987; Fischer et al., 1987; Fischer and Girgensohn, 1990; ISO-9241, 1999). However, the scope of flexibility offered in early implementations was usually limited to simple parameterization of the dialogue interface. While this line of thought gave the users of software artifacts a more active role for the first time, it remained a problem to address change requests, requiring a deeper manipulation of the software artifact and higher levels of use-time flexibility.
Starting in the late 1980s, industrial demands, resulting from the diffusion of personal computers into organizations and the emergence of computer networks, led to research efforts to provide flexible information systems that offered a functionality for cooperation and collaboration modifiable by their users. While prior work aimed at the individual user, it was now a user group, an organization, or other social entities that needed flexibility in order to adopt computers for cooperative work (cf. Lieberman et al., 2006). Henderson and Kyng (1991) worked out the concept of tailorability to name these activities, and stressed the importance of being able to re-design and re-develop software during and/or in the context of use. Software artifacts and commercial products, as well as research prototypes with a tailorable functionality, have been developed. Regarding commercial products, spreadsheets and CAD systems were explored first. “Buttons” was one of the first highly tailorable research prototypes, where users could change the dialogue interface and functionality on different levels of complexity (MacLean et al., 1990). With the emergence of network applications, supporting collaborative activities such as communication, cooperation or knowledge exchange, the need for tailorable software artifacts increased (Schmidt, 1991; Bentley and Dourish, 1995; Wulf and Rohde, 1995). However, the distributed nature of these systems and the potential interdependencies of individual activities have posed additional challenges to the design of tailorable applications (cf. Oberquelle, 1993, Oberquelle, 1994; Wulf et al., 1999; Stiemerling, 2000; Won et al., 2006).
In this paper, we summarize the results of a decade of research in flexibilizing groupware by means of component-based tailorability. We propose a conceptual framework to identify different levels of design challenges. Based on this framework, we present the different aspects of our work. Drawing on the notion of ‘software infrastructure’, we conclude by proposing design guidelines for tailorable applications.
Section snippets
A framework to study tailorability
Empirical as well as design-oriented research has indicated two major challenges in building tailorable systems (Mackay, 1990; MacLean et al., 1990; Nardi, 1993; Oppermann and Simm, 1994; Page et al., 1996; Wulf and Golombek, 2001a). The first challenge was to support re-design during use, and the second, to allow end users within their use contexts to take a leading role in re-designing their infrastructures. In particular, for the second challenge, important refinements have been described as:
Architectural level: component-based systems
To some extent, the discussion on component technologies in software engineering and the discussion on tailorable software artifacts in CSCW have a similar motivation: the differentiation and dynamics of the context in which software artifacts are applied. However, software engineering directs its attention towards the support of professional software developers during design time, while the concept of tailorability directs its attention towards users during run-time. In Section 1, we already
Interface level: component visualization
There is a large body of work regarding the ‘ergonomics’ of programming, mainly in the field of Visual Programming (e.g. Shu, 1988; Myers, 1990; Ambler and Leopold, 1998; Pane et al., 2001). While many approaches aim to support the professional programmer (e.g. by aiming at visualizing the whole program and all its facets) there is also some work supporting less experienced programmers. The idea is to just visualize in an appropriate way what is necessary.
Repenning et al. (2000) constructed a
Collaborative tailoring
Component-based software engineering is based on the assumption that software development can be organized best in a collaborative and distributed manner. Component repositories, together with monetary compensations for those who offer their source code for reuse, are supposed to render software development more efficient (see Szyperski, 2002). On the technical side, the issue is being addressed by providing a certain level of encapsulation of functionality, and by allowing an easy exchange of
Discussion
We have described concepts and prototypes that were developed by our groups in order to provide tailoring means to end users of different work contexts. While many prototypes have been previously published in greater detail, our overview allows us to take a step back and have a look at the big picture.
The purposes of our research are twofold: we want to enable end users to independently tailor their technological infrastructure, and we want to allow them to do the tailoring at run-time. When we
Conclusions
We have presented our work on how the concept of component-based tailorability can be made intelligible and manageable for end users. Due to the specific requirements of users whose main interests are other than software development, the requirements for the design of the user interface are distinct from typical developer-oriented IDEs in software engineering. We worked out a component-based approach by evaluating our experiences with the FreEvolve platform. In addition, we developed a number
Acknowledgements
Torsten Engelskirchen, Björn Golombek, Michael Hallenberger, Ralf Hinken, Jörg-Guido Höpfner, Helge Kahler, Markus Rohde, Gunnar Stevens, and Oliver Stiemerling contributed greatly to different aspects of the work presented here. The authors gratefully acknowledge the support of the German Science Foundation (DFG) and the German Ministry of Research and Education (BMBF). BMBF has provided grants in the context of the ‘PoliTeam: Workflows, Archives and Groupwork in Distributed Organizations’ and
References (111)
- et al.
Basic support for cooperative work on the world wide web
International Journal of Human Computer Studies
(1997) Taxonomies of Visual Programming and program visualization
Journal of Visual Languages and Computing
(1990)- et al.
Studying the language and structure in non-programmers’ solutions to programming problems
International Journal of Human–Computer Studies
(2001) - et al.
The chances of individualization in human–computer interaction and its consequences
- Alda, S., Cremers, A.B., 2004. Towards composition management for peer-to-peer architectures. In: Proceedings of the...
- et al.
Public Programming in a Web World. Visual Languages
(1998) - Andriessen, J.H.E., Hettinga, M., Wulf, V. (Eds.), 2003. Special issue on evolving use of groupware. Computer Supported...
- Bellissard, L., Atallah, S.B., Boyer, F., Riveill, M., 1996. Distributed application configuration. Proceedings of the...
- Bentley, R., Dourish, P., 1995. Medium versus mechanism. supporting collaboration through customisation. In: Marmolin,...
Reducing expertise tension
Communications of the ACM
(2004)
Ethnographic field methods and their relation to design
Skiing as a model of instruction
Training wheels in a user interface
Communications of the ACM
Fostering social creativity by increasing social capital
Das Konzept Fehlermanagement: Eine Strategie des Umgangs mit Handlungsfehlern in der Mensch-Computer Interaktion (“The concept of „Fault Management”: A strategy of dealing with activity faults in Human–Computer-Interactions’)
Evaluating Opportunities for Design Capture
There's no place like home: continuing design in use
Methods and tools: constructive interaction and collaborative work: introducing a method for testing collaborative systems
Interactions
More than WORDSs: collaborative tailoring of a word processor
Journal on Universal Computer Science (j.ucs)
Cited by (91)
ElaClo: A framework for optimizing software application topology in the cloud environment
2017, Expert Systems with ApplicationsWeb-centred end-user component modelling
2016, Future Generation Computer SystemsCitation Excerpt :These problems are described by Garlan et al. [33], Stiemerling [34] and Wulf et al. [35], highlighting the need for component types with a good trade-off between ease of use and usage, and between generality and specificity.
Adaptive and Adaptable Systems: Differentiating and Integrating AI and EUD
2023, Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)Programmable smart home toolkits should beter address households' social needs
2021, Conference on Human Factors in Computing Systems - ProceedingsThe Praxeological Research Programme of Socio-Informatics - the Siegen School
2021, Acta Informatica Pragensia