Совершенный код. Совершенный код. Мастер-класс. Стив Макконнелл. Руководство по стилю программирования и конструированию по
Скачать 5.88 Mb.
|
Библиография Bersoff, Edward H. 1984. «Elements of Software Configuration Management.» IEEE Transactions on Software Engineering SE#10, no. 1 (January): 79–87. Bersoff, Edward H., and Alan M. Davis. 1991. «Impacts of Life Cycle Models on Software Con# figuration Management.» Communications of the ACM 34, no. 8 (August): 104–18. Bersoff, Edward H., et al. 1980. Software Configuration Management. Englewood Cliffs, NJ: Prentice Hall. Birrell, N. D., and M. A. Ould. 1985. A Practical Handbook for Software Development. Cambridge, England: Cambridge University Press. Bloch, Joshua. 2001. Effective Java Programming Language Guide. Boston, MA: Addison#Wesley. BLS 2002. Occupational Outlook Handbook 2002#03 Edition, Bureau of Labor Statistics. BLS 2004. Occupational Outlook Handbook 2004#05 Edition, Bureau of Labor Statistics. Blum, Bruce I. 1989. «A Software Environment: Some Surprising Empirical Results.» Proceedings of the Fourteenth Annual Software Engineering Workshop, November 29, 1989. Greenbelt, MD: God# dard Space Flight Center. Document SEL#89#007. Boddie, John. 1987. Crunch Mode. New York, NY: Yourdon Press. Boehm, Barry and Richard Turner. 2004. Balancing Agility and Discipline: A Guide for the Perplexed. Boston, MA: Addison#Wesley. Boehm, Barry W. 1981. Software Engineering Economics. Englewood Cliffs, NJ: Prentice Hall. Boehm, Barry W. 1984. «Software Engineering Economics.» IEEE Transactions on Software Enginee% ring SE#10, no. 1 (January): 4–21. Boehm, Barry W. 1987a. «Improving Software Productivity.» IEEE Computer, September, 43–57. Boehm, Barry W. 1987b. «Industrial Software Metrics Top 10 List.» IEEE Software 4, no. 9 (Septem# ber): 84–85. Boehm, Barry W. 1988. «A Spiral Model of Software Development and Enhancement.» Computer, May, 61–72. Boehm, Barry W., and Philip N. Papaccio. 1988. «Understanding and Controlling Software Costs.» IEEE Transactions on Software Engineering SE#14, no. 10 (October): 1462–77. Boehm, Barry W., ed. 1989. Tutorial: Software Risk Management. Washington, DC: IEEE Computer Society Press. Boehm, Barry W., et al. 1978. Characteristics of Software Quality. New York, NY: North#Holland. Boehm, Barry W., et al. 1984. «A Software Development Environment for Improving Productivity.» Computer, June, 30–44. Boehm, Barry W., T. E. Gray, and T. Seewaldt. 1984. «Prototyping Versus Specifying: A Multiproject Experiment.» IEEE Transactions on Software Engineering SE#10, no. 3 (May): 290–303. Also in Jones 1986b. Boehm, Barry, et al. 2000a. Software Cost Estimation with Cocomo II. Boston, MA: Addison#Wesley. Boehm, Barry. 2000b. «Unifying Software Engineering and Systems Engineering,» IEEE Computer, March 2000, 114–116. Boehm#Davis, Deborah, Sylvia Sheppard, and John Bailey. 1987. «Program Design Languages: How Much Detail Should They Include?» International Journal of Man%Machine Studies 27, no. 4: 337–47. Böhm, C., and G. Jacopini. 1966. «Flow Diagrams, Turing Machines and Languages with Only Two Formation Rules.» Communications of the ACM 9, no. 5 (May): 366–71. Booch, Grady. 1987. Software Engineering with Ada, 2d ed. Menlo Park, CA: Benjamin/Cummings. Booch, Grady. 1994. Object Oriented Analysis and Design with Applications, 2d ed. Boston, MA: Addison#Wesley. Библиография 845 Booth, Rick. 1997. Inner Loops : A Sourcebook for Fast 32#bit Software Development. Boston, MA: Addison#Wesley. Boundy, David. 1991. «A Taxonomy of Programmers.» ACM SIGSOFT Software Engineering Notes 16, no. 4 (October): 23–30. Brand, Stewart. 1995. How Buildings Learn: What Happens After They’re Built. Penguin USA. Branstad, Martha A., John C. Cherniavsky, and W. Richards Adrion. 1980. «Validation, Verification, and Testing for the Individual Programmer.» Computer, December, 24–30. Brockmann, R. John. 1990. Writing Better Computer User Documentation: From Paper to Hyper# text: Version 2.0. New York, NY: John Wiley & Sons. Brooks, Frederick P., Jr. 1987. «No Silver Bullets—Essence and Accidents of Software Engineering.» Computer, April, 10–19. Brooks, Frederick P., Jr. 1995. The Mythical Man#Month: Essays on Software Engineering, Anniversary Edition (2d ed.). Reading, MA: Addison#Wesley. Brooks, Ruven. 1977. «Towards a Theory of the Cognitive Processes in Computer Programming.» International Journal of Man%Machine Studies 9: 737–51. Brooks, W. Douglas. 1981. «Software Technology Payoff—Some Statistical Evidence.» The Journal of Systems and Software 2: 3–9. Brown, A. R., and W. A. Sampson. 1973. Program Debugging. New York, NY: American Elsevier. Buschman, Frank, et al. 1996. Pattern#Oriented Software Architecture, Volume 1: A System of Patterns. New York, NY: John Wiley & Sons. Bush, Marilyn, and John Kelly. 1989. «The Jet Propulsion Laboratory’s Experience with Formal Inspections.» Proceedings of the Fourteenth Annual Software Engineering Workshop, November 29, 1989. Greenbelt, MD: Goddard Space Flight Center. Document SEL#89#007. Caine, S. H., and E. K. Gordon. 1975. «PDL—A Tool for Software Design.» AFIPS Proceedings of the 1975 National Computer Conference 44. Montvale, NJ: AFIPS Press, 271–76. Card, David N. 1987. «A Software Technology Evaluation Program.» Information and Software Technology 29, no. 6 (July/August): 291–300. Card, David N., Frank E. McGarry, and Gerald T. Page. 1987. «Evaluating Software Engineering Technologies.» IEEE Transactions on Software Engineering SE#13, no. 7 (July): 845–51. Card, David N., Victor E. Church, and William W. Agresti. 1986. «An Empirical Study of Software Design Practices.» IEEE Transactions on Software Engineering SE#12, no. 2 (February): 264–71. Card, David N., with Robert L. Glass. 1990. Measuring Software Design Quality. Englewood Cliffs, NJ: Prentice Hall. Card, David, Gerald Page, and Frank McGarry. 1985. «Criteria for Software Modularization.» Proceedings of the 8th International Conference on Software Engineering. Washington, DC: IEEE Computer Society Press, 372–77. Carnegie, Dale. 1981. How to Win Friends and Influence People, Revised Edition. New York, NY: Pocket Books. Chase, William G., and Herbert A. Simon. 1973. «Perception in Chess.» Cognitive Psychology 4: 55–81. Clark, R. Lawrence. 1973. «A Linguistic Contribution of GOTO#less Programming,» Datamation, December 1973. Clements, Paul, ed. 2003. Documenting Software Architectures: Views and Beyond. Boston, MA: Addison#Wesley. Clements, Paul, Rick Kazman, and Mark Klein. 2002. Evaluating Software Architectures: Methods and Case Studies. Boston, MA: Addison#Wesley. Coad, Peter, and Edward Yourdon. 1991. Object%Oriented Design. Englewood Cliffs, NJ: Yourdon Press. 846 Библиография Cobb, Richard H., and Harlan D. Mills. 1990. «Engineering Software Under Statistical Quality Control.» IEEE Software 7, no. 6 (November): 45–54. Cockburn, Alistair. 2000. Writing Effective Use Cases. Boston, MA: Addison#Wesley. Cockburn, Alistair. 2002. Agile Software Development. Boston, MA: Addison#Wesley. Collofello, Jim, and Scott Woodfield. 1989. «Evaluating the Effectiveness of Reliability Assurance Techniques.» Journal of Systems and Software 9, no. 3 (March). Comer, Douglas. 1981. «Principles of Program Design Induced from Experience with Small Public Programs.» IEEE Transactions on Software Engineering SE#7, no. 2 (March): 169–74. Constantine, Larry L. 1990a. «Comments on ‘On Criteria for Module Interfaces.’» IEEE Transactions on Software Engineering SE#16, no. 12 (December): 1440. Constantine, Larry L. 1990b. «Objects, Functions, and Program Extensibility.» Computer Language, January, 34–56. Conte, S. D., H. E. Dunsmore, and V. Y. Shen. 1986. Software Engineering Metrics and Models. Menlo Park, CA: Benjamin/ Cummings. Cooper, Doug, and Michael Clancy. 1982. Oh! Pascal! 2d ed. New York, NY: Norton. Cooper, Kenneth G. and Thomas W. Mullen. 1993. «Swords and Plowshares: The Rework Cycles of Defense and Commercial Software Development Projects,» American Programmer, May 1993, 41–51. Corbatу, Fernando J. 1991. «On Building Systems That Will Fail.» 1991 Turing Award Lecture. Communications of the ACM 34, no. 9 (September): 72–81. Cornell, Gary and Jonathan Morrison. 2002. Programming VB .NET: A Guide for Experienced Programmers, Berkeley, CA: Apress. Corwin, Al. 1991. Private communication. CSTB 1990. «Scaling Up: A Research Agenda for Software Engineering.» Excerpts from a report by the Computer Science and Technology Board. Communications of the ACM 33, no. 3 (March): 281–93. Curtis, Bill, ed. 1985. Tutorial: Human Factors in Software Development. Los Angeles, CA: IEEE Computer Society Press. Curtis, Bill, et al. 1986. «Software Psychology: The Need for an Interdisciplinary Program.» Proceedings of the IEEE 74, no. 8: 1092–1106. Curtis, Bill, et al. 1989. «Experimentation of Software Documentation Formats.» Journal of Systems and Software 9, no. 2 (February): 167–207. Curtis, Bill, H. Krasner, and N. Iscoe. 1988. «A Field Study of the Software Design Process for Large Systems.» Communications of the ACM 31, no. 11 (November): 1268–87. Curtis, Bill. 1981. «Substantiating Programmer Variability.» Proceedings of the IEEE 69, no. 7: 846. Cusumano, Michael and Richard W. Selby. 1995. Microsoft Secrets. New York, NY: The Free Press. Cusumano, Michael, et al. 2003. «Software Development Worldwide: The State of the Practice,» IEEE Software, November/December 2003, 28–34. Dahl, O. J., E. W. Dijkstra, and C. A. R. Hoare. 1972. Structured Programming. New York, NY: Academic Press. Date, Chris. 1977. An Introduction to Database Systems. Reading, MA: Addison#Wesley. Davidson, Jack W., and Anne M. Holler. 1992. «Subprogram Inlining: A Study of Its Effects on Program Execution Time.» IEEE Transactions on Software Engineering SE#18, no. 2 (February): 89–102. Davis, P. J. 1972. «Fidelity in Mathematical Discourse: Is One and One Really Two?» American Mathematical Monthly, March, 252–63. Библиография 847 DeGrace, Peter, and Leslie Stahl. 1990. Wicked Problems, Righteous Solutions: A Catalogue of Modern Software Engineering Paradigms. Englewood Cliffs, NJ: Yourdon Press. DeMarco, Tom and Timothy Lister. 1999. Peopleware: Productive Projects and Teams, 2d ed. New York, NY: Dorset House. DeMarco, Tom, and Timothy Lister. 1985. «Programmer Performance and the Effects of the Workplace.» Proceedings of the 8th International Conference on Software Engineering. Washington, DC: IEEE Computer Society Press, 268–72. DeMarco, Tom. 1979. Structured Analysis and Systems Specification: Tools and Techniques. Englewood Cliffs, NJ: Prentice Hall. DeMarco, Tom. 1982. Controlling Software Projects. New York, NY: Yourdon Press. DeMillo, Richard A., Richard J. Lipton, and Alan J. Perlis. 1979. «Social Processes and Proofs of Theorems and Programs.» Communications of the ACM 22, no. 5 (May): 271–80. Dijkstra, Edsger. 1965. «Programming Considered as a Human Activity.» Proceedings of the 1965 IFIP Congress. Amsterdam: North#Holland, 213–17. Reprinted in Yourdon 1982. Dijkstra, Edsger. 1968. «Go To Statement Considered Harmful.» Communications of the ACM 11, no. 3 (March): 147–48. Dijkstra, Edsger. 1969. «Structured Programming.» Reprinted in Yourdon 1979. Dijkstra, Edsger. 1972. «The Humble Programmer.» Communications of the ACM 15, no. 10 (October): 859–66. Dijkstra, Edsger. 1985. «Fruits of Misunderstanding.» Datamation, February 15, 86– 87. Dijkstra, Edsger. 1989. «On the Cruelty of Really Teaching Computer Science.» Communications of the ACM 32, no. 12 (December): 1397–1414. Dunn, Robert H. 1984. Software Defect Removal. New York, NY: McGraw#Hill. Ellis, Margaret A., and Bjarne Stroustrup. 1990. The Annotated C++ Reference Manual. Boston, MA: Addison#Wesley. Elmasri, Ramez, and Shamkant B. Navathe. 1989. Fundamentals of Database Systems. Redwood City, CA: Benjamin/Cummings. Elshoff, James L. 1976. «An Analysis of Some Commercial PL/I Programs.» IEEE Transactions on Software Engineering SE#2, no. 2 (June): 113–20. Elshoff, James L. 1977. «The Influence of Structured Programming on PL/I Program Profiles.» IEEE Transactions on Software Engineering SE#3, no. 5 (September): 364–68. Elshoff, James L., and Michael Marcotty. 1982. «Improving Computer Program Readability to Aid Modification.» Communications of the ACM 25, no. 8 (August): 512–21. Endres, Albert. 1975. «An Analysis of Errors and Their Causes in System Programs.» IEEE Transactions on Software Engineering SE#1, no. 2 (June): 140–49. Evangelist, Michael. 1984. «Program Complexity and Programming Style.» Proceedings of the First International Conference on Data Engineering. New York, NY: IEEE Computer Society Press, 534–41. Fagan, Michael E. 1976. «Design and Code Inspections to Reduce Errors in Program Development.» IBM Systems Journal 15, no. 3: 182–211. Fagan, Michael E. 1986. «Advances in Software Inspections.» IEEE Transactions on Software Engineering SE#12, no. 7 (July): 744–51. Federal Software Management Support Center. 1986. Programmers Work%bench Handbook. Falls Church, VA: Office of Software Development and Information Technology. Feiman, J., and M. Driver. 2002. «Leading Programming Languages for IT Portfolio Planning,» Gartner Research report SPA#17#6636, September 27, 2002. 848 Библиография Fetzer, James H. 1988. «Program Verification: The Very Idea.» Communications of the ACM 31, no. 9 (September): 1048–63. FIPS PUB 38, Guidelines for Documentation of Computer Programs and Automated Data Systems. 1976. U.S. Department of Commerce. National Bureau of Standards. Washington, DC: U.S. Govern# ment Printing Office, Feb. 15. Fishman, Charles. 1996. «They Write the Right Stuff,» Fast Company, December 1996. Fjelstad, R. K., and W. T. Hamlen. 1979. «Applications Program Maintenance Study: Report to our Respondents.» Proceedings Guide 48, Philadelphia. Reprinted in Tutorial on Software Maintenance, G. Parikh and N. Zvegintzov, eds. Los Alamitos, CA: CS Press, 1983: 13–27. Floyd, Robert. 1979. «The Paradigms of Programming.» Communications of the ACM 22, no. 8 (August): 455–60. Fowler, Martin. 1999. Refactoring: Improving the Design of Existing Code. Reading, MA: Addison# Wesley. Fowler, Martin. 2002. Patterns of Enterprise Application Architecture. Boston, MA: Addison#Wesley. Fowler, Martin. 2003. UML Distilled: A Brief Guide to the Standard Object Modeling Language, 3d ed. Boston, MA: Addison#Wesley. Fowler, Martin. 2004. UML Distilled, 3d ed. Boston, MA: Addison#Wesley. Fowler, Priscilla J. 1986. «In#Process Inspections of Work Products at AT&T.» AT&T Technical Journal, March/April, 102–12. Foxall, James. 2003. Practical Standards for Microsoft Visual Basic .NET. Redmond, WA: Microsoft Press. Freedman, Daniel P., and Gerald M. Weinberg. 1990. Handbook of Walkthroughs, Inspections and Technical Reviews, 3d ed. New York, NY: Dorset House. Freeman, Peter, and Anthony I. Wasserman, eds. 1983. Tutorial on Software Design Techniques, 4th ed. Silver Spring, MD: IEEE Computer Society Press. Gamma, Erich, et al. 1995. Design Patterns. Reading, MA: Addison#Wesley. Gerber, Richard. 2002. Software Optimization Cookbook: High#Performance Recipes for the Intel Architecture. Intel Press. Gibson, Elizabeth. 1990. «Objects—Born and Bred.» BYTE, October, 245–54. Gilb, Tom, and Dorothy Graham. 1993. Software Inspection. Wokingham, England: Addison#Wesley. Gilb, Tom. 1977. Software Metrics. Cambridge, MA: Winthrop. Gilb, Tom. 1988. Principles of Software Engineering Management. Wokingham, England: Addison# Wesley. Gilb, Tom. 2004. Competitive Engineering. Boston, MA: Addison#Wesley. Downloadable from www.result%planning.com. Ginac, Frank P. 1998. Customer Oriented Software Quality Assurance. Englewood Cliffs, NJ: Prentice Hall. Glass, Robert L. 1982. Modern Programming Practices: A Report from Industry. Englewood Cliffs, NJ: Prentice Hall. Glass, Robert L. 1988. Software Communication Skills. Englewood Cliffs, NJ: Prentice Hall. Glass, Robert L. 1991. Software Conflict: Essays on the Art and Science of Software Engineering. Englewood Cliffs, NJ: Yourdon Press. Glass, Robert L. 1995. Software Creativity. Reading, MA: Addison#Wesley. Glass, Robert L. 1999. «Inspections—Some Surprising Findings,» Communications of the ACM, April 1999, 17–19. Библиография 849 Glass, Robert L. 1999. «The realities of software technology payoffs,» Communications of the ACM, February 1999, 74–79. Glass, Robert L. 2003. Facts and Fallacies of Software Engineering. Boston, MA: Addison#Wesley. Glass, Robert L., and Ronald A. Noiseux. 1981. Software Maintenance Guidebook. Englewood Cliffs, NJ: Prentice Hall. Gordon, Ronald D. 1979. «Measuring Improvements in Program Clarity.» IEEE Transactions on Software Engineering SE#5, no. 2 (March): 79–90. Gordon, Scott V., and James M. Bieman. 1991. «Rapid Prototyping and Software Quality: Lessons from Industry.» Ninth Annual Pacific Northwest Software Quality Conference, October 7–8. Oregon Convention Center, Portland, OR. Gorla, N., A. C. Benander, and B. A. Benander. 1990. «Debugging Effort Estimation Using Software Metrics.» IEEE Transactions on Software Engineering SE#16, no. 2 (February): 223–31. Gould, John D. 1975. «Some Psychological Evidence on How People Debug Computer Programs.» International Journal of Man%Machine Studies 7: 151–82. Grady, Robert B. 1987. «Measuring and Managing Software Maintenance.» IEEE Software 4, no. 9 (September): 34–45. Grady, Robert B. 1993. «Practical Rules of Thumb for Software Managers.» The Software Practitioner 3, no. 1 (January/February): 4–6. Grady, Robert B. 1999. «An Economic Release Decision Model: Insights into Software Project Management.» In Proceedings of the Applications of Software Measurement Conference, 227–239. Orange Park, FL: Software Quality Engineering. Grady, Robert B., and Tom Van Slack. 1994. «Key Lessons in Achieving Widespread Inspection Use,» IEEE Software, July 1994. Grady, Robert B. 1992. Practical Software Metrics For Project Management And Process Impro# vement. Englewood Cliffs, NJ: Prentice Hall. Grady, Robert B., and Deborah L. Caswell. 1987. Software Metrics: Establishing a Company%Wide Program. Englewood Cliffs, NJ: Prentice Hall. Green, Paul. 1987. «Human Factors in Computer Systems, Some Useful Readings.» Sigchi Bulletin 19, no. 2: 15–20. Gremillion, Lee L. 1984. «Determinants of Program Repair Maintenance Requirements.» Communi% cations of the ACM 27, no. 8 (August): 826–32. Gries, David. 1981. The Science of Programming. New York, NY: Springer#Verlag. Grove, Andrew S. 1983. High Output Management. New York, NY: Random House. Haley, Thomas J. 1996. «Software Process Improvement at Raytheon.» IEEE Software, November 1996. Hansen, John C., and Roger Yim. 1987. «Indentation Styles in C.» SIGSMALL/PC Notes 13, no. 3 (August): 20–23. Hanson, Dines. 1984. Up and Running. New York, NY: Yourdon Press. Harrison, Warren, and Curtis Cook. 1986. «Are Deeply Nested Conditionals Less Readable?» Journal of Systems and Software 6, no. 4 (November): 335–42. Hasan, Jeffrey and Kenneth Tu. 2003. Performance Tuning and Optimizing ASP.NET Applications. Apress. Hass, Anne Mette Jonassen. 2003. Configuration Management Principles and Practices, Boston, MA: Addison#Wesley. Hatley, Derek J., and Imtiaz A. Pirbhai. 1988. Strategies for Real%Time System Specification. New York, NY: Dorset House. |