Formal Aspects of Computing

, Volume 29, Issue 2, pp 175–225 | Cite as

Manifest domains: analysis and description

  • Dines Bjørner
Original Article


We show that manifest domains, an understanding of which are a prerequisite for software requirements prescriptions, can be precisely described: narrated and formalised. We show that such manifest domains can be understood as a collection of endurant, that is, basically spatial entities: parts, components and materials, and perdurant, that is, basically temporal entities: actions, events and behaviours. We show that parts can be modeled in terms of external qualities whether: atomic or composite parts, having internal qualities: unique identifications, mereologies, which model relations between parts, and attributes. We show that the manifest domain analysis endeavour can be supported by a calculus of manifest domain analysis prompts: is_entity, is_endurant, is_perdurant, is_part, is_component, is_material, is_atomic, is_composite, has_components, has_materials, has_concrete_type, attribute_names, is_stationary, etcetera; and show how the manifest domain description endeavour can be supported by a calculus of manifest domain description prompts: observe_part_sorts, observe_part_type, observe_components, observe_materials, observe_unique_identifier, observe_mereology, observe_attributes. We show how to model attributes, essentially following Michael Jackson (Software requirements & specifications: a lexicon of practice, principles and prejudices. ACM Press, Addison-Wesley, Reading, 1995), but with a twist: The attribute model introduces the attribute analysis prompts is_static_attribute, is_dynamic_attribute, is_inert_attribute, is_reactive_attribute, is_active_attribute, is_autonomous_attribute, is_biddable_attribute and is_programmable_attribute. The twist suggests ways of modeling “access” to the values of these kinds of attributes: the static attributes by simply “copying” them, once, the reactive and programmable attributes by “carrying” them as function parameters whose values are kept always updated, and the remaining, the external_attributes, by inquiring, when needed, as to their value, as if they were always offered on CSP-like channels (Hoare, Communicating sequential processes. C.A.R. Hoare series in computer science. Prentice-Hall International, London, 2004). We show how to model essential aspects of perdurants in terms of their signatures based on the concepts of endurants. And we show how one can “compile” descriptions of endurant parts into descriptions of perdurant behaviours. We do not show prompt calculi for perdurants. The above contributions express a method with principles, techniques and tools for constructing domain descriptions. It is important to realise that we do not wish to nor claim that the method can describe all that it is interesting to know about domains.


