Software Architecture Risk Assessment (SARA) Tool

advertisement
Software Architecture Risk Assessment
(SARA) Tool
Khader Basha Shaik
Problem Report Defense
Master of Science in Computer Science
Lane Department of Computer Science and Electrical Engineering,
West Virginia University
This work is funded in part by grants to West Virginia University Research Corp. from the National Science
Foundation (NSF-ITR) Program, and from the NASA Office of Safety and Mission Assurance (OSMA) through
the NASA Independent Verification and Validation (IV&V) Facility, Fairmont, West Virginia.
Outline











Introduction
Previous and Related work
Problem Statement
Objectives
Maintainability Risk
Product Line Architecture
Architecture of SARA Tool
Proposed Approach
Testing
Conclusion and Future Work
Demo of


SARA Tool
Introducing Web Based SARA Tool
Introduction
 Risk assessment helps projects to avoid unpredicted failures and
catastrophic problems. Also, it largely prevents wrong allocation of
resources.
 According to NASA-STD-8719.13A standard, risk is a function of
the anticipated frequency of occurrence of an undesired event, the
potential severity of resulting consequences, and the uncertainties
associated with the frequency and severity.
 In this research, we present a tool that support architectural
level model-based risk assessment, which includes
 Maintainability based risk
 Reliability based risk and
 Requirements based risk.
Introduction (contd..)
 SARA Tool extends our earlier Architectural-level Risk Assessment
Tool (ARAT) by providing support for more architectural models and
different perspective of risk assessment other than reliabilitybased and requirement based risk.
 It is built on the maintainability-based risk assessment methodology
developed by Walid Abdelmoez and described in his Ph.D. Dissertation
as part of the Software Architecture Risk Assessment Project funded by
NASA.
Previous and Related work
 SARA Tool developed in this research is a major extension of an
earlier tool called Architecture-level Risk Assessment Tool (ARAT)
 ARAT estimates the distribution of the scenario, use case and system
risk factors on different severity classes which allow us to make a list of
critical scenarios in each use case, as well as a list of critical use cases in
the system.
 ARAT supports only Reliability and Requirement Risk.
Previous and Related work (contd..)
 Software Architecture Analysis Method (SAAM) and Architecture
Trade-off Analysis Method (ATAM) developed at the Software
Engineering Institute (SEI) at Carnegie-Mellon University (CMU).
 In both above approaches, the assessment is based on qualitative
measures and the experience of the analyst.
 SDMetrics Tool: It analyzes the structural properties of UML designs.
Use object-oriented measures of design size, coupling, and complexity.
Doesn’t support Risk Analysis and Product Line Architectures.
Problem Statement
 The main focus of this research is to develop tool support for
quantitative risk assessment of software architectures.
The problem addressed in this report is to further develop and
extend the Software Architecture Risk Assessment (SARA) tool by
providing support for maintainability-based risk assessment and
support for the analysis of product line architectures.
This tool shall support quantitative analysis that complements the
methods developed by the Software Engineering Institute at
Carnegie-Melon University (CMU) on the qualitative assessment of
software architectures.
Objectives
The main objectives of this tool are listed below:
• To Design, Develop and Implement the tool for different types of
Software Architecture-level metrics and risk Assessment.
• To extract the data from the design diagrams (class diagrams, sequence
diagrams and state chart diagrams) by accepting the input files in XMI
and .txt format.
• To implement algorithms, estimating metrics (change propagation and
size of change metrics) and risk factors (corrective and adaptive
maintainability risk factors) on StarUML, UML RT, and Product Line
Architectures based on the methodology proposed.
Objectives (contd..)
• Complement the ATAM process by providing the quantitative analysis of
the product and help to track the quality of software architectures.
• Ability to identify critical components and scenarios based on estimated
their risk factors.
• Providing high flexibility and extensibility, so that the tool can support
other risk assessment perspectives such as performance-based risk and
other architecture metrics, and other input formats.
• Portability and scalability.
Maintainability Risk
•
In accordance with NASA-STD-8719 standard, we define
maintainability-based risk is as a combination of two factors: the
probability performing maintenance tasks and the impact of performing
these tasks .
Accordingly, Maintainability-based Risk for a component is defined as:
Probability of changing the component* Maintenance impact of changing
the component.
Maintainability Risk (contd..)
Maintainability Risk Methodology
Product Line Architecture
• A software product line architecture is the encompassing architecture for
the family of products that make up the product line and specifies what is
common, and what variations are explicitly allowed among them.
–Variabilities are characteristics that may vary from a product to another. The
main challenge in the context of software Product Lines (PL) approach is to
model and implement these variabilities.
• One of the main concepts behind Product line architecture is software
reuse through managing variability between the products in the PL.
Product Line Architecture (contd..)
Stereotypes:
 Kernel. Kernel in PLs represents the mandatory features for the PL members.
