Requirements engineering is an essential part of software and systems development. Besides the elicitation, analysis, and specification of the intrinsic system requirements as a basis for these activities, it also involves the elicitation, analysis, and specification of the information about the application domain (also called problem domain or domain for short: includes terminology, concepts, and rules). The result of this activity is an elaborated domain model, which is a model of the relevant parts of the application domain.
Roughly speaking, a domain model for a system or software development task comprises the following parts:
These aspects can be captured by adequate data models.
The domain model collects all the information about the problem domain that must be known and understood to allow capturing requirements for the system, specifying them, implementing and verifying the system. The detailed system requirements, however, are not part of the domain model, but they are based upon it.
Ultimately, the domain model is a collection of knowledge about the application domain at an adequate level of abstraction—including the use of modeling techniques where useful.
This is a preview of subscription content, log in via an institution to check access.
eBook EUR 85.59 Price includes VAT (France)
Softcover Book EUR 105.49 Price includes VAT (France)
Hardcover Book EUR 105.49 Price includes VAT (France)
Tax calculation will be finalised at checkout
Purchases are for personal use only
We use a specific notion of discrete systems in this paper following [12] with the following characteristics and principles.
This gives a highly abstract and at the same time quite comprehensive model of a system. This model is formalized in the following by one specific modeling theory.
Data models define a set of data types and some basic functions for them. A (data) type T is a name for a data set for which a family of operations is usually available. Let TYPE be the set of all data types.
Systems have syntactic interfaces that are described by their sets of input and output channels attributed by the type of messages that are communicated over them. Channels are used to connect systems to allow transmitting messages between them. Formally, a channel is an identifier for a uni-directional communication link. A set of typed channels is a set of channels with types given for each of its channels.
Let I be the set of typed input channels and O be the set of typed output channels. The pair (I, O) characterizes the syntactic interface of a system. The syntactic interface is denoted by (I▸O). □
Figure 3 shows the syntactic interface of a system F in a graphical representation as a data flow node with its syntactic interface consisting of the input channels x1, … of types T1, … and the output channels y1, … of types T’1, ….
Given a message set M of data elements of type T, we represent a timed stream s of type T by a mapping
$$ \mathrmIn a timed stream s, a sequence s(t) of messages is given for each time interval t ∈ IN\. In each time interval, an arbitrary, but finite number of messages may be communicated. By (M * )∞ we denote the set of timed streams. □
A (timed) channel history for a set of typed channels C assigns to each channel c ∈ C a timed stream of messages communicated over that channel.
Let C be a set of typed channels; a (total) channel history x is a mapping (let IM be the universe of all messages)
$$ \mathrmsuch that x(c) is a timed stream of messages of the type of channel \( \mathrm\in \mathrm.\,\,\vec<\mathbf> \) denotes the set of all total channel histories for the channel set C. □
The behavior of a system with a syntactic interface (I▸O) is defined by a mapping that maps the input histories in \( \vec<\mathrm> \) onto output histories in \( \vec<\mathrm
A causal mapping \( \mathrm: \vec<\mathrm> \to \wp (\vec<\mathrm
Interface behaviors model system functionality. For systems we assume that their interface behavior is total. F behaviors may be deterministic (in this case, the set F(x) of output histories has at most one element for each input history x) or nondeterministic.
State machines with input and output describe system implementations in terms of states and state transitions. A state machine is defined by a state space and a state transition.
State Machine with Syntactic Interface (I▸O)
Given a state space Σ, a state machine (Δ, Λ) with input and output according to the syntactic interface (I▸O) consists of a set Λ ⊆ Σ of initial states as well as of a nondeterministic state transition function □
$$ \Delta :\ (\Sigma \times (\mathrm\to <<\mathrmFor each state σ ∈ Σ and each valuation a: I → M * of the input channels in I by sequences of input messages, every pair (σ′, b) ∈ Δ(σ, a) defines a successor state σ′ and a valuation b: O → M * of the output channels consisting of the sequences produced by the state transition (Fig. 5).
In the following, we assume that each system used in an architecture as a component has a unique identifier k. Let K be the set of identifiers for the components of an architecture.
Set of Composable Interfaces
A set of component names K with a finite set of interfaces (Ik▸Ok) for each identifier k ∈ K is called composable if the following propositions hold:
If channel names and types are not consistent for a set of systems to be used as components, we can simply rename the channels to make them consistent.
A syntactic architecture A = (K, ξ) with the interface (IA▸OA) is given by a set K of component names with composable syntactic interfaces ξ(k) = (Ik▸Ok) for k ∈ K.
By (IA▸DA) we denote the syntactic internal interface and by (IA▸OA) we denote the syntactic external interface of the architecture. □
A syntactic architecture forms a directed graph with its components as its nodes and its channels as directed arcs. The input channels in IA are ingoing arcs and the output channels in OA are outgoing arcs for that graph.
An interpreted architecture (K, ψ) for a syntactic architecture (K, ξ) associates an interface behavior ψ(k) ∈ IF[Ik▸Ok] , where ξ(k) = (Ik▸Ok), with every component k ∈ K. □
An architecture can be specified by a syntactic architecture given by its set of sub-systems and their communication channels and an interface specification for each of its components.
For an interpreted architecture A with syntactic internal interface (IA▸DA), we define the glass box interface behavior [×] A ∈ IF[IA▸DA] by the equation (let ψ(k) = Fk):
[×] A describes the behavior of the architecture A. For [×] 1, F2> we also write F1 [×] F2.
In a black box view ⊗ A ∈ IF[IA▸OA] onto the architecture we hide internal channels
⊗ A describes the interface behavior of the architecture A. For ⊗ 1, F2> we also write F1 ⊗ F2 (Fig. 6).
The three basic modeling concepts can be related as shown in Fig. 4. Through interface abstractions we can relate state machines and architectures to interfaces.
© 2013 Springer-Verlag Berlin Heidelberg
Broy, M. (2013). Domain Modeling and Domain Engineering: Key Tasks in Requirements Engineering. In: Münch, J., Schmid, K. (eds) Perspectives on the Future of Software Engineering. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-37395-4_2
Anyone you share the following link with will be able to read this content:
Get shareable link
Sorry, a shareable link is not currently available for this article.
Copy to clipboard
Provided by the Springer Nature SharedIt content-sharing initiative