Bayesian networks (BNs) model problems that involve uncertainty. A BN is a
directed graph, whose nodes are the uncertain variables and whose edges are
the causal or influential links between the variables. Associated with eac
h node is a set of conditional probability functions that model the uncerta
in relationship between the node and its parents. The benefits of using BNs
to model uncertain domains are well known, especially since the recent bre
akthroughs in algorithms and tools to implement them. However, there have b
een serious problems for practitioners trying to use BNs to solve realistic
problems. This is because, although the tools make it. possible to execute
large-scale BNs efficiently, there have been no guidelines on building BNs
. Specifically, practitioners face two significant barriers. The first barr
ier is that of specifying the graph structure such that it is a sensible mo
del of the types of reasoning being applied. The second barrier is that of
eliciting the conditional probability values. In this paper we concentrate
on this first problem. Our solution is based on the notion of generally app
licable "building blocks", called idioms, which serve solution patterns. Th
ese can then in turn be combined into larger BNs, using simple combination
rules and by exploiting recent ideas on modular and object oriented BNs (OO
BNs). This approach, which has been implemented in a BN tool, can be applie
d in many problem domains. We use examples to illustrate how it has been ap
plied to build large-scale BNs for predicting software safety. In the paper
we review related research from the knowledge and software engineering lit
erature. This provides some context to the work and supports our argument t
hat BN knowledge engineers require the same types of processes, methods and
strategies enjoyed by systems and software engineers if they are to succee
d in producing timely, quality and cost-effective SN decision support solut
ions.