i.e.: they cannot be omitted in products. The stereotype <<kernel>> is used to
specify Kernel in UML class diagrams.
 Optionality. Optionality in PLs means that some features are optional for the PL
members. i.e.: they can be omitted in some products. The stereotype
<<optional>> is used to specify optionality in UML class diagrams.
 Variation. We model variation point using UML inheritance and stereotypes:
each variation point will be defined by an abstract class and a set of subclasses.
The abstract class will be defined with the stereotype <<variation>> and each
subclass will be stereotyped<<variant>>.
Example of PLA for Micro-oven model in shown in the next side
<<kernel>>
DoorSensor
+Door Opened()
+Door Closed()
Class Diagram of Micro-oven PLA
model
<<kernel>>
Keypad
<<optional>>
Lamp
<<optional>>
Beeper
<<optional>>
Turntable
+Cooking Time Selected()
+Cooking Time Entered()
+Start()
MicrowaveOvenSystem
<<kernel>>
Display
<<kernel>>
WeightSensor
<<variant>>
Multi-lineDisplay
<<default>>
BooleanWeightSensor
<<default>>
One-lineDisplay
+Item Placed()
+Item Removed()
+Read()
<<variant>>
AnalogWeightSensor
<<kernel>>
HeatingElement
<<default>>
One-levelHeatingElement
<<variant>>
Multi-levelHeatingElement
Architecture of SARA Tool
Control Flow diagram for Maintainability risk Calculation Module
Import Architecture Desc file
Display
Module
Data Parser Module
Database access Module
Storing data into database
SARA Tool
Database
Retrieving data from database
Calculation Module
Change Propagation and Size of Change
Calculation
Initial Change Probability Calculation
(Optional)
Maintainability Risk Calculation
Process Flow Chart of PLA
module in SARA Tool
Build StarUML
PLA model of
target System
SARA Tool
Import modal data (XMI) into SARA
Tool
Create Instances (Product Lines)
Store the Product Lines in Repository
Preprocess each Product Line and save data is
Repository
Change Propagation Analysis
Size of Change Analysis
No
Maintainability Risk
Identify optimal Product Line
Is the
architecture
quality of the
target software?
satisfied the
specification
requirement?
Use case diagram of maintainability-based risk functionality of the SARA tool
PerformStaticAnalysis
StarUML
UMLRT
Estmate ICP
Analyst
Estimate CP Probability
PLA
Repository
EstimateComponentMaintainabilityRisk
Estimate Size of Change
RetriveAnalysisInfo
Class Diagram of SARA Tool
SeverityWeightFame
File Creator
+File f
+JTextField
+JRadioButton
+writeToFile(File f)
+getFile()
+actionPerformed()
+getOptions()
computuationModule
+fileConnector
+doDataProcessing()
+calMaintainabilytRisk()
+calReliabilitytRisk()
+calRequirementRisk()
+saveData()
+getData()
MyFrame1-SARAT
Copier
+MenuBar
+InterframeSet
+MenuItem
+StringTokenizer
+calculationModule
+File of,ef
+Copy()
+actioinPerformed()
+instaniate()
+import()
fileRepository
+Files
+getData()
+storeData()
1..*
Display Component
+InterFrameSet()
+TableFrame()
+ChartFrame()
+LogFrame()
+ModelFrame()
+DynamicTable()
+DynamicChart()
+DynamicTree()
1..*
Parser Component
+parserStarUML()
+parserPLA()
+parserUMLRT()
+parserJavaUnd()
1..*
1..*
Metrics Component
Risk Component
+changePropagation()
+sizeOfChange()
+ICP()
+errorPropagation()
+MaintainabilityRisk()
+ReliabilityRisk()
+RequirementRisk()
Proposed Approach
• Models supported by the Tool
– For Maintainability Risk
• StarUML
• UMLRT
• PLA
– For Reliability Risk
• UMLRT
– For Requirement Risk
• UMLRT
• Extract Architectural Description of Models
• Modules in SARA Tool
–
–
–
–
Import Module
Metrics Module
Risk Module
User Interface Module
Proposed Approach (contd..)
• Import Module
 Architecture description files to be imported to the SARA Tool
workspace
 The input formats used by the SARA Tool are:
 For StarUML model : XMI and .txt Files
 For UMLRT model : .txt Files
 Unlike UMLRT, StarUML is an open source UML/MDA
