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]
|