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.
Similar content being viewed by others
References
Abrial J (2009) The B book: assigning programs to meanings and Modeling in event-B: system and software engineering. Cambridge University Press, Cambridge (1996)
Audi R (1995) The Cambridge dictionary of philosophy. Cambridge University Press, Cambridge
Bachman C (1969) Data structure diagrams. Data Base J ACM SIGBDP 1(2)
Badiou A (2005) Being and event. Continuum (Lêtre et l’événements, Edition du Seuil, 1988)
Baader F, Calvanese D, McGuinness D, Nardi D, Patel-Schneider P (2003) The description logic handbook: theory, implementation and applications. Cambrige University Press, Cambrige
Bittner T, Donnelly M, Smith B (2004) Endurants and perdurants in directly depicting ontologies. AI Commun 17(4): 247–258 (IOS Press, in [RG04])
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
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
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
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
Bjørner D, Jones CB (eds) (1978) The Vienna development method: the meta-language. LNCS, vol 61. Springer, New York
Bjørner, D, Jones, CB (eds) (1982) Formal specification and software development. Prentice-Hall, New York
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
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
Bjørner D (2006) Software engineering, vol 3. Domains, requirements and software design. Texts in theoretical computer science, the EATCS series. Springer, New York
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
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
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
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
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
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
Bjørner D (2011) Believable software management. Encycl Softw Eng 1(1): 1–32
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
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
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)
Bjørner D (2014) A rôle for mereology in domain science and engineering. In: Calosi C, Graziani P (eds) Synthese library. Springer, Amsterdam
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
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
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
Bjørner D (2016) From domain descriptions to requirements prescriptions—a different approach to requirements engineering. Submitted for consideration by formal aspects of computing
Blizard WD (1990) A formal theory of objects, space and time. J Symbol Logic 55(1): 74–89
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
Booch G, Rumbaugh J, Jacobson I (1998) The unified modeling language user guide. Addison-Wesley, New York
Czarnecki K, Eisenecker UW (2000) Generative programming: methods, tools, and applications. Addison Wesley, New York
Chen PP (1976) The entity-relationship model—toward a unified view of data. ACM Trans Database Syst 1(1): 9–36
Codd EF (1970) A relational model of data for large shared data banks. Commun ACM 13(6): 377–387
Casati R, Varzi AC (1996) (eds) Events. Ashgate Publishing Group, Dartmouth Publishing Co. Ltd., Surrey, 23 March 1996
Casati R, Varzi A (1999) Parts and places: the structures of spatial representation. MIT Press, New York
Casati R, Varzi A (2010) Events. In: Zalta EN (ed) The Stanford encyclopedia of philosophy. Springer, New York
Davidson D (1980) Essays on actions and events. Oxford University Press, Oxford
Dretske F (1967) Can events move? Mind76:479–492 (reprinted in [CV96, 1996], pp 415–428)
Dorfman M, Thayer RH (1997) (eds) Software requirements engineering. IEEE Computer Society Press, New York
Farmer DJ (1990) Being in time: the nature of time in light of McTaggart’s paradox. University Press of America, Lanham
Futatsugi K, Gâlinâ D, Ogata K (2012) Principles of proof scores in CafeOBJ. Theor Comput Sci 464: 90–112
Fagin R, Halpern JY, Moses Y, Vardi MY (1996) Reasoning about knowledge. The MIT Press, Massachusetts Institute of Technology, Cambridge
Fitzgerald J, Larsen PG (1998) Modelling systems—practical tools and techniques in software development. Cambridge University Press, Cambridge
Feigenbaum EA, McCorduck P (1983) The fifth generation, 1st edn. Addison-Wesley, Reading
Furia CA, Mandrioli D, Morzenti A, Rossi M (2012) Modeling time in computing. In: Monographs in theoretical computer science. Springer, New York
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
Fowler M (2012) Domain specific languages. Signature series. Addison Wesley, New York
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)
Gunter CA, Gunter EL, Jackson MA, Zave P (2000) A reference model for requirements and specifications. IEEE Softw 17(3): 37–43
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
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
Grötker T, Liao S, Martin G, Swan S (2002) System design with SystemC. Kluwer, Dordrecht
Ganter B, Wille R (1999) Formal concept analysis—mathematical foundations. Springer, New York
Hacker PMS (1982) Events and objects in space and time. Mind 91:1–19 (reprinted in [CV96], pp 429–447)
Harel D (1987) Statecharts: a visual formalism for complex systems. Sci Comput Program 8(3): 231–274
Haywood D (2009) Domain-driven design using naked objects. The pragmatic bookshelf (an imprint of ‘the pragmatic programmers, LLC’). http://pragprog.com/
Heidegger M (1962) Sein und Zeit (being and time). Oxford University Press, Oxford (1927)
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
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
ITU-T (1999) CCITT recommendation Z.120: message sequence chart (MSC) (1992, 1996)
Jackson MA (1995) Software requirements & specifications: a lexicon of practice, principles and prejudices. ACM Press, Addison-Wesley
Jackson MA (2001) Problem frames—analyzing and structuring software development problems. ACM Press, Pearson Education, Addison-Wesley, Reading
Jackson D (2006) Software abstractions: logic, language, and analysis. The MIT Press, Cambridge
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
Jacobson I, Booch G, Rumbaugh J (1999) The unified software development process. Addison-Wesley, Reading
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
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)
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
Kim J (1993) Supervenience and mind. Cambridge University Press, Cambridge
Lamport L(2002) Specifying systems. Addison-Wesley, Boston
Lauesen S (2002) Software requirements—styles and techniques. Addison-Wesley, Reading
Little W, Fowler HW, Coulson J, Onions CT (1987) The shorter Oxford English dictionary on historical principles. Clarendon Press, Oxford
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
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
Mellor DH (1980) Things and causes in spacetime. Br J Philos Sci 31: 282–288
Staff MW (2004) Online dictionary: http://www.m-w.com/home.ht. Merriam–Webster, Inc., Springfield
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
Mernik M, Heering J, Sloane AM (2005) When and how to develop domain-specific languages. ACM Comput Surv 37(4): 316–344
Neighbors JM (1984) The Draco approach to constructing software from reusable components. In: IEEE transactions of software engineering, vol SE-10(5)
Prieto-Díaz R (1987) Domain analysis for reusability. In: COMPSAC 87. ACM Press, New York
Prieto-Díaz R (1990) Domain analysis: an introduction. Softw Eng Notes 15(2): 47–54
Prieto-Díaz R, Arrango G (1991) Domain analysis and software systems modelling. IEEE Computer Society Press, New York
Pfleeger SL (2001) Software engineering, theory and practice, 2nd edn. Prentice-Hall, New York
Tony Pi C-Y (1999) Mereology in event semantics. PhD, McGill University, Montreal
Pressman RS (2001) Software engineering, a practitioner’s approach, international edn. Computer science series, 5th edn. McGraw-Hill, New York (1981–2001)
Quinton A (1979) Objects and events. Mind 88: 197–214
Reisig W (2010) Petrinetze: modellierungstechnik, analysemethoden, fallstudien. Leitfäden der Informatik. Vieweg + Teubner, 1st edn, 15 June 2010
Renz J, Guesgen HW (eds) (2004) Spatial and temporal reasoning. J AI Commun 14(4) (Amsterdam, special issue, IOS Press)
Rumbaugh J, Jacobson I, Booch G (1998) The unified modeling language reference manual. Addison-Wesley, Reading
Shaw M, Garlan D (1996) Software architecture: perspectives on an emerging discipline. Prentice Hall, New York
Sommerville I (2006) Software engineering, 8th edn. Pearson, New York
Sowa JF (1999) Knowledge representation: logical, philosophical, and computational foundations. Brooks/Cole Thompson Learning, 17 August 1999
Spinellis D (2001) Notable design patterns for domain specific languages. J Syst Softw 56(1): 91–99
Sannella D, Tarlecki A (2012) Foundations of algebraic semantcs and formal software development. In: Monographs in theoretical computer science. Springer, Heidelberg
Staff of Encyclopœdia Brittanica (1999) Encyclopœdia Brittanica. Merriam Webster/Brittanica. http://www.pragprog.com/
Tracz W (1994) Domain-specific software architecture (DSSA) frequently asked questions (FAQ). Softw Eng Notes 19(2), 52–56
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)
van Lamsweerde A (2009) Requirements engineering: from system goals to UML models to software specifications. Wiley, New York
Woodcock JCP, Davies J (1996) Using Z: specification, proof and refinement. In: Prentice Hall international series in computer science
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
Whitehead AN (1920) The concept of nature. Cambridge University Press, Cambridge
Wilson G, Shpall S (2012) Action. In: Zalta EN (ed) The Stanford encyclopedia of philosophy, summer 2012 edn
Wang J, Yu X, Zhou CC (1994) Hybrid refinement. In: Research report 20, UNU/IIST, Macau, 1 April 1994
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
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
Author information
Authors and Affiliations
Corresponding author
Additional information
Jim Woodcock
To the memory of Peter Lucas: 13 Jan 1935–2 Feb 2015
Rights and permissions
About this article
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
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00165-016-0385-z