Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Manifest domains: analysis and description
Bjørner D. Formal Aspects of Computing29 (2):175-225,2017.Type:Article
Date Reviewed: Aug 11 2017

Dines Bjørner in numerous publications suggested a triptych view of software engineering, specified in this paper as follows: “before hardware and software systems can be designed and coded, we must have a reasonable grasp of ‘its’ requirements; before requirements can be prescribed, we must have a reasonable grasp of ‘the underlying’ domain.” Such an approach has been successfully used in other engineering disciplines for millennia: for a well-known example, when we want to get from here to there, we use a roadmap, the concept of which is based on Hellenistic mathematical geography, a typical scientific theory using a model of the surface of the Earth on a spherical surface with two spherical coordinates and using projections in order to represent the spherical surface on plane charts [1]. The roadmap is a business domain model. Without this domain model, activities associated with the domain (like traveling, building new roads, or adding capacity to existing ones) would be rather difficult. Regretfully, “in contrast with other types of engineers, ‘software engineers [generally] do not know how to model the domain in which their software operates’ (D. Bjørner). If only those who are mesmerized by their employees’ C++ skills would finally understand this!” [2].

This buzzword-free paper is one of the recent foundational presentations of domain engineering by the author. He defines a manifest domain as “a human- and artifact-assisted arrangement of endurant, that is spatially ‘stable,’ and perdurant, that is temporally ‘fleeting,’ entities. Endurant entities are either parts or components or materials. Perdurant entities are either actions or events or behaviors.” Thus, entities do not exist in isolation. A domain description is a collection of pairs of narrative and corresponding formal texts, each pair describing aspects of an entity. (Presumably, the narratives are to be understandable by domain stakeholders.) The concepts of (atomic or composite) part, component, material, and so on are defined later, based on the decisions of the domain engineer during modeling. These decisions include the choice of domain phenomena to be included in the model, the endowment (or not) of modeled entities with internal qualities, and so on. Clearly, a good domain engineer makes such decisions in cooperation with domain stakeholders, but stakeholders and their conceptually (or otherwise!) different views are considered elsewhere, for example, in [3], that, in my opinion, may be read simultaneously with or even before reading this paper. The domain engineer’s decisions are based on a structured set of principles, techniques, and tools described in the paper, and this set is “embodied in a set of analysis and description prompts” which, in the opinion of Bjørner, is novel. (This set is in fact a structured system because the prompts are not isolated.)

Bjørner stresses that “at the present time, domain analysis appears to be partly an artistic, partly a scientific endeavor. Until such a time when domain analysis and description principles, techniques and tools have matured, it will remain so.” Furthermore, “of course, analysis and description is a trial-and-error, iterative process. During a sequence of analyses, that is, analysis prompts, the analyzer ‘discovers’ either more pleasing abstractions or that earlier analyses or descriptions were wrong, or that an entity either need be abstracted or made less abstract. So they are corrected.” This is where, one hopes, tacit assumptions will be articulated. Also, different domain engineers and stakeholders will usually focus on different aspects of the domain leading to different domain models. This is as it should be: Bjørner emphasizes that there is beauty not only in the result, but also in the process of analyzing and describing a domain. This process, in particular, includes conjectures and refutations associated with types. Based on my own experience, I wholeheartedly agree.

The paper includes many realistic examples, and a lengthy reference list of other contributions by Bjørner (some with coauthors) that, in turn, include more or less complete sketches of realistic models of such domains as container lines, pipelines, road transportation, a credit card system, a weather information system, and the Tokyo Stock Exchange. These models take care also of unpleasant events or behaviors: “In the real world, i.e., in the domain, all is possible: Diligent staff will indeed follow-up on inquiries, orders, payments, etc. Loyal consumers will indeed respond likewise. But sloppy such people may not. And outright criminals may wish to cheat, say on payments or rejects. And we shall model them all” [4].

Bjørner concludes his paper with a detailed overview of and comparison with related contributions (quite a few of which are software-based, “cooked-up with a new jargon”), properly noting the ontology work and Michael Jackson’s problem frames as “relevant comparisons.” I would have liked to see more discussion of domain structure including emergence (see, for example, Bjørner and Eir [5], Ehresmann and Vanbremeersch [6], and an international standard [7]).

Summing up, I enjoyed this paper, together with other related papers by the author, and wholeheartedly recommend his work.

Reviewer:  H. I. Kilov Review #: CR145478 (1710-0668)
1) Russo, L. The forgotten revolution: how science was born in 300 BC and why it had to be reborn. Springer, Berlin, 2004.
2) Hacken, G. Review of: Formal methods: state of the art and new directions (See CR No. 139235). Computing Reviews 53, 2(2012), 75–76.
3) Bjørner, D. Domain facets: analysis & description. Submitted for consideration to Formal Aspects of Computing, 2016–2017. http://www2.compute.dtu.dk/~dibj/2016/facets/faoc-facets.pdf. Accessed 07/23/2017.
4) Bjørner, D. Domain models of the market – in preparation for e-transaction systems. In: Practical foundations of business system specifications. Kluwer, 2003.
5) Bjørner, D.; Eir, A. Compositionality: ontology and mereology of domains: some clarifying observations in the context of software engineering. In: Concurrency, compositionality, and correctness (LNCS 5930). Springer, 2010.
6) Ehresmann, A. C.; Vanbremeersch, J. P. Memory evolutive systems: hierarchy, emergence, cognition. Elsevier, Amsterdam, 2007.
7) Open Distributed Processing - Reference Model: Part 2: Foundations (ITU-T Recommendation X.902 ISO/IEC 10746-2), 1995.
Bookmark and Share
  Reviewer Selected
Featured Reviewer
 
 
Domain Engineering (D.2.13 ... )
 
Would you recommend this review?
yes
no
Other reviews under "Domain Engineering": Date
Model-driven derivation of product architectures
Botterweck G., O’Brien L., Thiel S.  Automated software engineering (Proceedings of the Twenty-second IEEE/ACM International Conference on Automated Software Engineering, Atlanta, Georgia, Nov 5-9, 2007)469-472, 2007. Type: Proceedings
Apr 4 2008
AutoHome: an autonomic management framework for pervasive home applications
Bourcier J., Diaconescu A., Lalanda P., McCann J. ACM Transactions on Autonomous and Adaptive Systems 6(1): 1-10, 2011. Type: Article
Jul 26 2011
Development and configuration of service-oriented systems families
Mohabbati B., Hatala M., Gašević D., Asadi M., Bošković M.  SAC 2011 (Proceedings of the 2011 ACM Symposium on Applied Computing, Taichung, Taiwan, Mar 21-24, 2011)1606-1613, 2011. Type: Proceedings
Sep 2 2011
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy