0. Software Engineering References This document contains a long list of references for software engineering courses, sorted by author last name and year. It is currently tailored for Cmpt 475 (semester 02-1). Note that in future, after each reference ID, there may be a status designator, indicating where copies of the book or article can be found. Note that Russ Tront has many of these books and will occasionally lend them out to students. Here are the future designators: RR - in SFU Library Reserve Room. ER - in course Extra Reading Binder in SFU Library Reserve Room. CP - in the coursepak purchasable from the SFU Bookstore. CW - on the course web site. RJT - Russ Tront has a copy for sure. SFU - SFU library holds a copy. [Adolph96] - CP Cash Cow in the Tar Pit, by SFU graduate Steve Adolph, IEEE Software, May 1996, pp 41-47. {A great horror story about a development gone bad in Vancouver}. [Adolph00] Lost in Chaos: Chronology of a Failure by SFU graduate Steve Adolph, Software Development magazine, Jan. 2000. Available only online at: http://www.sdmagazine.com/documents/s=748/sdm00 01b/. {This is another of Steve s horror stories. Note that if you do a search on this web site for Adolph, you will find over 10 interesting articles written by Steve.} [Appleton] Brad Appleton s Configuration Management Links is also a good source of information on CM tools and guides. See http://www.enteract.com/~bradapp/acme/. His Streamed Lines - Branching Patterns for Parallel Software Development hyper-linked paper is a very interesting survey of different ways/patterns in which you can do CM. [Auer02] - RR Extreme Programming Applied, Ken Auer and Roy Miller, Addison Wesley, 2002. 2002 Russ Tront Page 0-1 Last Mod: 2002-05-08 2002 Russ Tront Page 0-2 Last Mod: 2002-05-08
[Beck00] - RR, RJT Extreme Programming Explained by Kent Beck, Addison-Wesley, 2000. {This is the original book on Extreme Programming} [Beck01] - RR, RJT Planning Extreme Programming by Kent Beck et al., Addison-Wesley, 2001. {Concentrates on iteration and project planning and estimation for Extreme Programming.} [Beizer95] - SFU Black Box Testing: Techniques for Functional Testing of Software and Systems by Boris Beizer, Wiley, 1995. [Beizer99] - CP Best and Worst Testing Practices: A Baker s Dozen by Boris Beizer, Cutter IT Journal, Vol. 12(2), Feb. 1999, pp 32-38, ISSN 1522-7873. [Boehm01] - CP Software Defect Reduction Top 10 List by Barry Boehm and Victor Basili, IEEE Computer, January, 2001, pages 135-137. [BoehmWeb] The site for Barry Boehm s COCOMO effort and schedule estimation research, and free tools, is: http://sunset.usc.edu/research/cocomoii/index.html [Booch98] The Unified Modeling Language User Guide, by Grady Booch, Jim Rumbaugh, and Ivar Jacobson, Addison- Wesley, 1998. [Bott95] - RR Professional Issues in Software Engineering, 2nd ed., F. Bott et al, UCL Press, 1995. [Brooks87] - CP No Silver Bullet: Essence and Accidents of Software Engineering by Fred Brooks, IEEE Computer, April 1987, pages 10-19. [Brooks95] The Mythical Man-Month, Anniversary Edition by Frederick Brooks Jr., Addison-Wesley, 1995. [CmToday] www.cmtoday.com is a wonderful web site of CM information and news. See in particular their yellow pages. [Coad99] Java Modeling in Color with UML: Enterprise Components and Processes, by Peter Coad et al, Prentice-Hall, 1999. {This book has some general pattern material in it, and also outlines the Feature- Driven Development (FDD) development process}. 2002 Russ Tront Page 0-3 Last Mod: 2002-05-08 2002 Russ Tront Page 0-4 Last Mod: 2002-05-08
[Cockburn00] - CP Selecting a Project s Methodology by Alistair Cockburn, IEEE Software magazine, July/August, 2000, pages 64-71. [Cockburn02] - RJT, RR Agile Software Development by Alistair Cockburn, Addison-Wesley, 2002. {Discusses agile development processes in general, and also outlines the Crystal processes.} [Conte86] SFU (QA76.76 D47 C66) [CVS] Software Engineering Metrics and Models by Samuel Conte et al, Benjamin-Cummings, 1986. Concurrent Versions System, a free, popular, and good in most but not all ways CM tool. Interestingly, a number of IDEs are beginning to support CVS (e.g. Forte for Java). See www.cvshome.org and www.cvsgui.org. [DavidConsultingGroup] www.davidconsultinggroup.com contains lots of information on function point analysis and use. [Demarco82] Controlling Software Projects: Management, Measurement & Estimation by Tom DeMarco, Yourdon Press/Prentice Hall, 1982. [Demarco97] - RR The Deadline: A Novel About Project Management, Tom Demarco, Dorset House, 1997. {Apparently very realistic and very educational.} [Demarco99] - RR Peopleware, 2 nd ed. By Tom Demarco and Tim Lister, Dorset House, 1999. {There is also an earlier edition available.} [Dion93] - CP Process Improvement and the Corporate Balance Sheet by Raymond Dion, IEEE Software Magazine, July 1993, pages 28-35. [Dreger89] - RJT Function Point Analysis by J. Brian Dreger, Prentice- Hall, 1989. {One of the first books on how to count function points). [Dustin99] Automatic Software Testing: Introduction, Management, and Performance by Elfriede Dustin et al, Addison- Wesley, 1999. [Ebenau94] - CP contains Intro and Ch. 8. Software Inspection Process by Robert Ebenau and Susan Strauss, McGraw-Hill, 1994, ISBN 0070621667. {Chapter 8 contains a S/W Inspection Procedures Manual with forms}. 2002 Russ Tront Page 0-5 Last Mod: 2002-05-08 2002 Russ Tront Page 0-6 Last Mod: 2002-05-08
[Fayad97a] Software Development Process: A Necessary Evil? by M.E. Fayad, Communications of the ACM, Vol. 40(9), September 1997. [Fayad97b] - ER Process Assessment Considered Wasteful by Mohamed E. Fayad and Mauri Laitinen, Communications of the ACM, Vol. 40(11), November 1997. [Fenton97] - RR Software Metrics, 2nd ed., Norman E. Fenton and Shari Lawrence Pfleeger, ITP, 1997. [Fewster99] - RJT Software Test Automation: Effective Use of Test Execution Tools by Mark Fewster and Dorothy Graham, Addison-Wesley, 1999. [Fishman97] - CP contains pages 1-8. Software Development: A Legal Guide, 2nd ed., Stephen Fishman, Nolo Press, 1997. [Flamank01] Demonstration ATM Project by Geoff Flamank, Software Productivity Center, 2001. {This document is in EpSampleReports.pdf on the class web site and contains lots of examples of the kinds of reports the estimation tool Estimate Pro can produce.} [FullFunctionPoints01] Cosmic-FFP Measurement Manual, v. 2.1 by Common Software Measurement International Consortium, 2001. {This is a new variant of function points for both IT and real-time embedded systems. It is not really a direct derivative of function points. Their web site is based at the University of Quebec at Montreal www.lrgl.uqam.ca/cosmic-ffp where a free counting practices manual is available.} [Garmus96] - RR Measuring The Software Process: A Practical Guide to Functional Measurements, David Garmus and David Herron, Prentice Hall, 1996. [Garmus01] - RJT Function Point Analysis: Measurement Practices for Successful Software Projects by David Garmus and David Herron, Addison-Wesley, 2001. [Gibbs94] - CP Software s Chronic Crisis by W. Wayt Gibbs, Scientific American magazine, Vol. 271(3), 1994, pp. 86-95. {An excellent and wide ranging article discussing horror stories, management and technical problems and solutions, CMM, productivities, components. Seems long because it is packed with excellent discussion and examples.} 2002 Russ Tront Page 0-7 Last Mod: 2002-05-08 2002 Russ Tront Page 0-8 Last Mod: 2002-05-08
[Gilb93] - RR Software Inspection by Tom Gilb et al., Addison- Wesley, 1993, ISBN 0-201-631814. [Glass98] - RR. CP contains preface and Ch. 1.0-2.1 Software Runaways: Lessons Learned from Massive Software Project Failures by Robert L. Glass, Prentice- Hall, 1998. {Pages vii - 21 is very good reading from a high level point of view. This includes section 1.4 which has some great summary statistics. The rest of the book provides a number of very illuminating project horror stories. Two copies of the book are on reserve, and in addition the preface and Chapter 1 has been put in the 475 coursepak}. [Gotterbarn97] - CP Software Engineering Code of Ethics by Don Gotterbarn et al, Communications of the ACM, Vol. 40(11), Association for Computing Machinery, 1997, pages 110-118. {This is a draft ethics policy for certification of software engineers). [Herbsleb97] - CP Software Quality and the Capability Maturity Model by James Herbsleb et al, Communications of the ACM, Vol. 40(6), June 1997, pages 30-40. [Highsmith99] - RR Adaptive Software Development, James A. Highsmith III, Dorset House, 1999. {Jolt Book Award from S/W Dev. Magazine.} 2002 Russ Tront Page 0-9 Last Mod: 2002-05-08 [Hightower01] - RR Java Tools for Extreme Programming: Mastering Open Source Tools, including Ant, JUnit, and Cactus, by Richard Hightower and Nicholas Lesiecki, Wiley, 2001. {JUnit is an important Java unit test framework.} [Humphrey89] Managing the Software Process by Watts Humphrey, Addison-Wesley, 1989 (Corrections 1990). {This was the predecessor book that led to the CMM}. [Humphrey95] A Discipline for Software Engineering, by Watts Humphrey, Addison-Wesley, 1995. [Humphrey97] Introduction to the Personal Software Process by Watts Humphrey, Addison-Wesley, 1997. [Humphrey00] - RR, RJT Introduction to the Team Software Process by Watts Humphrey, Addison-Wesley, 2000, ISBN 0-201-47719-X. [IFPUG] www.ifpug.org is the home of the International Function Point User s Group (IFPUG). [ISBSG] www.isbsg.org.au is the home of the International Software Benchmarking Standards Group that 2002 Russ Tront Page 0-10 Last Mod: 2002-05-08
maintains a repository of metric results from 1300 projects from many companies who have volunteered their past data. This data is available to others for research (at a price of about CAN $1000). Such availability provides a rare public source of data to examine and refine effort prediction functions. [Jacobsen99] - RR, RJT The Unified Software Development Process, by Ivar Jacobson et al., Addison-Wesley, 1999. {This is the book on the USDP by the developers of USDP and UML.} [Jeffries2001] - RR Extreme Programming Installed by Ron Jeffries et al., Addison-Wesley, 2001. [Joch95] - CP How Software Doesn t Work by Alan Joch, Byte magazine, December 1995, pp 49-55. {Contains an excellent overview of problems in the software industry and recent moves aimed at improving the situation. Almost as broad and long as [Gibbs94].} [JoneS89] Forward in [Dreger89] Function Point Analysis by J. Brian Dreger, Prentice-Hall, 1989, pages xiii-xv. [Jones91] - CP contains 7 informative productivity graphs. Applied Software Measurement by Capers Jones, McGraw-Hill, 1997. {There is also a newer 1997 edition in SFU library}. 2002 Russ Tront Page 0-11 Last Mod: 2002-05-08 [Jones95] Determining Software Schedules by Capers Jones, IEEE Computer magazine, February, 1995, pp. 73-75. [Jones95a] Software Benchmarking by Capers Jones, IEEE Computer magazine, October, 1996. [Jones96] - RR. CP contains various intro parts and Ch. 1. Patterns of Software Systems Failure and Success by Capers Jones, International Thompson Publishing, 1996, ISBN 1-850-32804-8. {Is an excellent and very interesting statistical study on reasons for software project failure broken down by project size, type, industry, and continent. Note: This book is out of print but SFU has one copy, and the important first chapter is in the 475 coursepak.} [Jones97] - RR Applied Software Measurement, 2 nd ed. by Capers Jones, McGraw-Hill, 1997. {There is also an older 1991 edition in SFU library}. [Jones98] Estimating Software Costs, by T. Capers Jones, McGraw-Hill, 1998. [Jones00] Software Assessment, Benchmarks, and Best Practices by Capers Jones, Addison-Wesley, 2000, ISBN 0-201- 485427, QA76.76 E93 J66. 2002 Russ Tront Page 0-12 Last Mod: 2002-05-08
[Kan95] - RJT, RR Metrics and Model in Software Quality Engineering by Stephen Kan, Addison-Wesley, 1995. [Kehoe95] - RR, RJT ISO 9000-3: A Tool for Software Product and Process Improvement by Raymond Kehoe and Alka Jarvis, Springer, 1995. {This is a book on the international standard for quality assurance in software.} [Lawrence99] - CP The Problem of Project Management by Brian Lawrence et al, Cutter IT Journal, Vol. 12(5), May 1999, pp 6-12, ISSN 1522-7383. [Leon00] - RR A Guide To Software Configuration Management, by Alexis Leon, Artech House, 2000. [Longstreet01] Function Points Analysis Training Manual by David Longstreet, Longstreet Consulting Inc, 2001. {Downloadable from www.softwaremetrics.com/freemanual.htm, or the class web site. Longstreet s site contains lots of useful information on function points.} [Kan95] Metrics and Models in Software Quality Engineering, Stephen Kan, Addison-Wesley, 1995 [Kehoe95] ISO 9000-3: A Tool for Software Product and Process Improvement by Raymond Kehoe and Alka Jarvis, Springer-Verlag, 1996. [Maguire94] Debugging the Development Process by Steve Maguire, Microsoft Press, 1994. [McCarthy98] Dynamics of Software Development by Jim McCarthy, Microsoft Press, 1998. [McConnell96] - RR Rapid Development: Taming Wild Software Schedules by Steve McConnell, Microsoft Press, 1996. {Estimate Pro uses some theory from this book.} [McConnell98] Software Project Survival Guide by Steve McConnell, Microsoft Press, 1998. [McConnell99] After The Gold Rush: Creating a True Profession of Software Engineering by Steve McConnell, Microsoft Press, 1999, ISBN 0735608776. {This books contrasts computing science with software engineering and talked about other interesting aspects of the trade.} 2002 Russ Tront Page 0-13 Last Mod: 2002-05-08 2002 Russ Tront Page 0-14 Last Mod: 2002-05-08
[Mead2000] - CP Requirements Management and Requirements Engineering: You Can t Have One Without The Other by Nancy Mead, Cutter IT Journal, Vol. 13(5), pages 4-8, Cutter Information Corp, 2000, ISSN 10485600. [Newkirk01] -RR, RJT Extreme Programming in Practice, by James Newkirk and Robert C. Martin, Addison-Wesley, 2001. {This is an interesting case study of the development of a web and Java project using XP, and includes examples of actual code, with calls to JUnit for unit testing, and code before and after refactoring.} [O Connell00] - ER Can You Trust Software Capability Evaluations by Emilie O Connell and Hossein Saiedian, IEEE Computer Magazine, February, 2000, pages 28-35. [Peters98] - CP Software Project Estimation by Kathy Peters, Application Development Strategies newsletter (Cutter Corp.), Vol. X(7), July 1998. {This is a good overview by a former SFU student, former SPC staff member, and sometimes Cmpt 475 instructor.} [Paulk93] - RR Capability Maturity Model, Version 1.1 by Mark C. Paulk et al, IEEE Software Magazine, July, 1993. This is an overview article, not the actual CMM. This overview article is available online at: http://www.sei.cmu.edu/cmm/papers/cmm.pdf [Paulk95] The Capability Maturity Model: Guidelines for Improving the Software Process by the Carnegie Mellon University Software Engineering Institute and edited by Mark C. Paulk et al, Addison-Wesley, 1995. This is the CMM! The bulk of this book is available on-line in two parts: CMU/SEI-93-TR-24 (about 70 pages of introduction and overview including an appendix containing goals for each KPA), and CMU/SEI-93-TR-25 (about 500 pages containing everything. For an abbreviated version, see Appendix C containing just the goals and activities of each KPA (but leaving out the commitment, ability, measurement, and verify features). The URL is: http://www.sei.cmu.edu/cmm/obtain.cmm.html [Perforce00] Software Life-cycle Modeling available at http://www.perforce.com/perforce/life.html. {This web page explains the difference between the promotion model and the Perforce model of CM management}. [Pfleeger01] - RR, RJT Solid Software by Shari Pfleeger et al, Prentice Hall, 2001. {A good book on software quality, reliability, and safety.} 2002 Russ Tront Page 0-15 Last Mod: 2002-05-08 2002 Russ Tront Page 0-16 Last Mod: 2002-05-08
[Pulford96] A Quantitative Approach to Software Management: The AMI Handbook by Kevin Pulford et al, Addison-Wesley, 1996, ISBN 0-201-87746-5. [Putnam92] SFUx2 Measures for Excellence: Reliable Software on Time, Within Budget by Lawrence H. Putnam and Ware Myers, Yourdon Press, 1992. [Putnam99] - CP Get the Estimate Right by Lawrence Putnam and Ware Myers, Cutter IT Journal, V.12(7), July 1999. [Pyron00] - RR, CP has 16 pages (374-389) on task type, etc. Using Microsoft Project 2000 by Tim Pyron et al, Que, 2000, ISBN 0-7897-2253-4. [Pyron00a] - wired to table in CSIL PC Lab. Teach Yourself Microsoft Project in 24 Hours, by Tim Pyron, Sams Publishing, 2000, ISBN 0-672-31814-8. [Rose95] - CP Danger: Software at Work by Barbara Rose, The Globe And Mail Report on Business, Vol. 11(9), Thomson Newspapers, 1995, pages 74-77, 79, 81, 82. {Contains an excellent overview of software engineering problems with a Canadian view including Ontario Hydro, AECL Thorac-25 problem, and Vancouver Stock Exchange.} [Rot89] It s Late, Costly, Incompetent -- But Try Firing a Computer System by J. Rothfeder, in Tutorial: Software Risk Management edited by Barry Boehm, IEEE Computer Society, 1989, pages 63-64. [Rumbaugh98] [SEI02] The Unified Modeling Language Reference Guide by Jim Rumbaugh, Ivar Jacobson, and Grady Booch, Addison-Wesley, 1998. {This is NOT a book to read; it is an obscure reference on the weird underlying language itself. See instead [Booch98].}. Software CMM Articles and Papers web page is a good overview of some of the papers available on the CMM. This overview page is available at: http://www.sei.cmu.edu/cmm/cmm.articles.html. [SPR] - CP SPR Metric Analysis Reference Card published without copyright by Software Productivity Research, Inc. {Contains a very abbreviated guide to counting function and feature points}. [Stapleton97] - RR DSDM: The Method In Practice by Jennifer Stapleton, Addison-Wesley, 1997, ISBN 0-201-178893. {Outlines the agile development process called Dynamic System Development Method (DSDM).} 2002 Russ Tront Page 0-17 Last Mod: 2002-05-08 2002 Russ Tront Page 0-18 Last Mod: 2002-05-08
[Strauss94] - SFU Lib QA76.76 Q35 S77 Software Inspection Process by Susan Strauss and Robert Ebenau, McGraw-Hill, 1993. [Succi01] - RR, RJT Extreme Programming Examined by Giancarlo Succi and Michele Marchesi, Addison-Wesley, 2001. {A collection of papers and articles on Extreme Programming.} [Sudlow94] - CP Moving from Chaos to SEI Level 2 by Bill Sudlow, Software Development magazine, December, 1994, pages 37-40. {Contains a very good overview of a company needing change and actually doing the move to CMM Level 2.} [Thomsett99] - CP The Team is Dead - Long Live the Virtual Team by Rob Thomsett, Cutter IT Journal, Vol. 12(1), Jan. 1999, pp 19-30, ISSN 1522-7383. [Tickit02] The TickIT Program. See: http://www.cse.dcu.ie/essiscope/sm5/approach/tickit- 1.html [Tront01] Getting Started with CVS at Incognito by Russ Tront, Incognito Software Inc., 2000. {This document GetStartCVS.pdf is made available on the 475 class web 2002 Russ Tront Page 0-19 Last Mod: 2002-05-08 site with the permission of Incognito Software. It is both a tutorial on a popular free CM tool, and a description of how it was applied at Incognito.} [Tront02] - CW testmanagement.pdf by Russ Tront while at Incognito Software, 2002. {This is a very cool document that shows how to plan which test cases will be run on which software configurations, and to record and roll up the results}. [Wake2002] -RR, RJT Extreme Programming Explored, William C. Wake, Addison Wesley, 2002. [Wang00] - RR. CP has pages 22-24. Software Engineering Processes by Yingxu Wang and Graham King, CRC Press, 2000. {This is an excellent, analytical comparison between CMM, ISO 9001, SPICE, etc.} [Whittaker00] - CP What is Software Testing? And Why is it So Hard by James Whittaker, IEEE Software, Vol. 17(1), Jan/Feb. 2000, pp70-79. [Wiegers96] Creating a Software Engineering Culture by Karl Wiegers, Dorset House, 1996. 2002 Russ Tront Page 0-20 Last Mod: 2002-05-08
[Wiegers97] - CP Metrics: 10 Traps to Avoid by Karl Wiegers, Software Development magazine, October, 1997, pp. 49-56, ISSN 1048-5600. [Wiegers98] Course notes from Software Technical Reviews put on by the Software Productivity Centre in Vancouver, April, 1998. Chart reproduced with Wiegers permission. [Wiegers2000] - CP When Telepathy Won t Do: Requirements Engineering Key Practices by Karl Weigers, Cutter IT Journal, Vol. 13(5), pages 9-15, Cutter Information Corp, 2000, ISSN 10485600. [Williams97] Putting Risk Management into Practice, IEEE Software, Vol. 14(3), 1997, pages 75-83. {Has some useful risk management appraisal forms, but otherwise is targeted at very huge projects.} [Wingerd98] High-level Best Practices in Software Configuration Management by Laura Wingerd and Christopher Seiwald, Perforce Software, 1998. {Available at: http://www.perforce.com/perforce/bestpractices.html} [Yamaura98] - CP How to Design Practical Test Cases by Tsuneo Yamaura, IEEE Software, Vol. 15(6), 1998. {A great look at how Hitachi focuses their testing effort}. [Yourdon92] The Decline and Fall of the American Programmer by Ed Yourdon, Prentice-Hall, 1992. [Yourdon96] The Rise and Resurrection of the American Programmer by Ed Yourdon, Prentice-Hall, 1996. [Yourdon97] Death March: The Complete Developer s Guide to Surviving Mission Impossible Projects by Ed Yourdon, Prentice Hall, 1997, ISBN 0137483104. 2002 Russ Tront Page 0-21 Last Mod: 2002-05-08 2002 Russ Tront Page 0-22 Last Mod: 2002-05-08