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
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
Thus a railway domain model should desirably cover such instances as the railways of Denmark and Norway and Sweden, each one individually.
- 2.
The approach taken here can, however, also be used to devise new domains.
- 3.
By specifying software we mean specifying the design of the software. That design is derived from the software requirements.
- 4.
test, check and verify.
- 5.
We shall, in this paper, not exemplify living species endurants.
- 6.
Rigorous Approach to Idustrial Software Engineering.
- 7.
RSL: RAISE Specification Language.
- 8.
- 9.
Google’s English Dictionary as provided by Oxford Languages.
- 10.
We refer to predicate prompt # 2 below for a definition of endurant.
- 11.
- 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.
i.e., chopped sugar cane, threshed, or otherwise. See footnote 12.
- 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.
Framed texts highlight domain analysis & description prompts.
- 16.
The author’s house location!.
- 17.
The time this text was last compiled!
- 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.
The term intentional pull is chosen so as to connote with the term gravitational pull.
- 20.
https://en.wikipedia.org/wiki/Double-entry_bookkeeping.
- 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.
For retr_\(\cdots \) see Sect. 5.1.4 on page 16.
- 23.
For record_\(\mathbb {TIME}\) see Sect. 4.2 on page 15.
- 24.
i.e., proof obligations.
- 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.
This characterisation clearly lacks sufficient formality. We refer to Sect. 8.2.16 below.
- 27.
– as suggested by Michael A. Jackson [43].
- 28.
I acknowledge the mentioning of these three references to one of the reviewers of the resent paper.
- 29.
Cf. Sect. 8.2.7 on the previous page.
- 30.
- 31.
- 32.
References
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
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
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
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)
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]
Bjørner, D.: Software Engineering, Vol. 2: Specification of Systems and Languages. Qinghua University Press (2008)
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
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
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)
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)
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
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
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
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
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
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
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]
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
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
Bjørner, D.: Domain modelling - a primer (2023). A short version of [21]. xii+227 pages
Bjørner, D.: Domain science & engineering - a foundation for software development (2023). Revised edition of [17]. xii+346 pages
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
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
Bjørner, D., Jones, C.B. (eds.): Formal Specification and Software Development. Prentice-Hall, Hoboken (1982)
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
Casati, R., Varzi, A.C.: Parts and Places: The Structures of Spatial Representation. MIT Press, Cambridge (1999)
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
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)
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)
Fitzgerald, J., Larsen, P.G.: Modelling Systems - Practical Tools and Techniques in Software Development. Cambridge University Press, Cambridge (1998). iSBN 0-521-62348-0
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
George, C.W., et al.: The RAISE Specification Language. The BCS Practitioner Series, Prentice-Hall, Hemel Hampstead (1992)
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)
Harel, D.: Algorithmics –The Spirit of Computing. Addison-Wesley (1987)
Harel, D.: StateCharts: a visual formalism for complex systems. Sci. Comput. Program. 8(3), 231–274 (1987)
Harel, D.: The Science of Computing – Exploring the Nature and Power of Algorithms. Addison-Wesley (1989)
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
Hoare, C.A.R.: Communicating sequential processes. Commun. ACM 21(8), 666–677 (1978)
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)
ITU-T: CCITT Recommendation Z.120: Message Sequence Chart (MSC) (1992)
ITU-T: ITU-T Recommendation Z.120: Message Sequence Chart (MSC) (1999)
Jackson, D.: Software Abstractions: Logic, Language, and Analysis. The MIT Press, Cambridge (2006). iSBN 0-262-10114-9
Jackson, M.A.: Software Requirements & Specifications: A Lexicon of Practice, Principles and Prejudices. ACM Press, Addison-Wesley, Reading (1995)
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
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)
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
Lamport, L.: Specifying Systems. Addison-Wesley, Boston (2002)
Lamsweerde, A.: Requirements Engineering: From System Goals to UML Models to Software Specifications. Wiley, Hoboken (2009)
Little, W., Fowler, H., Coulson, J., Onions, C.: The Shorter Oxford English Dictionary on Historical Principles. Clarendon Press, Oxford (1973, 1987). Two volumes
Luschei, E.: The Logical Systems of Leśniewksi. North Holland, Amsterdam, The Netherlands (1962)
McCarthy, J.: Towards a mathematical science of computation. In: Popplewell, C. (ed.) IFIP World Congress Proceedings, pp. 21–28 (1962)
Reisig, W.: Petrinetze: Modellierungstechnik, Analysemethoden, Fallstudien, 1st edn. Leitfäden der Informatik, Vieweg+Teubner (2010). 248 p.; ISBN 978-3-8348-1290-2
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)
Sørlander, K.: Under Evighedens Synsvinkel [Under the viewpoint of eternity], 200 p. Munksgaard \(\cdot \) Rosinante, Copenhagen (1997)
Sørlander, K.: Den Endegyldige Sandhed [The Final Truth], 187 p. Rosinante, Copenhagen (2002)
Sørlander, K.: Indføring i Filosofien [Introduction to The Philosophy], 233 p. Informations Forlag, Copenhagen (2016)
Sørlander, K.: Den rene fornufts struktur [The Structure of Pure Reason]. Ellekær, Slagelse (2022)
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
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
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)
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
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
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2023 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this chapter
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)