  This paper addresses questions regarding controllability for `generic
parameter' dynamical systems, i.e. the question whether a dynamical system is
`structurally controllable'. Unlike conventional methods that deal with
structural controllability, our approach uses an undirected graph: the
behavioral approach to modelling dynamical systems allows this. Given a system
of linear, constant coefficient, ordinary differential equations of any order,
we formulate necessary and sufficient conditions for controllability in terms
of weights of the edges in a suitable bipartite graph constructed from %
components with equal bipartite cardinality in the differential-algebraic
system. % of equations. A key notion that helps formulate the conditions is
that of a `redundant edge'. Removal of all redundant edges makes the inferring
of structural controllability a straightforward exercise. We use standard graph
algorithms as ingredients to check these conditions and hence obtain an
algorithm to check for structural controllability. We provide an analysis of
the running time of our algorithm. When our results are applied to the familiar
state space description of a system, we obtain a novel necessary and sufficient
condition to check structural controllability for this description.
