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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
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)
Balzer, R.: A 15 year perspective on automatic programming. IEEE Trans. Softw. Eng. 11(11), 1257–1268 (1985)
Balzer, R., Cheatham, T., Green, K.: Software technology in the 1990’s: using a new paradigm. Computer 16(11), 39–45 (1983)
Beck, K.: eXtreme Programming eXplained. Addison-Wesley, Boston (2000)
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)
Bobrow, D.G., Winograd, T.: An overview of KRL, a knowledge representation language. Cogn. Sci. 1(1), 3–46 (1977)
Böhm, C., Jacopini, G.: Flow diagrams, turing machines and languages with only two formation rules. Commun. ACM 9(5), 366–371 (1966)
Booch, G.: Object-Oriented Analysis and Design with Applications, 3rd edn. Benjamin/Cummings, San Francisco (2007)
Brachman, R.J., Schmolze, J.G.: An overview of the KL-one knowledge representation system. Cogn. Sci. 9(2), 171–216 (1985)
Chen, P.P.S.: The entity-relationship model? Toward a unified view of data. ACM Trans. Database Syst. 1(1), 9–36 (1976)
Clements, P., Northrop, L.: Software Product Lines: Practices and Patterns. Addison-Wesley Professional, Boston (2001)
Coad, P., Yourdon, E.: Object-Oriented Analysis. Prentice Hall, Upper Saddle River (1991)
Dahl, O.J., Dijkstra, E.W., Hoare, C.A.R. (eds.): Structured Programming. Academic, London (1972)
DeMarco, T.: Structured Analysis and System Specification. Prentice Hall, Upper Saddle River (1978)
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
D’Souza, D.E., Wills, A.C.: Objects, Components, and Frameworks with UML: The Catalysis Approach. Addison-Wesley, Boston (1999)
Floyd, R.W.: The paradigms of programming. Commun. ACM 22(8), 455–460 (1979)
Floyd, C.: A paradigm change in software engineering. ACM SIGSOFT Softw. Eng. Notes 13(2), 25–38 (1988)
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)
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)
Goldberg, A., Robson, D.: Smalltalk-80: The Language and Its Implementation. Addison-Wesley Longman Publishing Co., Inc., Boston (1983)
Guttag, J.V., Horning, J.J.: The algebraic specification of abstract data types. Acta Inform. 10(1), 27–52 (1978)
Harel, D.: Statecharts: a visual formalism for complex systems. Sci. Comput. Program. 8, 231–274 (1987)
Harel, D., Politi, M.: Modeling Reactive Systems with Statecharts. McGraw-Hill, New York (1998)
Hecht, M.S.: Flow Analysis of Computer Programs. Elsevier, North Holland (1977)
Hewitt, C.: Viewing control structures as patterns of passing messages. Artif. Intell. 8(3), 323–364 (1977)
Hey, T., Tansley, S., Tolle, K.: The Fourth Paradigm: Data-Intensive Scientific Discovery. Microsoft Research, Cambridge (2009)
Jackson, M.A.: Principles of Program Design. Academic, Cambridge (1975)
Jackson, M.A.: System Development. Prentice Hall International, Upper Saddle River (1983)
Jackson, M.: Software Requirements & Specifications: A Lexicon of Practice, Principles and Prejudice. Addison-Wesley, Boston (1995)
Jacobson, I., Christerson, M., Jonsson, P., Ă–vergaard, G.: Object-Oriented Software Engineering: A Use Case Driven Approach. ACM Press, New York (1992)
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)
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)
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)
Kuhn, T.S.: The Structure of Scientific Revolutions. University of Chicago Press, 50th Anniversary Edition 2012 (1962)
Kurtev, I., Bezivin, J., Jouault, F., Valduriez, P.: Model-based DSL frameworks. In: OOPSLA’06, pp. 602–615 (2006)
Kurzweil, R.: The Singularity Is Near: When Humans Transcend Biology. Viking Books, New York (2005)
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)
Lightsey, B.: Systems engineering fundamentals. Technical report, DTIC Document (2001)
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
Magee, J., Kramer, J.: Concurrency – State Models & Java Programs. Wiley, Hoboken (1999)
Mills, H.D.: Software development. IEEE Trans. Softw. Eng. 4, 265–273 (1976)
Mills, H., Dyer, M., Linger, R.: Cleanroom software engineering. IEEE Softw. 4, 19–25 (1987)
Minsky, M.: A framework for representing knowledge. MIT-AI Laboratory Memo 306 (1974)
Myers, G.J., et al.: Composite/Structured Design. Van Nostrand Reinhold, New York (1978)
Nassi, I., Shneiderman, B.: Flowchart techniques for structured programming. ACM SIGPLAN Not. 8(8), 12–26 (1973)
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)
OMG: Meta object facility (MOF) core specification version 2.0 (2006)
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)
Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Commun. ACM 15(12), 1053–1058 (1972)
Parnas, D.L.: On the design and development of program families. IEEE Trans. Softw. Eng. 1, 1–9 (1976)
Pressman, R.: Software Engineering: A Practitioner’s Approach, 3rd edn. McGraw-Hill, New York (1992)
Rajlich, V.: Changing the paradigm of software engineering. Commun. ACM 49(8), 67–70 (2006)
Ross, D.T., Schoman, K.E. Jr.: Structured analysis for requirements definition. IEEE Trans. Softw. Eng. 1, 6–15 (1977)
Rumbaugh, J., Blaha, M., Premerlani, W., Eddy, F., Lonrensen, W.: Object-Oriented Modeling and Design. Prentice-Hall, Upper Saddle River (1991)
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)
Schmidt, D.C.: Model-driven engineering. IEEE Comput. 39, 25–31 (2006)
Seidewitz, E.: What models mean. IEEE Softw. 20, 26–32 (2003)
Shaw, M., Garlan, D.: Software Architecture: Perspectives on an Emerging Discipline. Prentice-Hall, Upper Saddle River (1996)
Sutherland, J., Sutherland, J.: Scrum: The Art of Doing Twice the Work in Half the Time. Crown Business, New York (2014)
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)
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)
Team, C.P.: CMMI for Acquisition Version 1.3. Lulu.com (2010)
Wirfs-Brock, R., Wilkerson, B., Wiener, L.: Designing Object-Oriented Software. Prentice Hall, Englewood Cliffs (1990)
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)
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)
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)
Yourdon, E., Constantine, L.L.: Structured Design: Fundamentals of a Discipline of Computer Program and Systems Design. Prentice-Hall, Inc., Upper Saddle River (1979)
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)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Switzerland AG
About this chapter
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)