Литературные ссылки
Предисловие
Mills, Н. 1985. DPMA and Human Productivity. Houscon, TX: Data Processing Management, Association.
Часть I. Концепции
Wagner, J. 1986. The Search for Signs of Intelligent Life in the Universe. New York, NY: Harper and Row, p.202. By permission of ICM. Inc.
Глава 1. Сложность [1] Brooks, F. April 1987. No Silver Bullet: Essence and Accidents of Software Engineering. IEEE Computer vol.20(4), p.12. [2] Peters, L. 1981. Software Design. New York, NY: Yourdon Press, p.22. [3] Brooks. No Silver Bullet, p.11. [4] Parnas, D. July 1985. Software Aspects ofStrategic Defense Systems. Victoria, Canada: University of Victoria. Report DCS-47-IR. [5] Peter, L. 1986. The Peter Pyramid. New York, NY: William Morrow, p.153. [6] Waldrop, M. 1992. Complexity: The Emerging Science at the Edge of Order and Chaos. New-York, NY: Simon and Schuster. [7] Courtois, P. June 1985. On Time and Space Decomposition of Complex Structures. Communications of the ACM vol.28(6), p.596. [8] Simon, H. 1982. The Sciences of the Artificial. Cambridge, MA: The MIT Press, p.218. [9] Rechtin, E. October 1992. The Art of Systems Architecting. IEEE Spectrum, vol.29( 10), p.66. [10] Simon. Sciences, p.217. [11] Ibid, р. 221. [12] Ibid, p.209. [13] Gall, J. 1986. Systemantics: How Systems Really Work and How They Fail. Second Edition. Ann Arbor, MI: the General Systemantics Press, p.65. [14] Miller, G. March 1956. The Magical Number Seven, Plus or Minus Two: Some Limits on Our Capacity for Processing Information. The Psychological Reviev vol.63(2), p.86. [15] Simon. Sciences, p.81. [16] Dijktra, E. 1979. Programming Considered as a Human Activity. Classics in Software Engineering. New York, NY: Yourdon Press, p.5. [17] Parnas, D. December 1985. Software Aspects of Strategic Defense Systems. Communications of the ACM vol.28(12), p.1328. [18] Tsai, J. and Ridge, J. November 1988. Intelligent Support for Specifications Transformation. IEEE Software vol.5(6), p. 34. [19] Stein, J. March 1988. Object-oriented Programming and Database Design. Dr. Dobb's Journal of Software Tools for the Professional Programmer, No. 137, p.18. [20] Peters. Software Design. [21] Yau, S. and Tsai, J. June 1986. A Survey of Software Design Techniques. IEEE Transactions on Software Engineering vol.SE-12(6). [22] Teledyne Brown Engineering. Software Methodology Catalog. Report MC87-COMM/ADP-0036. October 1987. Tinton Falls, NJ. [23] Sommerville, 1.1985. Software Engineering. Second Edition. Workingham, England: Addison-Wesley, p.68. [24] Yourdon, E. and Constantine, L. 1979. Structured Design. Englewood Cliffs, NJ: Prentice-Hall. [25] Myers, G. 1978. Composite/Structured Design. New York, NY: Van Nostrand Reinhold. [26] Page-Jones, M. 1988. The Practical Guide to Structured. Systems Design. Englewood Cliffs. NJ: Yourdon Press. [27] Wirth, N. January 1983. Program Development by Stepwise Refinement. Communications of the ACM vol.26(1). [28] Wirth, N. 1986. Algorithms and Data Structures. Englewood Cliffs, NJ: Prentice-Hall. [29] Dahl, O., Dijkstra, E. and Hoare, C.A.R. 1972. Structured Programming. London. England: Academic Press. [30] Mills, H., Linger, R. and Hevner, A. 1986. Principles of Information System Design and Analysis. Orlando, FL: Academic Press. [31] Jackson, M. 1975. Principles of Program Design. Orlando, FL: Academic Press. [32] Jackson, M. 1983. System Development. Englewood Cliffs, NJ: Prentice-Hall. [33] Orr, K. 1971. Structured Systems Development. New York, NY: Yourdon Press. [34| Langdon, G. 1982. Computer Design. San Jose, CA: Computeach Press, p.6. [35] Miller. Magical Number, p.95. [36] Shaw, M. 1981. ALPHARD: From and Content. New York, NY: Springer-Verlag, p.6. [37] Goldberg, A. 1984. Smalltalft-80: The Interactive Programming Environment. Reading, MA: Addison-Wesley, p.80. [38] Petroski, H. 1985. To Engineerls Human. St Martin's Press: New York, p.40. [39] Dijkstra, E. January 1993. American Programmer vol.6(1). [40] Mostow, J. Spring 1985. Toward Better Models of the Design Process. Al Magazine vol.6(1), p.44. [41] Stroustrup, В. 1991. The C++ Programming Language. Second Edition. Reading, MA: Addison-Wesley, p.366. [42] Eastman, N. 1984. Software Engineering and Technology. Technical Directions vol.10(1): Bethesda, MD: IBM Federal Systems Division, p.5. [43] Brooks. No Silver Bullet, p.10.
Глава 2. Объектная модель [1] Rentsch, Т. September 1982. Object-Oriented Programming. SIGPLAN Notices vol.17(12), p.51. [2] Wegner, P. June 1981. The Ada Programming Language and Environment. Unpublished draft. [3] Abbott, R. August 1987. Knowledge Abstraction. Communications of the ACM vol.30(8), p.664. [4] Ibid, p.664. [5] Shankar, K. 1984. Data Design: Types, Structures, and Abstractions. Handbook of Software Engineering. New York, NY: Van Nostrand Reinhold, p.253. [6] Macintosh MacApp 1.1.1 Programmer's Reference. 1986. Cupertino, CA: Apple Computer, p.2. [7] Bhaskar, K. October 1983. How Object-oriented Is Your System? SICPLAK Notices vol.18(10), p.8. [8] Stefik, M. and Bobrow, D. Winter 1986. Object-oriented Programming: Themes and Variations, AI Magazine vol.6(4), p.41. [9] Yonezawa, A. and Tokoro, M. 1987. ObjecE-Oriented Concurrent Programming. Cambridge, MA: The MIT Press, p.2. [10] Levy, H. 1984. Capability-Based Computer Systems. Bedford, MA: Digital Press, p.13. [11] Ramamoorthy, С. and Sheu, P. Fall 1988. Object-oriented Systems. IEEE Expert vol.3(3), p.14. [12] Myers, G. 1982. Advances in Computer Architecture. Second Edition. New York, NY: John Wiley and Sons, p.58. [13] Levy. Capability-Based Computer. [14] Kavi, K. and Chen, D. 1987. Architectural Support for Object-oriented Languages. Proceedings of the Thirty-second IEEE Computer Society International Conference. IEEE. [15] iAPX432 Object Primer. 1981. Santa Clara, CA: Intel Corporation. [16] Dally, W.J. and Kajiya.J.T. March 1985. An Object-oriented Architecture, SIGARCH Newsletter vol.13(3). [17] Dahlby, S., Henry, G., Reynolds, D. and Taylor, P. 1982. The IBM System/38: A High Level Machine, in Computer Structures: Principles and Examples. New York, NY: McGraw-Hill. [18] Dijkstra. E. May 1968. The Structure of the "THE" Multiprogramming System. Communications of the ACM vol.11(5). [19] Pashtan, A. 1982. Object-Oriented Operating Systems: An Emerging Design Methodology. Proceedings of the ACM'S2 Conference. ACM. [20] Parnas, D. 1979. On the Criteria to the Be Used in Decomposing Systems into Modules, in Classics in Software Engineering. New York, NY: Yourdon Press. [21] Liskov, B. and Zilles, S. 1977. An Introduction to Formal Specifications of Data Abstractions. Current Trends in Programming Methodology: Software Specification and Design vol.1. Englewood Cliffs. NJ: Prentice-Hall. [22] Guttag, J. 1980. Abstract Data Types and the Development of Data Structures, in Programming Language Design. New York, NY: Computer Society Press. [23] Shaw. Abstraction Techniques. [24] Nygaard, K. and Dahl, O-J. 1981. The Development of the Simula Languages, in History of Programming Languages. New York, NY: Academic Press, p.460. [25] Atkinson, M. and Buneman, P. June 1987. Types and Persistence in Database Programming Languages. ACM Computing Surveys vol.19(2), p.105. [26] Rumbaugh, J. April 1988. Relational Database Design Using an Object-oriented Methodology. Communications of the ACM vol.31(4), p.415. [27] Chen, P. March 1976. The Entity-Relationship Model - Toward a Unified View of Data. ACM Transactions on Database Systems vol.1(1). [28] Barr,A.and Feigenbaum. E. 1981. The Handbook ofArtificial Intelligence. vol.1.Los Altos, CA: William Kaufmann, p.216. [29] Stillings, N., Feinstein, M., Garfield.J., Rissland, E., Rosenbaum, D., Weisler. S., Baker-Ward, L. 1987. Cognitive Science: An Introduction. Cambridge, MA: The MIT Press, p.305. [30] Rand, Ayn. 1979. Introduction to Objectivist Epistemology. New York, NY: New American Library. [31] Minsky, M. 1986. The Society of Mind. New York, NY: Simon and Schuster. [32] Jones, A. 1979. The Object Model: A Conceptual Tool for Structuring Software. Operating Systems. New York, NY: Springer-Verlag, p.8. [33] Stroustrup, В. May 1988. What Is Object-oriented Programming? IEEE Software vol.5(3), p.10. [34] Cardelli, L. and Wegner, P. On Understanding Types, Data Abstraction, and Polymorphism. December 1985. ACM Computing Surveys vol.17(4). p.481. [35] DeMarco, T. 1979. Structured Analysis and System Specification. Englewood Cliffs, NJ: Prentice-Hall. [36] Yourdon, E. 1989. Modem Structured Analysis. Englewood Cliffs, NJ: Prentice-Hall. [37] Gane, C. and Sarson, T. 1979. Structured Systems Analysis. Englewood Cliffs, NJ: Prentice-Hall. [38] Ward, P. and Mellor, S. 1985. Structured Development for Real-Time Systems. Englewood Cliffs, NJ: Yourdon Press. [39] Hatley, D. and Pirbhai, 1.1988. Strategies for Real-Time System Specification. New York, NY: Dorset House. [40] Jenkins, M. and Glasgow, J. January 1986. Programming Styles in Nial. IEEE Software vol.3(1), p.48. [41] Bobrow, D. and Stefik, M. February 1986. Perspectives on Artificial Intelligence Programming. Science vol.231, p.951. [42] Dahl, O., Dijkstra, E. and Hoare, C.A.R. 1972. Structured Programming. London, England: Academic Press, p.83. [43] Shaw, M. October 1984. Abstraction Techniques in Modern Programming Languages. IEEE Software vol.1(4), p.10. [44] Berzins, V. Gray, M. and Naumann, D. May 1986. Abstraction-Based Software Development. Communications of the ACM vol. 29(5), p.403. [45] Abelson, H. and Sussman, G. 1985. Structure and Interpretation of Computer Programs. Cambridge, MA: The MIT Press, p.126. [46] Ibid, p.132. [47] Seidewitz, E. and Stark, M. 1986. Towards a General Object-oriented Software Development Methodology. Proceedings of the First International Conference on Ada Programming Language Applications for the NASA Space Station. NASA Lyndon B.Johnson Space Center. TX: NASA, p.D.4.6.4. [48] Meyer, B. 1988. Object-oriented Software Construction. New York. NY: Prentice-Hall. [49] Wirfs-Brock. R. and Wilkerson, B. October 1989. Object-oriented Design: A Responsibility-Driven Approach. SICPLAN Notices vol.24(10). [50] Ingalls, D. The Smalltalk-76 Programming System Design and Implementation. Proceedings of the Fifth Annual ACM Symposium on Principles of Programming Languages. ACM, p.9. [51] Gannon.J., Hamlet. R. and Mills. H. July 1987. Theory of Modules. IEEE Transactions on Software Engineering vol.SE-13(7), p.820. [52] Date, С. 1986. Relational Database: Selected Writings. Reading, MA: Addison-Wesley, p.180. [53] Liskov, B. May 1988. Data Abstraction and Hierarchy. SIGPLAN Notices vol.23(5). p.19. [54] Britton, K. and Parnas. D. December 8. 1981. A-7E Softs-are Module Guide. Washington, D.C. Naval Research Laboratory, Report 4702, p.24. [55] Gabriel, R. 1990. Private Communication. [56] Stroustrup, B. 1988. Private Communication. [57] Myers. G. 1978. Composite/Structured Design. New York. NY: Van Nostrand Reinhold, p.21. [58] Liskov, B. 1980. A Design Methodology for Reliable Software Systems, in Tutorial on Software Design Techniques. Third Edition. New York, NY: IEEE Computer Society, p.66. [59] Zelkowitz, M. June 1978. Perspectives on Software Engineering. ACM Computing Surveys vol.10(2), p.20. [60] Parnas, D., Clements, P. and Weiss, D. March 1985. The Modular Structure of Complex Systems. IEEE Transactions on Software Engineering vol.SE-11(3), p.260. [61] Britton and Parnas. A-7E Software, p.2. [62] Parnas. D., Clements, P. and Weiss, D. 1983. Enhancing Reusability with Information Hiding. Proceedings of the Workshop on Reusability in Programming. Stratford, CT: ITT Programming. p.241. [63] Meyer. Object-oriented Software Construction, a. 47. [64] Сох, В. 1986. Object-Oriented Programming: An Evolutionary Approach. Reading, MA: Addison-Wesley, p.69. [65] Danforth, S. and Tomlinson. C. March 1988. Type Theories and Object-Oriented Programming. ACM Computing Surveys vol.20(1), p.34. [66] Liskov. 1988. р. 23. [67] As quoted in Liskov. 1980. p.67. [68] Zilles, S. 1984. Types, Algebras, and Modeling, in On Conceptual Modeling: Perspectives from Artificial Intelligence. Databases, and Programming Languages. New York, NY: Springer-Verlag, p.442. [69] Doming, A. and Ingalls, D. 1982. A Type Declaration and Inference System for Smalltalk. Palo Alto, CA: Xerox Palo Research Center, p.134. [70] Wegner. P. October 1987. Dimensions of Object-oriented Language Design. SIGPLAN Notices vol.22(12). p.171. [71] Stroustrup, B. 1992. Private communication. [72] Tesler, L. August 1981. The Smalltalk Environment. Byte vol.6(8), p.142. [73] Borning and Ingalls. Type Declaration, p.133. [74] Thomas, D. March 1989. What's in an Object? Byte vol.14(3), p.232. [75] Lim, J. and Johnson, R. April 1989. The Heart of Object-oriented Concurrent Programming. SIGPLAN Notices vol.24(4), p.165. [76] Ibid, p.l65. [77] Black, A., Hutchinson, N., Jul, E., Levy, H. and Carter, L. July 1986. Distribution and Abstract Types in Emerald. Report 86-02-04. Seattle, WA: University of Washington, p.3. [78] Proceedings of the ACM SIGPLAN Workshop on Object-Based Concurrent Programming. April 1989. SIGPLAN Notices vol.24(4), p.1. [79] Atkinson, M., Bailey, P., Chisholm, K., Cockshott, P. and Morrison, R. 1983. An Approach to Persistent Programming. The Computer Journal vol.26(4), p.360. [80] Khoshafian, S. and Copeland, G. November 1986. Object Identity. SIGPLAN Notices vol.21(11), p.409. [81] Vbase Technical Overview. September 1987. Billerica, MA: Ontologic, p.4. [82] Stroustrup, В. November 1987. Possible Directions for C++. Proceedings of the USENIX C++ Workshop. Santa Fe, NM, p.14. [83] Meyer. Object-oriented Software Construction, p.30-31. [84] Robson, D. August 1981. Object-oriented Software Systems, Byte vol.6(8), p.74.
Глава 3. Классы и объекты [1] Lefrancois, G. 1977. Of Children: An Introduction to Child Development. Second Edition. Belmont, CA: Wadsworth, p.244-246. [2] Nygaard, K. and Dahl, O-J. 1981. The Development of the Simula Languages, in History of Programming Languages. New York, NY: Academic Press, p.462. [3] Halbert, D. and O'Brien, P. September 1988. Using Types and Inheritance in Object-oriented Programming. IEEE Software vol. 4(5), p.73. [4] Smith, M. and Tockey, S. 1988. An Integrated Approach to Software Requirements Definition Using Objects. Seattle, WA: Boeing Commercial Airplane Support Division, p.132. [5] Сох, В. 1986. Object-oriented Programming: An Evolutionary Approach. Reading, MA: Addison-Wesley, p.29. [6] MacLennan, B. December 1982. Values and Objects in Programming Languages. SICPLAN Notices vol.17(12), p.78. [7] Lippman, S. 1989. C++ Primer. Reading, MA: Addison-Wesley, p.185. [8] Adams, S. 1993. Private communication. [9] Wirfs-Brock, R.,Wilkerson, В. and Wiener, L. 1990. Designing Object-oriented Software. Englewood Cliffs, New Jersey: Prentice-Hall, p.61. [10] Rubin, K. 1993. Private communication. [11] Macintosh MacApp 1.1.1 Programmer's Reference. 1986. Cupertino. CA: Apple Computer, p.4. [12] Khoshafian, S. and Copeland, G. November 1986. Object Identity. SIGPLAN Notices vol.21(ll).p.406. [13] Ingalls, D. 1981. Design Principles behind Smalltalk. Byte vol.6(8), p.290. [14] Gall, J. 1986. Systemantics: Ноw Systems Really Work and How They Fail. Second. Edition. Ann Arbor, MI: The General Systemantics Press, p.158. [15] Seidewitz, E. and Stark, M. 1986. Towards a General Object-oriented Software Development Methodology. Proceedings of the First International Conference on Ada Programming Language Applications for the NASA Space Station. NASA Lyndon B. Johnson Space Center. TX: NASA. p.D.4.6.4. [16] Rumbaugh, J., Blaha, M., Premerlani, W., Eddy, F. and Lorensen, W. 1991. Object-oriented Modeling and Design. Englewood Cliffs, New Jersey: Prentice-Hall, p.459. [17] Webster's Third New International Dictionary of the English Language, unabridged. 1986. Chicago. Illinois: Merriam-Webster. [18] Stroustrup, B. 1991. The C++ Programming Language, Second Edition. Reading, MA: Addison-Wesley, p.422. [19] Meyer, B. 1987. Programmingas Contracting. Report TR-EI-12/CO. Goleta, CA: Interactive Software Engineering. [20] Snyder, A. November 1986. Encapsulation and Inheritance in Object-oriented Programming Languages. SIGPLAN Notices vol. 21(11). [21] LaLonde, W. April 1989. Designing Families of Data Types Using Exemplars. ACM Transactions on Programming Languages and Systems vol.11(2), p.214. [22] Rumbaugh, J. April 1988. Relational Database Design Using an Object-oriented Methodology. Communications of the ACM vol.31(4), p.417. [23] Lieberman, H. November 1986. Using Prototypical Objects to Implement Shared Behavior in Object-oriented Systems. SIGPLAN Notices vol.21(11). [24] Rumbaugh,1991.p.312. [25] Brachman, R. October 1983. What IS-A Is and Isn't: An Analysis of Taxonomic Links in Semantic Networks. IEEE Computer vol.16(10), p.30. [26] Micallef, J. April/May 1988. Encapsulation, Reusability, and Extensibility in Object-oriented Programming Languages. Journal of Object-oriented Programming vol.1(1). p.15. [27] Snyder. Encapsulation, p.39. [28] Cardelli, L. and Wegner. P. On Understanding Types, Data Abstraction, and Polymorphism. December 1985. ACM Computing Surveys vol.17(4), p.475. [29] As quoted in Harland, D., Szyplewski, M. and Wainwright, J. October 1985. An Alternative View of Polymorphism. SIGPLAN Notices vol.20( 10). [30] Kaplan, S. and Johnson, R. July 21,1986. Designing and Implementing/or Reuse. Urbana. IL University of Illinois, Department of Computer Science, p.8. [31] Deutsch, P. 1983. Efficient Implementation of the Smalltalk-80 System, in Proceedings of the 11th Annual ACM Symposium on the Principles a/Programming Languages, p.300. [32] Ibid, p.299. [33] Duff, С. August 1986. Designing an Efficient Language. Byte vol.11(8), p.216. [34] Stroustrup, В. 1988. Private communication. [35] Stroustrup, В. November 1987. Possible Directions for C++. Proceedings of the USENIX C++ Workshop. Santa Fe, New Mexico, p.8. [36] Keene, S. 1989. Object-Oriented Programming in Common Lisp. Reading, MA: Addison-Wesley, p.44. [37] Winston. P. and Horn. B. 1989. Lisp. Third Edition. Reading, MA: Addison-Wesley, p.510. [38] Micallef, J. April/May 1988. Encapsulation. Reusability, and Extensibility in Object-Oriented Programming Languages. Journal of Object-Oriented Programming vol.1 (1), p.25. [39] Snyder. Encapsulation, p.41. [40] Vlissides, J. and Linton, M. 1988. Applying Object-oriented Design to Structured Graphics. Proceedings of USENIX C++ Conference. Berkeley, CA: USENIX Association, p.93. [41] Meyer, В. 1988. Object-oriented Software Construction. New York. NY: Prentice-Hall, p.274. [42] Keene. Object-oriented Programming, p.118. [43] Snyder. Encapsulation, p.43. [44] Hendler, J. October 1986. Enhancement for Multiple Inheritance. SIGPLAN Notice vol.21(10), p.100. [45] Stroustrup, 1987. p.3. [46] Stroustrup, В. 1988. Parameterized Types for C++. Proceedings of USENIX C++ Conference. Berkley, CA: USENIX Association, p.1. [47] Meyer, В. November 1986. Gcnericity versus Inheritance. SIGPLAN Notices vol.21(11), p.402. [48] Stroustrup. 1988, p.4. [49] Robson, D. August 1981. Object-oriented Software Systems. Byte vol.6(8), p.86. [50] Goldberg, A. and Robson, D. 1983. Smalltalk-80: The Language and Its Implementation. Reading, MA: Addison-Wesley, p.287. [51] Ingalls, D. August 1981. Design Principles Behind Smalltalk. Byte vol.6(8), p.286. [52] Stevens, W., Myers. G. and Constantine, L. 1979. Structured Design, in Classics in Software Engineering. New York, NY: Yourdon Press, p.209. [53] Page-Jones, M. 1988. The Practical Guide to Structured Systems Design. Englewood Cliffs, New Jersey: Yourdon Press, p.59. [54] Meyer. 1987, p.4. [55] Halbert, D. and O'Brien, P. September 1988. Using Types and Inheritance in Object-oriented Programming. IEEE Software vol.4(5), p.74. [56] Sakkinen, M. December 1988. Comments on "the Law of Demeter" and C++. SIGPLAN Notices vol.23(12), p.36. [57] Lea, D. August 12,1988. User's Guide to GNU C++ Library. Cambridge. MA: Free Software Foudation, p.12. [58] Ibid. [59] Meyer. 1988, р. 332. [60] Wirth, N. 1986. Algorithms and Data Structures. Englewood Cliffs. NJ: Prentice-Hall, p.37. [61] Keene. Object-oriented Programming, p.68. [62] Parnas, D., Clements, P. and Weiss, D. 1989. Enhancing Reusability with Information Hiding. Software Reusability. New York, NY: ACM Press, p.143.
Глава 4. Классификация [1] As quoted in Swaine, M. June 1988. Programming Paradigms. Dr. Dobb's Journal of Software Tools. No.140, p.110. [2] Michalski, R. and Stepp, R. 1983. Learning from Observation: Conceptual Clustering, in Machine Learning: An Artificial Intelligence Approach. Palo Alto, CA: Tioga. p.332. [3] Alexander, С. 1979. The Timeless Way of Building. New York, NY: Oxford University Press, p.203. [4] Darwin, С. 1984. The Origin of Species. vol.49 of Great Books of the Western World. Chicago, IL: Encyclopedia Britannica, p.207. [5] The New Encyclopedia Britannica. 1985. Chicago, IL Encyclopedia Britannica. vol.3, p.356. [6] Gould, S. June 1992. We Are All Monkey's Uncles. Natural History. [7] May, R. September 16,1988. How Many Species Are There on Earth? Science vol.241, p.1441. [8] As quoted in Lewin, R. November 4,1988. Family Relationships Are a Biological Conundrum. Science vol.242, p.671. [9] The New Encyclopedia Britannica vol.3, p.156. [10] Descartes, R. 1984. Rules for the Direction of the Mind. vol.31 of Great Books of the Western World. Chicago, IL: Encyclopedia Britannica, p.32. [11] Shaw, M. May 1989. Larger Scale Systems Require Higher-Level Abstractions. SIGSOFT Engineering Notes vol.14(3), p.143. [12] Goldstein, Т. May 1989. The Object-oriented Programmer. The C++ Report vol.1(5). [13] Coombs, С., Raiffa, H. and Thrall, R. 1954. Some Views on Mathematical Models and Measurement Theory. Psychological Review vol.61(2), p.132. [14] Flood, R. and Carson, E. 1988. Dealing with Complexity. New York, NY: Plenum Press, p.8. [15] Birtwistle, G., Dahl, O-J., Myhrhaug, В. and Nygard, K. 1979. Simula begin. Lund. Sweden: Studentlitteratur, p.23. [16] Heinlein, R. 1966. The Moon Is a Harsh Mistress. New York, NY: The Berkeley Publishing Group, p.11. [17] Sowa, J. 1984. Conceptual Structures: Information Processing in Mind and Machine. Reading, MA: Addison-Wesley, p.16. [18] Lakoff, G. 1987. Women. Fire, and Dangerous Things: What Categories Reveal About the Mind. Chicago, IL: The University of Chicago Press, p.161. [19] Stepp, R. and Michalski, R. February 1986. Conceptual Clustering of Structured Objects: A Goal-Oriented Approach. Artificial Intelligence vol.28( 1), p.53. [20] Wegner, P. 1987. The Object-Oriented Classification Paradigm, in Research Directions in Object-Oriented Programming. Cambridge, MA: The MIT Press, p.480. [21] Aquinas, Т. 1984. Summa Theologica. vol.19 of Great Books of the Western World. Chicago, IL: Encyclopedia Britannica, p.71. [22] Maier, H. 1969. Three Theories of Child Development: The Contributions of Erik H. Erickson, Jean Piaget and Robert R. Sears, and Their Applications. New York, NY: Harper and Row, p.111. [23] Lakoff. Women. Fire, p.32. [24] Minsky, M. 1986. The Society of Mind. New York, NY: Simon and Schuster, p.199. [25] The Great Ideas: A Syntopicon of Great Books of the Western World. 1984. vol.1 of Great Books of the Western World. Chicago, IL: Encyclopedia Britannica, p.293. [26] Kosko, В. 1992. Neural Networks and Fuzzy Systems. Englewood Cliffs, NJ: Prentice-Hall, p.xx. [27] Stepp, p.44. [28] Lakoff. Women, Fire, and Dangerous Things, p. 7. [29] Ibid, p.16. Live By. Chicago, IL: The University of Chicago Press, p.122. [31] Meyer, В. 1988. Private communication. [32] Shlaer, S. and Mellor, S. 1988. Object-oriented Systems Analysis: Modeling the World in Data. Englewood Cliffs, NJ: Yourdon Press, p.15. [33] Ross, R. 1987. Entity Modeling: Techniques and Application. Boston, MA: Database Research Group, p.9. [34] Coad, P. and Yourdon, E. 1990. Object-oriented Analysis. Englewood Cliffs, NJ: Prentice-Hall, p.62. [35] Shlaer, S. and Mellor, S. 1992. Object Lifecycles: Modeling the World in States. Englewood Cliffs, New Jersey: Yourdon Press. [36] Wirfs-Brock, R., Wilkerson, B. and Wiener, L. 1990. Designing Object-oriented Software. Englewood Cliffs, New Jersey: Prentice-Hall, p.61. [37] Rubin, K. and Goldberg, A. September 1992. Object Behavior Analysis. Communications of the ACM, vol.35(9), p.48. [38] Dreger, В. 1989. Function Point Analysis. Englewood Cliffs, NJ: Prentice-Hall, p.4. [39] Arango, G. May 1989. Domain Analysis: From Art Form to Engineering Discipline. SIGSOFT Engineering Notes vol.14(3), p. 153. [40] Moore, J. and Bailin, S. 1988. Position Paper on Domain Analysis. Laurel, MD: СТА, р. 2. [41] Jacobson, I., Christerson, M.,Jonsson, P. and Overgaard, G. 1992. Object-oriented Software Engineering. Workingham, England: Addison-Wesley, p.VIII. [42] Zahniseer, R. July/August 1990. Building Software In Groups. American Programmer, vol.3(7-8). [43] Goldstein, N. and Alger, J. 1992. Developing Object-oriented Software for the Macintosh. Reading, Massachusetts: Addison-Wesley, p.161. [44] Beck, K. and Cunningham, W. October 1989. A Laboratory for Teaching Object-oriented Thinking. SIGPLAN Notices vol. 24(10). [45] Abbott, R. November 1983. Program Design by Informal English Descriptions. Communications of the ACM vol.26(11). [46] Saeki, M., Horai, H. and Enomoto, H. May 1989. Software Development Process from Natural Language Specification. Proceedings of the 11th International Conference on Software Engineering. New York, NY: Computer Society Press of the IEEE. [47] McMenamin, S. and Palmer, J. 1984. Essential Systems Analysis. New York, NY: Yourdon Press, p.267. [48] Ward, P. and Mellor, S. 1985. Structured Development for Real-time Systems. Englewood Cliffs, NJ: Yourdon Press. [49] Seidewitz, E. and Stark, M. August 1986. General Object-oriented Software Development, Report SEL-86-002. Greenbelt, MD: NASA Goddard Space Flight Center, p.5-2. [50] Seidewitz, E. 1990. Private Communication. [51] Goldberg, A. 1984. Smalltalk-80: The Interactive Programming Environment. Reading, MA: Addison-Wesley, p.77. [52] Thomas, D. May/June 1989. In Search of an Object-oriented Development Process. Journal of Object-Oriented Programming vol.2(1), p.61. [53] Stroustrup, В. 1986. The C++ Programming Language. Reading, MA: Addison-Wesley, p.7. [54] Halbert, D. and O'Brien, P. September 1988. Using Types and Inheritance in Object-oriented Programming. IEEE Software vol.4(5), p.75. [55] Stefik, M. and Bobrow, D. Winter 1986. Object-oriented Programming: Themes and Variations, Al Magazine vol.6(4), p.60. [56] Stroustrup, В. 1991. The C++ Programming Language, Second Edition. Reading, Massachusetts: Addison-Wesley, p.377. [57] Stefik and Bobrow. Object-oriented Programming, p.58. [58] Lins, С. 1989. A First Look at Literate Programming. Structured Programming. [59] Gabriel, R. 1990. Private communication. [60] Coplien, J. 1992. Advanced C++ Programming Styles and Idioms. Reading, Massachusetts: Addison-Wesley. in HOOPLA: Hooray for Object-oriented Programming Languages. Everette, WA: Object-oriented Programming for Smalltalk Applications Developers Association vol.1(4), p.6. [62] Russo, V., Johnston, G. and Campbell, R. September 1988. Process Management and Exception Handling in Multiprocessor Operating Systems Using Object-oriented Design Techniques. SIGPLAN Notices vol.23(11), p.249. [63] Englemore, R. and Morgan, Т. 1988. Blackboard Systems. Wokingham, England: Addison-Wesley, p.v. [64] Coad, P. September 1992. Object-oriented Patterns. Communications of the ACM, vol.35(9).
Часть II. Метод
Petroski, H. 1985. То Engineer is Human. New York, NY: St Martin's Press, p.73.
Глава 5. Обозначения [1] Shear, D. December 8, 1988. CASE Shows Promise, but Confusion Still Exists. EDN vol.33(25), p.168. New York, NY: Oxford University Press. [3] Defense Science Board. Report of the Defense Science Board Task Force on Military Software. September 1987. Washington, D.C.: Office of the Undersecretary of Defense for Acquisition, p.8. [4] Kleyn, M. and Gingrich, P. September 1988. GraphTrace - Understanding Object-Oriented Systems Using Concurrently Animated Views. SIGPLAN Notices vol.23(11), p.192. [5] Weinberg, G. 1988. Rethinking Systems Analysis and Design. New York, NY: Dorset House, p.157. [6] Intel. 1981. iAPX432 Object Primer. Santa Clara. CA. [7] Rumbaugh, J., Blaha, M., Premerlani, W., Eddy, F. and Lorensen, W. 1991. Object-oriented Modeling and Design. Englewood Cliffs, New Jersey: Prentice-Hall. [8] Stroustrup, B. 1991. The C++ Programming Language. Second Edition. Reading, Massachusetts: Addison-Wesley Publishing Company. [9] Kiczales, G., Rivieres, J. and Bobrow, D. 1991. [10] Gamma, E., Helm, R., Johnson, R., Vlissides, J. 1993. A Catalog of Object-oriented Design Patterns. Cupertino, California: Taligent. [11] Harel, D. 1987. Statecharts: A Visual Formalism for Complex Systems. Science of Computer Programming vol.8. [12] Rumbaugh, Object-oriented Modeling and Design. [13] Bear, S., Alien, P., Coleman, D. and Hayes, F. Graphical Specification of Object-oriented Systems. Object-oriented Programming Systems, Languages, and Applications. Ottawa, Canada: OOPSLA'90. [14] Rumbaugh, Object-oriented Modeling and Design. [15] Jacobson, I., Christerson, M., Johnson, P. and Overgaard, G. 1992. Object-oriented Software Engineering. Workingham, England: Addison-Wesley Publishing Company.
Глава 6. Процесс [1] Brooks, F. 1975. The Mythical Man-Month. Reading, MA: Addison-Wesley, p.42. [2] Stroustrup, В. 1991. The C++ Programming Language, Second Edition. Reading, MA: Addison-Wesley. [3] Maccoby, M. December 1991. The Innovative Mind at Work. IEEE Spectrum, vol.28(12). [4] Lammers, S. 1986. Programmers at Work. Redmond, WA: Microsoft Press. [5] Druke, M. 1989. Private Communication. [6] Jones, C. September 1984. Reusability in Programming: A Survey of the State of the Art. IEEE transactions on Software Engineering, vol.SE-10(5). [7] Humphrey, W. 1989. Managing the Software Process. Reading, MA: Addison-Wesley, p.5. [8] Curtis, В. May 17, 1989. ...But You Have to Understand, This Isn't the Way We Develop Software at Our Company. MCC Technical Report Number STP-203-89. Austin, TX: Microelectronics and Computer Technology Corporation, p.x. [9] Parnas, D. and Clements, P. 1986. A Rational Design Process: How and Why to Fake It. IEEE Transactions on Software Engineering vol.SE-12(2). [10] Boehm, B. August 1986. A Spiral Model of Software Development and Enhancement. Software Engineering Notes vol.11(4), p.22. [11] Stroustrup, B. 1991. The C++ Programming Language, Second Edition. Reading, MA: Addison-Wesley, p.362. [12] Brownsword, L 1989. Private communication. [13] Stroustrup, p.373. [14] Vonk, R. 1990. Prototyping. Englewood Cliffs, NJ: Prentice-Hall, p.31. [15] Gilb, Т. 1988. Principles of Software Engineering Management. Reading, MA: Addison-Wesley, p.92. [16] Mellor, S., Hecht, A., Tryon, D. and Hywari, W. September 1988. Object-oriented Analysis: Theory and Practice, Course Notes, in Object-oriented Programming Systems, Languages, and Applications. San Diego, CA: OOPSLA'88, p.1.3. [17] Symons, С. 1988. Function Point Analysis: Difficulties and Improvements. IEEE Transactions on Software Engineering vol.14(1). [18] Dreger, B. 1989. Function Point Analysis. Englewood Cliffs, NJ: Prentice-Hall, p.5. [19] deChampeaux, D., Balzer, В., Bulman, D., Culver-Lozo, K., Jacobson, I., Mellor, S. The Object-oriented Software Development Process. Vancouver, Canada: OOPSLA'92. [20] Davis, A. 1990. Software Requirements: Analysis and Specification. Englewood Cliffs, NJ: Prentice-Hall. [21] Rubin, K. 1993. Private communication. [22] Jacobson, I., Christerson, M., Jonsson, P., and Overgaard, G. 1992. Object-oriented Software Engineering. Workingham, England: Addison-Wesley Publishing Company. [23] Rubin, K. and Goldberg, A. September 1992. Object Behavior Analysis. Communications of the ACM vol.35(9). [24] Andert, G. 1992. Private communication. [25] Page-Jones, M. 1988. The Practical Guide to Structured Systems Design. Englewood Cliffs, NJ: Yourdon Press, pp.261-265. [26] Stefik, M. and Bobrow, D. Winter 1986. Object-oriented Programming: Themes and Variations, AI Magazine vol.6(4), p.41. [27] Меуеr, В. 1988. Object-oriented Software Construction. New York, NY: Prentice-Hall, p.340. [28] Andert, G. 1993. Private communication. [29] Walsh, J. Preliminary Defect Data from the Iterative Development of a Large C++ Program. Vancouver. Canada: OOPSLA'92. [30] Chmura, L., Norcio, A. and Wicinski, T. July 1990. Evaluating Software Design Processes by Analyzing Change Date Over Time. IEEE Transactions on Software Engineering vol.16(7). [31] As quoted in Sommerville, I. 1989. Software Engineering. Third Edition. Wokingham, England: Addison-Wesley, p.546.
Глава 7. Практические вопросы [1] Dijkstra, E. May 1986. The Structure of the "THE" Multiprogramming System. Communications of the ACM vol.11(5), p.341. [2] Kishida, K., Teramoto, M., Torri, K. and Urano, Y. September 1988. Quality Assurance Technology in Japan. IEEE Software vol.4(5), p.13. [3] Hawryszkiewycz, 1.1984. Database Analysis and Design. Chicago, IL: Science Reserch Associates, p.115. [4] van Genuchten, M. June 1991. Why is Software Late? An Empirical Study of Reasons for Delay in Software Development. IEEE Transactions on Software Engineering vol.17(6), p.589. [5] Gilb, Т. 1988. Principles of Software Engineering Management. Reading, Massachusetts: Addison-Wesley Publishing Company, p.73. [6] As quoted in Zelkowitz, M. June 1978. Perspectives on Software Engineering. ACM Computing Surveys vol.10(2), p.204. [7] Showalter, J. 1989. Private communication. [8] Davis, A., Bersoff, E. and Comer, E. October 1988. A Strategy for Comparing Alternative Software Develpopment Lite Cycle Models. IEEE Transactions on Software Engineering vol.14(10), p.1456. [9] Goldberg, A. 1993. Private communication. [10] Schulmer, G. and McManus, J. 1992. Handbook of Software Quality Assurance, second Edition. New York, NY: Van Nostrand Reinhold, p.5. [11] Schulmeyer, p.7. [12] Schulmeyer, p.184. [13] Schulmeyer, p.169. [14] Walsh, J. Preliminary Defect Data from the Iterative Development of a Large C++ Program. Vancouver, Canada: OOPSLA'92. [15] Chidamber, S. and Kemerer, C. 1993. A Metrics Suite for Object-Oriented Design. Cambridg, Massachusetts: MIT Sloan School of Management. [16] Lang, K. and Peralmutter, B. November 1986. Oaklisp: an Object-oriented Scheme with First-Class Types. SIGPLAN Notices vol.21(11), p.34. [17] Meyrowitz, N. November 1986. Intermedia: The Architecture and Construction of an Object-oriented Hypermedia System and Applications Framework. SIGPLAN Notices, vol.21(11), p.200. [18] Kempf, R. October 1987. Teaching Object-oriented Programming With the KEE System. SIGPLAN Notices, vol.22( 12), p.11. [19] Schmucker, K. 1986. Object-oriented Programming for the Macintosh. Hasbrouk Heights, NJ: Hayden, p.11. [20] Taylor, D. 1992. Object-oriented Information Systems. New York, New York John Wiley and Sons. [21] Pinson, L. and Wiener, R. 1990. Applications of Object-oriented Programming. Reading, Massachusetts: Addison-Wesley Publishing Company. [22] Simonian, R. and Crone, M. November/December 1988. InnovAda: True Object-Oriented Programming in Ada. Journal of Object-Oriented Programming vol.1(4), p.19. [23] Pascoe, G. August 1986. Elements of Object-oriented Programming. Byte vol.11(8), p.144. [24] Russo, V. and Kaplan, S. 1988. А C++ Interpreter for Scheme. Proceedings of USENIX C++ Conference. Berkeley, CA: USENIX Association, p.106.
Часть III. Примеры приложений
Minsky, M. April 1970. Form and Content in Computer Science. Journal of the Association for Computing Machinery vol.17(2), p.197.
Глава 9. Среда разработки: библиотека базовых классов [1] C++ Booch Components Class Catalog. 1992. Santa Clara, CA: Rational. [2] Knuth, D. 1973. The Art of Computer Programming, Vol.1-3. Reading, MA: Addison-Wesley. [3] Aho, A., Hopcroft, J. and Ullman, J. 1974. The Design and Analysis of Computer Programs. Reading, MA: Addison-Wesley. [4] Kernighan, B. and Plauger, P. 1981. Software Tools in Pascal. Reading, MA: Addison-Wesley. [5] Sedgewick, R. 1983. Algorithms. Reading, MA: Addison-Wesley. [6] Stubbs, D. and Webre, N. 1985. Data Structures with Abstract Data Types and Pascal. CA: Brooks/Cole. [7] Tenenbaum, A. and Augenstein, M. 1981. Data Structures Using Pascal. Englewood Cliffs, NJ: Prentice-Hall. [8] Wirth, N. 1986. Algorithms and Data Structures, Second Edition. Englewood Cliffs, NJ: Prentice-Hall. [9] Wirfs-Brock, R. October 1991. Object-Oriented Frameworks. American Programmer vol.4(10), p.27. [10] Stroustrup, Bjarne. 1991. The C++ Programming Language, Second Edition. Reading, Massachusetts: Addison-Wesley, p.429. [11] Coggins, J. September 1990. Design and Management of C++ Libraries. Chapel Hill, North Carolina, p.1. [12] Ellis, M. and Stroustrup, B. 1990. The Annotated C++ Reference Manual. Reading, Massachusetts: Addison-Wesley, p.155. [13] Ellis and Stroustrup, p.297. [14] Ellis and Stroustrup, p.90. [15] Wirfs-Brock, 1993. Private communication. [16] Jacobson, I., Christerson, M.,Jonsson, P. and Overgaard, G. 1992. Object-oriented Software Engineering. Workingham, England: Addison-Wesley Publishing Company, p.184.
Глава 10. Архитектура клиент-сервер: складской учет [1] Mirnno, P. April 1993. Client-Server Computing. American Programmer, Arlington MA: Cutter Information Corporation, p.19. [2] Mimno, p.21. [3] Berson, A. 1992. Client/Server Architecture. New York, NY: Me Graw-Hill, p.34. [4] Berson, p.37. [5] Berson, p.12. [6] Berson, p.13. [7] Date, С. 1981. An Introduction to Database Systems. Vol.1. Reading, Massachusetts: Addison-Wesley, p.4. [8] Date. An Introduction, p.10. [9] Hawryszkiewycz, 1.1984. Database Analysis and Design. Chicago, IL: Science Research Associates, p.425. [10] Wiorkowski, G. and Kull, D. 1988. DB2 Design and Development Guide. Reading, MA: Addison-Wesley, p.29. [11] Date. An Introduction, p.63. [12] Wiorkowski and Kull. DB2 Design, p.2. [13] Date. An Introduction, p.238. [14] Wiorkowski and Kull. DB2 Design, p.15. [15] Date, С. 1986. Relational Database: Selected Writings. Reading, MA: Addison-Wesley, p.461. [16] Rumbaugh, J. July/August 1992. Onward to OOPSLA. Journal of Object-Oriented Programming, vol.5(4). [17] Rumbaugh, J., Blaha, M., Premerlani, W., Eddy, F. and Lorensen, W. 1991. Object-oriented Modeling and Design. Englewood Cliffs, New Jersey: Prentice-Hall, p.386. [18] Ibid. [19] Date. An Introduction, p.237. [20] Berson, p.39. [21] Berson, p.441. [22] Date, С. 1987. The Guide to the SQL Standard. Reading, MA: Addison-Wesley, p.32. [23] Berson, p.244. [24] Berson, p.61. [25] Ibid.
Глава 11. Искусственный интеллект: криптоанализ [1] Erman, L., Lark, J. and Hayes-Roth, F. December 1998. ABE: An Environment for Engineering Intelligent Systems. IEEE Transactions on Software Engineering vol.14(12), p.1758. [2] Shaw, M. 1991. Heterogeneous Design Idioms for Software Architecture. Pittsburgh, Pennsylvania: Carnegie Mellon University. [3] Meyer, C. and Matyas. 1982. Cryptography. New York, NY: John Wiley and Sons, p.1. [4] Nii, P. Summer 1986. Blackboard Systems: The Blackboard Model of Problem Solving and the Evolution of Blackboard Architectures. AI Magazine vol.7(2), p.46. [5] Englemore, R. and Morgan, T. 1988. Blackboard Systems. Wokingham, England: Addison-Wesley, p.16. [6] Ibid, p.19. [7] Ibid, p.6. [8] Ibid, p.12. [9] Nii. Blackboard Systems, p.43. [10] Englemore and Morgan. Blackboard Systems, p. 11.
Глава 12. Управление: контроль за движением поездов [1] Murphy, E. December 1988. All Aboard for Solid State. IEEE Spectrum vol.25(13), p.42. [2] Rockwell Advanced Railroad Electronic Systems. 1989. Cedar Rapids, IA: Rockwell International. [3] Tanenbaum, A. 1981. Computer Networks. Englewood Cliffs, NJ: Prentice-Hall.
Послесловие
Lefrancois, G. 1977. Of Children: An Introduction to Child Development, Second Edition. Belmont, CA:Wadsworth, p.371.
Приложение: Объектно-ориентированные языки программирования [1] Wulf, W. January 1980. Trends in the Design and Implementation of Languages. IEEE Computer vol.13(1), p.15. [2] Birtwistle, G., Dahl, O-J., Myhrhaug, В. and Nygard, K. 1979. Simula begin. Lund, Sweden: Studentlitteratur. [3] Schmucker, K. 1986. Object-oriented Programming for the Macintosh. Hasbrouk Heights, NJ: Hayden, p.346. [4] LaLonde, W. and Pugh, J. 1990. Inside Smalltalk, Volumes 1 and 2. Englewood Cliffs, New Jersey: Prentice-Hall. [5] Ingalls, D. The Smalltalk-76 Programming System Design and Implementation. Proceedings of the Fifth Annual ACM Symposium on Principles of Programming Languages, ACM, p.9. [6] Borning, A. and Ingalls, D. 1982. Multiple Inheritance in Smalltalk-80. Proceedings of the National Conference on Artificial Intelligence. Meno Park, CA: AAAI. [7] Goldberg, A. and Robson, D. 1989. Smalltalk-80: The Language. Reading, MA: Addison-Wesley. [8] Goldberg, A. 1984. Smalltalk-80: The Interactive Programming Environment. Reading, MA: Addison-Wesley. [9] Krasner, G. 1983. Smalltalk-80: Bits of History. Words of Advice. Reading, MA: Addison-Wesley. [10] LaLonde, 1990. [11] Schmucker, K. August 1986. Object-Oriented Languages for the Macintosh. Byte vol.11 (8), р. 179. [12] Macintosh Programmer's Workshop Pascal 3.0 Reference. 1989. Cupertino, CA: Apple Computer. [13] Stroustrup, B. 1986. The C++ Programming Language, Second Edition. Reading, MA: Addison-Wesley, p.4. [14] Gorlen, K. 1989. An Introduction to C++, in UNIX System VAT&T C++ Language System, Release 2.0 Selected Readings. Murray Hill, NJ: AT&T Bell Laboratories, p.2-1. [15] Ellis, M. and Stroustrup, B. 1990. The Annotated C++ Reference Manual. Reading, Massachusetts: Addison-Wesley Publishing Company. [16] Stroustrup, B. 1991. The C++ Programming Language, Second Edition. Reading, MA: Addison-Wesley. [17] Keene, S. 1989. Object-oriented Programming in Common Lisp. Reading, MA: Addison-Wesley, p.215. [18] Bobrow, D. 1990. Private communication. [19] Bobrow, D., DeMichiel, L., Gabriel, R., Keene, S., Kiczales, G. and Moon, D. September 1988. Common Lisp Object System Specification X3J13 Document 88-002R. SIGPLAN Notices vol.23. [20] Reference Manual for the Ada Programming Language. February 1983. Washington, D.C.: Department of Defence, Ada Joint Program Office, p.1-3. [21] Ibid. [22] Meyer, B. 1988. Object-oriented Software Construction. New York, NY: Prentice-Hall. [23] Saunders, J. March/April 1989. A Survey of Object-oriented Programming Languages. Journal of Object-oriented Programming vol.1(6). [24] Ibid, p.6.
|