Chapter 5 - Quality Attributes
Nines Availability
% Downtime per year Six-nines = 99.9999% = 32 seconds or less downtime per year. Five-nines = 99.999% = 5 minutes, 15 seconds or less of downtime in a year. Four-nines = 99.99% = 52 minutes, 36 seconds downtime per year. Three nines = 99.9% = 8 hours, 46 minutes downtime per year. Two nines = 99% = 3 days, 15 hours and 40 minutes downtime per year. One nine = 9% = 332 days of downtime per year. That's right. You're only up and running about a month out of the year on average. Good grief. Zero nines = 100% downtime per year. Perhaps you can get a little something for it from the recycler.
Flexibility Measures
1. Difficulty to adapt to business process changes 2. Difficulty to adapt to new or different operating system
Supportability Measures
1. Time to identify issues 2. Time to repair identified issues 3. Cost and resource requirements to perform maintenance tasks
Customizability Measures
Ability for end users and 3rd parties to safely contribute functionality not already provided in the base product
Security Warnings
Always make security a pervasive, unavoidable component of the solution and the development process—never an afterthought.
Extensibility
Architectures that both enable the future inclusion and prevent future exclusion of functionality; by keeping current trends in technology and approaches, extensible solutions can be designed
Customizability Warnings
Configuration is not personalization: Configuration affect all active system users; Personalization is isolated to the individual user
Security
Demonstrated understanding of security, privacy, authenticity, access privileges, information protection and disaster recovery, asset management techniques, threat modeling and recovery, and related issues Demonstrated competence in basic implementation techniques
Scalability Concepts
Does it Scale, Can it Scale, How will it Scale? Describe how much, how fast to increase and how hard and the cost to increase. Need to know the scale-up and scale-out of the solution
Extensibility Warnings
Don't confuse with Flexibility which is driven by external not internal forces; overly complex implementation may cause under-delivery of the current release
Maintainability Warnings
Failure to ensure maintainability will likely cause significant increases in future operating costs
Extensibility Measures
Future requirements specifically addressed by the architecture; cost to extend the solution to support changes to the business; business losses due to failing to extend the solution to meet unforeseen needs
Maintainability Measures
Increase in mean time between failures; Reduced time and costs for recurring tasks required to maintain operational availability
Quality Attribute
Non-functional requirement or systemic qualities; nonfunctional characteristic of a component or a system. It represents a crosscutting architectural concern for a system or system of systems.
Security Concepts
Physical security, network security, platform security antivirus, audit logging, monitoring policies, and standards
Trade-offs of Quality Attributes
Time, cost, requirements, and resource constraints
Managing and monitoring
a demonstrated understanding of specific quality management imperatives, techniques, and tools. Architects should be able to demonstrate a proficiency in problem analysis, capacity planning, service level agreement (SLA) creation and management, and issue response techniques.
Reliability Concept
allow a person at a desk to do his or her job, but it may also keep bad things from happening. Knowing how to build in reliability and the ability to test a solution are critical.
Maintainability
as the relative ease with which an item can be retained in, or restored to, a specified condition.
Customizability
both the design-time extension and the run-time modification of a solution.
ISO/IEC 9126-1
defined with six categories of characteristics: functionality, reliability, usability, efficiency, maintainability, and portability, which are divided into subcharacteristics
Support Related Quality Attribute
demonstrated management/mitigation of issues relative to manageability, maintainability, supportability, and extensibility. Demonstrated competence in implementation techniques is imperative.
Availability Concept
describes systems that exhibit almost no downtime or even the appearance of downtime.
Balancing Quality Attributes
is about tuning your solution or a family of solutions to deliver the greatest business value. To do this successfully, you should chart the various quality attributes for your solution and identify supportive pairs and pairs that have dependencies. Then, you can discuss the trade-offs and decisions you've made and create artifacts that capture what was decided and why it was decided and provide traceability back to the business requirements.
Packaging and deployment
is the demonstrated understanding of the expectations, process, and management of IT products following the completion of development and prior to "normal" dayto-day operating conditions.
Flexibility
is the ease with which a system can be modified to achieve goals other than those for which it was specifically designed
Supportability
is the inherent quality of a system to facilitate detection, isolation, and timely repair/replacement of system anomalies
Tuning a software product Family
means improving the performance of the whole set of products in the family and not affecting any of them negatively
Flexibility Warnings
overly aggressive or unnecessary flexibility goals may increase complexity and costs and reduce development velocity
IEEE 1061
the degree to which software possesses a desired combination of quality attributes
Security Measures
• Level of effort required to breach trust boundaries • Likelihood of consistent implementation of policies • Compliance with industry standards and applicable law
Development Related quality Attributes
• Manageability • Maintainability • Supportability • Extensibility • Flexibility
Operation Related Quality Attributes
• Performance • Reliability • Availability • Scalability • Security
Metrics for Usability
• Productivity • Time to complete task • Error rates and impact • Perception • Usage patterns • Value recognition
Metrics for Performance
• Static code analysis and profilers • Performance testing suites
Usage Related Quality Attributes
• Usability • Localization • Accessibility • Personalization • Customizability
Development Quality Attributes
• affect the management and building of solutions • Reduce the cost to change or operate a solution • Eighty percent of solution cost after deployment • Balance usage attributes with need to deliver on time and on budget • Warning: Architects often over-optimize development attributes
Security Quality Attributes
• information management • security administration • safety engineering • safety assessment