Introduction

F. P. Brooks, Jr., "No Silver Bullet--Essence and Accidents of Software Engineering," Computer 20 (4), April 1987.  Reprinted from Proceedings of the IFIP Congress, Dublin, Ireland, 1986. [pdf]

Software development process

Bergland, A Guided Tour of Program Design Methodologies [pdf]

"An Overview of JSD," by John R. Cameron, IEEE TSE, February 1986, vol. SE-12, no. 2, pp. 222-240 [pdf]

Corina Pasareanu and Willem Visser, Verification of java programs using symbolic execution and invariant generation [pdf]

Klaus Havelund et al., Formal Analysis of the Remote Agent Before and After Flight [pdf]

"Object-Oriented Development" by Grady Booch, IEEE TSE, February 1986, vol. SE-12, no. 2, pp. 211-221 [pdf]

Leon Osterweil, "Software Processes are Software Too"; original 1987 [pdf]

D. Parnas and Paul Clements, A Rational Design Process: How and why to fake it [pdf]

"Agile software development methods," by Pekka Abrahamsson, Outi Salo, Jussi Ronkainen, and Juhani Warsta, ESPOO 2002 [pdf]

Reviews and Inspection

H. D. Mills, M. Dyer and R. C. Linger, "Cleanroom Software Engineering," IEEE Software, 4 (5), September 1987, pp. 19-25. [pdf]

M. E. Fagan,  "Design and code inspections to reduce error in program development," IBM Systems Journal, 38 (2&3), 1999, pp. 258-298.   Reprinted from the IBM Systems Journal, 15 (3), 1976. [pdf]

A. Porter, H. Siy, C. A. Toman, and L. G. Votta, "An Experiment to Assess the Cost-Benefits of Code Inspections in Large Scale Software Development," IEEE Transactions on Software Engineering, 23 (6), June 1997, pp. 329-346. [pdf]

Software Architecture

Dewayne Perry and Alexander Wolf, Foundations for the Study of Software Architecture [pdf]

David Garlan and Mary Shaw, An introduction to Software Architecture [pdf]

Ivan Bowman et al., Linux as a Case Study: Its Extracted Software Architecture [pdf]

Jonathan Aldrich et al., ArchJava: Connecting Software Architecture to Implementation [pdf]

Butler W. Lampson "Hints for computer system design," ACM Operating Systems Rev. 15, 5 (Oct. 1983), pp 33-48. Reprinted in IEEE Software 1, 1 (Jan. 1984), pp 11-28.[pdf]

Aspect-Oriented Programming

"A Disciplined Approach to Aspect Composition" by Roberto Lopez-Herrejon, Don Batory and Christian Lengauer, PEPM, 2006 [pdf]

"Program Transformation with Reflective and Aspect-Oriented Programming" by Shigeru Chiba [pdf]

"An Overview of AspectJ" by Gregor Kiczales et al. [pdf]

Generative Programming

"A Tutorial on Feature-Oriented Programming and the AHEAD tool suite" by Don Batory, [pdf]

Component-Based SE

"Composing Integrated Systems Using GUI-Based Applications And Web Services" by Mark Grechanik and Kevin Conroy, IEEE International Conference on Services Computing (SCC 2007), July 11-15, 2007, Salt Lake City. [pdf]

"A Search Engine For Finding Highly Relevant Applications" by Mark Grechanik, Chen Fu, Qing Xie, Collin McMillan, Denys Poshyvanyk, and Chad Cumby, 32nd International Conference on Software Engineering (ICSE’10), Capetown, South Africa, May 2010.[pdf]

Configuration management

"Version Models for Software Configuration Management ," by Reidar Conradi and Bernhard Westfechtel, ACM Computing Surveys Vol.30, No.2, June 1998 [pdf]

Introduction to dynamic analysis

H. Zhu, P. A. V. Hall, and J. H. R. May, "Software Unit Test Coverage and Adequacy," ACM Computing Surveys, 29 (4), December 1997, pp. 366-427. [pdf]

Assertions

D. S. Rosenblum, "A Practical Approach to Programming with Assertions," IEEE Transactions on Software Engineering, 29 (4), January 1995, pp. 19-31. [pdf]

G. T. Leavens and Yoonsik Cheon, "Design by Contract with JML", January 2005 [pdf]

Error seeding


A. J. Offutt, "A Practical System for Mutation Testing: Help for the Common Programmer," 12th International Conference onTesting Computer Software, Washington, D.C., June 1995, pp. 99-109. [pdf]

Lingming Zhang, Darko Marinov, Lu Zhang, Sarfraz Khurshid, "Regression Mutation Testing", ISSTA 2012 [pdf]

Coverage criteria

