Skip to main content

Key Software Engineering Paradigms and Modeling Methods

  • Chapter
  • First Online:
Handbook of Software Engineering

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 169.00
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Hardcover Book
USD 219.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  • Aoyama, M., Miyamoto, K., Murakami, N., Nagano, H., Oki, Y.: Design specification in Japan: tree-structured charts. IEEE Softw. 6(2), 31–37 (1983)

    Article  Google Scholar 

  • Balzer, R.: A 15 year perspective on automatic programming. IEEE Trans. Softw. Eng. 11(11), 1257–1268 (1985)

    Article  Google Scholar 

  • Balzer, R., Cheatham, T., Green, K.: Software technology in the 1990’s: using a new paradigm. Computer 16(11), 39–45 (1983)

    Article  Google Scholar 

  • Beck, K.: eXtreme Programming eXplained. Addison-Wesley, Boston (2000)

    Google Scholar 

  • Beck, K., et al.: Manifesto for agile software development (2001). http://agilemanifesto.org/principles.html

  • 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 

  • Bobrow, D.G., Winograd, T.: An overview of KRL, a knowledge representation language. Cogn. Sci. 1(1), 3–46 (1977)

    Article  Google Scholar 

  • Böhm, C., Jacopini, G.: Flow diagrams, turing machines and languages with only two formation rules. Commun. ACM 9(5), 366–371 (1966)

    Article  MATH  Google Scholar 

  • Booch, G.: Object-Oriented Analysis and Design with Applications, 3rd edn. Benjamin/Cummings, San Francisco (2007)

    MATH  Google Scholar 

  • Brachman, R.J., Schmolze, J.G.: An overview of the KL-one knowledge representation system. Cogn. Sci. 9(2), 171–216 (1985)

    Article  Google Scholar 

  • Chen, P.P.S.: The entity-relationship model? Toward a unified view of data. ACM Trans. Database Syst. 1(1), 9–36 (1976)

    Article  Google Scholar 

  • Clements, P., Northrop, L.: Software Product Lines: Practices and Patterns. Addison-Wesley Professional, Boston (2001)

    Google Scholar 

  • Coad, P., Yourdon, E.: Object-Oriented Analysis. Prentice Hall, Upper Saddle River (1991)

    Google Scholar 

  • Dahl, O.J., Dijkstra, E.W., Hoare, C.A.R. (eds.): Structured Programming. Academic, London (1972)

    MATH  Google Scholar 

  • DeMarco, T.: Structured Analysis and System Specification. Prentice Hall, Upper Saddle River (1978)

    Google Scholar 

  • Dijkstra, E.W.: Letters to the editor: go to statement considered harmful. Commun. ACM 11(3), 147–148 (1968). https://doi.org/10.1145/362929.362947. http://doi.acm.org/10.1145/362929.362947

    Article  Google Scholar 

  • D’Souza, D.E., Wills, A.C.: Objects, Components, and Frameworks with UML: The Catalysis Approach. Addison-Wesley, Boston (1999)

    Google Scholar 

  • Floyd, R.W.: The paradigms of programming. Commun. ACM 22(8), 455–460 (1979)

    Article  Google Scholar 

  • Floyd, C.: A paradigm change in software engineering. ACM SIGSOFT Softw. Eng. Notes 13(2), 25–38 (1988)

    Article  Google Scholar 

  • 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 

  • 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)

    Article  MathSciNet  MATH  Google Scholar 

  • Goldberg, A., Robson, D.: Smalltalk-80: The Language and Its Implementation. Addison-Wesley Longman Publishing Co., Inc., Boston (1983)

    MATH  Google Scholar 

  • Guttag, J.V., Horning, J.J.: The algebraic specification of abstract data types. Acta Inform. 10(1), 27–52 (1978)

    Article  MathSciNet  MATH  Google Scholar 

  • Harel, D.: Statecharts: a visual formalism for complex systems. Sci. Comput. Program. 8, 231–274 (1987)

    Article  MathSciNet  MATH  Google Scholar 

  • Harel, D., Politi, M.: Modeling Reactive Systems with Statecharts. McGraw-Hill, New York (1998)

    Google Scholar 

  • Hecht, M.S.: Flow Analysis of Computer Programs. Elsevier, North Holland (1977)

    MATH  Google Scholar 

  • Hewitt, C.: Viewing control structures as patterns of passing messages. Artif. Intell. 8(3), 323–364 (1977)

    Article  Google Scholar 

  • Hey, T., Tansley, S., Tolle, K.: The Fourth Paradigm: Data-Intensive Scientific Discovery. Microsoft Research, Cambridge (2009)

    Google Scholar 

  • Jackson, M.A.: Principles of Program Design. Academic, Cambridge (1975)

    Google Scholar 

  • Jackson, M.A.: System Development. Prentice Hall International, Upper Saddle River (1983)

    Google Scholar 

  • Jackson, M.: Software Requirements & Specifications: A Lexicon of Practice, Principles and Prejudice. Addison-Wesley, Boston (1995)

    Google Scholar 

  • Jacobson, I., Christerson, M., Jonsson, P., Ă–vergaard, G.: Object-Oriented Software Engineering: A Use Case Driven Approach. ACM Press, New York (1992)

    MATH  Google Scholar 

  • 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 

  • 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 

  • 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 

  • Kuhn, T.S.: The Structure of Scientific Revolutions. University of Chicago Press, 50th Anniversary Edition 2012 (1962)

    Google Scholar 

  • Kurtev, I., Bezivin, J., Jouault, F., Valduriez, P.: Model-based DSL frameworks. In: OOPSLA’06, pp. 602–615 (2006)

    Google Scholar 

  • Kurzweil, R.: The Singularity Is Near: When Humans Transcend Biology. Viking Books, New York (2005)

    Google Scholar 

  • 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)

    Article  MATH  Google Scholar 

  • Lightsey, B.: Systems engineering fundamentals. Technical report, DTIC Document (2001)

    Google Scholar 

  • Liskov, B., Snyder, A., Atkinson, R., Schaffert, C.: Abstraction mechanisms in CLU. Commun. ACM 20(8), 564–576 (1977). https://doi.org/10.1145/359763.359789. http://doi.acm.org/10.1145/359763.359789

    Article  MATH  Google Scholar 

  • Magee, J., Kramer, J.: Concurrency – State Models & Java Programs. Wiley, Hoboken (1999)

    MATH  Google Scholar 

  • Mills, H.D.: Software development. IEEE Trans. Softw. Eng. 4, 265–273 (1976)

    Article  Google Scholar 

  • Mills, H., Dyer, M., Linger, R.: Cleanroom software engineering. IEEE Softw. 4, 19–25 (1987)

    Article  Google Scholar 

  • Minsky, M.: A framework for representing knowledge. MIT-AI Laboratory Memo 306 (1974)

    Google Scholar 

  • Myers, G.J., et al.: Composite/Structured Design. Van Nostrand Reinhold, New York (1978)

    Google Scholar 

  • Nassi, I., Shneiderman, B.: Flowchart techniques for structured programming. ACM SIGPLAN Not. 8(8), 12–26 (1973)

    Article  Google Scholar 

  • Naur, P., Randell, B. (eds.): Software Engineering—Report on a Conference Sponsored by the NATO Science Committee, Garimisch (1968). http://homepages.cs.ncl.ac.uk/brian.randell/NATO/nato1968.PDF

  • OMG: MDA guide version 1.0.1 (2003)

    Google Scholar 

  • OMG: Meta object facility (MOF) core specification version 2.0 (2006)

    Google Scholar 

  • OMG: OMG Unified Modeling LanguageTM (OMG UML), Infrastructure Version 2.5.1 (2017). http://www.uml.org/

  • Osterweil, L.: Software processes are software too. In: 9th International Conference on Software Engineering, Monterey, pp. 2–13 (1987)

    Google Scholar 

  • Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Commun. ACM 15(12), 1053–1058 (1972)

    Article  Google Scholar 

  • Parnas, D.L.: On the design and development of program families. IEEE Trans. Softw. Eng. 1, 1–9 (1976)

    Article  MATH  Google Scholar 

  • Pressman, R.: Software Engineering: A Practitioner’s Approach, 3rd edn. McGraw-Hill, New York (1992)

    MATH  Google Scholar 

  • Rajlich, V.: Changing the paradigm of software engineering. Commun. ACM 49(8), 67–70 (2006)

    Article  Google Scholar 

  • Ross, D.T., Schoman, K.E. Jr.: Structured analysis for requirements definition. IEEE Trans. Softw. Eng. 1, 6–15 (1977)

    Article  Google Scholar 

  • Rumbaugh, J., Blaha, M., Premerlani, W., Eddy, F., Lonrensen, W.: Object-Oriented Modeling and Design. Prentice-Hall, Upper Saddle River (1991)

    MATH  Google Scholar 

  • 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 

  • Schmidt, D.C.: Model-driven engineering. IEEE Comput. 39, 25–31 (2006)

    Article  Google Scholar 

  • Seidewitz, E.: What models mean. IEEE Softw. 20, 26–32 (2003)

    Article  Google Scholar 

  • Shaw, M., Garlan, D.: Software Architecture: Perspectives on an Emerging Discipline. Prentice-Hall, Upper Saddle River (1996)

    MATH  Google Scholar 

  • Sutherland, J., Sutherland, J.: Scrum: The Art of Doing Twice the Work in Half the Time. Crown Business, New York (2014)

    Google Scholar 

  • 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 

  • 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 

  • Team, C.P.: CMMI for Acquisition Version 1.3. Lulu.com (2010)

    Google Scholar 

  • Wirfs-Brock, R., Wilkerson, B., Wiener, L.: Designing Object-Oriented Software. Prentice Hall, Englewood Cliffs (1990)

    Google Scholar 

  • 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)

    Article  MATH  Google Scholar 

  • 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 

  • 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 

  • Yourdon, E., Constantine, L.L.: Structured Design: Fundamentals of a Discipline of Computer Program and Systems Design. Prentice-Hall, Inc., Upper Saddle River (1979)

    MATH  Google Scholar 

  • 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)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Tetsuo Tamai .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2019 Springer Nature Switzerland AG

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

Cite this chapter

Tamai, T. (2019). Key Software Engineering Paradigms and Modeling Methods. In: Cha, S., Taylor, R., Kang, K. (eds) Handbook of Software Engineering. Springer, Cham. https://doi.org/10.1007/978-3-030-00262-6_9

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-00262-6_9

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-00261-9

  • Online ISBN: 978-3-030-00262-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics