Understanding Frameworks Collaboratively : Tool Requirements

Software development is a social activity. Teams of developers join together to coordinate their efforts to produce software systems. This effort encompasses the development of a shared understanding surrounding multiple artifacts throughout the process. Frameworks are a powerful technique for large-scale reuse, but their complexity often makes them hard to understand and learn how to use. Developers resort to their colleagues for help and insight, at the expense of time and intrusion, as documentation is often outdated and incomplete. This paper presents a study on the state-of-the art on program comprehension, framework understanding and collaborative software environments, proposing a set of requirements for developing tools to improve the understanding of frameworks in a collaborative way.

[1]  Stéphane Ducasse,et al.  A categorization of classes based on the visualization of their internal structure: the class blueprint , 2001, OOPSLA '01.

[2]  Kevin A. Schneider,et al.  Source transformation in software engineering using the TXL transformation system , 2002, Inf. Softw. Technol..

[3]  N. Pennington Stimulus structures and mental representations in expert comprehension of computer programs , 1987, Cognitive Psychology.

[4]  Margaret-Anne Storey,et al.  A Top-Down Approach to ALgorithm Animation , 1994 .

[5]  Mica R. Endsley,et al.  Toward a Theory of Situation Awareness in Dynamic Systems , 1995, Hum. Factors.

[6]  Marc H. Brown,et al.  Zeus: a system for algorithm animation and multi-view editing , 1991, Proceedings 1991 IEEE Workshop on Visual Languages.

[7]  Gruia-Catalin Roman,et al.  Pavane: a system for declarative visualization of concurrent computations , 1992, J. Vis. Lang. Comput..

[8]  Ben Shneiderman,et al.  Syntactic/semantic interactions in programmer behavior: A model and experimental results , 1979, International Journal of Computer & Information Sciences.

[9]  A. von Mayrhauser,et al.  From code understanding needs to reverse engineering tool capabilities , 1993, Proceedings of 6th International Workshop on Computer-Aided Software Engineering.

[10]  Ping Chen,et al.  Lighthouse: coordination through emerging design , 2006, eclipse '06.

[11]  David A. Penny,et al.  The software landscape: a visual formalism for programming-in-the-large , 1993 .

[12]  William J. Tolone,et al.  Supporting collaborative software development with ConversationBuilder , 1992 .

[13]  Paul G. Sorenson,et al.  Hooking into Object-Oriented Application Frameworks , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[14]  Michael Weber,et al.  CSCW tools: concepts and architectures , 1994, Computer.

[15]  Gail E. Kaiser,et al.  An architecture for multi-user software development environments , 1992 .

[16]  Andrian Marcus,et al.  Comprehension of software analysis data using 3D visualization , 2003, 11th IEEE International Workshop on Program Comprehension, 2003..

