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

2.4 KiB

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/.