Domain engineering Manifest domains Analysis & description Prompt calculi 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. Abr09.
    Abrial J (2009) The B book: assigning programs to meanings and Modeling in event-B: system and software engineering. Cambridge University Press, Cambridge (1996)Google Scholar
  2. Aud95.
    Audi R (1995) The Cambridge dictionary of philosophy. Cambridge University Press, CambridgeGoogle Scholar
  3. Bac69.
    Bachman C (1969) Data structure diagrams. Data Base J ACM SIGBDP 1(2)Google Scholar
  4. Bad05.
    Badiou A (2005) Being and event. Continuum (Lêtre et l’événements, Edition du Seuil, 1988)Google Scholar
  5. BCM+03.
    Baader F, Calvanese D, McGuinness D, Nardi D, Patel-Schneider P (2003) The description logic handbook: theory, implementation and applications. Cambrige University Press, CambrigezbMATHGoogle Scholar
  6. BDS04.
    Bittner T, Donnelly M, Smith B (2004) Endurants and perdurants in directly depicting ontologies. AI Commun 17(4): 247–258 (IOS Press, in [RG04])MathSciNetzbMATHGoogle Scholar
  7. BE10.
    Bjørner D, Eir A (2010) Compositionality: ontology and mereology of domains. Some clarifying observations in the context of software engineering in July 2008, eds. Martin Steffen, Dennis Dams and Ulrich Hannemann. In: Festschrift for Prof. Willem Paul de Roever concurrency, compositionality, and correctness.Lecture notes in computer science, vol 5930, pp 22–59, Springer, HeidelbergGoogle Scholar
  8. BF98.
    Benjamins VR, Fensel D (1998) The ontological engineering initiative (KA)2. Internet publication +  formal ontology in information systems, University of Amsterdam, SWI, Amsterdam, University of Karlsruhe, AIFB, Karlsruhe.
  9. BGH+in.
    Bjørner D, George CW, Haxthausen AE, Madsen CK, Holmslykke S, Pěnička M (2004) “UML"-ising formal techniques. In: INT 2004: third international workshop on integration of specification techniques for applications in engineering. Lecture notes in computer science, vol 3147, pp 423–450. Springer, 28 March 2004, ETAPS, Barcelona (final version).
  10. BHS05.
    Baader F, Horrocks I, Sattler U (2005) Description logics as ontology languages for the semantic web. In: Hutter, D, Stephan, W (eds) Mechanizing mathematical reasoning., pp. 228–248. Springer, HeidelbergCrossRefGoogle Scholar
  11. BJ78.
    Bjørner D, Jones CB (eds) (1978) The Vienna development method: the meta-language. LNCS, vol 61. Springer, New YorkGoogle Scholar
  12. BJ82.
    Bjørner, D, Jones, CB (eds) (1982) Formal specification and software development. Prentice-Hall, New YorkzbMATHGoogle Scholar
  13. Bjø97.
    Bjørner D (1997) Michael Jackson’s problem frames: domains, requirements and design. In: ShaoYang L, Hinchley M (eds) ICFEM’97: international conference on formal engineering methods, Los Alamitos, 12–14 November 1997. IEEE Computer Society, New York (final version).
  14. Bjø03.
    Bjørner D (2003) Domain engineering: a "radical innovation" for systems and software engineering? In: Verification: theory and practice. Lecture notes in computer science, vol 2772, Heidelberg, 7–11 October 2003. Springer. The Zohar Manna International Conference, Taormina, Sicily 29 June–4 July 2003.
  15. Bjø06.
    Bjørner D (2006) Software engineering, vol 3. Domains, requirements and software design. Texts in theoretical computer science, the EATCS series. Springer, New YorkGoogle Scholar
  16. Bjø07.
    Bjørner D (2007) Domain theory: practice and theories, discussion of possible research topics. In: Woodcock et al (eds) ICTAC’2007, vol 4701 of Lecture notes in computer science. Springer, Heidelberg, pp 1–17Google Scholar
  17. Bjø08.
    Bjørner D (2008) From domains to requirements. In: Degano, P, De Nicola, R, Meseguer, J (eds) Montanari festschrift, vol 5065 of Lecture notes in computer science., pp. 1–30. Springer, HeidelbergGoogle Scholar
  18. Bjø09.
    Bjørner D (2009) On mereologies in computing science. In: Jones CB, Roscoe AW, Wood KR (eds) Festschrift: reflections on the work of C.A.R. Hoare. History of computing. Springer, London, pp 47–70Google Scholar
  19. Bjø10a.
    Bjørner D (2010) Domain engineering. In: Boca, P, Bowen, J (eds) Formal methods: state of the art and new directions., pp. 1–42. Springer, LondonCrossRefGoogle Scholar
  20. Bjø10b.
    Bjørner D (2010) Domain science & engineering— from computer science to the sciences of informatics, Part I of II: the engineering part. Kibern Sist Anal 4: 100–116zbMATHGoogle Scholar
  21. Bjø10c.
    Bjørner D (2010) The rôle of domain engineering in software development. Why current requirements engineering seems flawed! In: Perspectives of systems informatics, vol 5947 of Lecture notes in computer science, pp 2–34, Springer, Heidelberg, 27 January 2010Google Scholar
  22. Bjø11a.
    Bjørner D (2011) Believable software management. Encycl Softw Eng 1(1): 1–32Google Scholar
  23. Bjø11b.
    Bjørner D (2011) Domain Science & Engineering— from computer science to the sciences of informatics Part II of II: the science part. Kibern Sist Anal 2, 100–120zbMATHGoogle Scholar
  24. Bjø11c.
    Bjørner D (2011) Domains: their simulation, monitoring and control—a divertimento of ideas and suggestions. In: Calude C, Rozenberg G, Saloma A (eds) Rainbow of computer science, Festschrift for Hermann Maurer on the occasion of his 70th anniversary., pp 167–183. Springer, HeidelbergGoogle Scholar
  25. Bjø13.
    Bjørner D (2013) Domain science and engineering as a foundation for computation for humanity, chap 7, pp 159–177. In: Zander J, Mosterman PJ (eds) Computational analysis, synthesis, and design of dynamic systems. CRC (Francis & Taylor)Google Scholar
  26. Bjø14a.
    Bjørner D (2014) A rôle for mereology in domain science and engineering. In: Calosi C, Graziani P (eds) Synthese library. Springer, AmsterdamGoogle Scholar
  27. Bjø14b.
    Bjørner D (2014) Domain analysis: endurants—an analysis & description process model. In: Iida S, Meseguer J, Ogata K (eds) Specification, algebra, and software: a festschrift symposium in honor of Kokichi Futatsugi. Springer, New YorkGoogle Scholar
  28. Bjø14c.
    Bjørner D (2014) Domain engineering—a basis for safety critical software. in: Invited keynote, ASSC2014: Australian system safety conference, Melbourne, 26–28 May 2014Google Scholar
  29. Bjø16a.
    Bjørner D (2016) Domain facets: analysis & description. Submitted for consideration by formal aspects of computing.
  30. Bjø16b.
    Bjørner D (2016) From domain descriptions to requirements prescriptions—a different approach to requirements engineering. Submitted for consideration by formal aspects of computingGoogle Scholar
  31. Bli90.
    Blizard WD (1990) A formal theory of objects, space and time. J Symbol Logic 55(1): 74–89MathSciNetCrossRefzbMATHGoogle Scholar
  32. BN92.
    Bjørner D, Nilsson JF (1992) Algorithmic & knowledge based methods: do they “unify”? In: International conference on fifth generation computer systems: FGCS’92, pp 191–198. ICOT, 1–5 June 1992Google Scholar
  33. BRJ98.
    Booch G, Rumbaugh J, Jacobson I (1998) The unified modeling language user guide. Addison-Wesley, New YorkGoogle Scholar
  34. CE00.
    Czarnecki K, Eisenecker UW (2000) Generative programming: methods, tools, and applications. Addison Wesley, New YorkGoogle Scholar
  35. Che76.
    Chen PP (1976) The entity-relationship model—toward a unified view of data. ACM Trans Database Syst 1(1): 9–36CrossRefGoogle Scholar
  36. Cod70.
    Codd EF (1970) A relational model of data for large shared data banks. Commun ACM 13(6): 377–387CrossRefzbMATHGoogle Scholar
  37. CV96.
    Casati R, Varzi AC (1996) (eds) Events. Ashgate Publishing Group, Dartmouth Publishing Co. Ltd., Surrey, 23 March 1996Google Scholar
  38. CV99.
    Casati R, Varzi A (1999) Parts and places: the structures of spatial representation. MIT Press, New YorkGoogle Scholar
  39. CV10.
    Casati R, Varzi A (2010) Events. In: Zalta EN (ed) The Stanford encyclopedia of philosophy. Springer, New YorkGoogle Scholar
  40. Dav80.
    Davidson D (1980) Essays on actions and events. Oxford University Press, OxfordGoogle Scholar
  41. Dre67.
    Dretske F (1967) Can events move? Mind76:479–492 (reprinted in [CV96, 1996], pp 415–428)Google Scholar
  42. DT97.
    Dorfman M, Thayer RH (1997) (eds) Software requirements engineering. IEEE Computer Society Press, New YorkGoogle Scholar
  43. Far90.
    Farmer DJ (1990) Being in time: the nature of time in light of McTaggart’s paradox. University Press of America, LanhamGoogle Scholar
  44. FGO12.
    Futatsugi K, Gâlinâ D, Ogata K (2012) Principles of proof scores in CafeOBJ. Theor Comput Sci 464: 90–112MathSciNetCrossRefzbMATHGoogle Scholar
  45. FHMV96.
    Fagin R, Halpern JY, Moses Y, Vardi MY (1996) Reasoning about knowledge. The MIT Press, Massachusetts Institute of Technology, CambridgeGoogle Scholar
  46. FL98.
    Fitzgerald J, Larsen PG (1998) Modelling systems—practical tools and techniques in software development. Cambridge University Press, CambridgezbMATHGoogle Scholar
  47. FM83.
    Feigenbaum EA, McCorduck P (1983) The fifth generation, 1st edn. Addison-Wesley, ReadingGoogle Scholar
  48. FMMR12.
    Furia CA, Mandrioli D, Morzenti A, Rossi M (2012) Modeling time in computing. In: Monographs in theoretical computer science. Springer, New YorkGoogle Scholar
  49. FN97.
    Futatsugi K, Nakagawa A (1997) An overview of CAFE specification environment—an algebraic approach for creating, verifying, and maintaining formal specifications over networks. In: Proceedings of the 1st international conference on formal engineering methods (ICFEM ’97), 12–14 November 1997, Hiroshima, pp 170–182. IEEE, New YorkGoogle Scholar
  50. Fow20.
    Fowler M (2012) Domain specific languages. Signature series. Addison Wesley, New YorkGoogle Scholar
  51. FvGGM90.
    Feijen WHJ, van Gasteren AJM, Gries D, Misra J (eds) (1990) Beauty is our business. In: Texts and monographs in computer science. Springer, New York (a birthday salute to Edsger W. Dijkstra)Google Scholar
  52. GGJZ00.
    Gunter CA, Gunter EL, Jackson MA, Zave P (2000) A reference model for requirements and specifications. IEEE Softw 17(3): 37–43CrossRefGoogle Scholar
  53. GHH+92.
    George CW, Haff P, Havelund K, Haxthausen AE, Milne R, Nielsen CB, Prehn S, Wagner KR (1992) The RAISE specification language. The BCS practitioner series. Prentice-Hall, Hemel HampsteadGoogle Scholar
  54. GHH+95.
    George CW, Haxthausen AE, Hughes S, Milne R, Prehn S, Pedersen JS (1995) The RAISE development method. The BCS practitioner series. Prentice-Hall, Hemel HampsteadGoogle Scholar
  55. GLMS02.
    Grötker T, Liao S, Martin G, Swan S (2002) System design with SystemC. Kluwer, DordrechtGoogle Scholar
  56. GW99.
    Ganter B, Wille R (1999) Formal concept analysis—mathematical foundations. Springer, New YorkCrossRefzbMATHGoogle Scholar
  57. Hac82.
    Hacker PMS (1982) Events and objects in space and time. Mind 91:1–19 (reprinted in [CV96], pp 429–447)Google Scholar
  58. Har87.
    Harel D (1987) Statecharts: a visual formalism for complex systems. Sci Comput Program 8(3): 231–274MathSciNetCrossRefzbMATHGoogle Scholar
  59. Hay09.
    Haywood D (2009) Domain-driven design using naked objects. The pragmatic bookshelf (an imprint of ‘the pragmatic programmers, LLC’).
  60. Hei62.
    Heidegger M (1962) Sein und Zeit (being and time). Oxford University Press, Oxford (1927)Google Scholar
  61. Hoa85.
    Hoare CAR (2004) Communicating sequential processes. In: C.A.R. Hoare series in computer science. Prentice-Hall International, New York (1985; published electronically
  62. HPK11.
    Haxthausen AE, Peleska J, Kinder S (2011) A formal approach for the construction and and verification of railway control systems. Formal Aspects Comput 23: 191–219CrossRefzbMATHGoogle Scholar
  63. IT99.
    ITU-T (1999) CCITT recommendation Z.120: message sequence chart (MSC) (1992, 1996)Google Scholar
  64. Jac95.
    Jackson MA (1995) Software requirements & specifications: a lexicon of practice, principles and prejudices. ACM Press, Addison-WesleyGoogle Scholar
  65. Jac01.
    Jackson MA (2001) Problem frames—analyzing and structuring software development problems. ACM Press, Pearson Education, Addison-Wesley, ReadingGoogle Scholar
  66. Jac06.
    Jackson D (2006) Software abstractions: logic, language, and analysis. The MIT Press, CambridgeGoogle Scholar
  67. Jac10.
    Jackson MA (2010) Program verification and system dependability. In: Boca, P, Bowen, J (eds) Formal methods: state of the art and new directions., pp. 43–78. Springer, LondonCrossRefGoogle Scholar
  68. JBR99.
    Jacobson I, Booch G, Rumbaugh J (1999) The unified software development process. Addison-Wesley, ReadingGoogle Scholar
  69. JHJ07.
    Jones CB, Hayes I, Jackson MA (2007) Deriving specfications for systems that are connected to the physical world. In: Jones C, Liu Z, Woodcock J (eds) Formal methods and hybrid real-time systems: essays in honour of Dines Bjørner and Zhou Chaochen on the occasion of their 70th birthdays, vol 4700 of Lecture notes in computer science, pp 364–390. Springer, New YorkGoogle Scholar
  70. Joh05.
    Johansson I (2005) Qualities, quantities, and the endurant–perdurant distinction in top-level ontologies. In: Althoff KD, Dengel A, Bergmann R, Nick M, Roth-Berghofer Th (eds) Professional knowledge management WM 2005, vol 3782 of Lecture notes in artificial intelligence, pp 543–550. Springer, New York. 3rd Biennial conference, Kaiserslautern, Germany, 10–13 April 2005 (revised selected papers)Google Scholar
  71. KCH+90.
    Kang KC, Cohen SG, Hess JA, Novak WE, Peterson AS (1990) FODA: feature-oriented domain analysis. Feasibility study CMU/SEI-90-TR-021. Software Engineering Institute, Carnegie Mellon University.
  72. Kim93.
    Kim J (1993) Supervenience and mind. Cambridge University Press, CambridgeCrossRefGoogle Scholar
  73. Lam02.
    Lamport L(2002) Specifying systems. Addison-Wesley, BostonzbMATHGoogle Scholar
  74. Lam02.
    Lauesen S (2002) Software requirements—styles and techniques. Addison-Wesley, ReadingGoogle Scholar
  75. LFCO87.
    Little W, Fowler HW, Coulson J, Onions CT (1987) The shorter Oxford English dictionary on historical principles. Clarendon Press, OxfordGoogle Scholar
  76. LWZ13.
    Liu Z, Woodcock JCP, Zhu H (2013) (eds) Unifying theories of programming and formal engineering methods—International Training School on Software Engineering, held at ICTAC 2013, Shanghai, 26–30 August 2013. Advanced lectures, vol 8050 of Lecture notes in computer science. Springer, New YorkGoogle Scholar
  77. MC04.
    Medvidovic N, Colbert E (2004) Domain-specific software architectures (DSSA). Power point presentation, found on the internet. Absolute Software Corp., Inc., Abs[S/W], 5 March 2004Google Scholar
  78. Mel80.
    Mellor DH (1980) Things and causes in spacetime. Br J Philos Sci 31: 282–288CrossRefGoogle Scholar
  79. Mer04.
    Staff MW (2004) Online dictionary: Merriam–Webster, Inc., Springfield
  80. MG92.
    Mettala E, Graham MH (1992) The domain specific software architecture program. In: Project report CMU/SEI-92-SR-009, Software Engineering Institute, Carnegie Mellon University, PittsburghGoogle Scholar
  81. MHS05.
    Mernik M, Heering J, Sloane AM (2005) When and how to develop domain-specific languages. ACM Comput Surv 37(4): 316–344CrossRefGoogle Scholar
  82. Nei84.
    Neighbors JM (1984) The Draco approach to constructing software from reusable components. In: IEEE transactions of software engineering, vol SE-10(5)Google Scholar
  83. PD87.
    Prieto-Díaz R (1987) Domain analysis for reusability. In: COMPSAC 87. ACM Press, New YorkGoogle Scholar
  84. PD90.
    Prieto-Díaz R (1990) Domain analysis: an introduction. Softw Eng Notes 15(2): 47–54CrossRefGoogle Scholar
  85. PDA91.
    Prieto-Díaz R, Arrango G (1991) Domain analysis and software systems modelling. IEEE Computer Society Press, New YorkGoogle Scholar
  86. Pfl01.
    Pfleeger SL (2001) Software engineering, theory and practice, 2nd edn. Prentice-Hall, New YorkGoogle Scholar
  87. Pi99.
    Tony Pi C-Y (1999) Mereology in event semantics. PhD, McGill University, MontrealGoogle Scholar
  88. Pre01.
    Pressman RS (2001) Software engineering, a practitioner’s approach, international edn. Computer science series, 5th edn. McGraw-Hill, New York (1981–2001)Google Scholar
  89. Qui79.
    Quinton A (1979) Objects and events. Mind 88: 197–214CrossRefGoogle Scholar
  90. Rei10.
    Reisig W (2010) Petrinetze: modellierungstechnik, analysemethoden, fallstudien. Leitfäden der Informatik. Vieweg + Teubner, 1st edn, 15 June 2010Google Scholar
  91. RG04.
    Renz J, Guesgen HW (eds) (2004) Spatial and temporal reasoning. J AI Commun 14(4) (Amsterdam, special issue, IOS Press)Google Scholar
  92. RJB98.
    Rumbaugh J, Jacobson I, Booch G (1998) The unified modeling language reference manual. Addison-Wesley, ReadingGoogle Scholar
  93. SG96.
    Shaw M, Garlan D (1996) Software architecture: perspectives on an emerging discipline. Prentice Hall, New YorkzbMATHGoogle Scholar
  94. Som06.
    Sommerville I (2006) Software engineering, 8th edn. Pearson, New YorkzbMATHGoogle Scholar
  95. Sow99.
    Sowa JF (1999) Knowledge representation: logical, philosophical, and computational foundations. Brooks/Cole Thompson Learning, 17 August 1999Google Scholar
  96. Spi01.
    Spinellis D (2001) Notable design patterns for domain specific languages. J Syst Softw 56(1): 91–99CrossRefGoogle Scholar
  97. ST12.
    Sannella D, Tarlecki A (2012) Foundations of algebraic semantcs and formal software development. In: Monographs in theoretical computer science. Springer, HeidelbergGoogle Scholar
  98. Sta99.
    Staff of Encyclopœdia Brittanica (1999) Encyclopœdia Brittanica. Merriam Webster/Brittanica.
  99. Tra94.
    Tracz W (1994) Domain-specific software architecture (DSSA) frequently asked questions (FAQ). Softw Eng Notes 19(2), 52–56CrossRefGoogle Scholar
  100. van91.
    van Benthem J (1991) The logic of time, vol 156 of Synthese library: studies in epistemology, logic, methhodology, and philosophy of science (ed Jaakko Hintika), 2nd edn. Kluwer Academic Publishers, Dordrecht (1983)Google Scholar
  101. van09.
    van Lamsweerde A (2009) Requirements engineering: from system goals to UML models to software specifications. Wiley, New YorkGoogle Scholar
  102. WD96.
    Woodcock JCP, Davies J (1996) Using Z: specification, proof and refinement. In: Prentice Hall international series in computer scienceGoogle Scholar
  103. WDS06.
    Wang H, Dong JS, Sun J (2006) Reasoning support for semantic web ontology family languages using alloy. Int J Multiagent Grid Syst (IOS Press) 2(4): 455–471CrossRefzbMATHGoogle Scholar
  104. Whi20.
    Whitehead AN (1920) The concept of nature. Cambridge University Press, CambridgezbMATHGoogle Scholar
  105. WS12.
    Wilson G, Shpall S (2012) Action. In: Zalta EN (ed) The Stanford encyclopedia of philosophy, summer 2012 ednGoogle Scholar
  106. WYZ94.
    Wang J, Yu X, Zhou CC (1994) Hybrid refinement. In: Research report 20, UNU/IIST, Macau, 1 April 1994Google Scholar
  107. ZH04.
    Zhou CC, Hansen MR (2004) Duration calculus: a formal approach to real-time systems. In: Monographs in theoretical computer science. An EATCS series. Springer, New YorkGoogle Scholar
  108. ZWZ13.
    Zhan N, Wang S, Zhao H (2013) Formal modelling, analysis and verification of hybrid systems. In: ICTAC Training School on Software Engineering, pp 207–281. doi: 10.1007/978-3-642-39721-9_5, DBLP,

Copyright information

© British Computer Society 2016

Authors and Affiliations

  1. 1.HolteDenmark
  2. 2.DTUKgs. LyngbyDenmark

Personalised recommendations