Bibliography

1. Albrecht T. Pitfalls of Object Oriented Programming. Proceedings of Game Connect: Asia Pacific (GCAP) 2009 2009; Melbourne, Australia, 2009.

2. Alexander T, ed. Massively Multiplayer Game Development. Charles River Media 2003; ISBN 1584502436.

3. Alexandrescu A. Modern C++ Design: Generic Programming and Design Patterns Applied Addison-Wesley Professional 2001; ISBN 0201704315.

4. Arnold K. Programmers Are People, Too. ACM Queue. 2005;3 July 6, 2005.

5. Astels D. Test-Driven Development: A Practical Guide second ed. Prentice Hall 2003; ISBN 0131016490.

6. Astrachan OL. A Computer Science Tapestry: Exploring Computer Science with C++ second ed. McGraw-Hill 2000; ISBN 0072465360.

7. Bass L, Clements P, Kazman R. Software Architecture in Practice second ed. Addison-Wesley Professional 2003; ISBN 0321154959.

8. Beck K. Test Driven Development: By Example Addison-Wesley Professional 2002; ISBN 0321146530.

9. Beck K. Implementation Patterns Addison-Wesley Professional 2007; ISBN 0321413091.

10. Blanchette J. The Little Manual of API Design, Trolltech 2008; June 19, 2008. http://www.chaos.troll.no/~shausman/api-design/api-design.pdf; 2008.

11. Bloch J. How to Design a Good API and Why it Matters, JavaPolis 2005 Antwerp, Belgium 2005; December 12–16.

12. Bloch J. Effective Java second ed. Prentice Hall 2008; ISBN 0321356683.

13. Booch G, Maksimchuk RA, Engle MW, Young BJ, Conallen J, Houston KA. Object Oriented Analysis and Design with Applications third ed. Addison-Wesley Professional 2007; ISBN 020189551X.

14. Booch G, Rumbaugh J, Jacobson I. Unified Modeling Language User Guide second ed. Addison-Wesley Professional 2005; ISBN 0321267974.

15. Bourque P, Dupuis R, Abran A, Moore JW, Tripp L, eds. The Guide to the Software Engineering Body of Knowledge. IEEE Press 2004; 2004 Version. ISBN 0769523307.

16. Brooks F. The Mythical Man-Month: Essays on Software Engineering second ed. Addison-Wesley Professional 1995; ISBN 0201835959.

17. Cline MP, Lomow G, Girou M. C++ FAQs second ed. Addison-Wesley Professional 1998; ISBN 0201309831.

18. Cockburn A. Writing Effective Use Cases Addison-Wesley Professional 2000; ISBN 0201702258.

19. Cohn M. User Stories Applied: For Agile Software Development Addison-Wesley Professional 2004; ISBN 0321205685.

20. Coplien JO. Advanced C++ Programming Styles and Idioms Addison-Wesley Professional 1991; ISBN 0201548550.

21. Coplien JO. Curiously Recurring Template Patterns. C++ Report. 1995;7(2):24–27 ISBN 10406042.

22. Cunningham W. In: The WyCash Portfolio Management System, OOPSLA ’92 Experience Report, March 26. 1992;29–30. Vancouver, Canada.

23. DeLoura M, ed. Game Programming Gems 2. Charles River Media 2001; ISBN 1584500549.

24. Dewhurst SC. C++ Gotchas: Avoiding Common Problems in Coding and Design Addison-Wesley Professional 2002; ISBN 0321125185.

25. Evans E. Domain-Driven Design: Tackling Complexity in the Heart of Software Addison-Wesley Professional 2003; ISBN 0321125215.

26. Faber R. Architects as Service Providers. IEEE Software. 2010;27(2):33–40 March/April 2010.

27. Feathers MC. Working Effectively with Legacy Code Prentice Hall 2004; ISBN 0131177052.

28. Foote B, Yoder J. In: Big Ball of Mud. 1997; Monticello, Illinois. http://www.laputan.org/mud/; 1997.

29. Fowler M, Beck K, Brant J, Opdyke W, Roberts D. Refactoring: Improving the Design of Existing Code Addison-Wesley Professional 1999; ISBN 0201485672.

30. Friedman TL. The World Is Flat 3.0: A Brief History of the Twenty-First Century Picador 2007; ISBN 0312425074.

31. Gamma E, Helm R, Johnson R, Vlissides JM. Design Patterns: Elements of Reusable Object-Oriented Software Addison-Wesley Professional 1994; ISBN 0201633612.

32. Gamma E, Helm R, Johnson R, O’Brien L. Design Patterns 15 Years Later: An Interview with Erich Gamma, Richard Helm, and Ralph Johnson. InformIT 2009; October 22 http://www.informit.com/articles/article.aspx?p=1404056; 2009.

