Skip to main content

Domain Modelling: A Foundation for Software Development

  • Chapter
  • First Online:
Theories of Programming and Formal Methods

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 14080))

  • 282 Accesses

Abstract

Domain modelling, as per the approach of this paper, offers the possibility of describing software application domains in a precise and comprehensive manner – well before requirements capture can take place. We endow domain modelling with appropriate analysis and description calculi and a systematic method for constructing domain models. The present paper is a latest exposé of the domain science & engineering as published in earlier papers and a book. It reports on our most recent simplifications to the domain analysis & description approach.

In order to specify software, we must understand its requirements. In order to prescribe requirements, we must understand the domain. So we must study, analyse and describe domains.

The Triptych Dogma

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 59.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 79.99
Price excludes VAT (USA)
  • Compact, lightweight 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

Notes

  1. 1.

    Thus a railway domain model should desirably cover such instances as the railways of Denmark and Norway and Sweden, each one individually.

  2. 2.

    The approach taken here can, however, also be used to devise new domains.

  3. 3.

    By specifying software we mean specifying the design of the software. That design is derived from the software requirements.

  4. 4.

    test, check and verify.

  5. 5.

    We shall, in this paper, not exemplify living species endurants.

  6. 6.

    Rigorous Approach to Idustrial Software Engineering.

  7. 7.

    RSL: RAISE Specification Language.

  8. 8.

    Other formal specification languages are possible, f.ex.: VDM [23, 24, 30], Z [58], Alloy [42], or CafeOBJ [31].

  9. 9.

    Google’s English Dictionary as provided by Oxford Languages.

  10. 10.

    We refer to predicate prompt # 2 below for a definition of endurant.

  11. 11.

    We refer to Sects. 5.1 and 5.2.

  12. 12.

    This is a purely pragmatic decision. “Of course” sand, gravel, soil, etc., are not fluids, but for our modelling purposes it is convenient to “compartmentalise” them as fluids!.

  13. 13.

    i.e., chopped sugar cane, threshed, or otherwise. See footnote 12.

  14. 14.

    This characterisation is the result of our study of relations between philosophy and computing science, notably influenced by Kai Sørlander’s Philosphy.

  15. 15.

    Framed texts highlight domain analysis & description prompts.

  16. 16.

    The author’s house location!.

  17. 17.

    The time this text was last compiled!

  18. 18.

    Jacob, P. (Aug 31, 2010). Intentionality. Stanford Encyclopedia of Philosophy (seop.illc.uva.nl/entries/intentionality/ October 15, 2014, retrieved April 3, 2018.

  19. 19.

    The term intentional pull is chosen so as to connote with the term gravitational pull.

  20. 20.

    https://en.wikipedia.org/wiki/Double-entry_bookkeeping.

  21. 21.

    Please bear in mind that the use, here, of CSP, is in the following context: the CSP clauses are not to be “interpreted” on a computer where this “computerisation” has to be “shared” with other computations; hence CSP synchcronisation & communication is “ideal” and reflects reality.

  22. 22.

    For retr_\(\cdots \) see Sect. 5.1.4 on page 16.

  23. 23.

    For record_\(\mathbb {TIME}\) see Sect. 4.2 on page 15.

  24. 24.

    i.e., proof obligations.

  25. 25.

    Some readers may object, but we insist! If trees are brought forward, as an example of a recursively definable domain, then we argue: Yes, trees can be recursively defined. Trees can, as well, be defined as a variant of graphs, and you wouldn’t claim, would you, that graphs are recursive ? We shall consider the living species of trees (that is, plants), as atomic. In defining attribute types You may wish to model certain attributes as ‘trees’. Then, by all means, You may do so recursively. But natural trees, having roots and branches cannot be recursively defined, since proper “sub-trees” of trees would then have roots!

  26. 26.

    This characterisation clearly lacks sufficient formality. We refer to Sect. 8.2.16 below.

  27. 27.

    – as suggested by Michael A. Jackson [43].

  28. 28.

    I acknowledge the mentioning of these three references to one of the reviewers of the resent paper.

  29. 29.

    Cf. Sect. 8.2.7 on the previous page.

  30. 30.

    https://en.wikipedia.org/wiki/Leibniz%E2%80%93Newton_calculus_controversy.

  31. 31.

    https://eng.gst.dk/danish-cadastre-office/cadastral-map.

  32. 32.

    https://informatics.tuwien.ac.at/.

References

  1. Back, R.J., Petre, L., Porres, I.: Generalizing action systems to hybrid systems. In: Formal Techniques in Real-Time and Fault-Tolerant Systems, pp. 202–213 (2000). https://doi.org/10.1007/3-540-45352-0_17, www.researchgate.net/publication/221654900_Generalizing_Action_Systems_to_Hybrid_Systems

  2. Banach, R., Butler, M.: Modelling hybrid systems in event-B and hybrid event-B: a comparison of water tanks. In: Ogata, K., Lawford, M., Liu, S. (eds.) ICFEM 2016. LNCS, vol. 10009, pp. 90–105. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-47846-3_7

    Chapter  Google Scholar 

  3. Bjørner, D.: UNU/IIST reports on domain modelling. Research Report, UNU/IIST (1995–1997), UNUIIST:46: New Software Technology Development, UNUIIST:47: Software Support for Infrastructure Systems, UNUIIST:48: Software Systems Engineering - From Domain Analysis to Requirements Capture [- an Air Traffic Control Example], UNUIIST:58: Infrastructure Software Systems, UNUIIST:59: New Software Development, UNUIIST:60: Models of Enterprise Management: Strategy, Tactics & Operations - Case Study Applied to Airlines and Manufacturing, UNUIIST:61: Federated GIS+DIS-based Decision Support Systems for Sustainable Development - a Conceptual Architecture, UNUIIST:96: Models of Financial Services & Industries

    Google Scholar 

  4. Bjørner, D.: Software Engineering, Vol. 1: Abstraction and Modelling; Vol. 2: Specification of Systems and Languages; Vol. 3: Domains, Requirements and Software Design. Texts in Theoretical Computer Science, the EATCS Series. Springer, Heidelberg (2006)

    Google Scholar 

  5. Bjørner, D.: Software Engineering, Vol. 2: Specification of Systems and Languages. Texts in Theoretical Computer Science, the EATCS Series. Springer, Heidelberg (2006). Chapters 12–14 are primarily authored by Christian Krog Madsen. See [6, 8]

    Google Scholar 

  6. Bjørner, D.: Software Engineering, Vol. 2: Specification of Systems and Languages. Qinghua University Press (2008)

    Google Scholar 

  7. Bjørner, D.: On mereologies in computing science. In: Roscoe, A.W., Jones, C.B., Wood, K.R. (eds.) Reflections on the Work of C.A.R. Hoare, pp. 47–70. Springer, London (2010). https://doi.org/10.1007/978-1-84882-912-1_3, www.imm.dtu.dk/~dibj/bjorner-hoare75-p.pdf

  8. Bjørner, D.: Chinese: Software Engineering, Vol. 2: Specification of Systems and Languages. Qinghua University Press (2010). Translated by Dr Liu Bo Chao et al

    Google Scholar 

  9. Bjørner, D.: Domain science & engineering - from computer science to the sciences of informatics, part I of II: the engineering part. Kibernetika sistemny analiz 2(4), 100–116 (2010)

    MATH  Google Scholar 

  10. Bjørner, D.: Domain science & engineering - from computer science to the sciences of informatics part II of II: the science part. Kibernetika sistemny analiz 2(3), 100–120 (2011)

    MATH  Google Scholar 

  11. Bjørner, D.: A rôle for mereology in domain science and engineering: to every mereology there corresponds a \(\lambda \)–expression. In: Calosi, C., Graziani, P. (eds.) Mereology and the Sciences. SL, vol. 371, pp. 323–357. Springer, Cham (2014). https://doi.org/10.1007/978-3-319-05356-1_12

    Chapter  Google Scholar 

  12. Bjørner, D.: Domain analysis: endurants - an analysis & description process model. In: Iida, S., Meseguer, J., Ogata, K. (eds.) Specification, Algebra, and Software. LNCS, vol. 8373, pp. 1–34. Springer, Heidelberg (2014). https://doi.org/10.1007/978-3-642-54624-2_1, www.imm.dtu.dk/~dibj/2014/kanazawa/kanazawa-p.pdf

  13. Bjørner, D.: Manifest domains: analysis & description. Formal Aspects Comput. 29(2), 175–225 (2017). www.imm.dtu.dk/~dibj/2015/faoc/faoc-bjorner.pdf. Accessed 26 July 2016

  14. Bjørner, D.: To every manifest domain a CSP expression. J. Log. Algebraic Methods Program. 1(94), 91–108 (2018). www.imm.dtu.dk/~dibj/2016/mereo/mereo.pdf

  15. Bjørner, D.: slAn assembly plant domain - analysis & description. Technical report, Technical University of Denmark, Fredsvej 11, DK-2840 Holte, Denmark (2019). www.imm.dtu.dk/~dibj/2021/assembly/assemblyline.pdf

  16. Bjørner, D.: Domain analysis & description - principles, techniques and modelling languages. ACM Trans. Software Eng. Methodol. 28(2), 68p (2019). www.imm.dtu.dk/~dibj/2018/tosem/Bjorner-TOSEM.pdf

  17. Bjørner, D.: Domain Science & Engineering - A Foundation for Software Development. EATCS Monographs in Theoretical Computer Science. Springer, Cham (2021). https://doi.org/10.1007/978-3-030-73484-8. A revised version of this book is [21]

  18. Bjørner, D.: Rigorous Domain Descriptions. A compendium of draft domain description sketches carried out over the years 1995–2021 (2021). www.imm.dtu.dk/~dibj/2021/dd/dd.pdf

  19. Bjørner, D.: Documents: a basis for government. In: United Natonans Inst., Festschrift for Tomas Janowski and Elsa Estevez, Guimaraes, Portugal (2022). www.imm.dtu.dk/~dibj/2022/janowski/docs.pdf

  20. Bjørner, D.: Domain modelling - a primer (2023). A short version of [21]. xii+227 pages

    Google Scholar 

  21. Bjørner, D.: Domain science & engineering - a foundation for software development (2023). Revised edition of [17]. xii+346 pages

    Google Scholar 

  22. Bjørner, D.: Pipelines: a domain science & engineering description. In: FSEN 2023: Fundamentals of Software Engineering, 3–5 May 2023, Teheran, Iran (2023). www.imm.dtu.dk/~dibj/2023/tehran/tehran.pdf

  23. Bjørner, D., Jones, C.B. (eds.): The Vienna Development Method: The Meta-Language. LNCS, vol. 61. Springer, Heidelberg (1978). https://doi.org/10.1007/3-540-08766-4

    Book  MATH  Google Scholar 

  24. Bjørner, D., Jones, C.B. (eds.): Formal Specification and Software Development. Prentice-Hall, Hoboken (1982)

    MATH  Google Scholar 

  25. Bjørner, D., Nest, O.N. (eds.): Towards a Formal Description of Ada. LNCS, vol. 98. Springer, Heidelberg (1980). https://doi.org/10.1007/3-540-10283-3

    Book  MATH  Google Scholar 

  26. Casati, R., Varzi, A.C.: Parts and Places: The Structures of Spatial Representation. MIT Press, Cambridge (1999)

    Google Scholar 

  27. Christiansen, D.R., Grue, K., Niss, H., Sestoft, P., Sigtryggsson, K.S.: Actulus modeling language - an actuarial programming language for life insurance and pensions. Technical report, edlund.dk/sites/default/files/Downloads/paper_actulus-modeling-language.pdf, Edlund A/S, Denmark, Bjerregårds Sidevej 4, DK-2500 Valby. (+45) 36 15 06 30. edlund@edlund.dk (2015). http://www.edlund.dk/en/insights/scientific-papers. This paper illustrates how the design of pension and life insurance products, and their administration, reserve calculations, and audit, can be based on a common formal notation. The notation is human-readable and machine-processable, and specialised to the actuarial domain, achieving great expressive power combined with ease of use and safety

  28. Clemmensen, G.B., Oest, O.N.: Formal specification and development of an Ada compiler - a VDM case study. In: Proceedings of the 7th International Conference on Software Engineering, 26–29 March 1984, Orlando, Florida, pp. 430–440. IEEE (1984)

    Google Scholar 

  29. Damm, W., Harel, D.: LSCs: breathing life into message sequence charts. Formal Methods Syst. Design 19, 45–80 (2001). Early version appeared as Weizmann Institute Technical report CS98-09, April 1998. An abridged version appeared in Proceedings of the 3rd IFIP International Conference on Formal Methods for Open Object-based Distributed Systems (FMOODS 1999), pp. pp. 293–312. Kluwer (1999)

    Google Scholar 

  30. Fitzgerald, J., Larsen, P.G.: Modelling Systems - Practical Tools and Techniques in Software Development. Cambridge University Press, Cambridge (1998). iSBN 0-521-62348-0

    MATH  Google Scholar 

  31. Futatsugi, K., Nakagawa, A., Tamai, T. (eds.): CAFE: An Industrial-Strength Algebraic Formal Method. Elsevier, Amsterdam (2000). Proceedings from an April 1998 Symposium, Numazu, Japan

    Google Scholar 

  32. George, C.W., et al.: The RAISE Specification Language. The BCS Practitioner Series, Prentice-Hall, Hemel Hampstead (1992)

    MATH  Google Scholar 

  33. George, C.W., Haxthausen, A.E., Hughes, S., Milne, R., Prehn, S., Pedersen, J.S.: The RAISE Development Method. The BCS Practitioner Series, Prentice-Hall, Hemel Hampstead (1995)

    MATH  Google Scholar 

  34. Harel, D.: Algorithmics –The Spirit of Computing. Addison-Wesley (1987)

    Google Scholar 

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

    Article  MathSciNet  MATH  Google Scholar 

  36. Harel, D.: The Science of Computing – Exploring the Nature and Power of Algorithms. Addison-Wesley (1989)

    Google Scholar 

  37. Harel, D., Marelly, R.: Come, Let’s Play - Scenario-Based Programming Using LSCs and the Play-Engine. Springer, Cham (2003). https://doi.org/10.1007/978-3-642-19029-2

    Book  Google Scholar 

  38. Hoare, C.A.R.: Communicating sequential processes. Commun. ACM 21(8), 666–677 (1978)

    Article  MATH  Google Scholar 

  39. Hoare, C.A.R.: Communicating Sequential Processes. C.A.R. Hoare Series in Computer Science. Prentice-Hall International, Hoboken (1985). Published electronically: usingcsp.com/cspbook.pdf (2004)

  40. ITU-T: CCITT Recommendation Z.120: Message Sequence Chart (MSC) (1992)

    Google Scholar 

  41. ITU-T: ITU-T Recommendation Z.120: Message Sequence Chart (MSC) (1999)

    Google Scholar 

  42. Jackson, D.: Software Abstractions: Logic, Language, and Analysis. The MIT Press, Cambridge (2006). iSBN 0-262-10114-9

    Google Scholar 

  43. Jackson, M.A.: Software Requirements & Specifications: A Lexicon of Practice, Principles and Prejudices. ACM Press, Addison-Wesley, Reading (1995)

    Google Scholar 

  44. Jackson, M.A.: Program verification and system dependability. In: Boca, P., Bowen, J. (eds.) Formal Methods: State of the Art and New Directions, pp. 43–78. Springer, London (2010). https://doi.org/10.1007/978-1-84882-736-3_2

    Chapter  Google Scholar 

  45. Araki, K., et al. (eds.): IFM 1999–2013: Integrated Formal Methods. LNCS, vols. 1945, 2335, 2999, 3771, 4591, 5423, 6496, 7321, 7940, etc. Springer, Cham (1999–2019)

    Google Scholar 

  46. Lamport, L.: Hybrid Systems. In: Rischel, H., Ravn, A.P. (eds.) Workshop on Theory of Hybrid Systems. Lecture Notes in Computer Science, Springer (1992), https://lamport.azurewebsites.net/pubs/lamport-hybrid.pdf

  47. Lamport, L.: Specifying Systems. Addison-Wesley, Boston (2002)

    MATH  Google Scholar 

  48. Lamsweerde, A.: Requirements Engineering: From System Goals to UML Models to Software Specifications. Wiley, Hoboken (2009)

    Google Scholar 

  49. Little, W., Fowler, H., Coulson, J., Onions, C.: The Shorter Oxford English Dictionary on Historical Principles. Clarendon Press, Oxford (1973, 1987). Two volumes

    Google Scholar 

  50. Luschei, E.: The Logical Systems of Leśniewksi. North Holland, Amsterdam, The Netherlands (1962)

    Google Scholar 

  51. McCarthy, J.: Towards a mathematical science of computation. In: Popplewell, C. (ed.) IFIP World Congress Proceedings, pp. 21–28 (1962)

    Google Scholar 

  52. Reisig, W.: Petrinetze: Modellierungstechnik, Analysemethoden, Fallstudien, 1st edn. Leitfäden der Informatik, Vieweg+Teubner (2010). 248 p.; ISBN 978-3-8348-1290-2

    Google Scholar 

  53. Sørlander, K.: Det Uomgængelige - Filosofiske Deduktioner [The Inevitable - Philosophical Deductions, with a foreword by Georg Henrik von Wright], 168 p. Munksgaard \(\cdot \) Rosinante, Copenhagen (1994)

    Google Scholar 

  54. Sørlander, K.: Under Evighedens Synsvinkel [Under the viewpoint of eternity], 200 p. Munksgaard \(\cdot \) Rosinante, Copenhagen (1997)

    Google Scholar 

  55. Sørlander, K.: Den Endegyldige Sandhed [The Final Truth], 187 p. Rosinante, Copenhagen (2002)

    Google Scholar 

  56. Sørlander, K.: Indføring i Filosofien [Introduction to The Philosophy], 233 p. Informations Forlag, Copenhagen (2016)

    Google Scholar 

  57. Sørlander, K.: Den rene fornufts struktur [The Structure of Pure Reason]. Ellekær, Slagelse (2022)

    Google Scholar 

  58. Woodcock, J.C.P., Davies, J.: Using Z: Specification, Proof and Refinement. Prentice Hall International Series in Computer Science (1996). http://www.comlab.ox.ac.uk/usingz.html

  59. Xie, W., Xiang, S., Zhu, H.: A UTP approach for rTiMo. Formal Aspects Comput. 30(6), 713–738 (2018). https://doi.org/10.1007/s00165-018-0467-1

    Article  MathSciNet  MATH  Google Scholar 

  60. Xie, W., Zhu, H., QiWen, X.: A process calculus BigrTiMo of mobile systems and its formal semantics. Formal Aspects Comput. 33(2), 207–249 (2021)

    Article  MathSciNet  MATH  Google Scholar 

  61. Zhou, C.C., Hansen, M.R.: Duration Calculus: A Formal Approach to Real-time Systems. Monographs in Theoretical Computer Science. An EATCS Series, Springer, Cham (2004). https://doi.org/10.1007/978-3-662-06784-0

    Book  MATH  Google Scholar 

Download references

Acknowledgment

A referee of this paper, many thanks to all five (!), suggested the following, slightly edited acknowledgment:

Laudatio: Prof. He Jifeng

– He Jifeng’s work on a Unifying Theory of Programming, UTP – a monumental contribution – is seen as a domain model for programming languages covering a wide range of programming language paradigms.

UTP is about unifying axiomatic, denotational and operational semantics all of which can be expressed in RSL. Hence, RSL could be used as a concrete language to define a unifying theory of programming.

– One could combine domain modelling and UTP in order to systematically develop and define formal domain specific languages, DSLs. It might result in a new unifying theory of DSLs.

I fully concur.

I gratefully acknowledge the opportunity given to me, to write this paper, during my PhD lectures, October–November 2022, at the TU Wien Informatics, Vienna, Austria, by Prof. Laura Kovacs. I also gratefully acknowledge comments by Klaus Havelund, Kazuhiro Ogata and Wolfgang Reisig. Finally, many thanks to Jonathan Bowen for his indefatigable work on getting this paper in proper form and this volume finished.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Dines Bjørner .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2023 The Author(s), under exclusive license to Springer Nature Switzerland AG

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

Cite this chapter

Bjørner, D. (2023). Domain Modelling: A Foundation for Software Development. In: Bowen, J.P., Li, Q., Xu, Q. (eds) Theories of Programming and Formal Methods. Lecture Notes in Computer Science, vol 14080. Springer, Cham. https://doi.org/10.1007/978-3-031-40436-8_7

Download citation

  • DOI: https://doi.org/10.1007/978-3-031-40436-8_7

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-031-40435-1

  • Online ISBN: 978-3-031-40436-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics