Software Architecture
Architecture And Quality Attributes
Architecture And Quality Attributes
3 Day(s)
🎯 LEARNING OBJECTIVES
Understand the major quality attributes that influence software architecture.
Distinguish functional requirements from non-functional requirements.
Identify measurable quality attributes, including performance, security, reliability, scalability, and maintainability.
Analyze trade-offs between competing quality attributes and use them to guide architectural decisions.
🧠 PREREQUISITES
Basic understanding of software architecture and software requirements.
Familiarity with application components, system design, and basic performance and security concepts.
Architecture episodes
We will cover the role of quality attributes in solution architecture.
Quality attributes in software architecture represent the question:"How should the system deliver the business requirements and guarantee its qualities?".
Since we achieve this level, we can't accept narratives about quality attributes without its consequences on architecture.
As an example of architecture quality, we can list the following as an example:
• Performance
• Interoperability
• Usability
• Reliability
• Availability
• Security
• Maintainability
• Modifiability
• Testability
• Scalability
• Reusability
In each of the above mentioned, #solutionarchitecture should provide:
1. Solution for each attribute, like caching component for performance
2. Component for each factor, like securiry module at all level.
3. Standards and approaches for each factor, like #OWASP for security
Finally, quality attributes and its consequences on architecture is challenging, as sometimes, we can have a contradiction between these attributrs, like usability, and security in bank account recovery as example.
The ways we load data into our solution during the implementation journey and business workflow.
We have 2 strategies:
Lazy loading means loading data on demand, Automatic
Eager loading means upfront data loading , Automatic
Lazy loading: Lazy loading means loading data on demand
Eager loading means upfront data loading
Eager Loading: Reduce round-trips and avoid repeated queries
1.Enhance UX by enhancing performance
2.Cost reduction by optimal resource management
Eager loading
Lookup Data
Dashboard (KPIs)
Lazy loading
One to many
Reporting/analytics
Admin panel
Image-heavy UI
Historical Data