33. Headington MR. Removing Implementation Details from C++ Class Declarations. In: Proceedings of the 26th ACM SIGCSE Symposium on Computer Science Education. 1995;24–28. Nashville, Tennessee.

34. Hennessy JL, Patterson DA. Computer Architecture: A Quantitative Approach fourth ed. Morgan Kaufmann 2006; ISBN 0123704901.

35. Henning M. API Design Matters. Commun ACM. 2009;52(5):46–56.

36. Hoare CAR. An Axiomatic Basis for Computer Programming. Commun ACM. 1969;12(10):576–580 583. October 1969.

37. Hoare CAR. Assertions: A Personal Perspective. IEEE Ann Hist Comput. 2003;25(2):14–25 April/June 2003.

38. Hofmeister C, Nord R, Soni D. Applied Software Architecture Addison-Wesley Professional 2009; ISBN 0321643348.

39. Hunt A, Thomas D. The Pragmatic Programmer: From Journeyman to Master Addison-Wesley Professional 1999; ISBN 020161622.

40. ISO/IEC 14882:1998. Programming Languages—C++ Geneva, Switzerland: International Organization for Standardization; 1998; (Revised by ISO/IEC 14882:2003).

41. ISO/IEC 14882:2003. Programming Languages—C++ Geneva, Switzerland: International Organization for Standardization; 2003.

42. ISO/IEC TR 19768:2007. Information Technology—Programming Languages—Technical Report on C++ Library Extensions Geneva, Switzerland: International Organization for Standardization; 2007.

43. Jacobson I. Object-Oriented Software Engineering: A Use Case Driven Approach Addison-Wesley Professional 1992; ISBN 0201544350.

44. Jeong S, Xie Y, Beaton J, et al. In: Improving Documentation for eSOA APIs through User Studies, Second International Symposium on End User Development (IS-EUD’2009), March 2–4, 2009. Siegen, Germany: Springer-Verlag; 2009;86–105.

45. Josuttis NM. The C++ Standard Library: A Tutorial and Reference Addison-Wesley Professional 1999; ISBN 0201379260.

46. Knuth D. Structured Programming with Go to Statements. ACM Comput Surv. 1974;6(4):268 December 1974.

47. Korson TD, Vaishnavi VK. In: An Empirical Study of the Effects of Modularity on Program Modifiability. 1986;168–186. Washington, DC.

48. Lakos J. Large-Scale C++ Software Design Addison-Wesley Professional 1996; ISBN 0201633620.

49. Leclerc YG, Lau SQ. Technical Note 540, TerraVision: A Terrain Visualization System Menlo Park, CA: Artificial Intelligence Center, SRI International; 1994; April 1994.

50. Lieberherr KJ, Holland I. Assuring Good Style for Object-Oriented Programs. IEEE Software. 1989;6(5):38–48 September 1989.

51. Liskov B. In: Data abstraction and hierarchy, OOPSLA ’87, keynote address. Orlando, Florida 1987;17–34. October 4–8.

52. McConnell S. Code Complete: A Practical Handbook of Software Construction second ed. Microsoft Press 2004; ISBN 0735619670.

53. Mackinnon T, Freeman S, Craig P. Endo-Testing: Unit Testing with Mock Objects. In: Extreme Programming Examined. Addison Wesley Longman 2001;287–301. (Chapter 17).

54. Martin RC. Design Principles and Design Patterns. Object Mentor article 2000; In: http://www.objectmentor.com/resources/articles/Principles_and_Patterns.pdf; 2000.

55. Martin RC. Agile Software Development: Principles, Patterns, and Practices Prentice Hall 2002; ISBN 0135974445.

56. Medvidovic N, Taylor RN. A Classification and Comparison Framework for Software Architecture Description Languages. IEEE Transaction on Software Engineering. 2000;26(1):70–93.

57. Mellor SJ, Balcer MJ. Executable UML: A Foundation for Model-Driven Architecture Addison-Wesley Professional 2002; ISBN 0201748045.

58. Meszaros G. Agile Regression Testing using Record & Playback. In: Proceedings of OOPSLA ’03. 2003;353–360. October 26–30, Anaheim, CA.

59. Meyer B. Programming as Contracting Goleta, CA: Interactive Software Engineering; 1987; Report TR-EI-12/CO.

60. Meyer B. Object-Oriented Software Construction second ed. Prentice Hall 1997; ISBN 0136291554.

61. Meyers S. More Effective C++: 35 New Ways to Improve Your Programs and Designs Addison-Wesley Professional 1998; ISBN 020163371X.

62. Meyers S. Dr. Dobb’s Journal How Non-Member Functions Improve Encapsulation 2000; February 1, 2000, http://www.drdobbs.com/; 2000.

63. Meyers S. The Most Important Design Guideline?. IEEE Software. 2004;21 July/August 2004.

64. Meyers S. Effective C++: 55 Specific Ways to Improve Your Programs and Designs third ed. Addison-Wesley Professional 2005; ISBN 0321334876.

