Discovering quality attributes by applying "how well?" questions to functions in Use-Case structured scenarios, and then enriching the software architecture with additional functionality.
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
Extracting Quality Scenarios from Functional Scenarios
1. Dr. Amir Tomer, PMP, CSEP
Head of Department
Software and Information Systems Engineering
amir@amirtomer.com
2. Quality Attributes
Quality Attributes & Constraints
(Non-functional Requirements)
• Define the solution quality
– How well does the system carry out its
functional requirements?
• Performance
• Availability
• Security
• Interoperability
• …
Functional Requirements
• Define the solution contents
– What is the system required to
do?
Quality Attributes & Constraints
Design /
Implementation
Functional Requirements
Solution Domain
Dr. Amir Tomer, ISQ Conference, 2014 2 Extracting Quality Scenarios from Functional Scenarios
3. The Conflict
• System specifications concentrate mainly on functional
requirements
– They describe the purpose of the system
– They are conceptual (implementation-free)
– They remain valid even when quality attributes change
Whereas…
• The system architecture is driven mainly by quality attributes, e.g.
– Using redundancy to improve availability
– Using load-balancing to improve performance
– Using fire walls to improve security
– …
These do not affect the
basic functionality,
but may impose
additional functionality to
provide quality
Dr. Amir Tomer, ISQ Conference, 2014 Extracting 3 Quality Scenarios from Functional Scenarios
4. Car Navigation System
Define Trip
Locate Self
Send Report
Driver
Navigate along
Route
Maps Provider
Get Map
Get Road Status
GPS
Deviation from
Route
Reports Provider
Calculate Route
«include»
«include»
«include»
«include»
«include»
«include»
«extend»
Use Cases as Functional Scenarios
• Functional Scenarios are often specified as Use Cases
• A Use Case is a service (function) performed by a system through interaction with a set
of external Actors, of two kinds
– Primary Actors, who initiate Use Cases to achieve their goals
– Supporting Actors, with whom the system interacts for accomplishing the Primary
Actors’ goal
• UML’s Use Case Diagram depicts the set
of Use Cases within a system and their
associated Actors
• A single Use Case may have various scenarios,
but these are not depicted in the
Use Case Diagram
Example:
Use Case Diagram of a
Car Navigation System
Dr. Amir Tomer, ISQ Conference, 2014 Extracting 4 Quality Scenarios from Functional Scenarios
5. Use Case Specifications (Functional Scenarios)
• The various courses of interaction through a certain Use Case are captured in
a Use Case Specification, which comprises the following ingredients:
UC-# UC Name
Actors & Goals Primary actors and their stated goals
Supporting actors and their roles
Other
Stakeholders
Stakeholders that are not actors and their interests (business benefits, quality attributes) in this
specific UC
Pre-conditions Conditions/presumptions which must hold to enable the use case
Post-Conditions Desirable (success) results after use case completion
Trigger The event (either by a primary actor or by the system itself) that “starts-up” the UC
Main Success
Scenario (MSS)
A set of steps which describe the “most straightforward” interaction to achieve the post-conditions
Branches Other possible scenarios which may lead either to success (alternatives) or failure (exceptions)
in fulfilling the post-conditions
Dr. Amir Tomer, ISQ Conference, 2014 Extracting 5 Quality Scenarios from Functional Scenarios
6. Functional Analysis and Functional Architecture
• From the system’s point of view, a functional scenario is a sequence of
applying system functions
• Functional Analysis is the process of identifying system functions and
allocating each function to one or more functional components
• The set of functional components, their internal and external interface can be
considered as Functional Architecture
• For example, let us consider a simple car navigation system, arranged in a
client-server architecture, as follows:
Car Unit Maps & Reports Server
GPS Satellite
Dr. Amir Tomer, ISQ Conference, 2014 Extracting 6 Quality Scenarios from Functional Scenarios
7. Functional Scenario – Example
• A typical Main Success Scenario (MSS) of the “Navigate Along
Route” use-case might look as follows:
Trigger The driver presses the “Start Navigation” button
Main Success Scenario
(MSS)
1. The system enters “Navigate” Mode
2. The system retrieves the pre-defined route (See “Define Trip” UC)
3. The system retrieves a relevant map area
4. If the locally stored map data is missing – the system downloads map data from the
server
5. The system displays the map and route
6. The system gets the current location from the GPS
7. If the location is off route – the system re-calculates the route (See “Calculate Route” UC)
8. Back to step 4
Dr. Amir Tomer, ISQ Conference, 2014 Extracting 7 Quality Scenarios from Functional Scenarios
8. Functional Analysis and Functional Architecture – Example
• Applying the Functional Analysis process to the navigation scenario
might yield the following functional architecture:
GPS Signals
User
Commands
User
Displays
Locator
GUI
Map
Download
Nav igation App
Map Serv ices
Allocated Function
(Extracted from the
functional scenario):
“download map data
from the server”
Maps
Location
Commands
Displays
Static Binding
Dr. Amir Tomer, ISQ Conference, 2014 Extracting 8 Quality Scenarios from Functional Scenarios
9. Quality Scenarios*
• Quality Scenarios specify how to prevent
a fault from becoming a failure
*Bass, L., Clements, P. and Kazman, R., Software Architecture in Practice, 3rd Edition, Addison-Wesley, 2012
Dr. Amir Tomer, ISQ Conference, 2014 Extracting 9 Quality Scenarios from Functional Scenarios
10. Relations between Functional Scenarios and Quality Scenarios
• Quality scenarios do not stand by themselves
– They usually occur during functional scenarios
– Therefore it would be beneficial to associate the ingredients of quality
scenarios with those of functional scenarios (use cases) as follows:
• Actors
• Pre-conditions
• Trigger
• Main Success
Scenario
• Branches
– Alternatives
– Exceptios
• Post-conditions
Source •
Environment •
Stimulus •
Response •
Response Measurement •
Artifact •
Any system element
To which the relevant
Functionality is allocated
Dr. Amir Tomer, ISQ Conference, 2014 Extracting 10 Quality Scenarios from Functional Scenarios
11. Discovering Quality Attributes in the Functional Scenario
• Quality attributes can be discovered in the functional scenarios by
applying the “how well?” questions to the functions in the scenario
– For example:
Trigger The driver presses the “Start Navigation” button
Main Success Scenario
(MSS)
Is the driver aware?
(usability)
1. The system enters “Navigate” Mode
2. The system retrieves the pre-defined route (See “Define Trip” UC)
3. The system retrieves a relevant map area
4. If the locally stored map data is missing – the system downloads map data from the
server
5. The system displays the map and route
6. The system gets the current location from the GPS
7. If the location is off route – the system re-calculates the route (See “Calculate Route” UC)
8. Back to step 4
Does the server respond
within TBD seconds?
(availability)
Is the location precise?
(performance)
Dr. Amir Tomer, ISQ Conference, 2014 Extracting 11 Quality Scenarios from Functional Scenarios
12. Applying Response Tactics
• Regarding the server availability issue of the last example
– A stimulus (fault) occurs by getting no response from the server within TBD
seconds
– One of the tactics for handling availability is redundancy
• So the server may be multiplied
– This may add a branch (alternative) to the scenario, as follows:
Trigger The driver presses the “Start Navigation” button
Main Success Scenario
(MSS)
1. The system enters “Navigate” Mode
2. The system retrieves the pre-defined route (See “Define Trip” UC)
3. The system retrieves a relevant map area
4. If the locally stored map data is missing – the system downloads map data from the
server
5. The system displays the map and route
6. The system gets the current location from the GPS
7. If the location is off route – the system re-calculates the route (See “Calculate Route” UC)
8. Back to step 4
Branch A Alternative in step 4 of MSS: The server did not respond within TBD seconds
4A1. The system suggests an alternative server
4A2. Back to step 4 A new function!
Dr. Amir Tomer, ISQ Conference, 2014 Extracting 12 Quality Scenarios from Functional Scenarios
13. Back to Functional Analysis
• The newly discovered function should now be allocated to a functional
component
– If none of the components can handle this function, a new functional component
may be added
• The following modified architecture applies 3 architecture techniques
– Redundancy
– Mediation (“broker”) pattern
– Late binding
GPS Signals
User
Commands
User
Displays
Locator
GUI
Map
Download
Nav igation App
Map Broker
Status
1..*
Map Serv ices
Static Binding
Map Requests
Dynamic Binding
Maps
Displays
Location
Commands
Mediation
Redundancy
Dynamic
Binding
Dr. Amir Tomer, ISQ Conference, 2014 Extracting 13 Quality Scenarios from Functional Scenarios
14. Conclusion
• Quality Scenarios can be extracted from Functional (use-case)
scenarios
– They are added as branches to the existing scenario
– They may impose architectural changes
• This process is applied iteratively during architectural design
Dr. Amir Tomer, ISQ Conference, 2014 Extracting 14 Quality Scenarios from Functional Scenarios
15. References
1. Jacobson I., Christerson M., Jonsson P., Övergaard G., Object-
Oriented Software Engineering - A Use Case Driven Approach,
Addison-Wesley, 1992
2. Cockburn, A., Writing Effective Use Cases. Addison-Wesley, 2001.
3. Writing Use Case Scenarios for Model Driven Development,
http://www.sparxsystems.com/downloads/quick/writing-structured-
use-case-scenarios-mdd.pdf
4. Bass, L., Clements, P. and Kazman, R., Software Architecture in
Practice, 3rd Edition, Addison-Wesley, 2012.
5. Bachmann, F., Use Cases Quality Attribute Scenarios, SEI, Carnegie-
Mellon University,
http://www.cac.cornell.edu/VW/usecases/default.aspx
Dr. Amir Tomer, ISQ Conference, 2014 Extracting 15 Quality Scenarios from Functional Scenarios
16. Any questions?
amir@amirtomer.com
052-8890202
16 Extracting Dr. Amir Tomer, ISQ Conference, 2014 Quality Scenarios from Functional Scenarios