Software Systems Architecture

The Functional Viewpoint

The Functional view of a system defines the architectural elements that deliver the system’s functionality. The view documents the system’s functional structure-including the key functional elements, their responsibilities, the interfaces they expose, and the interactions between them. Taken together, this demonstrates how the system will perform the functions required of it.

The Functional view is the cornerstone of most ADs and is often the first part of the description that stakeholders try to read. (Too often, it is also the only view of the architecture produced.) It is probably the easiest view for stakeholders to understand. The Functional view usually drives the definition of the other architectural views (particularly Information, Concurrency, Development, Deployment, and Operational). You will almost always create a Functional view and will often spend most of your time defining and refining it.

As with all of the other views, the challenge when defining the Functional view is to include an appropriate level of detail. Focus on what is architecturally significant – in other words, what has a visible impact on stakeholders-and leave the rest to your designers.

Definition Describes the system’s runtime functional elements and their responsibilities, interfaces, and primary interactions
Concerns
  • functional capabilities
  • external interfaces
  • internal structure
  • functional design philosophy
Models
  • functional structure model
Pitfalls
  • poorly defined interfaces
  • poorly understood responsibilities
  • infrastructure modeled as functional elements
  • overloaded view
  • diagrams without element definitions
  • difficulty in reconciling the needs of multiple stakeholders
  • wrong level of detail
  • ‘God’ elements
  • too many dependencies
Stakeholders All stakeholders
Applicability All systems

← The Context Viewpoint     |     Viewpoints    |     The Information Viewpoint →