The Emergent Structure of Development Tasks

  • Gail C. Murphy
  • Mik Kersten
  • Martin P. Robillard
  • Davor Čubranić
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3586)


Integrated development environments have been designed and engineered to display structural information about the source code of large systems. When a development task lines up with the structure of the system, the tools in these environments do a great job of supporting developers in their work. Unfortunately, many development tasks do not have this characteristic. Instead, they involve changes that are scattered across the source code and various other kinds of artifacts, including bug reports and documentation. Today’s development environments provide little support for working with scattered pieces of a system, and as a result, are not adequately supporting the ways in which developers work on the system. Fortunately, many development tasks do have a structure. This structure emerges from a developer’s actions when changing the system. In this paper, we describe how the structure of many tasks crosscuts system artifacts, and how by capturing that structure, we can make it as easy for developers to work on changes scattered across the system’s structure as it is to work on changes that line up with the system’s structure.


Task Structure Task Context Group Memory Development Task Integrate Development Environment 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Chu-Carroll, M., Wright, J.: Supporting distributed collaboration through multidimensional software configuration management. In: Westfechtel, B., van der Hoek, A. (eds.) SCM 2001 and SCM 2003. LNCS, vol. 2649, pp. 40–53. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  2. 2.
    Chu-Carroll, M.C., Sprenkle, S.: Coven: Brewing better collaboration through software configuration management. In: SIGSOFT 2000/FSE-8: Proc. of the 8th ACM SIGSOFT Int’l Symp. on Foundations of Software Engineering, pp. 88–97. ACM Press, New York (2000)Google Scholar
  3. 3.
    Čubranić, D., Murphy, G.C.: Hipikat: Recommending pertinent software development artifacts. In: ICSE 2003: Proc. of the 25th Int’l Conf. on Software Engineering, pp. 408–418. IEEE Computer Society, Los Alamitos (2003)Google Scholar
  4. 4.
    Čubranić, D., Murphy, G.C., Singer, J., Booth, K.S.: Learning from project history: a case study for software development. In: CSCW 2004: Proc. of the 2004 ACM Conf. on Computer Supported Cooperative Work, pp. 82–91. ACM Press, New York (2004)Google Scholar
  5. 5.
    Dragunov, A.N., Dietterich, T.G., Johnsrude, K., McLaughlin, M., Li, L., Herlocker, J.L.: TaskTracer: A desktop environment to support multi-tasking knowledge workers. In: IUI 2005: Proc. of the 10th Int’l Conf. on Intelligent User Interfaces, pp. 75–82. ACM Press, New York (2005)CrossRefGoogle Scholar
  6. 6.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)Google Scholar
  7. 7.
    Greenberg, S., Witten, I.H.: Adaptive personalized interfaces – a question of viability. Behaviour and Information Technology - BIT 4, 31–45 (1985)CrossRefGoogle Scholar
  8. 8.
    Habermann, A.N., Notkin, D.: Gandalf: software development environments. IEEE Trans. Software Engineering 12(12), 1117–1127 (1986)Google Scholar
  9. 9.
    Heer, J., Card, S.K., Landay, J.A.: prefuse: a toolkit for interactive information visualization. In: CHI 2005: Proc. of the SIGCHI Conf. on Human Factors in Computing Systems, pp. 421–430. ACM Press, New York (2005)CrossRefGoogle Scholar
  10. 10.
    Kersten, M., Murphy, G.C.: Mylar: a degree-of-interest model for IDEs. In: AOSD 2005: Proc. of the 4th Int’l Conf. on Aspect-oriented Software Development, pp. 159–168 (2005)Google Scholar
  11. 11.
    Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: An overview of aspectJ. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 327–353. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  12. 12.
    Masuhara, H., Kiczales, G.: Modular crosscutting in aspect-oriented mechanisms. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743, pp. 2–28. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  13. 13.
    Mockus, A., Fielding, R.T., Herbsleb, J.: Two case studies of open source software development: Apache and Mozilla. ACM Trans. Software Engineering Methodology 11(3), 309–346 (2002)CrossRefGoogle Scholar
  14. 14.
    Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Communications of the ACM 15(12), 1053–1058 (1972)CrossRefGoogle Scholar
  15. 15.
    Perry, D.E., Staudenmayer, N., Votta, L.G.: People, organizations, and process improvement. IEEE Software 11(4), 36–45 (1994)CrossRefGoogle Scholar
  16. 16.
    Quitslund, P.J.: Beyond files: programming with multiple source views. In: Eclipse 2003: Proc. of the 2003 OOPSLA Workshop on Eclipse Technology eXchange, pp. 6–9. ACM Press, New York (2003)CrossRefGoogle Scholar
  17. 17.
    Rinard, M., Salcianu, A., Bugrara, S.: A classification system and analysis for aspect-oriented programs. In: SIGSOFT ’04/FSE-12: Proc. of the 12th ACM SIGSOFT Int’l Symp. on Foundations of Software Engineering, pp. 147–158. ACM Press, New York (2004)CrossRefGoogle Scholar
  18. 18.
    Robillard, M.P.: Representing Concerns in Source Code. PhD thesis, University of British Columbia (2003)Google Scholar
  19. 19.
    Robillard, M.P., Coelho, W., Murphy, G.C.: How effective developers investigate source code: An exploratory study. IEEE Trans. Software Engineering 30(12), 889–903 (2004)CrossRefGoogle Scholar
  20. 20.
    Robillard, M.P., Murphy, G.C.: Concern graphs: Finding and describing concerns using structural program dependencies. In: ICSE 2002: Proc. of the 24th Int’l Conf. on Software Engineering, pp. 406–416. ACM Press, New York (2002)CrossRefGoogle Scholar
  21. 21.
    Robillard, M.P., Murphy, G.C.: Automatically inferring concern code from program investigation activities. In: ASE 2003: Proc. of the 18th Int’l Conf. on Automated Software Engineering, pp. 225–234. IEEE Computer Society Press, Los Alamitos (2003)CrossRefGoogle Scholar
  22. 22.
    Robillard, M.P., Murphy, G.C.: Program navigation analysis to support task-aware software development environments. In: Proc. of the ICSE Workshop on Directions in Software Engineering Environments, pp. 83–88. IEE (2004)Google Scholar
  23. 23.
    Sarma, A., Noroozi, Z., van der Hoek, A.: Palantr: Raising awareness among configuration management workspaces. In: ICSE 2003: Proc. of the 25th Int’l Conf. on Software Engineering, pp. 444–454. IEEE Computer Society, Los Alamitos (2003)Google Scholar
  24. 24.
    Storey, M.-A.D., Čubranić, D., German, D.M.: On the use of visualization to support awareness of human activities in software development: A survey and a framework. In: SoftVis 2005: Proc. of the 2005 ACM Symp. on Software Visualization, pp. 193–202. ACM Press, New York (2005)CrossRefGoogle Scholar
  25. 25.
    Tarr, P., Ossher, H., Harrison, W., Sutton Jr., S.: N degrees of separation: Multi-dimensional separation of concerns. In: ICSE 1999: Proc. of the 21st Int’l Conf. on Software Engineering, pp. 107–119. IEEE Computer Society Press, Los Alamitos (1999)CrossRefGoogle Scholar
  26. 26.
    Woods, D., Patterson, E., Roth, E.: Can we ever escape from data overload? A cognitive system diagnosis. Cognition, Technology & Work 4(1), 22–36 (2002)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2005

Authors and Affiliations

  • Gail C. Murphy
    • 1
  • Mik Kersten
    • 1
  • Martin P. Robillard
    • 2
  • Davor Čubranić
    • 3
  1. 1.Department of Computer ScienceUniversity of British Columbia 
  2. 2.School of Computer ScienceMcGill University 
  3. 3.Department of Computer ScienceUniversity of Victoria 

Personalised recommendations