Title: Architecture View Document
1Architecture View Document
- Team Lingua Franca
- Radhika Bansal
- Rikuo Kittaka
- Thomsun Sriburadej
- Bradley Wilson
- Kenichi Nakao
2Architectural Drivers
- Technical Constraint
- TC003 The tool should be able to run on XP and
Vista - TC004 The tool will be developed using Java
- High-level Functional Requirements
- FRS002, 003 Create a new quality attribute, and
architectural strategy - FRS010, 011 Visualize cost/benefit graph, and
utility curve - FRS013 User sees dynamic update
- Quality Attributes
- QA012 Extensibility Add a new analysis method
- QA013 Extensibility Add a new prioritization
technique - QA003 Performance Display graphical
representation in 2 seconds - QA006 Usability Ease of use of user interface
- QA010 Modifiability Replace the prioritization
technique used - QA009 Modifiability Modify existing formula
3Modifiability/Extensibility Tactics
- Design elements needs for modifiability
- Addition of Formula QA009
- Screen Layout (Combination of GUI components)
QA010,QA012,Q014 - Construction of Analysis Step QA012
- Combination and Order of Analysis Steps to create
Analysis Method - QA010,QA012
- Data Structure T.B.D.
- Modifiability Tactics
- Localize modifications -gt Anticipate expected
changes - allow the developer to modify the code minimal
cost and time at design time - Defer binding time -gt Configuration files
- allow the end user to make setting that affects
behavior at startup time/runtime
4Deployment Style
X
Users PC
EDA System
-Analysis Data -Project Data -Configuration Data
EDA Tool
Legend
System Boundary
Process
Files
PC
5High Level View
X
EDA Tool Process
UI Thread
Core Engine
User Package
Analysis Data
Spring Configuration
Project Data
Legend
Components
Connectors
Port
Use port
Thread provided by Eclipse Platform
CallReturn Conn
Process
Provide port
Event Bus
Announce port
Logical grouping of component
Files
Data Access
Receive port
Output port
Instantiate
Multiple Object
Input port
6Decomposed View of Core Engine
UI Thread
X
Analysis Step Engine
Core Engine
Analysis Report Generator
Eclipse Menu/Coolbar /View/Dialog
Analysis Step Controller
Analysis Step Controller
Analysis Step Controller
Analysis Method Manager
Action Handler
Action Handler
Action Handler
Abstract Data
Analysis Data Manager
Data
Analysis Step
Analysis Step
Data Factory
Project Data Manager
Data Translator
Analysis Data
Spring Configuration
Project Data
Legend
Components
Connectors
Port
Output port
Use port
Logical grouping of component
CallReturn Conn
Multiple Object
Input port
Provide port
Event Bus
Announce port
Object
Files
Data Access
Receive port
Thread provided by Eclipse Platform
Instantiate
3rd Party Object
7Decomposed View of Analysis Step Engine
UI Thread
X
Analysis Step
Notify user command
GUI (SWT)
View Composite
Analysis Step Controller
GUI
Analysis Step Controller
Formula
Select View
Analysis Step Controller
GUI
Formula
Update GUI
Update Value
Update GUI
GUI (JFreeChart)
GUI
GUI
State Query
Data
Data
Data
Notify Change
Specific data requests
Data Factory
Legend
Connectors
Port
Components
Use port
Output port
CallReturn Conn
Logical grouping of component
3rd Party Object
Input port
Provide port
Event Bus
Announce port
Files
Multiple Object
Data Access
Receive port
Thread provided by Eclipse Platform
Instantiate
8Element-Responsibility Catalog -1
- File
- Configuration file
- This is XML format file.
- This file contains following information
- The number of Analysis Methods
- Names of Analysis Methods
- Names of Analysis Steps
- Combination and Order of Analysis Steps of each
Analysis Method - Screen layout (Combination of GUI components) of
each Analysis Step - Dependencies between formula module and data
module - Dependencies between GUI component and data
module - Analysis data file
- This file contains following information
- Quality Attribute Scenarios (QAS)
- Architecture Strategies (AS)
- Project data file
- T.B.D.
9FRS014
Dynamic GUI Update
X
User command
User command
User Input
Update
Analysis Step Controller
UI Thread
GUI (SWT)
Data / Formula
Change notification
View Composite
Update
State query
GUI (JFreeChart)
Update
Legend
Thread
User interacts with A
A
A
B
A call B
A
B
A notifies B
Object
Analysis data flow from A to B
A
B
10GUI / Core
X
Data Validation
Project Explorer
Project Data Manager
Run Manager
Abstract Data
Analysis Run
Validator
Analysis Data Manager
Abstract Step
Abstract Analysis Run
Editor Info
View Info
Legend
A
B
A uses B
A
B
A implements B
Package
Class
A instantiates B
A
B
A
Package (A) contains class (B)
3rd party Package
B
A
B
A extends B
Classes
11User (Data) / Core
Abstract Data
Abstract Data Attributes
X
Analysis Data Manager
Project Data Manager
Run Manager
Abstract Step
Abstract Analysis Run
Validator
Analysis Step
Analysis Run
Data Export Factory
XML Factory
Plug-in Adapter
Excel Factory
Data Factory
Legend
A
B
A uses B
A
B
A implements B
Package
Class
A
B
A uses B for annotation only
A
Package(A) contains class(B)
3rd party Package
B
Classes
A
B
A extends B
12User (View) / Core
Abstract Data
Abstract View Controller
X
Analysis Data Manager
Project Data Manager
Run Manager
Abstract Step
Abstract Analysis Run
Abstract Editor Controller
Abstract View Composite
Abstract Input Validator
Abstract Field Formatter
Abstract Data Attributes
Analysis Run
View Configuration
Field Formatter Factory
Input Validation Factory
Editor Configuration
Plug-in Adapter
Analysis Step
IPrioritization
Chart Factory
IEditor
Legend
A
B
A uses B
A
B
A implements B
Package
Class
A
B
A uses B for annotation only
A
Package(A) contains class(B)
3rd party Package
B
Classes
A
B
A extends B
13Appendix
14Acronym
15FRS0
Create New QAS
FRS002
X
GUI (SWT)
Data Factory
UI Thread
Abstract Data
GUI (Dialog)
Analysis Data Manager
User Input
NewQAS(adParent, adRef)
OnCommand(Parent, Ref)
OnCommand(Parent, Ref)
performAnalysisDataAction(Parent, Ref, actionType)
getDataClass(classname)
QAS Class Type
addClassToDataTree(data, classname)
NotifyChange
UpdateGUI
UpdateGUI
UpdateGUI
Legend
Thread provided by Eclipse Platform
User interacts with A
A
A
B
A call B
A
B
A notifies B
Object
16Relation between Formula and Data Package
TBD K After Data Structure is fixed, need to be
updated
X
Formula
Calc.AS Value
Calc.Normalized Benefit
Calc.ROI
Calc.Total Benefit
Data
QAS
AS
AS-QAS
Legend
A uses B for Input param.
B
A
Class Package
A uses B for output param.
Class Module
B
A
17Glossary
- Analysis Method
- Analysis Method is a technique for analyzing
cost and benefit of architecture strategy - Consist of several Analysis Steps
- ex) CBAM and Real Options are Analysis Methods
- Analysis Step
- Analysis Step is a step to collect or calculate
data - Each step consists of zero or more formulae
- Analysis Step could be specific to Analysis
Method, or could be shared among different
Analysis Method, depending on how it manipulates
data - Some types of Analysis Steps are
interchangeable, for example, Prioritization by
Conjoint Analysis can replace Prioritization by
Voting in CBAM analysis method. - Formula
- Formula is an atomic calculation step, and can
be used in any Analysis Step - ex) VFC Calculation can be used in any Analysis
Step. According the hierarchy, any step that has
VFC Calculation could be used in CBAM or Real
Options, which are Analysis Methods.
step1
step2
step3
step4
step5
step6
Collect Refine QAS
Prioritize QAS
Assign QAS Utility Score
Develop ASs
Determine ASs Utility Score for Each QAS
Calculate VFC for Each AS
CBAM
- Normalized Benefit calculation
- Total Benefit calculation
- ROI calculation
Analysis Step
Analysis Method
Formula
18QAS009,012,013 scenarios
step1
step2
step3
step4
step5
step6
Collect Refine QAS
Prioritize QAS
Assign QAS Utility Score
Develop ASs
Determine ASs Utility Score for Each QAS
Calculate VFC for Each AS
CBAM
- Normalized Benefit calc
- Total Benefit calc
- ROI calc
Develop ASs including switching and maintenance
cost
Assign QAS Utility Score over a period of time
Develop Context Information
Calculate VFC for Each AS
Add RealOption (QAS012)
- Benefit Overtime calc
- Profit Overtime calc
- Option Value calc
- Profit of AS calc
Change Prioritization Technique to conjoint
analysis (QAS013)
Prioritize QAS by Conjoint Analysis
Change the calculation formula (QAS009)
19Process to add/complete issues
4.return the issue
Members
Chief Architect
Architecture Document
2.notify the issue no.
4.update
3.check the result close the issue
1.find/solve the issue update document
the issue list
ADS
Experimentation List
Quality Process Engineer
observe encourage members
In the case adding a new issue, the responsible
engineer should be Chief Architect.
20Old Version
21FRS014
Dynamic GUI Update
X
GUI (SWT)
Analysis Step Controller
UI Thread
Data
View Composite
GUI (JFreeChart)
Formula
User Input
NotifyUserCommand
NotifyUserCommand
NotifyUserCommand
UpdateData
DoCalculation
NotifyChange
GetData
UpdateGUI
UpdateGUI
Legend
Thread provided by Eclipse Platform
User interacts with A
A
A
B
A call B
A
B
A notifies B
Object
22High Level View
EDA Tool
X
Old Version
Data Repository
Configuration (XML)
Analysis Data (XML)
Legend
A instantiates B
System Boundary
A
B
Data Repository
A uses B
A
B
3rd party Class Package
File
Class Package
23Element-Responsibility Catalog -2
- Packages
- Core Package
- contains the core engine
- Calculation Package
- contains formula modules
- Data Structure Package
- contains data modules.
- GUI Package
- contains GUI modules and 3rd party GUI libraries
(JFreeChart) - Data Transport Package
- contains data import/export module and project
file open/save module
24Element-Responsibility Catalog -3
- Module
- Core Engine
- Read configuration data file from the data
repository - Parse configuration data, and ensure that
configuration information is valid - Create the formula module, data module, and GUI
module instances depends on the configuration
information - Input data to GUI modules and request update to
them - Receive user input from GUI modules
- Request calculation to formula modules based on
the configuration information - Receive calculation result from calculation
modules - Request to import or export analysis data to data
import/export modules - Request to open or save project data to project
open/save modules - Formula module
- Calculate the value of AS value, Normalized
Benefit, Total Benefit, and ROI using data that
data modules have - Save calculated data to data module
- Return data calculated data to core engine module
- Data module
- Cache QAS, AS, and AS-QAS data in volatile memory
- Provide data to formula modules
- Receive calculated data from formula module to
cache it in volatile memory
25System Startup
No FR
X
Old Version
Data Repository
CoreEngine
XML Data
1 n
Configuration (XML)
Legend
System Boundary
A
B
A instantiates B
Data Repository
A
B
A calls B
File
Thread
Data flow from A to B
1 n
One or more
Object
A
B
- Core Engine
- Read Configuration File (XML)
- Parse the XML
- Instantiate GUI items based on information in XML
26FRS014
Dynamic GUI Update
X
Old Version
perform a calculation
CoreEngine
input
User Input
GUI
Calculation
calculation result
calculation result
request data
Data
Configuration (XML)
Legend
Analysis data flow from A to B
A
B
A calls B
A
B
Thread
A interacts B
A
B
Object
Configuration data flow from A to B
A
B
File
- Core Engine
- Receive user input
- Request calculation based on information in XML
to Calculation object - Receive calculation result
- Update GUI with calculation result
27EDA System
EDA Tool
X
Calculation
P2
Old Version
Legend
System Boundary
Data Structure
P3
Data Repository
Pn
Class Package
Core
P1
Class Module
Configuration (XML)
Core Engine
Data Repository
File
Analysis Data
A uses B
A
B
Data Transport
P5
Project Data
A implements B
A
B
Data Import /Export
Project Open/Save
GUI
P4
Text box
Tab menu
Graph Chart
GUI module
28Extensibility for method
QAS009,010,012
EDA Tool
-Implement method
Calculation
P2
X
Old version
Calc.AS Value
Calc.Normalized Benefit
Calc.Total Benefit
Calc.ROI
BenefitOvertime
ProfitOvertime
Legend
System Boundary
-Add screens for inputting data -Modify analysis
result screen -Change dependency between calc and
data
Option Value
Prof of AS
ltinterfacegt Calculation
Pn
Class Package
Class Module
Data Repository
Core
Data Structure
P1
P3
Data Repository
Configuration File (XML)
Core Engine
QAS
AS
AS-QAS
File
Context Information
A uses B
A
B
Analysis Data
Data Transport
P5
A inherits B
A
B
Data Import /Export
Project Open/Save
Project Data
-Implement method
GUI
P4
Text box
Tab menu
Configuration Data -Analysis steps -Screen
layout (GUIs) -Map GUI component - Data -Map
Data - Calculation method
29Relation between Calc and Data Package
Calculation
P2
ltinterfacegt Calculation
X
Old Version
Legend
Calc.AS Value
Calc.Normalized Benefit
Calc.Total Benefit
Calc.ROI
formula module
Pn
Class Package
Class Module
Data Structure
P3
QAS
AS-QAS
Field in class
Scenario ID
AS ID
A uses B for Input param.
B
Attribute
A
QA ID
Attribute Concern
Response Measure (Expected)
A uses B for output param.
Scenario
Benefit
B
A
Stimulus
Normalized Benefit
Source of Stimulus
A implements B
A
B
Environment
AS
Artifact
AS ID
Responses
AS Name
Response Measures 1-
AS Description
Votes
Total Benefits
Utility Scores 1-
?Cost
AS ROI
data module