Functional requirements contain, and systems exhibit, the behavior summarized below.Despite the advances in software engineering since 1968, how to go from a set of functional requirements to an architecture that accommodates those requirements remains a challenging problem. Progress with this fundamental problem is possible once we recognize (1) that individual functional requirements represent fragments of behaviour, (2) a design that satisfies a set of functional requirements represents integrated behaviour, and (3) an architecture must accommodate the integrated behaviour expressed in a set of functional requirements. This perspective admits the prospect of constructing a design out of its requirements. A formal representation for individual functional requirements, called behavior trees makes this possible. Behaviour trees of individual functional requirements may be composed, one at a time, to create an integrated design behaviour tree. From this problem domain representation it...
R. Geoff Dromey