Developing techniques for using software documents: a series of empirical studies

This proposal presents an empirical method for developing “reading techniques” that give effective, procedural guidance to software practitioners. Each reading technique is tailored so that it can be used to accomplish a specific software-related task (e.g. defect detection) using a specific kind of software document (e.g. requirements). This empirical method can be followed to create and then continually improve reading techniques, since it explicitly builds and tests underlying models of how developers use a particular software document in a particular environment. That is, our approach for developing reading techniques checks the underlying assumptions about: • Specific tasks for which the document will be used • Aspects of the document that must be understood to support those tasks • Aspects of the environment affecting tasks using the document This empirical approach avoids the mistake of applying assumptions that are true in other environments to a context in which they have not been tested. We illustrate the development method by discussing how it was used to create two reading techniques (one for finding defects in requirements, and a second for reusing design and code from an Object-Oriented framework in a new system). We describe a series of studies by which we and other researchers have assessed the effectiveness of these techniques in practical situations. These studies show that these reading techniques are useful and effective guidelines for accomplishing real software engineering tasks, and thus demonstrate the effectiveness of the empirical development method. Finally, this proposal discusses how indications from these studies have been used to begin to formulate higher-level hypotheses about reading techniques. We discuss the results from these earlier studies as well as important questions that have not yet been addressed. We propose a further study that is designed to test potential improvements to one of our reading techniques and, in the process, shed some light on the unanswered questions from our earlier studies.

[1]  Victor R. Basili,et al.  Evolving and packaging reading technologies , 1997, J. Syst. Softw..

[2]  Glenford J. Myers,et al.  Structured Design , 1974, IBM Syst. J..

[3]  Victor R. Basili,et al.  Improve Software Quality by Reusing Knowledge and Experience , 1995 .

[4]  Lionel E. Deimel,et al.  Progress report on the study of program reading , 1983, SIGCSE '83.

[5]  Watts S. Humphrey,et al.  Using A Defined and Measured Personal Software Process , 1996, IEEE Softw..

[6]  Eliot R. Smith,et al.  Research methods in social relations , 1962 .

[7]  Harlan D. Mills,et al.  Structured programming - theory and practice , 1979, The systems programming series.

[8]  Philip M. Johnson,et al.  Assessing software review meetings: A controlled experimental study using CSRS , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[9]  William E. Lorensen,et al.  Object-Oriented Modeling and Design , 1991, TOOLS.

[10]  Victor R. Basili,et al.  Communication and Organization: An Empirical Study of Discussion in Inspection Meetings , 1998, IEEE Trans. Software Eng..

[11]  Forrest Shull,et al.  Investigating Reading Techniques for Framework Learning , 2000 .

[12]  Marvin V. Zelkowitz,et al.  SEL's Software Process Improvement Program , 1995, IEEE Softw..

[13]  Douglas C. Schmidt,et al.  Object-oriented application frameworks , 1997, CACM.

[14]  Victor R. Basili,et al.  A Methodology for Collecting Valid Software Engineering Data , 1984, IEEE Transactions on Software Engineering.

[15]  Erich Gamma,et al.  Design and Implementation of ET++, a Seamless Object-Oriented Application Framework , 1989, Struct. Program..

[16]  Erich Gamma,et al.  Design and Implementation of ET++, a Seamless Object-Oriented Application Framework 1 , 1989 .

[17]  Lionel E. Deimel,et al.  Reading Computer Programs: Instructor's Guide to Exercises , 1990 .

[18]  W. J. Conover,et al.  Practical Nonparametric Statistics , 1972 .

[19]  B. Kitchenham,et al.  Case Studies for Method and Tool Evaluation , 1995, IEEE Softw..

[20]  Kurt Schneider,et al.  Deceived by ease of use: using paradigmatic applications to build visual design environments , 1995, Symposium on Designing Interactive Systems.

[21]  Sivert Sørumgård,et al.  Verification of Process Conformance in Empirical Studies of Software Development , 1997 .

[22]  David Lorge Parnas,et al.  Active design reviews: principles and practices , 1985, ICSE '85.

[23]  Frank E. McGarry,et al.  Recommended approach to software development, revision 3 , 1992 .

[24]  Fairclough Mazza,et al.  Software Engineering Standards , 1995 .

