Category: System Architectures

Architectural Views

Architectural views represent a perspective of looking at a particular problem solution. There are different standards. And different versions of diagrams. That is because one diagram rarely would give you everything you'd want. So you sort of mix and match. We have to recognize that there are many stakeholders in the system: from architects themselves,

Continue Reading

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

Continue Reading

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

Continue Reading

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

Continue Reading

Is usability an architectural concern?

It really does depend on how we define usability. The configuration of the user interface is the details. As an architect, one would not worry about usability. Not in the sense, of where to place icons, what colours to use and what are which things to make bold. HOWEVER, what the user would do with

Continue Reading

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

Continue Reading

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

Continue Reading