Architecture as an Emergent Property of Requirements Integration
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 is then possible to transition directly and systematically to a solution domain representation of the component architecture of the system and the behaviour designs of the individual components that make up the system - both are emergent properties.
STRAW’03: Second International SofTware requirements to Architectures Workshop