Wednesday, October 31, 2007

Architectural Quality Attributes

Two quality attributes to which an application architecture should adhere:

I) It is important that an application architecture can accommodate new requirements without big changes in the implementation. Changes should be as local as possible, keeping the impact small. (not everything can be tested in an automated manner).

This means that the delta in requirements should be linear towards the delta in implementation changes. I call this an architectural quality attribute. (see also book Software Architecture in Practice)

II) An architecture should have one way of doing things and allow for exceptions.

For example an architecture that has two different ways of sharing information, for example through a remote service call or storing information in a database, does not adhere to this quality attribute.

No comments: