Abstract
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.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
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)
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)
Č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)
Č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)
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)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)
Greenberg, S., Witten, I.H.: Adaptive personalized interfaces – a question of viability. Behaviour and Information Technology - BIT 4, 31–45 (1985)
Habermann, A.N., Notkin, D.: Gandalf: software development environments. IEEE Trans. Software Engineering 12(12), 1117–1127 (1986)
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)
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)
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)
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)
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)
Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Communications of the ACM 15(12), 1053–1058 (1972)
Perry, D.E., Staudenmayer, N., Votta, L.G.: People, organizations, and process improvement. IEEE Software 11(4), 36–45 (1994)
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)
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)
Robillard, M.P.: Representing Concerns in Source Code. PhD thesis, University of British Columbia (2003)
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)
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)
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)
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)
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)
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)
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)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Murphy, G.C., Kersten, M., Robillard, M.P., Čubranić, D. (2005). The Emergent Structure of Development Tasks. In: Black, A.P. (eds) ECOOP 2005 - Object-Oriented Programming. ECOOP 2005. Lecture Notes in Computer Science, vol 3586. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11531142_2
Download citation
DOI: https://doi.org/10.1007/11531142_2
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-27992-1
Online ISBN: 978-3-540-31725-8
eBook Packages: Computer ScienceComputer Science (R0)