Component-based tailorability: Enabling highly flexible software applications

https://doi.org/10.1016/j.ijhcs.2007.08.007Get rights and content

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.

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)

  • R. Bentley et al.

    Basic support for cooperative work on the world wide web

    International Journal of Human Computer Studies

    (1997)
  • B.A. Myers

    Taxonomies of Visual Programming and program visualization

    Journal of Visual Languages and Computing

    (1990)
  • J.F. Pane et al.

    Studying the language and structure in non-programmers’ solutions to programming problems

    International Journal of Human–Computer Studies

    (2001)
  • D. Ackermann 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...
  • A. Ambler 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,...
  • J. Beringer

    Reducing expertise tension

    Communications of the ACM

    (2004)
  • Bieberstein, N., Bose, S., Fiammante, M., Jones, K., Shah, R., 2006. Service-Oriented Architecture Compass....
  • J. Blomberg et al.

    Ethnographic field methods and their relation to design

  • Brown, A.W., Johnston, S., Kelly, K., 2002. Large-scale, using service-oriented architecture and component-based...
  • R.R. Burton et al.

    Skiing as a model of instruction

  • Carroll, J.M., 1987. Five gambits for the advisory interfaces dilemma. In: Frese, M., Ulich, E., Dzida, W. (Eds.),...
  • J.M. Carroll et al.

    Training wheels in a user interface

    Communications of the ACM

    (1984)
  • Carter, K., Henderson, A., 1990. Tailoring culture. In: Hellman, R., Ruohonen, M., Sorgard, P. (Eds.), Proceedings of...
  • Cortes, M., 1999. A coordination language for building collaborative applications. Journal of Computer Supported...
  • Dittrich, Y., Dourish, P., Mørch, A., Pipek, V., Stevens, G., Törpel, B., 2005. Special issue on supporting...
  • Doernhoefer, M., 2006. Surfing the net for software engineering notes. ACM SIGSOFT Software Engineering Notes, vol. 30,...
  • Dourish, P., 1996. Open implementation and flexibility in CSCW toolkits. Ph.D. Thesis, University College,...
  • Engelskirchen, T., 2000. Exploration anpassbarer groupware. Master Thesis, University of...
  • Fischer, G., Girgensohn, A., 1990. End-user modifiability in design environments. In: Proceedings of the Conference on...
  • Fischer, G., Lemke, A.C., Rathke, C., 1987. From design to redesign. In: International Conference on Software...
  • G. Fischer et al.

    Fostering social creativity by increasing social capital

  • M. Frese et al.

    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’)

  • Golombek, B., 2000. Implementierung und Evaluation der Konzepte “Explorative Ausführbarkeit” und “Direkte...
  • J. Grudin

    Evaluating Opportunities for Design Capture

  • Hallenberger, M., 2000. Programmierung einer interaktiven 3D-Schnittstelle am Beispiel einer Anpassungsschnittstelle...
  • A. Henderson et al.

    There's no place like home: continuing design in use

  • Hinken, R., 1999. Verteilte Anpassbarkeit für Groupware—Eine Laufzeit und Anpassungsplattform (‘Distributed tailoring...
  • Höpfner, J.-G., 1998. Gemeinsame Anpassung von Einzelpatzanwendungen (“Collaborative tailorability of single user...
  • Howes, A., Paynes, S.J., 1990. Supporting exploratory learning. In: Proceedings of INTERACT’90, North-Holland,...
  • Huysman, M., Wulf, V. (Eds.), 2004. Social Capital and Information Technology. MIT Press, Cambridge,...
  • IBM, 1998. Visual Age for Java, Version...
  • ISO, 9241, 1999. Ergonomic Requirements for Office Work with Visual Display Terminals (VDTs), Part 10: Dialogue...
  • Johansen, R., 1988. Current user approaches to groupware. In: Johansen, R. (Ed.), Groupware. Freepress, New York, pp....
  • Jones, S., Mike, M., 2005. A methodology for service architectures. OASIS Draft,...
  • H. Kahler

    Methods and tools: constructive interaction and collaborative work: introducing a method for testing collaborative systems

    Interactions

    (2000)
  • Kahler, H., 2001a. Supporting collaborative tailoring. Ph.D. Thesis, Roskilde University, Denmark,...
  • H. Kahler

    More than WORDSs: collaborative tailoring of a word processor

    Journal on Universal Computer Science (j.ucs)

    (2001)
  • Krings, M., 2002. Erkennung semantischer Fehler in komponentenbasierten Architekturen (‘The recognition of semantic...
  • Krüger, M., 2003. Semantische Integritätsprüfung für die Anpassung von Komponenten-Kompositionen (‘Semantic integrity...
  • Kuutti, K., Bannon, L., 1993. Searching for Unity Among Diversity: Exploring the Interface Concept, interchi’93. ACM...
  • Lewis, C., 1982. Using the “Thinking-aloud” method in cognitive interface design. Research Report RC 9265. T.J. Watson...
  • Lieberman, H., Paternó, F., Wulf, V. (Eds.) 2006. End User Development. Springer,...
  • Mackay, W.E., 1990. Users and customizable software: a co-adaptive phenomenon. Ph.D. Thesis, MIT, Boston,...
  • MacLean, A., Carter, K., Lövstrand, L., Moran, T., 1990. User-tailorable systems: Pressing the issue with buttons. In:...
  • Magee, J., Dulay, N., Eisenbach, S., Kramer, J., 1995. Specifying distributed software architectures. In: Proceedings...
  • Malone, T.W., Lai, K.-Y., Fry, C., 1992. Experiments with oval: a radically tailorable tool for cooperative work. In:...
  • Cited by (91)

    • Web-centred end-user component modelling

      2016, Future Generation Computer Systems
      Citation 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 - Proceedings
    View all citing articles on Scopus
    View full text