Skip to main content
Log in

Manifest domains: analysis and description

  • Original Article
  • Published:
Formal Aspects of Computing

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Abrial J (2009) The B book: assigning programs to meanings and Modeling in event-B: system and software engineering. Cambridge University Press, Cambridge (1996)

  2. Audi R (1995) The Cambridge dictionary of philosophy. Cambridge University Press, Cambridge

    Google Scholar 

  3. Bachman C (1969) Data structure diagrams. Data Base J ACM SIGBDP 1(2)

  4. Badiou A (2005) Being and event. Continuum (Lêtre et l’événements, Edition du Seuil, 1988)

  5. Baader F, Calvanese D, McGuinness D, Nardi D, Patel-Schneider P (2003) The description logic handbook: theory, implementation and applications. Cambrige University Press, Cambrige

    MATH  Google Scholar 

  6. Bittner T, Donnelly M, Smith B (2004) Endurants and perdurants in directly depicting ontologies. AI Commun 17(4): 247–258 (IOS Press, in [RG04])

    MathSciNet  MATH  Google Scholar 

  7. 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, Heidelberg

  8. 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. http://www.aifb.uni-karlsruhe.de/WBS/broker/KA2.htm

  9. 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). http://www.imm.dtu.dk/~db/fmuml.pdf

  10. 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, Heidelberg

    Chapter  Google Scholar 

  11. Bjørner D, Jones CB (eds) (1978) The Vienna development method: the meta-language. LNCS, vol 61. Springer, New York

  12. Bjørner, D, Jones, CB (eds) (1982) Formal specification and software development. Prentice-Hall, New York

    MATH  Google Scholar 

  13. 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). http://www.imm.dtu.dk/~db/.pdf

  14. 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. http://www2.imm.dtu.dk/~db/zohar.pdf

  15. Bjørner D (2006) Software engineering, vol 3. Domains, requirements and software design. Texts in theoretical computer science, the EATCS series. Springer, New York

  16. 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–17

  17. 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, Heidelberg

    Google Scholar 

  18. 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–70

  19. 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, London

    Chapter  Google Scholar 

  20. 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–116

    MATH  Google Scholar 

  21. 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 2010

  22. Bjørner D (2011) Believable software management. Encycl Softw Eng 1(1): 1–32

    Google Scholar 

  23. 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–120

    MATH  Google Scholar 

  24. 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, Heidelberg

  25. 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)

  26. Bjørner D (2014) A rôle for mereology in domain science and engineering. In: Calosi C, Graziani P (eds) Synthese library. Springer, Amsterdam

  27. 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 York

  28. Bjørner D (2014) Domain engineering—a basis for safety critical software. in: Invited keynote, ASSC2014: Australian system safety conference, Melbourne, 26–28 May 2014

  29. Bjørner D (2016) Domain facets: analysis & description. Submitted for consideration by formal aspects of computing. http://www.imm.dtu.dk/~dibj/2016/facets/faoc-facets.pdf

  30. Bjørner D (2016) From domain descriptions to requirements prescriptions—a different approach to requirements engineering. Submitted for consideration by formal aspects of computing

  31. Blizard WD (1990) A formal theory of objects, space and time. J Symbol Logic 55(1): 74–89

    Article  MathSciNet  MATH  Google Scholar 

  32. 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 1992

  33. Booch G, Rumbaugh J, Jacobson I (1998) The unified modeling language user guide. Addison-Wesley, New York

    Google Scholar 

  34. Czarnecki K, Eisenecker UW (2000) Generative programming: methods, tools, and applications. Addison Wesley, New York

    Google Scholar 

  35. Chen PP (1976) The entity-relationship model—toward a unified view of data. ACM Trans Database Syst 1(1): 9–36

    Article  Google Scholar 

  36. Codd EF (1970) A relational model of data for large shared data banks. Commun ACM 13(6): 377–387

    Article  MATH  Google Scholar 

  37. Casati R, Varzi AC (1996) (eds) Events. Ashgate Publishing Group, Dartmouth Publishing Co. Ltd., Surrey, 23 March 1996

  38. Casati R, Varzi A (1999) Parts and places: the structures of spatial representation. MIT Press, New York

    Google Scholar 

  39. Casati R, Varzi A (2010) Events. In: Zalta EN (ed) The Stanford encyclopedia of philosophy. Springer, New York

  40. Davidson D (1980) Essays on actions and events. Oxford University Press, Oxford

    Google Scholar 

  41. Dretske F (1967) Can events move? Mind76:479–492 (reprinted in [CV96, 1996], pp 415–428)

  42. Dorfman M, Thayer RH (1997) (eds) Software requirements engineering. IEEE Computer Society Press, New York

  43. Farmer DJ (1990) Being in time: the nature of time in light of McTaggart’s paradox. University Press of America, Lanham

    Google Scholar 

  44. Futatsugi K, Gâlinâ D, Ogata K (2012) Principles of proof scores in CafeOBJ. Theor Comput Sci 464: 90–112

    Article  MathSciNet  MATH  Google Scholar 

  45. Fagin R, Halpern JY, Moses Y, Vardi MY (1996) Reasoning about knowledge. The MIT Press, Massachusetts Institute of Technology, Cambridge

  46. Fitzgerald J, Larsen PG (1998) Modelling systems—practical tools and techniques in software development. Cambridge University Press, Cambridge

    MATH  Google Scholar 

  47. Feigenbaum EA, McCorduck P (1983) The fifth generation, 1st edn. Addison-Wesley, Reading

    Google Scholar 

  48. Furia CA, Mandrioli D, Morzenti A, Rossi M (2012) Modeling time in computing. In: Monographs in theoretical computer science. Springer, New York

  49. 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 York

  50. Fowler M (2012) Domain specific languages. Signature series. Addison Wesley, New York

    Google Scholar 

  51. 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)

  52. Gunter CA, Gunter EL, Jackson MA, Zave P (2000) A reference model for requirements and specifications. IEEE Softw 17(3): 37–43

    Article  Google Scholar 

  53. 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 Hampstead

  54. George CW, Haxthausen AE, Hughes S, Milne R, Prehn S, Pedersen JS (1995) The RAISE development method. The BCS practitioner series. Prentice-Hall, Hemel Hampstead

  55. Grötker T, Liao S, Martin G, Swan S (2002) System design with SystemC. Kluwer, Dordrecht

  56. Ganter B, Wille R (1999) Formal concept analysis—mathematical foundations. Springer, New York

    Book  MATH  Google Scholar 

  57. Hacker PMS (1982) Events and objects in space and time. Mind 91:1–19 (reprinted in [CV96], pp 429–447)

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

    Article  MathSciNet  MATH  Google Scholar 

  59. Haywood D (2009) Domain-driven design using naked objects. The pragmatic bookshelf (an imprint of ‘the pragmatic programmers, LLC’). http://pragprog.com/

  60. Heidegger M (1962) Sein und Zeit (being and time). Oxford University Press, Oxford (1927)

  61. Hoare CAR (2004) Communicating sequential processes. In: C.A.R. Hoare series in computer science. Prentice-Hall International, New York (1985; published electronically http://www.usingcsp.com/cspbook.pdf

  62. 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–219

    Article  MATH  Google Scholar 

  63. ITU-T (1999) CCITT recommendation Z.120: message sequence chart (MSC) (1992, 1996)

  64. Jackson MA (1995) Software requirements & specifications: a lexicon of practice, principles and prejudices. ACM Press, Addison-Wesley

    Google Scholar 

  65. Jackson MA (2001) Problem frames—analyzing and structuring software development problems. ACM Press, Pearson Education, Addison-Wesley, Reading

  66. Jackson D (2006) Software abstractions: logic, language, and analysis. The MIT Press, Cambridge

    Google Scholar 

  67. 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, London

    Chapter  Google Scholar 

  68. Jacobson I, Booch G, Rumbaugh J (1999) The unified software development process. Addison-Wesley, Reading

    Google Scholar 

  69. 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 York

  70. 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)

  71. 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. http://www.sei.cmu.edu/library/abstracts/reports/90tr021.cfm

  72. Kim J (1993) Supervenience and mind. Cambridge University Press, Cambridge

    Book  Google Scholar 

  73. Lamport L(2002) Specifying systems. Addison-Wesley, Boston

    MATH  Google Scholar 

  74. Lauesen S (2002) Software requirements—styles and techniques. Addison-Wesley, Reading

    Google Scholar 

  75. Little W, Fowler HW, Coulson J, Onions CT (1987) The shorter Oxford English dictionary on historical principles. Clarendon Press, Oxford

    Google Scholar 

  76. 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 York

  77. 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 2004

  78. Mellor DH (1980) Things and causes in spacetime. Br J Philos Sci 31: 282–288

    Article  Google Scholar 

  79. Staff MW (2004) Online dictionary: http://www.m-w.com/home.ht. Merriam–Webster, Inc., Springfield

  80. 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, Pittsburgh

  81. Mernik M, Heering J, Sloane AM (2005) When and how to develop domain-specific languages. ACM Comput Surv 37(4): 316–344

    Article  Google Scholar 

  82. Neighbors JM (1984) The Draco approach to constructing software from reusable components. In: IEEE transactions of software engineering, vol SE-10(5)

  83. Prieto-Díaz R (1987) Domain analysis for reusability. In: COMPSAC 87. ACM Press, New York

  84. Prieto-Díaz R (1990) Domain analysis: an introduction. Softw Eng Notes 15(2): 47–54

    Article  Google Scholar 

  85. Prieto-Díaz R, Arrango G (1991) Domain analysis and software systems modelling. IEEE Computer Society Press, New York

    Google Scholar 

  86. Pfleeger SL (2001) Software engineering, theory and practice, 2nd edn. Prentice-Hall, New York

    Google Scholar 

  87. Tony Pi C-Y (1999) Mereology in event semantics. PhD, McGill University, Montreal

  88. Pressman RS (2001) Software engineering, a practitioner’s approach, international edn. Computer science series, 5th edn. McGraw-Hill, New York (1981–2001)

  89. Quinton A (1979) Objects and events. Mind 88: 197–214

    Article  Google Scholar 

  90. Reisig W (2010) Petrinetze: modellierungstechnik, analysemethoden, fallstudien. Leitfäden der Informatik. Vieweg + Teubner, 1st edn, 15 June 2010

  91. Renz J, Guesgen HW (eds) (2004) Spatial and temporal reasoning. J AI Commun 14(4) (Amsterdam, special issue, IOS Press)

  92. Rumbaugh J, Jacobson I, Booch G (1998) The unified modeling language reference manual. Addison-Wesley, Reading

    Google Scholar 

  93. Shaw M, Garlan D (1996) Software architecture: perspectives on an emerging discipline. Prentice Hall, New York

    MATH  Google Scholar 

  94. Sommerville I (2006) Software engineering, 8th edn. Pearson, New York

    MATH  Google Scholar 

  95. Sowa JF (1999) Knowledge representation: logical, philosophical, and computational foundations. Brooks/Cole Thompson Learning, 17 August 1999

  96. Spinellis D (2001) Notable design patterns for domain specific languages. J Syst Softw 56(1): 91–99

    Article  Google Scholar 

  97. Sannella D, Tarlecki A (2012) Foundations of algebraic semantcs and formal software development. In: Monographs in theoretical computer science. Springer, Heidelberg

  98. Staff of Encyclopœdia Brittanica (1999) Encyclopœdia Brittanica. Merriam Webster/Brittanica. http://www.pragprog.com/

  99. Tracz W (1994) Domain-specific software architecture (DSSA) frequently asked questions (FAQ). Softw Eng Notes 19(2), 52–56

    Article  Google Scholar 

  100. 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)

  101. van Lamsweerde A (2009) Requirements engineering: from system goals to UML models to software specifications. Wiley, New York

    Google Scholar 

  102. Woodcock JCP, Davies J (1996) Using Z: specification, proof and refinement. In: Prentice Hall international series in computer science

  103. 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–471

    Article  MATH  Google Scholar 

  104. Whitehead AN (1920) The concept of nature. Cambridge University Press, Cambridge

    MATH  Google Scholar 

  105. Wilson G, Shpall S (2012) Action. In: Zalta EN (ed) The Stanford encyclopedia of philosophy, summer 2012 edn

  106. Wang J, Yu X, Zhou CC (1994) Hybrid refinement. In: Research report 20, UNU/IIST, Macau, 1 April 1994

  107. 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 York

  108. 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, http://dblp.uni-trier.de

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Dines Bjørner.

Additional information

Jim Woodcock

To the memory of Peter Lucas: 13 Jan 1935–2 Feb 2015

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Bjørner, D. Manifest domains: analysis and description. Form Asp Comp 29, 175–225 (2017). https://doi.org/10.1007/s00165-016-0385-z

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00165-016-0385-z

Keywords

Navigation