S. Rapps and E. J. Weyuker, "Data Flow Analysis Techniques for Test Data Selection," Sixth International Conference of Software Engineering, Tokyo, Japan, September 1982, pp. 272-277. [pdf]

L. A. Clarke, A. Podgurski, D. J. Richardson and Steven J. Zeil, "A Formal Evaluation of Data Flow Path Selection Criteria," IEEE Transactions on Software Engineering, 15 (11), November 1989, pp. 1318-1332. [pdf]

Dependency analysis

 M. Weiser, "Program Slicing," Fifth International Conference on Software Engineering, San Diego, Ca 1981, pp. 439-449. [pdf] , “Program Slicing,” Proceedings of the 5thInternational Conference on   

 A. Podgurski and L. A. Clarke, "A Formal Model of Program Dependencies and IIts Implications for Software Testing, Debugging, and Maintenance", IEEE Transactions on Software Engineering, 16 (9), September 1990, pp. 965-979. [pdf]

D. W. Binkley and K. B. Gallagher, "Program Slicing," Advances in Computers, Vol. 43, M. Zelkowitz, editor, Academic Press, 1996 pp. 1-50. [pdf]

Fault based testing

M. C. Thompson, D. J. Richardson and L. A. Clarke, "An Information Flow Model of Fault Detection," International Symposium on Software Testing and Analysis, Boston, MA, June 1993, pp.182-192. [pdf]

Regression testing

Y. F. Chen, D. S. Rosenblum and K. P. Vo, "TestTube: A System for Selective Regression Testing," Sixteenth International Conference on Software Engineering, Sorrento, Italy, May 1994, pp. 211-220. [pdf]

G. Rothermel and M. J. Harrold, "Analyzing Regression Test Selection Techniques," IEEE Transactions on Software Engineering, 22 (8), August 1996, pp. 529-551. [pdf]

T. L. Graves, M. J. Harrold, J. M. Kim, A. Porter and G. Rothermel, "An Empirical Study of Regression Test Selection Techniques," ACM Transactions on Software Engineering and Methodology, 10 (2), April 2001, pp. 184-208. [pdf]

T. J. Ostrand, E. J. Weyuker,  R. M. Bell, "Where the Bugs Are," In the Proceedings of the 2004 International Symposium on Software Testing and Analysis, Boston, MA, July 2004. [pdf]

Object oriented testing

R. K. Doong and P. G. Frankl, "The ASTOOT Approach to Testing Object-Oriented Programs," ACM Transactions on Software Engineering and Methodology, 3 (2), April 1994, pp. 101-130. [pdf]

M. J. Harrold, J. D. McGregor and K. J. Fitzpatrick, "Incremental Testing of Object-Oriented Class Structures," 14th International Conference on Software Engineering, Melbourne, Australia, May 1992, pp. 68-80. [pdf]

M. J. Harrold and G. Rothermel, "Performing Data Flow Testing on Classes," Second ACM SIGSOFT Symposium on the Foundations of Software Engineering (FSE'94), New Orleans, LA, December 1994, pp. 154-163. [pdf]

A. L. Souter and L. L. Pollock, "OMEN: A Strategy for Testing Object-oriented Software," International Symposium on Software Testing and Analysis 2000 (ISSTA 2000), August 2000. [pdf]

Symbolic evaluation

L. A. Clarke and D. J. Richardson, "Applications of Symbolic Evaluation," Journal of  Systems and Software, 5 (1), January 1985, pp.15-35. [pdf]

 

Software verification

R.W. Floyd, "Assigning Meaning to Programs, "Symposium on Applied Mathematics, 1967, pp. 19-32 (Appeared as volume 19 of Mathematical Aspects of Computer Science). [pdf]

R. A. DeMillo, R. J. Lipton and A. J. Perlis, "Social Processes and Proofs of Theorems and Programs," Communications of the ACM, 22 (5), May 1979, pp. 271-280. [pdf]

S. King, J. Hammond, R. Chapman and A. Pryor, "Is Proof More Cost-Effective Than Testing?" IEEE Transactions on Software Engineering, 26 (8), August 2000, pp. 675-686. [pdf]

Data flow analysis

L. D. Fosdick and L. J. Osterweil, "Data Flow Analysis in Software Reliability," ACM Computing Surveys, 8 (3), September 1976, pp. 306-330. [pdf]

K. M. Olender and L. J. Osterweil, "Interprocedural Static Analysis of Sequencing Constraints," ACM Transactions on Software Engineering and Methodology, 1 (1), January 1992, pp. 21-52. [pdf]

Debugging

Holger Cleve and Andreas Zeller, "Locating Causes of Program Failures", Proceedings of the International Conference on Software Engineering, May 2005 [pdf]