[17]  Douglas Samuel Kirk,et al.  Identifying and addressing problems in framework reuse , 2005, 13th International Workshop on Program Comprehension (IWPC'05).

[18]  Jonathan Grudin,et al.  Computer supported cooperative work and groupware , 1994, CHI Conference Companion.

[19]  Cristina V. Lopes,et al.  Aspect-Oriented Programming , 1997, ECOOP.

[20]  Alan F. Blackwell,et al.  Cognitive Questions in Software Visualisation , 1997 .

[21]  Stephen G. Eick,et al.  Seesoft-A Tool For Visualizing Line Oriented Software Statistics , 1992, IEEE Trans. Software Eng..

[22]  Wolfgang Pree,et al.  Design Patterns for Object-Oriented Software Development , 1994, Proceedings of the (19th) International Conference on Software Engineering.

[23]  T. Dean Hendrix,et al.  Tool support for reverse engineering multi-lingual software , 1997, Proceedings of the Fourth Working Conference on Reverse Engineering.

[24]  Aaron Marcus,et al.  Human factors and typography for more readable programs , 1990 .

[25]  Kenny Wong,et al.  The reverse engineering notebook , 1999 .

[26]  Imed Hammouda,et al.  A Pattern-Based J2EE Application Development Environment , 2002, Nord. J. Comput..

[27]  Iyad Zayour,et al.  A cognitive and user centric based approach for reverse engineering tool design , 2000, CASCON.

[28]  Laurent Dumas,et al.  Visualizing program dependencies: An experimental study , 1994, Softw. Pract. Exp..

[29]  Kate Ehrlich,et al.  Empirical Studies of Programming Knowledge , 1984, IEEE Transactions on Software Engineering.

[30]  Margaret-Anne Storey,et al.  Designing a Software Exploration Tool Using a Cognitive Framework , 2003 .

[31]  E. James Whitehead,et al.  WebDAV: A network protocol for remote collaborative authoring on the Web , 1999, ECSCW.

[32]  Marvin V. Zelkowitz,et al.  Experimental Models for Validating Technology , 1998, Computer.

[33]  Elliot Soloway,et al.  Designing documentation to compensate for delocalized plans , 1988, CACM.

[34]  Jesse James Garrett Ajax: A New Approach to Web Applications , 2007 .

[35]  Rainer Koschke,et al.  Aiding program comprehension by static and dynamic feature analysis , 2001, Proceedings IEEE International Conference on Software Maintenance. ICSM 2001.

[36]  Hausi A. Müller,et al.  Rigi: a system for programming-in-the-large , 1988, Proceedings. [1989] 11th International Conference on Software Engineering.

[37]  André van der Hoek,et al.  Palantir: raising awareness among configuration management workspaces , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[38]  Janice Singer,et al.  An examination of software engineering work practices , 1997, CASCON.

[39]  Luke Hohmann,et al.  Journey of the Software Professional , 1996 .

[40]  Ciaran O'Reilly,et al.  The war room command console: shared visualizations for inclusive team coordination , 2005, SoftVis '05.

[41]  KlingRob Cooperation, coordination and control in computer-supported work , 1991 .

[42]  Forrest Shull,et al.  Investigating Reading Techniques for Object-Oriented Framework Learning , 2000, IEEE Trans. Software Eng..

[43]  Robert S. Rist Plans in programming: definition, demonstration, and development , 1986 .

[44]  Carl Gutwin,et al.  Group awareness in distributed software development , 2004, CSCW.

[45]  Stanley Letovsky,et al.  Cognitive processes in program comprehension , 1986, J. Syst. Softw..

[46]  Mark S. Ackerman,et al.  Collaborative Support for Informal Information in Collective Memory Systems , 2000, Inf. Syst. Frontiers.

[47]  Clarence A. Ellis,et al.  Groupware: some issues and experiences , 1991, CACM.

[48]  Timothy Lethbridge,et al.  On generating cognitive patterns of software comprehension , 2005, CASCON.

[49]  Richard N. Taylor,et al.  Endeavors: a process system integration infrastructure , 1996, Proceedings of Software Process 1996.

[50]  Marian Petre,et al.  Why looking isn't always seeing: readership skills and graphical programming , 1995, CACM.

[51]  Ted J. Biggerstaff,et al.  The concept assignment problem in program understanding , 1993, [1993] Proceedings Working Conference on Reverse Engineering.

[52]  Paul Wilson,et al.  Computer Supported Cooperative Work:: An Introduction , 2014 .

[53]  Janice Singer,et al.  NavTracks: supporting navigation in software , 2005, 13th International Workshop on Program Comprehension (IWPC'05).

[54]  Harry M. Sneed,et al.  Partial comprehension of complex programs (enough to perform maintenance) , 1998, Proceedings. 6th International Workshop on Program Comprehension. IWPC'98 (Cat. No.98TB100242).

[55]  E. James Whitehead,et al.  Collaboration in Software Engineering: A Roadmap , 2007, Future of Software Engineering (FOSE '07).

[56]  Ruven E. Brooks,et al.  Towards a Theory of the Comprehension of Computer Programs , 1983, Int. J. Man Mach. Stud..

[57]  Ian M. Holland,et al.  Contracts: specifying behavioral compositions in object-oriented systems , 1990, OOPSLA/ECOOP '90.

[58]  Steven P. Reiss An overview of BLOOM , 2001, PASTE '01.

[59]  B. J. Ferro Castro,et al.  Pattern-Oriented Software Architecture: A System of Patterns , 2009 .

[60]  Ademar Aguiar,et al.  Patterns for Documenting Frameworks - Part II , 2006, EuroPLoP.

[61]  Robert Johansen,et al.  Groupware: Computer Support for Business Teams , 1988 .

[62]  Daniel M. Germán,et al.  Improving the usability of Eclipse for novice programmers , 2003, eclipse '03.

[63]  Françoise Détienne,et al.  Software Design — Cognitive Aspects , 2001, Practitioner Series.

[64]  Jonathan Grudin,et al.  Why CSCW Applications Fail: Problems in the Design and Evaluation of Organization of Organizational Interfaces. , 1988 .

[65]  Kevin Crowston,et al.  The interdisciplinary study of coordination , 1994, CSUR.

[66]  Shirley Dex,et al.  JR 旅客販売総合システム(マルス)における運用及び管理について , 1991 .

[67]  Mary Czerwinski,et al.  Towards understanding programs through wear-based filtering , 2005, SoftVis '05.

[68]  Jonathan Grudin,et al.  Computer-supported cooperative work: history and focus , 1994, Computer.

[69]  Iris Vessey,et al.  Expertise in Debugging Computer Programs: A Process Analysis , 1984, Int. J. Man Mach. Stud..

[70]  Andrew Walenstein,et al.  Observing and measuring cognitive support: steps toward systematic tool evaluation and engineering , 2003, 11th IEEE International Workshop on Program Comprehension, 2003..

[71]  D. Gangopadhyay,et al.  Understanding frameworks by exploration of exemplars , 1995, Proceedings Seventh International Workshop on Computer-Aided Software Engineering.

[72]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[73]  Paul Dourish,et al.  Awareness and coordination in shared workspaces , 1992, CSCW '92.

[74]  Uwe Zdun,et al.  Modeling architectural patterns using architectural primitives , 2005, OOPSLA '05.

[75]  Jan Bosch,et al.  Framework Problems and Experiences , 1999 .

[76]  Dennis B. Smith,et al.  Coming Attractions in Program Understanding , 1996 .

[77]  Thomas D. LaToza,et al.  Maintaining mental models: a study of developer work habits , 2006, ICSE.

[78]  Gregor Kiczales,et al.  Design pattern implementation in Java and aspectJ , 2002, OOPSLA '02.

[79]  Li-Te Cheng,et al.  Introducing collaboration into an application development environment , 2004, CSCW.

[80]  Daniel M. German,et al.  On the use of visualization to support awareness of human activities in software development: a survey and a framework , 2005, SoftVis '05.

[81]  David Garlan,et al.  Design fragments make using frameworks easier , 2006, OOPSLA '06.

[82]  Alberto O. Mendelzon,et al.  Reverse Engineering by Visualizing and Querying , 1995, Softw. Concepts Tools.

[83]  Mik Kersten,et al.  Mylar: a degree-of-interest model for IDEs , 2005, AOSD '05.

[84]  J. Herbsleb,et al.  Two case studies of open source software development: Apache and Mozilla , 2002, TSEM.

[85]  Ronald M. Baecker,et al.  Readings in human-computer interaction : toward the year 2000 , 1995 .

[86]  Doug Kimelman,et al.  Mining Jungloids: Helping to Navigate the API Jungle , 2005, PLDI 2005.

[87]  Leon J. Osterweil,et al.  Programming Process Coordination in Little-JIL , 1998, EWSPT.

[88]  David Notkin,et al.  Software reflexion models: bridging the gap between source and high-level models , 1995, SIGSOFT FSE.

[89]  Rebecca E. Grinter Systems architecture: product designing and social engineering , 1999 .

[90]  James Surowiecki The wisdom of crowds: Why the many are smarter than the few and how collective wisdom shapes business, economies, societies, and nations Doubleday Books. , 2004 .

[91]  Thomas Ball,et al.  Software Visualization in the Large , 1996, Computer.

[92]  Ralph Johnson Documenting frameworks using patterns , 1992, OOPSLA 1992.

[93]  Wolfgang Pree,et al.  Framework Patterns , 1996 .

[94]  Oscar Nierstrasz,et al.  The Effect of Object-Oriented Frameworks on Developer Productivity , 1996, Computer.

[95]  Mark Guzdial,et al.  Whorf: a visualization tool for software maintenance , 1992, Proceedings IEEE Workshop on Visual Languages.

[96]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[97]  Gail E. Kaiser,et al.  An architecture for multi-user software development environments , 1992, SDE 5.

[98]  David A. Scanlan Structured flowcharts outperform pseudocode: an experimental comparison , 1989, IEEE Software.

[99]  Mira Mezini,et al.  FrUiT: IDE support for framework understanding , 2006, ETX.

[100]  Daniel M. Germán,et al.  The GNOME project: a case study of open source, global software development , 2003, Softw. Process. Improv. Pract..

[101]  Jonathan Grudin,et al.  Why CSCW applications fail: problems in the design and evaluationof organizational interfaces , 1988, CSCW '88.

[102]  Stephen Travis Pope,et al.  A cookbook for using the model-view controller user interface paradigm in Smalltalk-80 , 1988 .

[103]  David Coleman,et al.  Groupware: Technology and Applications , 1995 .

[104]  Ben Shneiderman,et al.  Experimental investigations of the utility of detailed flowcharts in programming , 1977, CACM.

[105]  R. Kadia Issues Encountered in Building a Flexible Software Development Environment , 2011 .

[106]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

[107]  Paul Dourish,et al.  The Appropriation of Interactive Technologies: Some Lessons from Placeless Documents , 2003, Computer Supported Cooperative Work (CSCW).

[108]  Ademar Aguiar Framework documentation : A minimalist approach , 2012 .

[109]  Takao Shimomura,et al.  VIPS: A Visual Debugger , 1987, IEEE Software.

[110]  Tom Tourwé,et al.  Automated Support for Framework-Based Software Evolution , 2003 .

[111]  Kjeld Schmidt,et al.  Taking CSCW seriously , 1992, Computer Supported Cooperative Work (CSCW).

[112]  Jay F. Nunamaker,et al.  Electronic meeting systems: ten years of lessons learned , 1995 .

[113]  Israel Z. Ben-Shaul,et al.  Oz: A Decentralized Process Centered Environment , 1993 .

[114]  Panagiotis K. Linos,et al.  VIFOR: A tool for software maintenance , 1990, Softw. Pract. Exp..

[115]  Bernhard Rumpe,et al.  The UML profile for framework architectures , 2002, Addison Wesley object technology series.

[116]  Kai Koskimies,et al.  Annotating reusable software architectures with specialization patterns , 2001, Proceedings Working IEEE/IFIP Conference on Software Architecture.

[117]  Walter F. Tichy,et al.  Summary of the Dagstuhl workshop on future directions in software engineering: February 17–21, 1992, Schloß Dagstuhl , 1993, SOEN.

[118]  Mark S. Ackerman,et al.  The Intellectual Challenge of CSCW: The Gap Between Social Requirements and Technical Feasibility , 2000, Hum. Comput. Interact..

[119]  Janice Singer,et al.  Hipikat: a project memory for software development , 2005, IEEE Transactions on Software Engineering.

[120]  Martin P. Robillard,et al.  FEAT a tool for locating, describing, and analyzing concerns in source code , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[121]  Elliot Soloway,et al.  Mental models and software maintenance , 1986, J. Syst. Softw..

[122]  Hausi A. Müller,et al.  Cognitive design elements to support the construction of a mental model during software visualization , 1997, Proceedings Fifth International Workshop on Program Comprehension. IWPC'97.

[123]  Paul Dourish,et al.  Unifying artifacts and activities in a visual tool for distributed software development teams , 2004, Proceedings. 26th International Conference on Software Engineering.

[124]  Margaret-Anne D. Storey,et al.  Theories, Methods and Tools in Program Comprehension: Past, Present and Future , 2005, IWPC.

[125]  Ben Shneiderman,et al.  Measuring Computer Program Quality and Comprehension , 1977, Int. J. Man Mach. Stud..

[126]  Dennis B. Smith,et al.  Towards a framework for program understanding , 1996, WPC '96. 4th Workshop on Program Comprehension.

[127]  Gregory Butler,et al.  A framework for framework documentation , 2000, CSUR.

[128]  Lisa B. Dusseault WebDAV: Next Generation Collaborative Web Authoring , 2003 .

[129]  Margaret-Anne Storey,et al.  Towards Visualization Support for the Eclipse Modeling Framework , 2005 .

[130]  Barry W. Boehm,et al.  Software requirements negotiation: some lessons learned , 1998, Proceedings of the 20th International Conference on Software Engineering.

[131]  Anneliese Amschler Andrews,et al.  Program Comprehension During Software Maintenance and Evolution , 1995, Computer.

[132]  Marian Petre,et al.  When Visual Programs are Harder to Read than Textual Programs , 1992 .

[133]  Ademar Aguiar,et al.  Patterns and Tools for Improving Framework Understanding: A Collaborative Approach , 2009, 2009 Fourth International Conference on Software Engineering Advances.