65. Meyers S, Alexandrescu A. Dr. Dobb’s Journal C++ and the Perils of Double-Checked Locking 2004; July 2004, http://www.drdobbs.com/; 2004.

66. Miller GA. The Magical Number Seven, Plus or Minus Two: Some Limits on Our Capacity for Processing Information. Psychol Rev. 1956;63(2):81–97.

67. Mitchell ML, Samuel A, Oldham J. Advanced Linux Programming Sams 2001; ISBN 0735710430.

68. Neighbors JM. Software Construction Using Components Irvine: Department of Information and Computer Science, University of California; 1980; Ph.D. Dissertation. Technical Report UCI-ICS-TR-160.

69. Parnas DL. On the Criteria to be Used in Decomposing Systems into Modules. Commun ACM. 1972;15(12):1053–1058 December 1972.

70. Parnas DL. Designing Software for Ease of Extension and Contraction. IEEE Transactions on Software Engineering. 1979;5(2):128–138 March 1979.

71. Parnas DL. Software Aging. In: Proceedings of the 16th International Conference on Software Engineering. Italy: Sorrento; 1994;279–287.

72. Pierce BC. Types and Programming Languages The MIT Press 2002; ISBN 0262162091.

73. Pugh K. Interface Oriented Design Pragmatic Bookshelf 2006; ISBN 0976694050.

74. Rainsberger JB. Use Your Singletons Wisely IBM Developer Works 2001; July 1 2001, http://www.ibm.com/developerworks/webservices/library/co-single.html. 2001.

75. Raymond ES. The Art of UNIX Programming Addison-Wesley Professional 2003; ISBN 0131429019.

76. Robillard MP. What Makes APIs Hard to Learn? Answers from Developers. IEEE Software. 2009;26(6):27–34 November 2009.

77. Rooney G. Preserving Backward Compatibility O’Reilly OnLamp.com 2005; In: http://www.onlamp.com/pub/a/onlamp/2005/02/17/backwardscompatibility.html; 2005.

78. Shlaer S, Mellor SJ. Object-Oriented Systems Analysis: Modeling the World in Data Prentice Hall 1988; ISBN 013629023X.

79. Shreiner D, ed. OpenGL Reference Manual: The Official Reference Document to OpenGL, Version 1.4. Addison-Wesley Professional 2004; ISBN 032117383X.

80. Snyder A. Encapsulation and Inheritance in Object-Oriented Programming Languages. In: Proceedings of OOPSLA ’86. 1986;38–45. Printed as SIGPLAN Notices, 21(11).

81. Spinellis D. Code Documentation. IEEE Software. 2010;27(4):18–19 July/August 2010.

82. Stevens W, Myers G, Constantine L. Structured Design. IBM Systems Journal. 1974;13(2):115–139.

83. Stroustrup B. The C++ Programming Language: Special Edition third ed. Addison-Wesley Professional 2000; ISBN 0201700735.

84. Stylos J, Faulring A, Yang Z, Myers BA. Improving API Documentation Using API Usage Information. In: Proceedings of IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC). Oregon: Corvallis; 2009;119–126. September 20–24.

85. Stylos J, Graf B, Busse D, Ziegler C, Ehret R, Karstens J. A Case Study of API Redesign for Improved Usability. In: IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC). Germany: Herrsching am Ammersee; 2008;189–192. September 15–19.

86. Stylos J, Myers B. The Implications of Method Placement on API Learnability. Atlanta, GA, In: Proceedings of the 16th ACM SIGSOFT Symposium on Foundations of Software Engineering (FSE). 2008;105–112. November 9–14.

87. Sutter H. Exceptional C++: 47 Engineering Puzzles, Programming Problems, and Solutions Addison-Wesley Professional 1999; ISBN 0201615622.

88. Sutter H. Virtuality C/C++ Users Journal. 2001;19 September 2001.

89. Sutter H, Alexandrescu A. C++ Coding Standards: 101 Rules, Guidelines, and Best Practices Addison-Wesley Professional 2004; ISBN 0321113586.

90. Tulach J. Practical API Design: Confessions of a Java Framework Architect Apress 2008; ISBN 1430209739.

91. Vandevoorde D, Josuttis NM. C++ Templates: The Complete Guide Addison-Wesley Professional 2002; ISBN 0201734842.

92. Wiegers KW. Software Requirements second ed. Microsoft Press 2003; ISBN 0735618798.

93. Wolf M. Why Globalization Works Yale University Press 2004; ISBN 0300102526.

94. Yee HY, Newman A. A Perceptual Metric for Production Testing Los Angeles, CA: ACM SIGGRAPH 2004 Sketches; 2004; August 8–12.

95. Zhong H, Zhang L, Xie T, Mei H. Inferring resource specifications from natural language API documentation. Auckland, New Zealand, In: 2009;307–318. November 16–20.