Key Software Engineering Paradigms and Modeling Methods

  • Tetsuo TamaiEmail author


In the history of software engineering, we can discern some strong ideas and movements to promote them that lead the way of thinking how to do research and practice of software engineering for a certain period of time or still retain their impact now. They can be called software paradigms, following Thomas S. Kuhn’s terminology. Paradigms are accompanied by methods that embody their core technologies. We particularly focus on modeling methods in the following tour of software paradigms and methods.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. Aoyama, M., Miyamoto, K., Murakami, N., Nagano, H., Oki, Y.: Design specification in Japan: tree-structured charts. IEEE Softw. 6(2), 31–37 (1983)CrossRefGoogle Scholar
  2. Balzer, R.: A 15 year perspective on automatic programming. IEEE Trans. Softw. Eng. 11(11), 1257–1268 (1985)CrossRefGoogle Scholar
  3. Balzer, R., Cheatham, T., Green, K.: Software technology in the 1990’s: using a new paradigm. Computer 16(11), 39–45 (1983)CrossRefGoogle Scholar
  4. Beck, K.: eXtreme Programming eXplained. Addison-Wesley, Boston (2000)Google Scholar
  5. Beck, K., et al.: Manifesto for agile software development (2001).
  6. Bézivin, J.: Model driven engineering: an emerging technical space. In: Lammel, R., Saraiva, J., Visser, J. (eds.) GTTSE 2005. Lecture Notes in Computer Science, vol. 4143, pp. 36–64. Springer, Berlin (2006)Google Scholar
  7. Bobrow, D.G., Winograd, T.: An overview of KRL, a knowledge representation language. Cogn. Sci. 1(1), 3–46 (1977)CrossRefGoogle Scholar
  8. Böhm, C., Jacopini, G.: Flow diagrams, turing machines and languages with only two formation rules. Commun. ACM 9(5), 366–371 (1966)zbMATHCrossRefGoogle Scholar
  9. Booch, G.: Object-Oriented Analysis and Design with Applications, 3rd edn. Benjamin/Cummings, San Francisco (2007)zbMATHGoogle Scholar
  10. Brachman, R.J., Schmolze, J.G.: An overview of the KL-one knowledge representation system. Cogn. Sci. 9(2), 171–216 (1985)CrossRefGoogle Scholar
  11. Chen, P.P.S.: The entity-relationship model? Toward a unified view of data. ACM Trans. Database Syst. 1(1), 9–36 (1976)CrossRefGoogle Scholar
  12. Clements, P., Northrop, L.: Software Product Lines: Practices and Patterns. Addison-Wesley Professional, Boston (2001)Google Scholar
  13. Coad, P., Yourdon, E.: Object-Oriented Analysis. Prentice Hall, Upper Saddle River (1991)Google Scholar
  14. Dahl, O.J., Dijkstra, E.W., Hoare, C.A.R. (eds.): Structured Programming. Academic, London (1972)zbMATHGoogle Scholar
  15. DeMarco, T.: Structured Analysis and System Specification. Prentice Hall, Upper Saddle River (1978)Google Scholar
  16. Dijkstra, E.W.: Letters to the editor: go to statement considered harmful. Commun. ACM 11(3), 147–148 (1968). CrossRefGoogle Scholar
  17. D’Souza, D.E., Wills, A.C.: Objects, Components, and Frameworks with UML: The Catalysis Approach. Addison-Wesley, Boston (1999)Google Scholar
  18. Floyd, R.W.: The paradigms of programming. Commun. ACM 22(8), 455–460 (1979)CrossRefGoogle Scholar
  19. Floyd, C.: A paradigm change in software engineering. ACM SIGSOFT Softw. Eng. Notes 13(2), 25–38 (1988)CrossRefGoogle Scholar
  20. Futamura, Y., Kawai, T., Horikoshi, H., Tsutsumi, M.: Development of computer programs by problem analysis diagram(pad). In: Proceedings of the 5th International Conference on Software Engineering, pp. 325–332 (1981)Google Scholar
  21. Goguen, J.A., Thatcher, J.W., Wagner, E.G., Wright, J.B.: Initial algebra semantics and continuous algebras. J. ACM 24(1), 68–95 (1977)MathSciNetzbMATHCrossRefGoogle Scholar
  22. Goldberg, A., Robson, D.: Smalltalk-80: The Language and Its Implementation. Addison-Wesley Longman Publishing Co., Inc., Boston (1983)zbMATHGoogle Scholar
  23. Guttag, J.V., Horning, J.J.: The algebraic specification of abstract data types. Acta Inform. 10(1), 27–52 (1978)MathSciNetzbMATHCrossRefGoogle Scholar
  24. Harel, D.: Statecharts: a visual formalism for complex systems. Sci. Comput. Program. 8, 231–274 (1987)MathSciNetzbMATHCrossRefGoogle Scholar
  25. Harel, D., Politi, M.: Modeling Reactive Systems with Statecharts. McGraw-Hill, New York (1998)Google Scholar
  26. Hecht, M.S.: Flow Analysis of Computer Programs. Elsevier, North Holland (1977)zbMATHGoogle Scholar
  27. Hewitt, C.: Viewing control structures as patterns of passing messages. Artif. Intell. 8(3), 323–364 (1977)CrossRefGoogle Scholar
  28. Hey, T., Tansley, S., Tolle, K.: The Fourth Paradigm: Data-Intensive Scientific Discovery. Microsoft Research, Cambridge (2009)Google Scholar
  29. Jackson, M.A.: Principles of Program Design. Academic, Cambridge (1975)Google Scholar
  30. Jackson, M.A.: System Development. Prentice Hall International, Upper Saddle River (1983)Google Scholar
  31. Jackson, M.: Software Requirements & Specifications: A Lexicon of Practice, Principles and Prejudice. Addison-Wesley, Boston (1995)Google Scholar
  32. Jacobson, I., Christerson, M., Jonsson, P., Övergaard, G.: Object-Oriented Software Engineering: A Use Case Driven Approach. ACM Press, New York (1992)zbMATHGoogle Scholar
  33. Jouault, F., Bézivin, J.: KM3: a DSL for metamodel specification. In: Gorrieri, R., Wehrheim, H. (eds.) FMOODS 2006. Lecture Notes in Computer Science, vol. 4037, pp. 171–185. Springer, Berlin (2006)Google Scholar
  34. Kang, K.C., Cohen, S.G., Hess, J.A., Novak, W.E., Peterson, A.S.: Feature-Oriented Domain Analysis (FODA) feasibility study. Technical report, DTIC Document (1990)Google Scholar
  35. Kent, S.: Model driven engineering. In: Butler, M., Petre, L., Sere, K. (eds.) IFM 2002. Lecture Notes in Computer Science, vol. 2335, pp. 286–298. Springer, Berlin (2002)Google Scholar
  36. Kuhn, T.S.: The Structure of Scientific Revolutions. University of Chicago Press, 50th Anniversary Edition 2012 (1962)Google Scholar
  37. Kurtev, I., Bezivin, J., Jouault, F., Valduriez, P.: Model-based DSL frameworks. In: OOPSLA’06, pp. 602–615 (2006)Google Scholar
  38. Kurzweil, R.: The Singularity Is Near: When Humans Transcend Biology. Viking Books, New York (2005)Google Scholar
  39. Lampson, B.W., Horning, J.J., London, R.L., Mitchell, J.G., Popek, G.J.: Report on the programming language euclid. ACM SIGPLAN Not. 12(2), 1–79 (1977)zbMATHCrossRefGoogle Scholar
  40. Lightsey, B.: Systems engineering fundamentals. Technical report, DTIC Document (2001)Google Scholar
  41. Liskov, B., Snyder, A., Atkinson, R., Schaffert, C.: Abstraction mechanisms in CLU. Commun. ACM 20(8), 564–576 (1977). zbMATHCrossRefGoogle Scholar
  42. Magee, J., Kramer, J.: Concurrency – State Models & Java Programs. Wiley, Hoboken (1999)zbMATHGoogle Scholar
  43. Mills, H.D.: Software development. IEEE Trans. Softw. Eng. 4, 265–273 (1976)CrossRefGoogle Scholar
  44. Mills, H., Dyer, M., Linger, R.: Cleanroom software engineering. IEEE Softw. 4, 19–25 (1987)CrossRefGoogle Scholar
  45. Minsky, M.: A framework for representing knowledge. MIT-AI Laboratory Memo 306 (1974)Google Scholar
  46. Myers, G.J., et al.: Composite/Structured Design. Van Nostrand Reinhold, New York (1978)Google Scholar
  47. Nassi, I., Shneiderman, B.: Flowchart techniques for structured programming. ACM SIGPLAN Not. 8(8), 12–26 (1973)CrossRefGoogle Scholar
  48. Naur, P., Randell, B. (eds.): Software Engineering—Report on a Conference Sponsored by the NATO Science Committee, Garimisch (1968).
  49. OMG: MDA guide version 1.0.1 (2003)Google Scholar
  50. OMG: Meta object facility (MOF) core specification version 2.0 (2006)Google Scholar
  51. OMG: OMG Unified Modeling LanguageTM (OMG UML), Infrastructure Version 2.5.1 (2017).
  52. Osterweil, L.: Software processes are software too. In: 9th International Conference on Software Engineering, Monterey, pp. 2–13 (1987)Google Scholar
  53. Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Commun. ACM 15(12), 1053–1058 (1972)CrossRefGoogle Scholar
  54. Parnas, D.L.: On the design and development of program families. IEEE Trans. Softw. Eng. 1, 1–9 (1976)zbMATHCrossRefGoogle Scholar
  55. Pressman, R.: Software Engineering: A Practitioner’s Approach, 3rd edn. McGraw-Hill, New York (1992)zbMATHGoogle Scholar
  56. Rajlich, V.: Changing the paradigm of software engineering. Commun. ACM 49(8), 67–70 (2006)CrossRefGoogle Scholar
  57. Ross, D.T., Schoman, K.E. Jr.: Structured analysis for requirements definition. IEEE Trans. Softw. Eng. 1, 6–15 (1977)CrossRefGoogle Scholar
  58. Rumbaugh, J., Blaha, M., Premerlani, W., Eddy, F., Lonrensen, W.: Object-Oriented Modeling and Design. Prentice-Hall, Upper Saddle River (1991)zbMATHGoogle Scholar
  59. Schmidt, D.A.: Data flow analysis is model checking of abstract interpretations. In: Proceedings of the 25th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL ’98), pp. 38–48. IEEE CS Press, San Diego (1998)Google Scholar
  60. Schmidt, D.C.: Model-driven engineering. IEEE Comput. 39, 25–31 (2006)CrossRefGoogle Scholar
  61. Seidewitz, E.: What models mean. IEEE Softw. 20, 26–32 (2003)CrossRefGoogle Scholar
  62. Shaw, M., Garlan, D.: Software Architecture: Perspectives on an Emerging Discipline. Prentice-Hall, Upper Saddle River (1996)zbMATHGoogle Scholar
  63. Sutherland, J., Sutherland, J.: Scrum: The Art of Doing Twice the Work in Half the Time. Crown Business, New York (2014)Google Scholar
  64. Tamai, T.: A class of fixed-point problems on graphs and iterative solution algorithms. In: Pnueli, A., Lin, H. (eds.) Logic and Software Engineering, pp. 102–121. World Scientific, Singapore (1996a)Google Scholar
  65. Tamai, T.: How modeling methods affect the process of architectural design decisions: a comparative study. In: 8th International Workshop on Software Specification and Design (IWSSD’96), Paderborn, pp. 125–134 (1996b)Google Scholar
  66. Team, C.P.: CMMI for Acquisition Version 1.3. (2010)Google Scholar
  67. Wirfs-Brock, R., Wilkerson, B., Wiener, L.: Designing Object-Oriented Software. Prentice Hall, Englewood Cliffs (1990)Google Scholar
  68. Wulf, W.A., London, R.L., Shaw, M.: An introduction to the construction and verification of alphard programs. IEEE Trans. Softw. Eng. 2(4), 253–265 (1976)zbMATHCrossRefGoogle Scholar
  69. Xiong, Y., Liu, D., Hu, Z., Zhaoand, H., Takeichi, M., Mei, H.: Towards automatic model synchronization from model transformations. In: ASE ’07, pp. 164–173 (2007)Google Scholar
  70. Xiong, Y., Song, H., Hu, Z., Takeichi, M.: Supporting parallel updates with bidirectional model transformations. In: Paige, R. (ed.) ICMT 2009. Lecture Notes in Computer Science, vol. 5563, pp. 213–228. Springer, Berlin (2009)Google Scholar
  71. Yourdon, E., Constantine, L.L.: Structured Design: Fundamentals of a Discipline of Computer Program and Systems Design. Prentice-Hall, Inc., Upper Saddle River (1979)zbMATHGoogle Scholar
  72. Zambonelli, F., Parunak, H.V.D.: Towards a paradigm change in computer science and software engineering: a synthesis. Knowl. Eng. Rev. 18(4), 329–342 (2003)CrossRefGoogle Scholar

Copyright information

© Springer Nature Switzerland AG 2019

Authors and Affiliations

  1. 1.The University of TokyoTokyoJapan

Personalised recommendations