Chapter 4 - Software Architecture and Quality
Chapter 4 - Software Architecture and Quality
Muhammad Nasir
[email protected]
Agenda
Software Quality
Quality attribute vs. requirement
Why Quality in a Software Architecture?
Attributes of Software
Relations between Quality Attributes
What to do about the conflicts?
Understanding the Quality
Attributes
Systems are frequently redesigned not
because they are functionally deficient
The replacements are often
functionally identical
but because they are difficult to
maintain, port, or scale, or are too
slow, or have been compromised by
network hackers…
Understanding the Quality
Attributes
Architecture is the first stage in
software creation in which quality
requirements could be addressed.
It is the mapping of a system’s
functionality onto software
structures that determines the
architecture's support for qualities.
Functionality and Architecture
Functionality and quality attributes are
orthogonal
This statement sounds rather bold at first,
but when you think about it, you would
realize that it cannot be otherwise
If functionality and quality attributes were
not orthogonal, the choice of function
would dictate the level of security or
performance or availability or usability
Functionality and Architecture
Now, this is not to say that any level of any quality
attribute is achievable with any function.
Manipulating complex graphical images or
sorting an enormous database might be inherently
complex, making lightning-fast performance
impossible.
But what is possible is that, for any of these
functions your choices as an architect will
determine the relative level of quality.
Some architectural choices will lead to higher
performance; some will lead in the other direction.
What is Software Architecture?