Domain Science & Engineering. a Foundation for Software Development
Total Page:16
File Type:pdf, Size:1020Kb
Downloaded from orbit.dtu.dk on: Sep 28, 2021 Domain Science & Engineering. A Foundation for Software Development Bjørner, Dines Publication date: 2020 Document Version Publisher's PDF, also known as Version of record Link back to DTU Orbit Citation (APA): Bjørner, D. (2020). Domain Science & Engineering. A Foundation for Software Development. Technical University of Denmark. General rights Copyright and moral rights for the publications made accessible in the public portal are retained by the authors and/or other copyright owners and it is a condition of accessing publications that users recognise and abide by the legal requirements associated with these rights. Users may download and print one copy of any publication from the public portal for the purpose of private study or research. You may not further distribute the material or use it for any profit-making activity or commercial gain You may freely distribute the URL identifying the publication in the public portal If you believe that this document breaches copyright please contact us providing details, and we will remove access to the work immediately and investigate your claim. Dines Bjørner Domain Science & Engineering A Foundation for Software Development A Dr.Techn. Thesis Submission for The Technical University of Denmark September 6, 2019: 16:27 www.imm.dtu.dk/~dibj/2019/cacm−research/cacm−research−1.pdf Phenomena of a Universe of Discourse External Qualities E Entities = Describables Indescribables Observer function "states" E Endurants Perdurants Materials = Solids = E Continuous Endurants Discrete Endurants Events Natural Man−made Actions Actors Cont. Ends. NS Cont. Ends. E Physical Parts Living Species Structures Non−solids Channels Behaviours E1,...,Es LS Natural Parts Artifacts Plants Animals Transcendense Humans E−set Atomic E1,...,Ep Composite Concrete Type Internal Qualities Unique Identifiers Mereologies Attributes transcendental injection of endurants into perdurants Fredsvej 11, DK–2840 Holte, Denmark and Technical University of Denmark E-mail: [email protected], URL: www.imm.dtu.dk/~dibj iii Dr.techn. Tesen Domæne Videnskab og Ingeniørkunst En Basis for Programmeludvikling AFHANDLINGENS TESE Denne afhandlings tese er to-foldig: • (i) domæne videnskab og ingeniørkunst tilbyder en mulig, første fase af programmel-udvikling; • (ii) domæne videnskab og ingeniørkunst tilbyder et værdigt forsknings-felt. Vi motiverer denne dobbelte p˚astand som følger: • (a) begreberne domæne videnskab og domæne ingeniørkunst er nye; • (b) begreberne domæne videnskab og domæne ingeniørkunst gives en veldefineret betydning; • (c) domæne videnskab og domæne ingeniørkunst tilskrives et fundament in denne tese; • (d) og deres rolle i programmel-udvikling etableres. Domæne videnskab og domæne ingeniørkunst f˚ar programmel-udvikling til at fremstaa i et helt nyt lys. DANSK RESUME´ Afhandlingen1 best˚ar af revisioner af seks tidligere publicerede artikler. Afhandingen fremstilles og ind- sendes som en monografi. Kapitel 1, Domain Analysis & Description [Domæne Analyse og Beskrivelse], er afhandlingens kerne-punkt. Her studeres kalkyler til brug ved analyse og beskrivelse af observ´erbare statiske en- titeter (kaldet ‘enduranter’) i manifest´erbare, diskret dynamiske domæner. Til ‘enduranter’ knyttes der tre klasser “interne” kvaliteter: eentyding identification, mereologi og attributter. Ved en transcendental deduktion knyttes tids-bestemte processer (kaldet ‘perduranter’) til diskrete enduranter — og det vises hvorledes disse processer’s signatur følger fra ‘interne’ endurant kvaliteter. Kapitel 2, Domain Facets: Analysis & Description [Domæne Facetter], studerer yderligere klasser af egenskaber ved manifest´erbare, diskret dynamiske domæner: teknologi-understøttelse, regler og regu- lativer, manuskripter, licens sprog, ledelse & organisation, og menneskelig opførsel. Kapitel 3, Towards Formal Models of [Analysis & Description] Processes and Prompts [Formelle Modeller af Analyse & Beskrivelse], præsenterer en rimelig matematisk model af domæne-analyse & -beskrivelses processen. Kapitel 4, To Every Manifest Domain Mereology [there corresponds] a CSP Expression [Til en- hver Manifest´erbar Domæne Mereologi korrensponderes et CSP Udtryk], viser hvorledes Stanisław Le´sniewski’s axiom system for mereologi har en model i den m˚ade vi (f.eks., i Kapitel 1) beskriver s˚adanne domæner. Kapitel 5, From Domain Descriptions to Requirements Prescriptions [Fra Domæne-Beskrivelser til Krav-Specifikationer], viser hvorledes man rigorøst kan aflede krav-specifikationer fra domæne- beskrivelser. Der indføres, som noget nyt, det at projicere, instantiere, determinere, udvide og “tilpasse” domæne/krav-specifikationer. S˚akaldte “bruger-” og “system”-krav “erstattes” af grænseflade-, afledte- og maskin-krav. Kapitel 6, Demos, Simulators, Monitors and Controllers [“Demo”er, Simulatorer, Overv˚agning og Styring], udgør en “let” sag, en fortolkning af de muligheder de indbyrdes afhængigheder, som tre- kløveret domæne-, krav-, hhv. program-specifikationer, muliggør ved fortolkningen af begreberne simu- lering, overv˚agning og styring. Kapitel 7, Summing Up [Opsummering], opsummerer og konkluderer. 1 Siderne i–vi + 1–214 + bibliografi September 6, 2019, 16:27, A Foundation for Software Development c Dines Bjørner 2018, Fredsvej 11, DK–2840 Holte, Denmark iv The Dr.techn. Thesis Domain Science and Engineering A Foundation for Software Development THE THESIS The thesis of this submission is twofold: • (i) domain science & engineering is a possible, initial phase of software development; • (ii) domain science & engineering is a worthwhile topic of research. We support this claim as follows: • (a) the concepts of domain science and domain engineering are new; • (b) the terms domain science and domain engineering are well-defined; • (c) domain science and domain engineering are given a foundation in this thesis; • (d) and their rˆole in software development is established. Domain Science & Engineering casts a completely new light on Software Development. ENGLISH SUMMARY The thesis2 consists of revisions of six previously published papers — presented and submitted as a monograph. Chapter 1, Domain Analysis & Description, is the core chapter of the thesis. It studies calculi for the analysis and description of observable static entities (called ‘endurants’) of manifest, discrete dy- namics domains. With endurants we then associate “internal” qualities: unique identification, mereology and attributes. By a transcendental deduction we then associate time-evolving behaviours with discrete endurants — and it is shown how the signature of such behaviours follows from ‘internal’ qualities of the discrete endurants. Chapter 2, Domain Facets: Analysis & Description, studies further classes of properties of manifest, discrete dynamics domains: technology support, rules & regulations, scripts, license languages, manage- ment & organisation, and human behaviour. Chapter 3, Formal Models of [Analysis & Description] Processes and Prompts, presents a suitable mathematical model of the domain analysis & description process. Chapter 4, To Every Manifest Domain Mereology [there corresponds] a CSP Expression, shows how Stanisław Le´sniewski’s axiom system for mereology has a model in the way we (f.ex., in Chapter 1) describe such domains. Chapter 5, From Domain Descriptions to Requirements Prescriptions, shows how one can rigorously derive requirements prescriptions from domain descriptions. We introduce, as new concepts, projection, instantiation, determination, extension, and the “fitting” of domain/requirementsspecifications. So-called “user” and “system” requirements are replaced by interface, derived and machine requirements. Chapter 6, Demos, Simulators, Monitors and Controllers, is a somewhat “lightweight” chapter: an interpretation of the of the mutual dependencies, which the triptych — of domain, requirements and program specifications — makes possible in the interpretation of the concepts of simulation, monitoring and control. Chapter 7, Summing Up, summarises and concludes. Dines Bjørner, September 6, 2019: 16:27 Fredsvej 11, DK–2840 Holte, Denmark 2 Pages i–vi, 1–214 + bibliography. c Dines Bjørner 2018 Fredsvej 11, DK–2840 Holte, Denmark Domain Science & Engineering September 6, 2019, 16:27 Preface The Triptych Dogma 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 it. General The thesis of this monograph is twofold: (i) that domain engineering is a viable, yes, we would claim, necessary initial phase of software development; and (ii) that domain science & engineering is a worthwhile topic of research. I mean this rather seriously: How can one think of implementing software, preferably satisfying some requirements, without demonstrating that one understands the domain ? So in this thesis I shall explain what domain engineering is, some of the science that goes with it, and how one can ’derive” requirements prescriptions (for computing systems) from domain descriptions. But there is an altogether different reason, also, for presenting this thesis: Software houses may not take up the challenge to develop software that satisfies customers expectations, that is, reflects the domain such as these customers know it, and software that is correct with respect to requirements, with proofs of correctness often having to refer to the domain. But computing scientists are shown, in these chapters, that domain science