Tool. Any user can just develop his Architecture Model and use
SARA Tool for Risk Assessment.
Proposed Approach (contd..)
• Metrics module in SARA Tool
– The transaction methods in Java call various algorithms to
compute metrics.
– StarUML model
Change propagation
Size of change
Initial Change Probabilities
Error propagation
Size
Coupling
Complexity
– UMLRT model
Change propagation
Size of change
Initial Change Probabilities
Error propagation
Proposed Approach (contd..)
• Risk module in SARA Tool
– Maintainability Risk
– Reliability Risk
– Requirement Risk
• User Interface module in SARA Tool
– Swings are used to show the outputs to the user.
– Results are shown to the analyst in both table and bar chart
format.
– A third party tool- Espress Chart has been used to display results
in bar chart format
Testing
• Testing was done on the following modules with different
Case Studies
 Import Module
 Metrics Module
 Risk Module
 User Interface Module
• Case Studies Used
 CM1 Model
 Pacemaker Model
 Game of life Model
 Micro-oven PLA Model
Case Study:CM-1:
Class Diagram from StarUML
DCI
TMALI
+hkData()
+dciGetEvents()
+dpaSetNumEvents()
+dpaEvent()
+tmaliEvents()
+tmaliNullEvents()
+dpaConfigDone()
ICUI
+read()
+ccmCmdEnq()
+write()
+hkData()
+dpaModeReady()
+dpaEnqDone()
DPA
1553
+tmaliWaitForEvents()
+tmaliGetEvents()
+dciConfigure()
+dciConfigure()
+scuiEnqDone()
+icuiChanBound()
+icuiReady()
+icuiEnq()
+dcxEnq()
+dcxEnqDone()
+hkData()
+events()
+scuiEnq()
+tisTimeSync()
+writeEDone()
+hkData()
+dcxEventIn()
+dcxEnqDone()
+dpaEnqDone()
+write()
+writeE()
SSI
+readData()
+write()
SCUI
DCX
+dpaEnqDone()
+hkData()
+scuiEnq()
+scuiEnqDone()
CCM
+tmaliDciTimeoutSet()
+tmaliHkGet()
+icuiHBSend()
+dpaModeCmd()
+icuiHkGet()
+dcxHkGet()
+dpaHkGet()
+bitHkGet()
+tisHkGet()
+edacHkGet()
+scuiHkGet()
+scuiEnq()
TIS
+hkData()
EDAC
+hkData()
BIT
+hkData()
Some of the Sequence Diagrams of
CM-1 Model :
SETUP
ICUI
SSI
CCM
DPA
1 : initDpa()
2 : initCcm()
3 : initSsi()
4 : initIcui()
5 : read()
6 : readData()
7 : ccmCmdEnq()
SETUP
ICUI
SSI
CCM
DPA
8 : dpaModeCmd()
TMALI
1 : initTmali()
9 : icuiChanBound()
2 : initDpa()
3 : initCcm()
10 : write()
4 : initSsi()
5 : initIcui()
6 : read()
7 : readData()
8 : ccmCmdEnq()
9 : dpaModeCmd()
10 : TmaliDoiTimeoutSet()
Some of the Sequence Diagrams of CM-1 Model : (Khder there is no need for
this slide, you already showed examples of sequence diagrams in previous slide)
SETUP
CCM
BIT
DCX
DPA
EDAC
ICUI
SCUI
TIS
TMALI
1 : initMilstd()
2 : initTmali()
3 : initTis()
4 : initScui()
5 : initIcui()
6 : initEdac()
7 : initDpa()
8 : initDcx()
9 : initBit()
10 : initCcm()
11 : hkData()
12 : hkData()
13 : dcxHkGet()
14 : hkData()
15 : dpaHkGet()
16 : hkData()
17 : edacHkGet()
18 : hkData()
19 : icuiHkGet()
20 : hkData()
21 : scuiHkGet()
22 : hkData()
23 : tisHkGet()
24 : hkData()
25 : tmaliHkGet()
26 : hkData()
27 : scuiEnq()
28 : write()
1553
XMI file exported from StarUML
------Let us go to Tool demo now
Conclusion and Future Work
 Software Architecture Risk Assessment (SARA) Tool is designed
and implemented as a tool for computing and analyzing
architectural level risk factors like Maintainability Risk, Reliability
Risk and Requirement Risk.
 Efforts are made in implementing the methodology on Product Line
Architectures for analyzing all possible instances and coming out
with better architecture with minimum risk
Conclusion and Future Work (contd..)
Among our venues of further research, we are considering
 To add other risk assessment perspectives like performance-based risk.
 To support reliability and requirement risk for StarUML model( do we
have reliability risk supported already in the current version?).
 To support more input formats for the tool and test with multiple case
studies.
 To support evaluation of Product Line Architectures with multiple case
studies.
 To make SARA Tool a complete version of web based open source
tool.
 Support Data Mining analysis process with statistical data and risk
factors.
DEMO of the SARA Tool……
Thank You
Download