# Achitecture Evaluation

#### *Architecture Evaluation using ATAM and QAW*

***

#### *ATAM (Architecture Tradeoff Analysis Method)*

***

***1. Definition of Quality Objectives:***

* *Usability*:
  * *Objective*: Maximize efficiency and simplicity while minimizing the need for training.
  * *Measurement*: Success rate in task execution without external intervention.
* *Security*:
  * *Objective*: Ensure user data integrity and confidentiality.
  * *Measurement*: Number of vulnerabilities discovered in periodic audits.
* *Performance*:
  * *Objective*: Provide optimal response times even during peak loads.
  * *Measurement*: Response time under normal and high-demand conditions.

***2. Identification of Scenarios*****:**

* *Usability*:
  * *Scenario A*: A user attempts to create, edit, and delete a task on the platform.
  * *Scenario B*: A team leader wants a detailed report of pending and completed tasks.
* *Security*:
  * *Scenario A*: A user attempts to recover a forgotten password.
  * *Scenario B*: A malicious actor tries to perform an SQL injection attack.
* *Performance*:
  * *Scenario A*: During a load peak, 100 users attempt to access simultaneously.
  * *Scenario B*: A user tries to load a list with more than 2,000 tasks.

***3. Initial Architecture Model*****:**

* *Frontend*: Angular application communicating with the backend through RESTful APIs.
* *Backend*: Spring Boot application with role-based access control and optimized relational database.

<figure><img src="https://mermaid.ink/img/pako:eNptUstugzAQ_BVrzyTi4fDwoVIo7S2Xhl4KPTjYTVDARsZUTaP8e10wkZqUi-2Z2Z1Z4zNUknEgsFe0O6A8KwUy32vPFVosHtCzkkJzwYp5Q9Ba7IeGqvdJOeOjOqXV8VdsV4K2narFHqVSaqu31CjP0iKjmu5ozw078f2wm6LMjSc494qc9ke0kWxouO2V-8UL76TSN3BQrAd94ELXFdW1FH_pseeNmU1lI1qvRxNAyabh86zp1e-euvO8l-BxWrTl6rOu_kmTYnsr4EDLVUtrZn7M-ZcswfRueQnEbBlVxxJKcTE6Omi5PYkKiFYDd2DoGNU8q6mZqwXyQZv-ij6xWkt1BTsq3qRs50pzBHKGLyBBuEy8KMRBHCeuG-PAgRMQD_tLN8Fh7K-iAPv-6uLA91jvLpPIxVEQ4sgzdR6OHOCj12Z6W-MTu_wAwK_E2w?type=png" alt=""><figcaption><p>First iteration</p></figcaption></figure>

<figure><img src="https://mermaid.ink/img/pako:eNptUstuwjAQ_BVrzynKwxDwoRKU9tSqUqGXJj1sYwMWiR05TltA_HtNHrSC5hJ7Z2Y9O9oDZJoLYLA2WG7Icp4q4r7XShhyc3NLHoxWViie9AdGpmpd52jIl7Qb8oj7HXnUyKVav7fantnoZ5htT_Luz8iiNI5KZlrbtsMdZptfccdrtPNZ8lxaWci94GSOFj-wEv_wTh1E8iK4rBza4lX90U7Uu2nLyyBZYrUlT5rXed9rGTpxqY29KEfJtLYboazM0EqtLmCa3Gm1kuva_IM2L15Y6Tx3A3ROXA9rdJ4L0092dnMNXTm6ptDklBRZCPMps3Naw6SL-QL4Y3NGu9B7yW-24EEhTIGSu0U5nPAUnI1CpMDckaPZppCqo-NhbfVipzJg1tTCg7rkaMVcoougALbCvDpX77m02pyLJao3rYte6a7ADvANLBoNJkE8otF4PPH9MY082AELaDjwJ3Q0DodxRMNwePRg3-j9wST2aRyNaBw4XUBjD0Tz1lO7683KH38Alr30DA?type=png" alt=""><figcaption><p>Second Iteration</p></figcaption></figure>

***4. Preliminary Analysis*****:**

* *Usability*: A well-organized monolithic structure can provide a smooth user experience. However, it requires an intuitive interface and excellent documentation.
* *Security*: Ensuring encryption, conducting security audits, and avoiding common vulnerabilities like SQL injection and XSS attacks are essential.
* *Performance*: Query optimization and caching techniques are essential to handle a large number of tasks and concurrent users.

***5. Identification of Trade-offs*****:**

* *Usability and Performance*: As features are added to improve usability, such as real-time searches, it can impact performance.
* *Security and Usability*: Stricter authentication can complicate the user experience.

***6. Iteration and Refinement*****:**

Considerations should include:

* *Caching*: Use of Redis or similar solutions for caching.
* *Optimization*: Minimization of static resources, lazy loading in Angular, and optimized queries in Spring Boot.

***

#### *QAW (Quality Attribute Workshop)*

***

***1. Identification of Quality Attributes*****:** Usability, Security, Performance.

***2. Definition of Quality Scenarios*****:** Already defined in the "Identification of Scenarios" step of ATAM.

***3. Prioritization of Quality Attributes*****:**

1. *Security*: Data loss or exposure can have legal and reputational implications.
2. *Usability*: An intuitive platform increases user adoption and retention.
3. *Performance*: Essential, but with a limited number of users, it may be an initial secondary concern.

***4. Definition of Metrics*****:**

* *Usability*: User retention rate, direct feedback, average time to complete common tasks.
* *Security*: Time to detect and respond to incidents, number of security incidents per quarter.
* *Performance*: Average latency, response time at the 95th and 99th percentiles.

***5. Development of Detailed Scenarios*****:**

* *Usability*:
  * *Scenario A*: A user wants to configure notifications for pending tasks.
  * *Scenario B*: A user wishes to integrate the platform with external tools, such as calendars.
* *Security*:
  * *Scenario A*: An attempt to access from an unusual geographic location is detected.
  * *Scenario B*: Unusual access patterns, such as multiple failed login attempts, are detected.
* *Performance*:
  * *Scenario A*: Users experience latency when accessing the platform during peak hours.
  * *Scenario B*: Unusually high server resource consumption is detected.

&#x20;
