miksen

Dissertation

I successfully defended my doctoral dissertation October 29th, 2002. The title is:

Malleable Software Development --
Supporting Collaboration and Iteration in Object-Oriented Software Development

[download pdf, 10 MB]

The dissertation uses the term malleable to capture two related, but somewhat different, aspects of software development. Firstly, it captures collaborative development -- development in which the development team collaborates with the future users, and where their needs and knowledge is used to actively influence the design of the emerging system. Secondly, and at a more technical level, it captures software architectures and implementations that have a capacity for adaptive change, as required in the context of iterative development.

The dissertation is based on eight fully-refereed & published conference papers. Together these touch upon all stages of software development, and each contribute to our overall subject of supporting collaboration and iteration.

Research Problems

Malleable software development, as introduced, defined, and motivated through collaboration, iteration, and object-orientation in the dissertation, collectively presents a number of research problems. In our work we have seeked to tackle the following:

  • Research has mostly been focused on the collaboration between the development team and the end-users. There has been little focus on the internal collaboration within the development team.
  • There is little tool support for collaboration with end-users: The tools used to create computerized prototypes are typically either multimedia design tools such as Hypercard or Director, or full-blown programming environments. While useable, they were not created for the purpose of prototyping, and as a consequence it is difficult and time
  • consuming to create these prototypes
  • Keeping track of the evolution of the design is hard when the design is highly iterative
  • Software development tools for object-oriented analysis and design restricts the modelling to take place at a desk on a desktop PC, and thus do not support collaborative modelling with end-users
  • Most software development tools are targeted towards programmers, and have little relevance for non-programming team members. Moreover, there is little support for supporting collaboration between team members with divergent backgrounds
  • Frequent changes to the user-interface and the object model, as caused by iterative development in collaboration with users, can propagate to the whole implementation of the system, and thus be very time consuming
  • A high degree of iteration presents substantial problems for designing a system's underlying software architecture

Contributions and Included papers

P1: Development Process

The Dragon Project Focal Points: An analysis of a large software development project that advocates development with an experimental approach with many iterations, and that contributes the success of the project to a high degree of internal collaboration within a highly diverse development team

  • Christensen M., Crabtree A., Damm C.H., Hansen K.M., Madsen O.L., Marqvardsen P., Mogensen P., Sandvad E., Sloth L., Thomsen M.: The M.A.D. Experience: Multiperspective Application Development in evolutionary prototyping
    In Jul, E.(Ed.) Proceedings of ECOOP'98, Brussels, Belgium, July 1998, pp. 13-40.
    [pdf] [abstract] © Springer-Verlag. Available in the LNCS series, volume 1445.

P2: Initial Analysis

The Outpost Design History system: A tool for early-stage analysis & design that supports both internal and external collaboration, and that aids in understanding the evolution of a iteratively refined artefact though automatic capture and subsequent browsing of the design history

  • Klemmer S.R., Thomsen M., Phelps-Goodman E., Lee R., Landay J.A.: Where Do Web Sites Come From? Capturing and Interacting with Design History
    In Proceedings of CHI 2002, ACM Conference on Human Factors in Computing Systems, CHI Letters 4(1), pp. 1-8
    [pdf] [abstract]

P3, P4, P5: Object-Oriented Analysis & Design

The Knight tool: A tool for informal object-oriented analysis and design that respects the existing modelling practice, and that aids collaboration and creativity

  • Damm C.H., Hansen K.M., Thomsen M.: Tool Support for Cooperative Design: Gesture Based Modeling on an Electronic Whiteboard
    In Proceedings of CHI 2000, ACM Conference on Human Factors in Computing Systems, CHI Letters 2(1)
    [pdf] [slides.pdf] [abstract]
  • Damm, C.H., Hansen, K.M., Thomsen, M., Tyrsted, M. Supporting Several Levels of Restriction in the UML.
    In Evans, A., Kent, S., & Selic, B. (Eds.) Proceedings of UML'2000. York, United Kingdom, October 2-6, 2000.
    [pdf] [abstract]
  • Damm C.H., Hansen K.M., Thomsen M., Tyrsted M.: Creative Object-Oriented Modelling: Support for Creativity, Flexibility, and Collaboration in CASE Tools
    In Bertino, E. (Ed.) Proceedings of ECOOP'2000, Sophia Antipolis and Cannes, France, June 12-16, 2000
    [pdf] [abstract]

P6: User-Interface Design

The Denim VL user-interface tool: A tool for sketching interactive prototypes of user-interfaces. By empowering designers without programming skills to prototype interactivity it promotes collaboration between programmers and non-programmers, and via its informal sketching interface it allows for a natural specifications of more detailed prototypes

  • Lin J., Thomsen M., Landay J.A.: A Visual Language for Sketching Large and Complex Interactive Designs
    In Proceedings of CHI 2002, ACM Conference on Human Factors in Computing Systems, CHI Letters 4(1), pp. 307-314
    [pdf] [abstract]

P7, P8: Implementation

Architectural Patterns: Two software architecture patterns that capture and describe two adaptable software architectures suitable for highly iterative development with often change request to the user-interface and the object model

  • Hansen K.M., Thomsen M.: The 'Domain Model Concealer' and 'Application Moderator' Patterns: Addressing Architectural Uncertainty in Interactive Systems
    In Chen, J., Li, J., Meyer, B. (Eds.) Proceedings of TOOLS Asia 1999, Nanjing, China, September 1999, pp. 177-190.
    [pdf] [abstract]

Architectural Strategies: A discussion and concrete advice from a large software development project on how to evolve software architecture in the context of change inflicted by iterative development

  • Christensen M., Damm C.H., Hansen K.M., Sandvad E., Thomsen M.: Design and Evolution of Software Architecture in Practice
    In Mingins, C., Meyer, B. (Eds.) Proceedings of TOOLS Pacific 1999, Melbourne, Australia, November 1999, pp. 2-15.
    [pdf] [abstract]

Last update: 27. October, 2004