WIP Quality Attribute Scenarios

This commit is contained in:
Claudio Maggioni 2023-03-07 11:09:28 +01:00
parent 2c089af949
commit 38210ad9f9
1 changed files with 152 additions and 5 deletions

View File

@ -2,7 +2,7 @@ lecture:
Software Architecture
---
title:
Smarthut.sm
SmartHut.sm
---
author:
Claudio Maggioni
@ -50,7 +50,7 @@ Hint: to choose a meaningful project look at the rest of the modeling tasks whic
}
Project Name: Smarthut.sm
Project Name: SmartHut.sm
Project Type: Website / Web application / IoT
@ -63,7 +63,7 @@ Vision Statement:
<dt>Who:</dt>
<dd>wish to manage such equipment from a unified web interface and API;</dd>
<dt>The:</dt>
<dd><i>Smarthut.sm</i> application;</dd>
<dd><i>SmartHut.sm</i> application;</dd>
<dt>Is:</dt>
<dd>A website and REST API enabled engine;</dd>
<dt>That:</dt>
@ -74,7 +74,7 @@ Vision Statement:
<dd>Aims to perform most features implemented by competitors and more, allowing for ease of expandability in terms of features and supported devices.</dd>
</dl>
Additional Information: This project is from the Spring semester 2020 edition of _Software Atelier 4: Software engineering project_. The original project does not support any actual smart home device, and instead mocks device state and readouts in its backend. This poses as a potential opportunity to expand the existing architecture of the project to include device support as well. More information on the project can be found [here](https://maggioni.xyz/portfolio/smarthut.html). Source code of the existing project can be found [here](https://git.maggioni.xyz/smarthut).
Additional Information: This project is from the Spring semester 2020 edition of _Software Atelier 4: Software engineering project_. The original project does not support any actual smart home device, and instead mocks device state and readouts in its backend. This poses as a potential opportunity to expand the existing architecture of the project to include device support as well. More information on the project can be found [here](https://maggioni.xyz/portfolio/SmartHut.html). Source code of the existing project can be found [here](https://git.maggioni.xyz/SmartHut).
# Ex - Architectural Decision Records
@ -143,6 +143,7 @@ Exceed: >6 scenarios using challenging qualities
}
<!--
## Example Scenario
Quality: _Recoverability_
@ -169,7 +170,153 @@ Source -> [System] : "Boot"
@enduml
```
-->
## Scenario \#1: Live *device refresh* parameter
Quality: _Configurability_
Scenario: When deploying its own instance of the Smartt software, the user shall be able to change the refresh timeout for checking device status without restarting the software.
```puml
@startuml
skinparam componentStyle rectangle
skinparam monochrome true
skinparam shadowing false
rectangle "When user deploys instance of SmartHut" {
rectangle "User (Admin of its own instance)" as Source
rectangle "System not restarted" as Measure
Source -> [System] : "Changes devies refresh timeout"
[System] -> [Measure] : "No restarts required"
}
@enduml
```
## Scenario \#2: Time to market for first MVP
Quality: _Time to market_
Scenario: The first MVP aimed at gathering feedback from power users shall be shipped in less than 3 months.
```puml
@startuml
skinparam componentStyle rectangle
skinparam monochrome true
skinparam shadowing false
rectangle "Development" {
rectangle "SmartHut team" as Source
rectangle "max 3 months" as Measure
Source -> [System] : "Develops"
[System] -> [Measure] : "first MVP ready"
}
@enduml
```
## Scenario \#3: Authorized access to camera live stream
Quality: _Authorization_
Scenario: Access to camera live streams shall be granted only to users explicity authorized by the user owning the camera.
```puml
@startuml
skinparam componentStyle rectangle
skinparam monochrome true
skinparam shadowing false
rectangle "Normal operation" {
rectangle "Alice" as Source
rectangle "Access granted" as Measure
Source -> [System] : "Shares camera live stream with Bob"
[System] -> [Measure] : "Bob wants to watch camera live stream"
}
@enduml
```
```puml
@startuml
skinparam componentStyle rectangle
skinparam monochrome true
skinparam shadowing false
rectangle "Normal operation" {
rectangle "Alice" as BSource
rectangle "Access denied" as BMeasure
BSource -> [System] : "Shares camera live stream with Bob"
[System] -> [BMeasure] : "Eve wants to watch camera live stream"
}
@enduml
```
## Scenario \#4: State change of devices is processed within two seconds
Quality: _Performance (latency)_
Scenario: When a user changes the state of a smart device from the UI (e.g. switches on a light bulb), the change shall be applied to the smart device (e.g. light turns on) within 2 seconds
```puml
@startuml
skinparam componentStyle rectangle
skinparam monochrome true
skinparam shadowing false
rectangle "Normal operation" {
rectangle "User" as Source
rectangle "max 2 seconds" as Measure
Source -> [System] : "Requests device state change from UI"
[System] -> [Measure] : "Smart device changes state"
}
@enduml
```
## Scenario \#5: State change of device is
Quality: _Usability_
Scenario: During user testing, at least 75% of users, with no prior training, should be able to define a device automation workflow within 20 minutes.
```puml
@startuml
skinparam componentStyle rectangle
skinparam monochrome true
skinparam shadowing false
rectangle "User testing" {
rectangle "Untrained user" as Source
rectangle "max 20 minutes" as Measure
Source -> [System] : "Define device automation flow"
[System] -> [Measure] : "Comply to user desire"
}
@enduml
```
# Ex - Quality Attribute Tradeoff