Architecture Quality Attributes

Architecture Quality Attributes (a.k.a. QAs) are used to determine if our architecture is fit for a particular purpose. Qualities must be accommodated in a system's architecture over and above basic functionality. It is too often that functionality takes the front seat, indeed sometimes the only seat. The functionality, however, should be the primary concern of the ... Read more Architecture Quality Attributes

Attribute-Driven Design Process

Attribute-driven design (ADD) process allows us to use a recursive method for explicitly representing of quality attributes as well as explicitly stating association between architectural decision and quality attributes. To begin the process of ADD, we need a set of functional requirements (e.g. use-cases), quality attributes (ideally expressed through design scenarios) and any further system constraints ... Read more Attribute-Driven Design Process

Scenarios - how to claim your architecture is good?

It is fairly meaningless to say 'System X is modifiable'. Firstly, with respect to what is it modifiable? Some of the changes will be handled more easily than others. If the system was designed with client-server pattern, then changing it to peer-to-peer is easy? It might be, but I find it rather unlikely. Even if ... Read more Scenarios - how to claim your architecture is good?

Business Drivers in Systems Architectures

Architectures are the building blocks of software. Good architecture would likely result in reasonably pain free development as well as . However, perfect architecture is almost never possible. In this series of articles, I will describe the basic process for designing software architectures. There is little difference between software and system architectures. In this first ... Read more Business Drivers in Systems Architectures

Ensuring internal quality of software

Internal quality (aka structural quality or architectural quality[3][9][10]) is an assessment on the quality of the code and its underlying architecture. It differs from external quality which assesses how good the software is in relation to the requirements. Nowadays, as building large scale applications is becoming increasingly common, assessing it, is becoming increasingly important. The ... Read more Ensuring internal quality of software