This repository has been archived on 2025-12-15. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files

21 lines
2.4 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
[[Software and system architectures]]
1. **Why are quality attributes often more important to architecture than functional requirements?**
Quality attributes are crucial in software architecture, impacting usability, performance, reliability, and security. While functional requirements define what the system should do, quality attributes, like security and scalability, go beyond functionality. They may not be visible to end-users but have significant impact when they fail, such as crashes during peak loads or security breaches. Legacy systems often suffer from poor quality attributes, causing ongoing issues. Balancing these attributes is essential, requiring architects to prioritise based on business goals to ensure effective software systems
(Davis, 2021).
2. **What is the difference between constraints and principles?**
Constraints are limitations or restrictions placed on a system, project, or process, often imposed by external factors such as resources, time, or regulations. For example, a constraint in software development could be a deadline imposed by the client or limited resources allocated for a project.
Principles are fundamental guidelines or beliefs that inform decision-making and behaviour. They are commonly held values or standards that guide actions and decisions. Examples of principles in software development include the SOLID principles (Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion), which promote code maintainability and extensibility, or the DRY (Don't Repeat Yourself) principle, which advocates for
reducing redundancy in code.
3. **Do you consider scenarios are a good way to describe quality attributes? Why yes or no?**
Scenarios are a useful tool for describing quality attributes. Scenarios illustrates the practicality of these attributes by providing cases or real-world scenarios, such as system crashes under significant load or security breaches resulting in data theft. They help in understanding of abstract concepts, showing their importance and impact on software systems. Scenarios may also show how quality attributes interact with each other and emphasise the need of balance and prioritising.
***References***
Davis, T. (2021). _Quality Attributes in Software Architecture_. [online] 3Pillar Global. Available at: https://www.3pillarglobal.com/insights/the-importance-of-quality-attributes-in-software-architecture/.