[25]  Kathryn L. Heninger Specifying Software Requirements for Complex Systems: New Techniques and Their Application , 2001, IEEE Transactions on Software Engineering.

[26]  D. Scott Brandt Constructivism: teaching for understanding of the Internet , 1997, CACM.

[27]  Timothy C. Lethbridge,et al.  Methods for Studying Maintenance Activities , 1996 .

[28]  Victor R. Basili,et al.  The Experimental Paradigm in Software Engineering , 1992, Experimental Software Engineering Issues.

[29]  nominatif de l’habitat,et al.  Definitions , 1964, Innovation Dynamics and Policy in the Energy Sector.

[30]  Ivar Jacobson,et al.  Object-oriented software engineering - a use case driven approach , 1993, TOOLS.

[31]  Boris Beizer,et al.  Software Testing Techniques , 1983 .

[32]  Adam A. Porter,et al.  Comparing Detection Methods for Software Requirements Inspections: A Replicated Experiment , 1995, IEEE Trans. Software Eng..

[33]  Victor R. Basili,et al.  Software process evolution at the SEL , 1994, IEEE Software.

[34]  K. Eisenhardt Building theories from case study research , 1989, STUDI ORGANIZZATIVI.

[35]  Ralph E. Johnson,et al.  Patterns Generate Architectures , 1994, ECOOP.

[36]  M. Miles Qualitative Data as an Attractive Nuisance: The Problem of Analysis , 1979 .

[37]  Harvey P. Siy,et al.  An experiment to assess the cost-benefits of code inspections in large scale software development , 1995, SIGSOFT '95.

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

[39]  Barbee T. Mynatt,et al.  Software Engineering With Student Project Guidance , 1989 .

[40]  Shari Lawrence Pfleeger,et al.  Software Metrics : A Rigorous and Practical Approach , 1998 .

[41]  R. Lyman Ott.,et al.  An introduction to statistical methods and data analysis , 1977 .

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

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

[44]  A. R. Ilersic,et al.  Research methods in social relations , 1961 .

[45]  A. Strauss,et al.  The discovery of grounded theory: strategies for qualitative research aldine de gruyter , 1968 .

[46]  Victor R. Basili,et al.  Experimental Software Engineering Issues: Critical Assessment and Future Directions , 1993, Lecture Notes in Computer Science.

[47]  Corporate Ieee,et al.  Software engineering standards , 1987 .

[48]  Peter J. Middleton,et al.  Software Inspection , 1994, J. Inf. Technol..

[49]  E. Ziegel A Step-by-Step Approach to Using the SAS System for Univariate and Multivariate Statistics , 1994 .

[50]  李幼升,et al.  Ph , 1989 .

[51]  Robert L. Glass,et al.  Science and substance: a challenge to software engineers , 1994, IEEE Software.

[52]  Mary Beth Rosson,et al.  Smalltalk scaffolding: a case study of minimalist instruction , 1990, CHI '90.

[53]  Claes Wohlin,et al.  Experimentation in Software Engineering , 2000, The Kluwer International Series in Software Engineering.

[54]  J. Gilgun,et al.  Definitions, methodologies, and methods in qualitative family research. , 1992 .

[55]  Victor R. Basili,et al.  An Empirical Study of Communication in Code Inspections , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[56]  Victor R. Basili,et al.  The TAME Project: Towards Improvement-Oriented Software Environments , 1988, IEEE Trans. Software Eng..

[57]  Michael E. Fagan Advances in software inspections , 1986, IEEE Transactions on Software Engineering.

[58]  Wim Codenie,et al.  From custom applications to domain-specific frameworks , 1997, CACM.

[59]  John C. Knight,et al.  An improved inspection technique , 1993, CACM.

[60]  Steve McConnell Problem Programmers , 1998, IEEE Softw..

[61]  Anneliese Amschler Andrews,et al.  Industrial experience with an integrated code comprehension model , 1995, Softw. Eng. J..

[62]  Victor R. Basili,et al.  The Experience Factory and its Relationship to Other Improvement Paradigms , 1993, ESEC.

[63]  Lawrence G. Votta,et al.  Does every inspection need a meeting? , 1993, SIGSOFT '93.

[64]  Matthew W. Lewis,et al.  Self-Explonations: How Students Study and Use Examples in Learning to Solve Problems , 1989, Cogn. Sci..