Совершенный код. Совершенный код. Мастер-класс. Стив Макконнелл. Руководство по стилю программирования и конструированию по
Скачать 5.88 Mb.
|
Библиография Hecht, Alan. 1990. «Cute Object#oriented Acronyms Considered FOOlish.» Software Engineering Notes, January, 48. Heckel, Paul. 1994. The Elements of Friendly Software Design. Alameda, CA: Sybex. Hecker, Daniel E. 2001. «Occupational Employment Projections to 2010.» Monthly Labor Review, November 2001. Hecker, Daniel E. 2004. «Occupational Employment Projections to 2012.» Monthly Labor Review, February 2004, Vol. 127, No. 2, pp. 80#105. Henry, Sallie, and Dennis Kafura. 1984. «The Evaluation of Software Systems’ Structure Using Quantitative Software Metrics.» Software—Practice and Experience 14, no. 6 (June): 561–73. Hetzel, Bill. 1988. The Complete Guide to Software Testing, 2d ed. Wellesley, MA: QED Information Systems. Highsmith, James A., III. 2000. Adaptive Software Development: A Collaborative Approach to Managing Complex Systems. New York, NY: Dorset House. Highsmith, Jim. 2002. Agile Software Development Ecosystems. Boston, MA: Addison#Wesley. Hildebrand, J. D. 1989. «An Engineer’s Approach.» Computer Language, October, 5–7. Hoare, Charles Anthony Richard, 1981. «The Emperor’s Old Clothes.» Communications of the ACM, February 1981, 75–83. Hollocker, Charles P. 1990. Software Reviews and Audits Handbook. New York, NY: John Wiley & Sons. Houghton, Raymond C. 1990. «An Office Library for Software Engineering Professionals.» Software Engineering: Tools, Techniques, Practice, May/June, 35–38. Howard, Michael, and David LeBlanc. 2003. Writing Secure Code, 2d ed. Redmond, WA: Microsoft Press. Hughes, Charles E., Charles P. Pfleeger, and Lawrence L. Rose. 1978. Advanced Programming Techniques: A Second Course in Programming Using Fortran. New York, NY: John Wiley & Sons. Humphrey, Watts S. 1989. Managing the Software Process. Reading, MA: Addison#Wesley. Humphrey, Watts S. 1995. A Discipline for Software Engineering. Reading, MA: Addison#Wesley. Humphrey, Watts S., Terry R. Snyder, and Ronald R. Willis. 1991. «Software Process Improvement at Hughes Aircraft.» IEEE Software 8, no. 4 (July): 11–23. Humphrey, Watts. 1997. Introduction to the Personal Software Process. Reading, MA: Addison#Wesley. Humphrey, Watts. 2002. Winning with Software: An Executive Strategy. Boston, MA: Addison#Wesley. Hunt, Andrew, and David Thomas. 2000. The Pragmatic Programmer. Boston, MA: Addison#Wesley. Ichbiah, Jean D., et al. 1986. Rationale for Design of the Ada Programming Language. Minneapolis, MN: Honeywell Systems and Research Center. IEEE Software 7, no. 3 (May 1990). IEEE Std 1008#1987 (R1993), Standard for Software Unit Testing IEEE Std 1016#1998, Recommended Practice for Software Design Descriptions IEEE Std 1028#1997, Standard for Software Reviews IEEE Std 1045#1992, Standard for Software Productivity Metrics IEEE Std 1058#1998, Standard for Software Project Management Plans IEEE Std 1061#1998, Standard for a Software Quality Metrics Methodology IEEE Std 1062#1998, Recommended Practice for Software Acquisition IEEE Std 1063#2001, Standard for Software User Documentation Библиография 851 IEEE Std 1074#1997, Standard for Developing Software Life Cycle Processes IEEE Std 1219#1998, Standard for Software Maintenance IEEE Std 1233#1998, Guide for Developing System Requirements Specifications IEEE Std 1233#1998. IEEE Guide for Developing System Requirements Specifications IEEE Std 1471#2000. Recommended Practice for Architectural Description of Software Intensive Systems IEEE Std 1490#1998, Guide # Adoption of PMI Standard # A Guide to the Project Management Body of Knowledge IEEE Std 1540#2001, Standard for Software Life Cycle Processes # Risk Management IEEE Std 730#2002, Standard for Software Quality Assurance Plans IEEE Std 828#1998, Standard for Software Configuration Management Plans IEEE Std 829#1998, Standard for Software Test Documentation IEEE Std 830#1998, Recommended Practice for Software Requirements Specifications IEEE Std 830%1998. IEEE Recommended Practice for Software Requirements Specifications. Los Alamitos, CA: IEEE Computer Society Press. IEEE, 1991. IEEE Software Engineering Standards Collection, Spring 1991 Edition. New York, NY: Institute of Electrical and Electronics Engineers. IEEE, 1992. «Rear Adm. Grace Hopper dies at 85.» IEEE Computer, February, 84. Ingrassia, Frank S. 1976. «The Unit Development Folder (UDF): An Effective Management Tool for Software Development.» TRW Technical Report TRW#SS#76#11. Also reprinted in Reifer 1986, 366–79. Ingrassia, Frank S. 1987. «The Unit Development Folder (UDF): A Ten#Year Perspective.» Tutorial: Software Engineering Project Management, ed. Richard H. Thayer. Los Alamitos, CA: IEEE Computer Society Press, 405–15. Jackson, Michael A. 1975. Principles of Program Design. New York, NY: Academic Press. Jacobson, Ivar, Grady Booch, and James Rumbaugh. 1999. The Unified Software Development Process. Reading, MA: Addison#Wesley. Johnson, Jim. 1999. «Turning Chaos into Success,» Software Magazine, December 1999, 30–39. Johnson, Mark. 1994a. «Dr. Boris Beizer on Software Testing: An Interview Part 1,» The Software QA Quarterly, Spring 1994, 7–13. Johnson, Mark. 1994b. «Dr. Boris Beizer on Software Testing: An Interview Part 2,» The Software QA Quarterly, Summer 1994, 41–45. Johnson, Walter L. 1987. «Some Comments on Coding Practice.» ACM SIGSOFT Software Engineering Notes 12, no. 2 (April): 32–35. Jones, T. Capers. 1977. «Program Quality and Programmer Productivity.» IBM Technical Report TR 02.764, January, 42–78. Also in Jones 1986b. Jones, Capers. 1986a. Programming Productivity. New York, NY: McGraw#Hill. Jones, T. Capers, ed. 1986b. Tutorial: Programming Productivity: Issues for the Eighties, 2d ed. Los Angeles, CA: IEEE Computer Society Press. Jones, Capers. 1996. «Software Defect#Removal Efficiency,» IEEE Computer, April 1996. Jones, Capers. 1997. Applied Software Measurement: Assuring Productivity and Quality, 2d ed. New York, NY: McGraw#Hill. Jones, Capers. 1998. Estimating Software Costs. New York, NY: McGraw#Hill. 852 Библиография Jones, Capers. 2000. Software Assessments, Benchmarks, and Best Practices. Reading, MA: Addison# Wesley. Jones, Capers. 2003. «Variations in Software Development Practices,» IEEE Software, November/ December 2003, 22–27. Jonsson, Dan. 1989. «Next: The Elimination of GoTo#Patches?» ACM Sigplan Notices 24, no. 3 (March): 85–92. Kaelbling, Michael. 1988. «Programming Languages Should NOT Have Comment Statements.» ACM Sigplan Notices 23, no. 10 (October): 59–60. Kaner, Cem, Jack Falk, and Hung Q. Nguyen. 1999. Testing Computer Software, 2d ed. New York, NY: John Wiley & Sons. Kaner, Cem, James Bach, and Bret Pettichord. 2002. Lessons Learned in Software Testing. New York, NY: John Wiley & Sons. Keller, Daniel. 1990. «A Guide to Natural Naming.» ACM Sigplan Notices 25, no. 5 (May): 95–102. Kelly, John C. 1987. «A Comparison of Four Design Methods for Real#Time Systems.» Proceedings of the Ninth International Conference on Software Engineering. 238–52. Kelly#Bootle, Stan. 1981. The Devil’s DP Dictionary. New York, NY: McGraw#Hill. Kernighan, Brian W., and Rob Pike. 1999. The Practice of Programming. Reading, MA: Addison# Wesley. Kernighan, Brian W., and P. J. Plauger. 1976. Software Tools. Reading, MA: Addison#Wesley. Kernighan, Brian W., and P. J. Plauger. 1978. The Elements of Programming Style. 2d ed. New York, NY: McGraw#Hill. Kernighan, Brian W., and P. J. Plauger. 1981. Software Tools in Pascal. Reading, MA: Addison#Wesley. Kernighan, Brian W., and Dennis M. Ritchie. 1988. The C Programming Language, 2d ed. Englewood Cliffs, NJ: Prentice Hall. Killelea, Patrick. 2002. Web Performance Tuning, 2d ed. Sebastopol, CA: O’Reilly & Associates. King, David. 1988. Creating Effective Software: Computer Program Design Using the Jackson Methodology. New York, NY: Yourdon Press. Knuth, Donald. 1971. «An Empirical Study of FORTRAN programs,» Software—Practice and Experience 1: 105–33. Knuth, Donald. 1974. «Structured Programming with go to Statements.» In Classics in Software Engineering, edited by Edward Yourdon. Englewood Cliffs, NJ: Yourdon Press, 1979. Knuth, Donald. 1986. Computers and Typesetting, Volume B, TEX: The Program. Reading, MA: Addison#Wesley. Knuth, Donald. 1997a. The Art of Computer Programming, vol. 1, Fundamental Algorithms, 3d ed. Reading, MA: Addison#Wesley. Knuth, Donald. 1997b. The Art of Computer Programming, vol. 2, Seminumerical Algorithms, 3d ed. Reading, MA: Addison#Wesley. Knuth, Donald. 1998. The Art of Computer Programming, vol. 3, Sorting and Searching, 2d ed. Reading, MA: Addison#Wesley. Knuth, Donald. 2001. Literate Programming. Cambridge University Press. Korson, Timothy D., and Vijay K. Vaishnavi. 1986. «An Empirical Study of Modularity on Program Modifiability.» In Soloway and Iyengar 1986: 168–86. Kouchakdjian, Ara, Scott Green, and Victor Basili. 1989. «Evaluation of the Cleanroom Methodology in the Software Engineering Laboratory.» Proceedings of the Fourteenth Annual Software Engineering Workshop, November 29, 1989. Greenbelt, MD: Goddard Space Flight Center. Document SEL#89#007. Библиография 853 Kovitz, Benjamin, L. 1998 Practical Software Requirements: A Manual of Content and Style, Manning Publications Company. Kreitzberg, C. B., and B. Shneiderman. 1972. The Elements of Fortran Style. New York, NY: Harcourt Brace Jovanovich. Kruchten, Philippe B. «The 4+1 View Model of Architecture.» IEEE Software, pages 42–50, November 1995. Kruchten, Philippe. 2000. The Rational Unified Process: An Introduction, 2d Ed., Reading, MA: Addison#Wesley. Kuhn, Thomas S. 1996. The Structure of Scientific Revolutions, 3d ed. Chicago: University of Chicago Press. Lammers, Susan. 1986. Programmers at Work. Redmond, WA: Microsoft Press. Lampson, Butler. 1984. «Hints for Computer System Design.» IEEE Software 1, no. 1 (January): 11–28. Larman, Craig and Rhett Guthrie. 2000. Java 2 Performance and Idiom Guide. Englewood Cliffs, NJ: Prentice Hall. Larman, Craig. 2001. Applying UML and Patterns: An Introduction to Object#Oriented Analysis and Design and the Unified Process, 2d ed. Englewood Cliffs, NJ: Prentice Hall. Larman, Craig. 2004. Agile and Iterative Development: A Manager’s Guide. Boston, MA: Addison# Wesley, 2004. Lauesen, Soren. Software Requirements: Styles and Techniques. Boston, MA: Addison#Wesley, 2002. Laurel, Brenda, ed. 1990. The Art of Human%Computer Interface Design. Reading, MA: Addison# Wesley. Ledgard, Henry F., with John Tauer. 1987a. C With Excellence: Programming Proverbs. Indianapolis: Hayden Books. Ledgard, Henry F., with John Tauer. 1987b. Professional Software, vol. 2, Programming Practice. Indianapolis: Hayden Books. Ledgard, Henry, and Michael Marcotty. 1986. The Programming Language Landscape: Syntax, Semantics, and Implementation, 2d ed. Chicago: Science Research Associates. Ledgard, Henry. 1985. «Programmers: The Amateur vs. the Professional.» Abacus 2, no. 4 (Summer): 29–35. Leffingwell, Dean. 1997. «Calculating the Return on Investment from More Effective Requirements Management,» American Programmer, 10(4):13–16. Lewis, Daniel W. 1979. «A Review of Approaches to Teaching Fortran.» IEEE Transactions on Education, E#22, no. 1: 23–25. Lewis, William E. 2000. Software Testing and Continuous Quality Improvement, 2d ed. Auerbach Publishing. Lieberherr, Karl J. and Ian Holland. 1989. «Assuring Good Style for Object#Oriented Programs.» IEEE Software, September 1989, pp. 38f. Lientz, B. P., and E. B. Swanson. 1980. Software Maintenance Management. Reading, MA: Addison# Wesley. Lind, Randy K., and K. Vairavan. 1989. «An Experimental Investigation of Software Metrics and Their Relationship to Software Development Effort.» IEEE Transactions on Software Engineering SE#15, no. 5 (May): 649–53. Linger, Richard C., Harlan D. Mills, and Bernard I. Witt. 1979. Structured Programming: Theory and Practice. Reading, MA: Addison#Wesley. Linn, Marcia C., and Michael J. Clancy. 1992. «The Case for Case Studies of Programming Problems.» Communications of the ACM 35, no. 3 (March): 121–32. 854 Библиография Liskov, Barbara, and Stephen Zilles. 1974. «Programming with Abstract Data Types.» ACM Sigplan Notices 9, no. 4: 50–59. Liskov, Barbara. «Data Abstraction and Hierarchy,» ACM SIGPLAN Notices, May 1988. Littman, David C., et al. 1986. «Mental Models and Software Maintenance.» In Soloway and Iyengar 1986: 80–98. Longstreet, David H., ed. 1990. Software Maintenance and Computers. Los Alamitos, CA: IEEE Computer Society Press. Loy, Patrick H. 1990. «A Comparison of Object#Oriented and Structured Development Methods.» Software Engineering Notes 15, no. 1 (January): 44–48. Mackinnon, Tim, Steve Freeman, and Philip Craig. 2000. «Endo#Testing: Unit Testing with Mock Objects,» eXtreme Programming and Flexible Processes Software Engineering # XP2000 Conference. Maguire, Steve. 1993. Writing Solid Code. Redmond, WA: Microsoft Press. Mannino, P. 1987. «A Presentation and Comparison of Four Information System Development Methodologies.» Software Engineering Notes 12, no. 2 (April): 26– 29. Manzo, John. 2002. «Odyssey and Other Code Science Success Stories.» Crosstalk, October 2002. Marca, David. 1981. «Some Pascal Style Guidelines.» ACM Sigplan Notices 16, no. 4 (April): 70–80. March, Steve. 1999. «Learning from Pathfinder’s Bumpy Start.» Software Testing and Quality Engineering, September/October 1999, pp. 10f. Marcotty, Michael. 1991. Software Implementation. New York, NY: Prentice Hall. Martin, Robert C. 2003. Agile Software Development: Principles, Patterns, and Practices. Upper Saddle River, NJ: Pearson Education. McCabe, Tom. 1976. «A Complexity Measure.» IEEE Transactions on Software Engineering, SE#2, no. 4 (December): 308–20. McCarthy, Jim. 1995. Dynamics of Software Development. Redmond, WA: Microsoft Press. McConnell, Steve. 1996. Rapid Development. Redmond, WA: Microsoft Press. McConnell, Steve. 1997a. «The Programmer Writing,» IEEE Software, July/August 1997. McConnell, Steve. 1997b. «Achieving Leaner Software,» IEEE Software, November/December 1997. McConnell, Steve. 1998a. Software Project Survival Guide. Redmond, WA: Microsoft Press. McConnell, Steve. 1998b. «Why You Should Use Routines, Routinely,» IEEE Software, Vol. 15, No. 4, July/August 1998. McConnell, Steve. 1999. «Brooks Law Repealed?» IEEE Software, November/December 1999. McConnell, Steve. 2004. Professional Software Development.Boston, MA: Addison#Wesley. McCue, Gerald M. 1978. «IBM’s Santa Teresa Laboratory—Architectural Design for Program Development.» IBM Systems Journal 17, no. 1: 4–25. McGarry, Frank, and Rose Pajerski. 1990. «Towards Understanding Software—15 Years in the SEL.» Proceedings of the Fifteenth Annual Software Engineering Workshop, November 28–29, 1990. Greenbelt, MD: Goddard Space Flight Center. Document SEL#90#006. McGarry, Frank, Sharon Waligora, and Tim McDermott. 1989. «Experiences in the Software Engineering Laboratory (SEL) Applying Software Measurement.» Proceedings of the Fourteenth Annual Software Engineering Workshop, November 29, 1989. Greenbelt, MD: Goddard Space Flight Center. Document SEL#89#007. McGarry, John, et al. 2001. Practical Software Measurement: Objective Information for Decision Makers. Boston, MA: Addison#Wesley. McKeithen, Katherine B., et al. 1981. «Knowledge Organization and Skill Differences in Computer Programmers.» Cognitive Psychology 13: 307–25. Библиография 855 Metzger, Philip W., and John Boddie. 1996. Managing a Programming Project: Processes and People, 3d ed. Englewood Cliffs, NJ: Prentice Hall, 1996. Meyer, Bertrand. 1997. Object%Oriented Software Construction, 2d ed. New York, NY: Prentice Hall. Meyers, Scott. 1996. More Effective C++: 35 New Ways to Improve Your Programs and Designs. Reading, MA: Addison#Wesley. Meyers, Scott. 1998. Effective C++: 50 Specific Ways to Improve Your Programs and Designs, 2d ed. Reading, MA: Addison#Wesley. Miaria, Richard J., et al. 1983. «Program Indentation and Comprehensibility.» Communications of the ACM 26, no. 11 (November): 861–67. Michalewicz, Zbigniew, and David B. Fogel. 2000. How to Solve It: Modern Heuristics. Berlin: Springer# Verlag. Miller, G. A. 1956. «The Magical Number Seven, Plus or Minus Two: Some Limits on Our Capacity for Processing Information.» The Psychological Review 63, no. 2 (March): 81–97. Mills, Harlan D. 1983. Software Productivity. Boston, MA: Little, Brown. Mills, Harlan D. 1986. «Structured Programming: Retrospect and Prospect.» IEEE Software, Novem# ber, 58–66. Mills, Harlan D., and Richard C. Linger. 1986. «Data Structured Programming: Program Design Without Arrays and Pointers.» IEEE Transactions on Software Engineering SE#12, no. 2 (February): 192–97. Mills, Harlan D., Michael Dyer, and Richard C. Linger. 1987. «Cleanroom Software Engineering.» IEEE Software, September, 19–25. Misfeldt, Trevor, Greg Bumgardner, and Andrew Gray. 2004. The Elements of C++ Style. Cambridge University Press. Mitchell, Jeffrey, Joseph Urban, and Robert McDonald. 1987. «The Effect of Abstract Data Types on Program Development.» IEEE Computer 20, no. 9 (September): 85–88. Mody, R. P. 1991. «C in Education and Software Engineering.» SIGCSE Bulletin 23, no. 3 (September): 45–56. Moore, Dave. 1992. Private communication. Moore, James W. 1997. Software Engineering Standards: A User’s Road Map. Los Alamitos, CA: IEEE Computer Society Press. Morales, Alexandra Weber. 2003. «The Consummate Coach: Watts Humphrey, Father of Cmm and Author of Winning with Software, Explains How to Get Better at What You Do,» SD Show Daily, September 16, 2003. Myers, Glenford J. 1976. Software Reliability. New York, NY: John Wiley & Sons. Myers, Glenford J. 1978a. Composite/Structural Design. New York, NY: Van Nostrand Reinhold. Myers, Glenford J. 1978b. «A Controlled Experiment in Program Testing and Code Walkthroughs/ Inspections.» Communications of the ACM 21, no. 9 (September): 760–68. Myers, Glenford J. 1979. The Art of Software Testing. New York, NY: John Wiley & Sons. Myers, Ware. 1992. «Good Software Practices Pay Off—Or Do They?» IEEE Software, March, 96–97. Naisbitt, John. 1982. Megatrends. New York, NY: Warner Books. NASA Software Engineering Laboratory, 1994. Software Measurement Guidebook, June 1995, NASA# GB#001#94. Available from http://sel.gsfc.nasa.gov/website/documents/online#doc/94#102.pdf. NCES 2002. National Center for Education Statistics, 2001 Digest of Educational Statistics, Document Number NCES 2002130, April 2002. Nevison, John M. 1978. The Little Book of BASIC Style. Reading, MA: Addison#Wesley. |