Skip to main content

Key Software Engineering Paradigms and Modeling Methods

  • 2434 Accesses

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, access via your institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • DOI: 10.1007/978-3-030-00262-6_9
  • Chapter length: 26 pages
  • Instant PDF download
  • Readable on all devices
  • Own it forever
  • Exclusive offer for individuals only
  • Tax calculation will be finalised during checkout
eBook
USD   169.00
Price excludes VAT (USA)
  • ISBN: 978-3-030-00262-6
  • Instant PDF download
  • Readable on all devices
  • Own it forever
  • Exclusive offer for individuals only
  • Tax calculation will be finalised during checkout
Hardcover Book
USD   219.99
Price excludes VAT (USA)

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)

    CrossRef  Google Scholar 

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

    CrossRef  Google Scholar 

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

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

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

    MATH  CrossRef  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)

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

    CrossRef  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

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

    CrossRef  Google Scholar 

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

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

    MathSciNet  MATH  CrossRef  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)

    MathSciNet  MATH  CrossRef  Google Scholar 

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

    MathSciNet  MATH  CrossRef  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)

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

    MATH  CrossRef  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

    MATH  CrossRef  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)

    CrossRef  Google Scholar 

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

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

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

    CrossRef  Google Scholar 

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

    MATH  CrossRef  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)

    CrossRef  Google Scholar 

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

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

    CrossRef  Google Scholar 

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

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

    MATH  CrossRef  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)

    CrossRef  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

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)