[Thesis]. Manchester, UK: The University of Manchester; 2012.
A software component model is the cornerstone of any Component-based Software Development
(CBSD) methodology. Such a model defines the modelling elements for constructing software
systems. In software system modelling, it is necessary to capture the three elements
of a system’s behaviour: (i) control (ii) computation and (iii) data. Within a system,
computations are performed according to the flow of control or the flow of data, depending
on whether computations are control-driven or data-driven. Computations are function
evaluations, assignments, etc., which transform data when invoked by control or data
flow. Therefore a component model should be able to model control flow, data flow
as well as computations. Current component models all model computations, but beside
computations tend to model either control flow only or data flow only, but not both.In
this thesis, we present a new component model which can model both control flow and
data flow. It contains modelling elements that capture control flow and data flow
explicitly. Furthermore, the modelling of control flow is separate from that of data
flow; this enables the modelling of both control-driven and data-driven computations.
The feasibility of the model is shown by means of an implementation of the model,
in the form of a prototype tool. The usefulness of the model is then demonstrated
for a specific domain, the embedded systems domain, as well as a generic domain. For
the embedded systems domain, unlike current models, our model can be used to construct
systems that are both control-driven and data-driven. In a generic domain, our model
can be used to construct domain models, by constructing control flows and data flows
which together define a domain model.