WIP Quality Attribute Scenarios
This commit is contained in:
parent
2c089af949
commit
38210ad9f9
1 changed files with 152 additions and 5 deletions
|
@ -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
|
||||
|
||||
|
|
Reference in a new issue