Reuse of General Specification Notions and Specification Languages

Valeri N. Agafonov

Faculty of Applied Mathematics and Computing Science
Tver State University
Sadovyi per. 35, Tver, 170002, Russia
Email: agafonov@tversu.ac.ru

Abstract:

First, I would like to draw the reuse community's attention to somewhat "exotic" artefacts which are very useful but seem to be rather neglected in software reuse research. These are general specification notions (GSNs) and specification languages (SLs). By general specification notion I mean such mathematically precise notion that is not specific for any particular non-mathematical domain and is really used for describing things in various problem domains. Examples are finite automaton, decision table, various types of equations, production rules, etc. Second, I outline my approach to reuse of such artefacts. The main components of the approach are so called Practical Theory of Definitions and the Frege system. The former organizes GSNs and SLs for reuse. The latter is based on this theory and supports reuse of these artefacts.

Keywords: Reuse, general specification notions, specification languages, theory of definitions, reuse support systems

Workshop Goals: To advance research and computerized support of reuse of the earliest life-cycle artefacts

Working Groups: reuse of the earliest life-cycle artefacts, rigorous behavioral specification as an aid to reuse, domain engineering tools

Background

I began developing the Practical Theory of Definitions (PTO is its Russian abbreviation) in 1983 at the Institute of Mathematics of Siberian Division of the USSR Academy of Sciences (Novosibirsk). The first version of the PTO was published in the book [1] and in the invited lecture of the MFCS'89 Symposium [2]. Later the first version of the Frege system based on the PTO was developed at the Center of Software Systems (Tver). Since then, the PTO was extended, elaborated and included in the so-called over-languages methodology supporting software specification in the broad sense [3]. These methodology, theory and system were the subject of my Full Doctor dissertation in Computer Science defenced in 1994 at Keldysh Institute of Applied Mathematics, the Russian Academy of Sciences (Moscow). Now I am developing the second version of the PTO and the Frege system at the Tver State University [4].

Position

What artefacts are reused in my approach

Two kinds of artefacts to be reused in my approach are general specification notions (GSNs) and specification languages (SLs).

By general specification notion I mean such a mathematically precise notion that is not specific for any particular non-mathematical domain and is used for describing things in various problem domains. Examples are finite automaton, decision table, various types of equations, production rules, etc. In [5] the things similar to GNSs are called mathematical abstractions.

If a GSN is used to describe a thing in a particular domain, I call the corresponding domain specific notion a domain concretization of this GSN. For example, if finite automaton is used to specify a lift, then the notion specified by this way is the domain concretization of this GSN in the domain of lift machinery. In the domain of language processors there is a lexical analyser as a domain concretization of finite automaton. So called domain specific languages (or just domain languages consist of domain concretizations of appropriate GSNs.

Specification language is a very high level language consisting of such GSNs or domain concretizations of GSNs that are convenient, natural, adequate for specifying things intended by the language designer. A specification language can be problem domain specific, and then it is a domain language. But it can be concept specific, when it is based on one GSN or a few GSNs which form the conceptual base of this language. For example, decision table language is concept specific. It is based on a single GSN, decision table. Each of various equational specification languages is based on a single or few types of equations.

A specification language can also be general purpose language, i.e. oriented to various problem domains or based on concepts of various mathematical domains or, better to say, specification paradigms. For example, the SETL language is a general purpose language based on set-theoretic and procedural paradigms. Such languages are usually multi-conceptual, i.e. they are based on several orthogonal concepts.

In my approach a specification is considered mainly as a set of definitions which must be sufficiently precise and understandable in order to be useful in specification practice. That is, preciseness and understandability of specifications is the substantial aspect of specification activities addressed by my approach.

To achieve preciseness and understandability simultaneously a specification language must be based on GSNs that are adequate to the nature of the things to be described by means of this language (see below section 2.2.2 on adequacy).

What means support reuse of GSNs and SLs in my approach

Reuse of GSNs and SLs in my approach is supported by two main means: Practical Theory of Definitions and the Frege system. The former organizes GSNs and SLs for reuse. The latter is based on this theory and provides computerized support of reuse of GSNs and SLs.

The PTO theory and conceptual model

Each formal specification is precise. However, not each precise specification is formal, and indeed, in many cases specifications are required to be sufficiently precise, but not formal, in order to be sufficiently understandable. Definitions in mathematical papers are often precise but rarely formal. What does it mean to be precise? What makes definitions precise? What makes precise definitions understandable? How are preciseness and understandability to be achieved simultaneously? These are the questions which I studied, and the result is Practical Theory of Definitions (PTO), a conceptual framework for identifying, clarifying and systematizing knowledge about creating and using precise definitions in specification practice.

The PTO theory consists of notions, classifications, relations, statements, and explanations which clarify, systematize, and make more usable the knowledge related to creating precise and understandable definitions and using them in specification practice. The PTO is not a purely mathematical theory. Rather it is similar to the theory of Gottlob Frege (1848 -1925) who investigated and made precise a series of notions related to the fundamentals of logic and mathematics and thus created the first "general-purpose" formal specification language, that of predicate logic [7].

Frege's style of thinking and writing inspired me when working at the PTO theory. That is why the PTO based system is named in honour of Frege. Frege's theory is rather academic and addressed to a narrow circle of logicians and mathematicians interested in fundamentals of logic and mathematics. Mathematical theories of definitions (such as the theory of inductive definitions) are more academic. The PTO theory is practical in principle and addresse much wider circle of people interested in fundamentals of specification practice.

The PTO theory in the form of a conceptual model is the conceptual basis of the Frege system containing the knowledge organized in accordance with the PTO model. This model can be considered as a specific kind of semantic network or semantic data model.

The Frege system

In accordance with the aspects addressed by the PTO theory, the knowledge base (KB) of the Frege system contains the knowledge about GNSs and the knowledge about ways of using them to achieve precise understandable specifications.

There are several dimensions in the space of ways for achieving understandability of a specification. The Frege system concentrates on the following:

The mentioned adequacy can not be precisely defined, but can be rather convincingly demonstrated by examples and case studies. Hence, the examples play a very important role in the KB.

Usually, general precise notions are used for specification purposes as the components of a specification language. Ideally, GSNs included in the language must be adequate to the nature of the described problem, system or domain at hand. However, it is often not the case. Hence, the Frege system tries to help in eliciting, selecting, modifying, and creating adequate specification languages, and its knowledge base contains also the knowledge about how this can be achieved.

The kind of knowledge included in the Frege system's knowledge base may be called knowledge about formalisms. This term is used to differentiate the activity concerning the requirements acquisition from the activity concerning formal specification of acquired requirements. In [6], the software development process is considered as including an activity called formalism design. This activity consists of finding appropriate formalisms and combining them into specification languages suitable for problem domains at hand. Hence, formalism designers are really those people whom the KB is addressed to.

In the Draco approach to constructing software from reusable components [7], a new role in the software development process, that of domain analyst, was identified. It consists of examining the needs and requirements of a problem domain, as well as typical related systems, and describing the objects and operations which are germane to the domain. A similar role consists in constructing domains abstractions that represent the fundamental behaviour, structure and functions of the domain class.

Domain analysis (DA) is a rather new activity and research area in the field of software engineering and computing science. And, as the DA Working Group reported [8], one of the main questions on DA is "What representation (notations and formalisms) should be used?" With respect to this question of representation it was argued that "it is generally agreed that one representation is not enough and that several representations are needed to describe the structures and functions within domain."

Thus, domain analysts need various appropriate formalisms provided by the Frege system's knowledge base. DA is closely related to software reuse. In the context of software artefacts reuse, the Frege system may be considered as a tool supporting reuse of formalisms or, more accurately, reuse of GNSs and specification languages.

Formalism designers and domain analysts are indeed the main persons in the entire software engineering process whom the Frege system mainly addresses. However, the much wider circle of its potential users is supposed to include everybody who studies or teaches fundamentals of the specification process, including systems analysts and requirements engineers at software houses as well as students and professors at universities.

Comparison

The work of David Wile and his colleagues on local formalisms and multi-formalism environments [9, 6] is the closest to my work. But Wile pays more attention to specifications for computers, while I am more interested in specifications for humans. Our approaches are really complementary to each other and they will be joined in the cooperative project "Theory and tools supporting work with precise definitions in multi-formalism specification environments" sponsored by the CRDF.grant RM1-232.

References

References

1
V. N. Agafonov, Program Specification: Conceptual Means and their Organization. Nauka, 1990.

2
V. N. Agafonov, ``From Specification Languages to Specification Knowledge Bases: The PTO Approach,'' in Lecture Notes in Computer Science, Vol. 379, Springer-Verlag, 1989.

3
V. N. Agafonov, ``The Over-Languages Methodology for Program Specification,'' Programming and Computer Software, no. 5, 1993.

4
V. N. Agafonov, ``Supporting non-traditional specification activities by the Frege system,'' Tech. Rep. CSR-96-1, Faculty of Applied Mathematics and Computing Science, Tver State University, 1996.

5
C. W. Krueger, ``Software Reuse,'' ACM Computing Surveys, vol. 24, pp. 131-183, June 1992.

6
D. W. E. Ipser Jr., D. Jacobs, ``A Multi-Formalism Specification Environment,'' in Proceedings of Fourth Intl. Conf. on Software Development Environments, Irvine, CA, 1990.

7
P. Freeman, ``A Conceptual Analysis of the Draco Approach to Constructing Software Systems,'' in Tutorial: Software Reusability (P. Freeman, ed.), pp. 192-212, IEEE Computer Society Press, 1987.

8
W. Tracz, ``Domain Analysis Working Group Report - First International Workshop on Software Reusability ,'' ACM SIGSOFT Software Engineering Notes, vol. 17, no. 3, pp. 27-34, 1992.

9
D.S.Wile, ``Local Formalisms: Widening the Spectrum of Wide-Spectrum Languages,'' in Program Specification and Transformation (L.G.L.T.Meertens, ed.), pp. 459-477, Elsevier Science Publishers B.V. (North Holland), 1987.

Biography

Valeri N. Agafonov is a Professor of Faculty of Applied Mathematics and Computing Science, Tver State University, Tver, Russia. He carries out research and gives lectures on software reuse, software specification, software engineering methodology, knowledge representation, and knowledge-based systems. He was previously the Head of Knowledge-Based Systems Department of the Center of Software Systems (Tver) leading research on various kinds of knowledge-based systems and office automation systems. Before, he was an Associate Professor of Computer Science at the Novosibirsk State University and simultaneously Senior Researcher at Novosibirsk Branch of the Institute for Computing Machinery, the Academy of Sciences of the USSR, researching software specification, knowledge representation and knowledge-based systems. He received a Ph.D. in Mathematical Logic and Programming from the Institute of Mathematics of Siberian Division of the USSR Academy of Sciences (Novosibirsk) in 1970. Later, in 1994, he received Full Doctor degree in Computer Science from Keldysh Institute of Applied Mathematics, the Russian Academy of Sciences (Moscow). (In Russia, Full D. degree is higher than Ph.D. degree.)