CS 6370 Bibliography

Lecture 2

The Mythical Man Month by Frederick P. Brooks, Jr., chapters 1, 2, 8, 14, 16

Lecture 3

“Why the Vasa Sank:  10 Problems and Some Antidotes for Software Projects” by Richard E. Fairley and Mary Jane Willshire, IEEE Software, vol. 20, n. 2, pp. 18-25

Lecture 4

“A Spiral Model of Software Development and Enhancement,” Barry W. Boehm, IEEE Computer, vol. 21, n. 5, pp. 61-72

Lecture 5

“The XP Programmer: The Few-Minutes Programmer” by Laurie Williams, IEEE Software, vol. 20, n. 3, pp. 16-20

“Introducing XP Into Greenfields Projects: Lessons Learned” by Jonathan Rasmusson, IEEE Software, vol. 20, n. 3, pp. 21-29

“Exploring XP for Scientific Research” by William Wood and William Kleb, IEEE Software, vol. 20, n. 3, pp. 30-e6

“Assessing XP at a European Interned Company” by Orlando Murru, Roberto Deias, and Giampiero Mugheddu, IEEE Software, vol. 20, n. 3, pp. 37-43

Lecture 6

“Issue on Agile Development Processes”, Crosstalk, vol.5, n. 10

Lecture 7

“Agile Software Development: It’s about Feedback and Change”, Laurie Williams and Alistair Cockburn, Computer, vol. 36, n. 6, pp. 39-43

“Agility Through Discipline”, Kent Beck and Barry Boehm, Computer, vol. 36, n. 6, pp. 44-46

“Iterative and Incremental Development: A Brief History”, Craig Larman and Victor Basili, Computer, vol. 36, n. 6, pp. 47-56

“Using Risk to Balance Agile and Plan-Driven Methods”, Barry Boehm and Richard Turner, Computer, vol. 36, n. 6, pp. 57-66

Lecture 8

“How Microsoft Builds Software” by Michael Cusumano and Richard Selby, Communications of the ACM, v. 40, n.6, pp.53-61

“Managing OO Projects Better” by Paolo Nesi, IEEE Software, v. 15, n. 4, pp. 50-60

Lecture 9

“Process Diversity in Software Development” by Mikael Lindvall and Ioana Rus, IEEE Software, v. 17, n.4, pp.14-18

“Selecting a Project’s Methodology” by Alistair Cockburn, IEEE Software, v. 17, n. 4, pp. 64-71

“Process Diversity and a Computing Old Wives’/Husbands’ Tale”, IEEE Software, v. 17, n. 4, pp. 128-127

Lecture 10

“Characterizing the Software Process,” by Watts S. Humphrey, IEEE Software, vol 5, n. 2, pp. 73-79

Lecture 11

“Attaining Level 5 in CMM Process Maturity”,  by Frank McGarry and Bill Decker, IEEE Software, vol 19, n. 6, pp. 87-96

“An Insider’s View of  CMM Level 5”,  by Nancy Eickelmann,  IEEE Software, vol 20, n. 4, pp. 79-81

Lecture 12

“Three Dimensions of Process Improvement,” Watts. S. Humphery, Crosstalk, V. 11, ns. 2, 3, 4

Introduction to the Personal Software Process by Watts S. Humphery, pp. 1-71

Lecture 13

Introduction to the Personal Software Process by Watts S. Humphery, pp. 72-136

Lecture 14

Introduction to the Personal Software Process by Watts S. Humphery, pp. 137-251

Lecture 15

“Inspection’s Role in Software Quality Assurance” by David Parnas and Mark Lawford,  IEEE Software, vol 20, n. 4, pp. 16-20

“Improving Software Inspections with Group Process Support” by Craig K. Tynan and Joey F. George, Communications of the ACM, vol. 45, n. 9, pp. 87-92

Lecture 16

“Statistical Process Control to Improve Coding and Code Review” by Alice Leslie Jacob and S.K. Pillai, IEEE Software, vol. 20, n. 3, pp. 50-55

“Best Practices in Code Inspection for Safety-Critical Software” by Jorge Rady de Almeida Jr. et al, IEEE Software, vol. 20, n. 3, pp. 56-63

Lecture 17

Introduction to the Personal Software Process by Watts S. Humphery, pp. 239-273,

Introduction to the Team Software Process by Watts S. Humphery

Lecture 18

“Issue on the Team Software Process”, Crosstalk, vol.15, n. 9

Lecture 19

“Integrated Requirements Engineering: A Tutorial” by Ian Sommerville, IEEE Software, v. 22. n. 1, pp. 16-23


“Requirements Engineering as a Success Factor in Software Projects” by Hubert F. Hofmann and Franz Lehner, IEEE Software, v. 18, n.4, pp.58-66

“Requirements Engineering Point/CounterPoint” by Annie Anton and Don Wells, IEEE Software, v. 20, n.3, pp.44-47

Lecture 20

“Scenarios In System Development” by Klaus Weidenhaupt, Klaus Pohl, Matthias Jarke, and Peter Haumer, IEEE Software, v. 15, n.2, pp. 34-45

Lecture 21

“Using Objects For Systems Analysis” by Jeffrey Parsons and Yair Wand, Communications of the ACM, v. 40, n. 12, pp. 104-110

Lecture 22

“Apprenticing with the Customer,” Communications of the ACM, v. 38, n. 5, pp. 45-52

Lecture 23

The Mythical Man-Month by Frederick P. Brooks, Jr., chapters 4, 5, 6, 11, 13, 19

Lecture 24

“Comparing Architectural Design Styles” by Mary Shaw, IEEE Software, v. 12, n. 6, pp. 27-41

Lecture 25

“Object-Oriented Development” by Grady Booch, IEEE Transactions on Software Engineering, v. 12, n. 2, pp. 211-221

Lecture 26

“Using Design Patterns To Develop Reusable Object-Oriented Communication Software” by Douglas C. Schmidt, Communications of the ACM, v. 38, n. 10, pp. 65-74

Lecture 27

“Software Patterns” by Douglas C. Schmidt, Mohamed Fayad, and Ralph E. Johnson;

 “The Pros and Cons of Adoption and Applying Design Patterns in the Real World” by Marshall P. Cline

Communications of the ACM, v. 39, n. 10, pp. 36-39, 47-49

Lecture 28

“The Interaction of Social Issues and Software Architecture” by Alistair Cockburn,  Communications of the ACM, v. 39, n. 10, pp. 36-49

“Architectures, Coordination, and Distance: Conway’s Law and Beyond” by James D. Herbsleb and Rebecca E. Grinter,  IEEE Software, v. 16, n. 5, pp. 63-70

Lecture 29

“Why Explore Object Methods, Patterns, And Architectures?” by Stephen Mellor and Ralph Johnson, “A Unified Object Topology” by William Tepfenhart and James Cusick, “Idioms and Patterns as Architectural Literature” by James Coplien, IEEE Software, v. 14, n. 1, pp. 27-42;

Lecture 30

“Architectural Styles, Design Patterns, and Objects” by Robert Monroe, Andrew Kompanek, Ralph Melton, and David Garlan; “Using Patterns To Improve Our Architectural Vision” by Norman Kerth and Ward Cunningham, IEEE Software, v. 14, n. 1, pp. 43-59

Lecture 31

"Aspect-Oriented Programming" by Gregor Kiczales, John Irwin, John Lamping, Jean-Marc Loingtier, Cristina Videria Lopes, Chris
Maeda, and Anurag Mendhekar, ACM Computing Surveys, v. 28, n. 4es, article number 154

"Aspect-Oriented Programming" by Tzilla Elrad, Robert E. Filman, and Atef Bader, Communications of the ACM, v. 44, n. 10, pp. 29-32

“Aspect-Oriented Development with Stratified Frameworks” by Colin Atkinson and Thomas Kuhne, IEEE Software, v. 20, n. 1, pp. 81-89

Lecture 32

“Reevaluating the Architectural Metaphor” by James O. Coplien and “Inferred Designs” by Louis Perrochon and Walter Mann, IEEE Software”, v. 16, n. 5, pp. 40-51

Lecture 33

“Streamlined Design Approach Lands Mars Pathfinder” by Steven Stolper, IEEE Software, v. 16, p. 5, pp. 52-62

Lecture 34

“What is Software Testing? And Why is it so Hard?” by James A. Whittaker, IEEE Software, v. 17, n. 1, pp. 70-79

Lecture 35

“Toward A Theory Of Test Data Selection” by John B. Goodenough and Susan L. Gerhart,  IEEE Transactions on Software Engineering, v. 1, n. 2, pp. 156-173; “A Simplified Domain-Testing Strategy” by Bingchiang Jeng and Elaine J. Weyuker,  ACM Transactions on Software Engineering and Methodology, v. 3, n. 3, pp. 254-270

Lectures 36 and 37

“Weak Mutation Testing and Completeness of Test Sets” by William Howden,  IEEE Transactions on Software Engineering, v. 8, n. 4, pp. 371-379; “An Experimental Determination Of Sufficient Mutant Operators” by A. Jefferson Offutt, Gregg Rothermel, Roland Untch and Christian Zapf,  ACM Transactions on Software Engineering and Methodology, v. 5, n. 2, pp. 99-118

“Experimental Results From An Automatic Test Case Generator” by Richard Demillo and A. Jefferson Offutt, ACM Transactions on Software Engineering and Methodology, v. 2, n. 2, pp. 109-127; “An Experimental Determination Of Sufficient Mutant Operators” by A. Jefferson Offutt, Gregg Rothermel, Roland Untch and Christian Zapf; ACM Transactions on Software Engineering and Methodology, v. 5, n. 2, pp. 99-118;

Lecture 38

“Developing An Object-Oriented Software Testing And Maintenance Environment” by David Kung, Jerry Gao, Pei Hsia, Yasufumi Toyoshima, Chris Chen, Young-Si Kim, and Young-Kee Song, Communications of the ACM, v. 38, n. 10, pp. 75-87

Lecture 39

“Reliable Objects: Lightweight Testing for OO Languages” by Jean-Marc Jezequel, Baniel Deveaux, and Yves Le Traon, IEEE Software, v. 18, n. 4, pp. 76-83

Reliable Distributed Programming by Guerraoui and Rodrigues, Springer, 2006

Lecture 40

“An Empirical Study of Regression Test Selection Techniques” by Todd Graves, Mary Jean Harrold, Jung-Min Kim, Adam Porter, and Gregg Rothermel, ACM Transactions on Software Engineering and Methodology, v. 10, n. 2, pp 184-208

Lecture 41

“Formal Methods: Promises and Problems” by LuQi and Joseph A. Goguen, IEEE Software, January, 1997, v. 14, n. 1, pp. 73-85

Temporal Verification of Reactive Systems: Safety.  By Manna and Pnueli, Springer-Verlag, 1995

Lecture 42

“On Formalism in Specification” by Bertrand Meyer, IEEE Software, January, 1985, v. 2, n. 1, pp. 6-26