Model-Based Risk Assessment

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

Design of Experiments Lecture I
Object-Oriented Analysis and Design
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
Software Metrics II Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
Managing Reuse Presented by: Aisha Al-Hammadi. Outline Introduction History. The technical and managerial advantages of Reusing Solutions. The main challenges.
West Virginia University A Bayesian Approach to Reliability Predication of Component Based Systems H. Singh, V. Cortellessa, B. Cukic, E. Gunel, V. Bharadwaj.
Methodology for Architectural Level Reliability Risk Analysis Lalitha Krothapalli CSC 532.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Software Architecture Risk Assessment (SARA) Tool Khader Basha Shaik Problem Report Defense Master of Science in Computer Science Lane Department of Computer.
1 NASA OSMA SAS02 Software Reliability Modeling: Traditional and Non-Parametric Dolores R. Wallace Victor Laing SRS Information Services Software Assurance.
IV&V Facility 1 Software Reliability Corroboration Bojan Cukic, Erdogan Gunel, Harshinder Singh, Lan Guo West Virginia University Carol Smidts University.
بسم الله الرحمن الرحيم الحمد لله ، والصلاة والسلام على رسول الله
IV&V Facility 1 FY2002 Initiative: Software Architecture Metrics Hany Ammar, Mark Shereshevsky, Nicholay Gradetsky, Diaa Eldin Nassar, Walid AbdelMoez,
University of Coimbra, DEI-CISUC
Software Architecture Metrics Hany Ammar, Mark Shereshevsky, Ali Mili, Walid Rabie and Nicholay Gradetsky Lane Department of Computer Science & Electrical.
VTT-STUK assessment method for safety evaluation of safety-critical computer based systems - application in BE-SECBS project.
Research Heaven, West Virginia 1 FY 2004 Initiative: Risk Assessment of Software Architectures Hany Ammar, Katerina Goseva-Popstojanova, Ajith Guedem,
1 Software Quality CIS 375 Bruce R. Maxim UM-Dearborn.
IV&V Facility PI: Katerina Goseva – Popstojanova Students: Sunil Kamavaram & Olaolu Adekunle Lane Department of Computer Science and Electrical Engineering.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
Software Measurement & Metrics
Slide 1V&V 10/2002 Software Quality Assurance Dr. Linda H. Rosenberg Assistant Director For Information Sciences Goddard Space Flight Center, NASA
Software Project Management Lecture # 3. Outline Chapter 22- “Metrics for Process & Projects”  Measurement  Measures  Metrics  Software Metrics Process.
Lucian Voinea Visualizing the Evolution of Code The Visual Code Navigator (VCN) Nunspeet,
IV&V Facility 1 FY 2002 Initiative IV&V of UML Hany Ammar, Katerina Goseva-Popstojanova, V. Cortelessa, Ajith Guedem, Diaa Eldin Nassar, Walid AbdelMoez,
©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 1 Chapter 21 Software Evolution.
Research Heaven, West Virginia 1 FY 2004 Initiative: Risk Assessment of Software Architectures Hany Ammar, Katerina Goseva-Popstojanova, Ajith Guedem,
Chapter 3: Software Project Management Metrics
Research Heaven, West Virginia FY2003 Initiative: Hany Ammar, Mark Shereshevsky, Walid AbdelMoez, Rajesh Gunnalan, and Ahmad Hassan LANE Department of.
1 Report on results of Discriminant Analysis experiment. 27 June 2002 Norman F. Schneidewind, PhD Naval Postgraduate School 2822 Racoon Trail Pebble Beach,
Software Architecture Risk Assessment (SARA) Tool Khader Shaik, Wallid Abdelmoez, Dr. Hanny Ammar Lane Department of Computer Science and Electrical Engineering,
Toulouse, September 2003 Page 1 JOURNEE ALTARICA Airbus ESACS  ISAAC.
SOFTWARE ENGINEERING. Objectives Have a basic understanding of the origins of Software development, in particular the problems faced in the Software Crisis.
West Virginia University Sherif Yacoub, Hany H. Ammar, and Ali Mili A UML Model for Analyzing Software Quality Sherif Yacoub, Hany H. Ammar, and Ali Mili.
1 Predicting Classes in Need of Refactoring – An Application of Static Metrics Liming Zhao Jane Hayes 23 September 2006.
ANALYSIS PHASE OF BUSINESS SYSTEM DEVELOPMENT METHODOLOGY.
Copyright , Dennis J. Frailey CSE Software Measurement and Quality Engineering CSE8314 M00 - Version 7.09 SMU CSE 8314 Software Measurement.
SwCDR (Peer) Review 1 UCB MAVEN Particles and Fields Flight Software Critical Design Review Peter R. Harvey.
Dillon: CSE470: ANALYSIS1 Requirements l Specify functionality »model objects and resources »model behavior l Specify data interfaces »type, quantity,
SENG521 (Fall SENG 521 Software Reliability & Testing Preparing for Test (Part 6a) Department of Electrical & Computer Engineering,
Advanced Software Engineering Dr. Cheng
Chapter 33 Estimation for Software Projects
A Hierarchical Model for Object-Oriented Design Quality Assessment
Software Design Refinement Using Design Patterns
OPERATING SYSTEMS CS 3502 Fall 2017
Chapter 7. Classification and Prediction
Managing the System PPT SOURCE : Shari L. Pfleeger Joann M. Atlee.
Product reliability Measuring
Software Independent Verification and Validation (IV&V)
Software Engineering: A Practitioner’s Approach, 6/e Chapter 23 Estimation for Software Projects copyright © 1996, 2001, 2005 R.S. Pressman & Associates,
How does a Requirements Package Vary from Project to Project?
بسم الله الرحمن الرحيم الحمد لله ، والصلاة والسلام على رسول الله
Software Risk Assessment based on UML models
Introduction to Software Engineering
Model-Driven Analysis Frameworks for Embedded Systems
The Extensible Tool-chain for Evaluation of Architectural Models
Introduction To System Analysis and Design PART 2
Chapter 2 – Software Processes
Chapter 9 – Software Evolution and Maintenance
Introduction To software engineering
Software Architecture Risk Assessment (SARA) Tool
Chapter 33 Estimation for Software Projects
Introduction to Pattern Oriented Analysis and Design (POAD)
Software Engineering: A Practitioner’s Approach, 6/e Chapter 23 Estimation for Software Projects copyright © 1996, 2001, 2005 R.S. Pressman & Associates,
Chapter 8 Software Evolution.
Lecture 06:Software Maintenance
Methodology for Architectural Level Reliability Risk Analysis
Design Yaodong Bi.
Chapter 26 Estimation for Software Projects.
Presentation transcript:

Model-Based Risk Assessment Walid AbdelMoez LANE Department of Computer Science and Electrical Engineering West Virginia University Morgantown, WV 26506-6109 This work is funded in part by grants from the NSF ITR Program and from the NASA Office of Safety and Mission Assurance (OSMA) SARP program managed through the NASA IV&V Facility, Fairmont, West Virginia. Tuesday November 28

Outline Introduction The Problem Research Objectives Research Contribution Reliability-Based Risk Assessment Considering Dependencies among System Components Reliability-Based Risk Assessment with Functional Dependencies Maintainability-Based Risk Assessment Maintainability-Based Risk Assessment Estimation Methodology Software Architecture Risk Assessment (SARA) Tool Conclusion Future Work Tuesday November 28

Introduction A sound architecture is the key to build a software system with high quality attributes. Risk assessment is an essential part in the management of software development. Performing it in the early phases of software development can enhance allocation of resources within the software lifecycle. Risk assessment provides useful means for identifying potentially troublesome software components that require careful development and allocation of more testing effort. Tuesday November 28

Outline Introduction The Problem Research Objectives Research Contribution Reliability-Based Risk Assessment Considering Dependencies among System Components Reliability-Based Risk Assessment with Functional Dependencies Maintainability-Based Risk Assessment Maintainability-Based Risk Assessment Estimation Methodology Software Architecture Risk Assessment (SARA) Tool Conclusion Future Work Tuesday November 28

Problem Statement In pursue of our research effort, we identify the following problems: How can we assess risk associated with the non-functional attributes of reliability and maintainability of a system based on quantitative means How to define a practical reliability-based risk assessment methodology that captures the dependencies between the system functionalities and among components Tuesday November 28

Outline Introduction The Problem Research Objectives Research Contribution Reliability-Based Risk Assessment Considering Dependencies among System Components Reliability-Based Risk Assessment with Functional Dependencies Maintainability-Based Risk Assessment Maintainability-Based Risk Assessment Estimation Methodology Software Architecture Risk Assessment (SARA) Tool Conclusion Future Work Tuesday November 28

Research Objectives The objectives of this research are: To develop reliability-based risk assessment methodology that considers functional dependencies To account for error propagation among the system components and to generalize the assumption of failure occurrence independence To define maintainability-based risk To develop a methodology for assessing maintainability-based risk for the system components based on the characteristics of the component and its interactions with other components. To automate the maintainability-based risk methodology Tuesday November 28

Outline Introduction The Problem Research Objectives Research Contribution Reliability-Based Risk Assessment Considering Dependencies among System Components Reliability-Based Risk Assessment with Functional Dependencies Maintainability-Based Risk Assessment Maintainability-Based Risk Assessment Estimation Methodology Software Architecture Risk Assessment (SARA) Tool Conclusion Future Work Tuesday November 28

Research Contribution In reliability-based risk assessment We develop a methodology to capture the dependencies among the system components and apply it on number of case studies. We generalize our methodology to accommodate relationships that model extensions and commonality within the UML use case model. It should be emphasized that, to the best of our knowledge, this is the first work which addresses relationships between use cases in assessing reliability-based risk. We apply The methodology on a real industrial case study which is a large command and control system used in a mission-critical application. Tuesday November 28

Research Contribution In maintainability-based risk assessment We introduce and define maintainability-based risk assessment for software architecture. We propose a generic methodology for estimating the maintainability-based risk when considering different types of maintenance: corrective, adaptive or perfective. We apply the proposed methodology on several case studies considering alternative maintenance types. We use Non-Homogeneous Poisson Process to get the maintainability-based risk estimate as a function of time when introducing new features in the system and/or due to adaptive maintenance. We automate the steps for the estimation methodology. Tuesday November 28

Outline Introduction The Problem Research Objectives Research Contribution Reliability-Based Risk Assessment Considering Dependencies among System Components Reliability-Based Risk Assessment with Functional Dependencies Maintainability-Based Risk Assessment Maintainability-Based Risk Assessment Estimation Methodology Software Architecture Risk Assessment (SARA) Tool Conclusion Future Work Tuesday November 28

Reliability-Based Risk Assessment Considering Dependencies among System Components In [Goseva-Popstojanova+2003], we estimate component’s reliability-based risk factor as a product of the dynamic complexity and the severity level of that component for a certain scenario To get an estimate for the system-level reliability-based risk factor for the component, we can use static cyclomatic complexity as a predictor for the probability of error occurrence in that component and multiply it by the system-level severity Such estimation assumes independence of error occurrences in the components of the system Tuesday November 28

Considering Error Propagation Probabilities in Assessing Components Reliability-Based Risk To generalize this assumption, we use error propagation probabilities among the components of the system in reliability-based risk assessment. The reliability-based risk factor of a system component Ci will be Where RRF = [rrfi] the Component Reliability-based Risk Factor IEP = [iepi] the Initial Error Probability EP = [epij] the Error Propagation Probabilities matrix CSv = [csvi] the Component Severity Tuesday November 28

Error Propagation Probability The Error Propagation Probability EP(A,B) = Prob([B](x)[B](x’) | xx’), where [B] denotes the function of component B, and x is an element of the connector X from A to B. S X A B x x` OR We interpret [B] to capture all the effects of executing component B, including the effect on the state of B and the effect on any outputs produced by B. Tuesday November 28

Estimating Error Propagation Analytically, the error propagation probability can be expressed in terms of the probabilities of the individual A-to-B messages and states, via the following formula: EP(AB) = Tuesday November 28

Related Work Voas ; Cigital labs 1997, analyzes error propagations between COTS components and presents an automated tool to simulate error propagation Michael et al.; RST corp. 1997, present an empirical study of data-state error propagation behavior. They argue that at a given location either all data state errors injected tend to propagate to the output or none does Hiller et al.; Chalmers Univ. 2001, analyze error propagation conceptually, introducing the concept of error permeability and discussing means to measure it Tuesday November 28

Case Study: Command and Control System The example we use to illustrate our work is a large command and control system that is used in a life-critical, mission-critical application This system was modeled using the Rational Rose Realtime CASE tool. It is a Computer Software Configuration Item (CSCI) that provides the following functions: Facilitating Communication, Control, Cautions Controlling a Secondary Electrical Power System Environmental Control Tuesday November 28

Case Study: Command and Control System Structure Diagram Tuesday November 28

Case Study: Command and Control System Messages Protocol and State Diagrams Tuesday November 28

The Framework of Experimental Error Propagation Analysis D. Nassar contributed to the experimental Framework Design Tuesday November 28

Experimental Validation of Error Propagation Probabilities Tuesday November 28

Correlation between analytical and empirical error propagation Tuesday November 28

Cyclomatic Complexity Components Reliability-Based Risk Pace Maker - Initial Error Probability Cyclomatic Complexity Initial Error Probabilities Stress CC is used to estimate IEP Tuesday November 28

A. Hassan assessed the severity level of the pace maker case study Pace Maker Analytical Error Propagation Probabilities Components Severity A. Hassan assessed the severity level of the pace maker case study Tuesday November 28

Comparing components reliability-based risk factors for pace maker case study Tuesday November 28

Comparing CM1 case study reliability-based risk factors Tuesday November 28

Experimental Validation of Components Reliability-Based Risk Assessment Comparing command and control system Componentsreliability risk factors Tuesday November 28

Outline Introduction The Problem Research Objectives Research Contribution Reliability-Based Risk Assessment Considering Dependencies among System Components Reliability-Based Risk Assessment with Functional Dependencies Maintainability-Based Risk Assessment Maintainability-Based Risk Assessment Estimation Methodology Software Architecture Risk Assessment (SARA) Tool Conclusion Future Work Tuesday November 28

Reliability-Based Risk Assessment Methodology with independent Use Cases For each use case For each scenario For each component Measure dynamic complexity Assign severity based on FMEA and hazard analysis Calculate risk factor For each connector Measure dynamic coupling Assign severity based on FEMA and hazard analysis Construct Markov model Calculate scenario level risk factor Calculate system level risk [TSE 2003] K. Goseva-Popstojanova , A. Hassan, A. Guedem, W. Abdelmoez, D. Nassar, H. Ammar, A. Mili, “Architectural-Level Risk Analysis using UML” IEEE Transaction on Software Engineering, Vol.29, No.10, October 2003 Tuesday November 28

Related Work In [Singh+ 2001], Singh et al. proposed an approach for reliability analysis of component-based systems based on UML. In this work authors assumed independent use cases. Houmb et al. presented the CORAS UML profile for risk assessment in [Houmb+ 2002] and demonstrated its use on an e-commerce system assuming independent use cases. In [Hawkins+ 2002] Hawkins et al. addressed the hazard and safety analysis of object-oriented systems. Although the approach proposed in [Hawkins+ 2002] starts from the use cases, relationships among them were not considered. Polynomial of widely used code level metrics such as Halstead measures and McCabe’s cyclomatic complexity Linear model based on a minimal set of design level software metrics to predict Software Maintainability Index Tuesday November 28

Relationships Between Use-Cases Non-Primitive Use-Case Terminal Use-Case Primitive Use-Case Tuesday November 28

Plan Itinerary sequence diagram Tuesday November 28

Purchase Ticket sequence diagram Tuesday November 28

Reliability-Based Risk Assessment with Functional Dependencies Aggregate Tuesday November 28

Algorithm for Reliability-Based Risk Assessment with Use –Case Relationships Determine terminal, primitive, and non-primitive use cases and their dependent scenarios For each primitive use case Determine the risk factor of each scenario Determine the use case risk factor by taking the max risk scenario For each terminal use case For each dependent scenario Recursively determine the risk factor of the scenario Determine the system risk using a weighted sum of the risk factors of the terminal use cases An implementation for this risk aggregation algorithm considering one scenario per use case was developed by Ajith and Venu. Tuesday November 28

Case Study: Command and Control System Tuesday November 28

Risk factors of the primitive use cases Tuesday November 28

The risk factor of Monitoring and Mode_Setting use cases Tuesday November 28

Distribution of the overall system risk factor Tuesday November 28

Outline Introduction The Problem Research Objectives Research Contribution Reliability-Based Risk Assessment Considering Dependencies among System Components Reliability-Based Risk Assessment with Functional Dependencies Maintainability-Based Risk Assessment Maintainability-Based Risk Assessment Estimation Methodology Software Architecture Risk Assessment (SARA) Tool Conclusion Future Work Tuesday November 28

Maintainability-based Risk Maintainability-based Risk is defined as: Probability of performing maintenance task * Cost of performing this task Risk caused by low system maintainability can be assessed by the following: Software components require frequent maintenance tasks High cost of maintenance effort - the required maintenance is growing out of control (changes propagate to many components). Loss of the system by aging - the system becomes out-dated and it is not worthy to maintain Tuesday November 28

Related Work [P.Oman 1994] introduced the Maintainability Index (MI) measure [Muthanna 2000] used design level metrics to statistically estimate the maintainability of software systems [Menzies+ 2000] assessed the maintainability of software systems by developing and simulating a model of system reachability [Steward 1981] presented Design Structure Matrices (DSMs) [Bohner+ 1996] summarized change impact analysis [Briand+ 1999B] investigated a probabilistic decision models based on coupling measurement to support impact analysis [Cohen+ 2000] introduced C-FAR system to trace and predict change propagation [Briand+ 2003] proposed a UML model-based approach to impact analysis that can allow early decision-making and a change planning process [Hassan+ 2004] suggested a number of heuristics to anticipate change propagation in software systems. [Tsantalis+ 2005] proposed a probabilistic approach to estimate the change proneness of an object-oriented design. Polynomial of widely used code level metrics such as Halstead measures and McCabe’s cyclomatic complexity Linear model based on a minimal set of design level software metrics to predict Software Maintainability Index Tuesday November 28

Outline Introduction The Problem Research Objectives Research Contribution Reliability-Based Risk Assessment Considering Dependencies among System Components Reliability-Based Risk Assessment with Functional Dependencies Maintainability-Based Risk Assessment Maintainability-Based Risk Assessment Estimation Methodology Software Architecture Risk Assessment (SARA) Tool Conclusion Future Work Tuesday November 28

Maintainability-based Risk Estimation Methodology Tuesday November 28

Maintenance change propagation Outgoing maintenance Incoming maintenance Tuesday November 28

Estimating Change Propagation V1 C1 C2 = 1 V11 V12 Change in Provided Service V13 Change . V13 Required Services = 0 Change Propagation Probabilities matrix CP=[cpij ] cpij is the probability that a change in Ci due to corrective/ perfective maintenance requires a change in Cj while maintaining the overall function of a system S cpij = P([Cj]  [Cj'] | [Ci]  [Ci'] ^ [S] = [S'] ) cpij is estimated by cpij = Tuesday November 28

Validation of Change propagation Probabilities Tuesday November 28

Estimating Size of Change V11 V1 V12 V13 Change Change in Provided Service M1 M2 M3 … M7 Receiving Component methods Size of change SC=[scij ] scij is defined as the ratio between the number of affected methods of the receiving component caused by the changes in the interface elements of the providing components and the total number of methods in the receiving component scij is estimated by scij = Tuesday November 28

Case Study : CM1 [NASA IV&V Facility – MDP Project] The UML Model of CM1 was Reversed Engineered by WVU (Nathan, Tom and Rajesh, Summer 2004) based on the CM1 software design specification Tuesday November 28

CM1: Change Propagation and Size of Change Matrices Tuesday November 28

Maintainability-based Risk Estimation Methodology in Context of Adaptive Maintenance SW Architecture Adaptive Maintenance Change reports (1) Estimate components Initial Change Probability (ICP): Normalized Frequency (2) Estimate Change Propagation (CP) probabilities (3) Estimate Size of Change (SC) ICP=[icpi] SC=[sci/j] CP=[cpi/j] (4) Estimate component risk factor Tuesday November 28

CM1 Maintainability-Based Risk in Adaptive Maintenance Context Tuesday November 28

Requirements Maturity Index SW Architecture Maintainability-based Risk Estimation Methodology in Context of Adaptive Maintenance-Requirements Changes Adaptive Maintenance Requirements Maturity Index SW Architecture (1) Estimate components Initial Change Probability (ICP): Tracing Requirements to Components (2) Estimate Change Propagation (CP) probabilities (3) Estimate Size of Change (SC) ICP=[icpi] SC=[sci/j] CP=[cpi/j] (4) Estimate component risk factor Tuesday November 28

CM1 UML Model Use Case Diagram Since we do not have real modifications data for CM1 requirements, we assume hypothetical maintenance scenario to demonstrate our methodology Transfer use case has 4 different scenarios We assume that there were only three scenarios. The required changes is to add an alternative scenario to the Transfer use case Tuesday November 28

CM1 UML Model Sequence Diagram “Transfer 3” We use the added scenario Transfer 3, to estimate the UCMI for Transfer use case. Where UT = the function point size of the use-case in the current release UC = the function point size of the change in the use case Tuesday November 28

Initial Change Probabilities for CM1 UCMI is proportional to component stability. Thus, we can map the use case stability into components stability. ICP of the system components icpi = DCoi * FanOuti * (1 – UCMI) Where DCoi is the normalized dynamic complexity of Ci in UCi, FanOuti the Fan out coupling of Ci in UCi Tuesday November 28

Maintainability-Based Risk of CM1 Tuesday November 28

Corrective Maintenance Maintainability-based Risk Estimation Methodology in Context of Corrective Maintenance SW Architecture Corrective Maintenance Error reports (1) Estimate components Initial Change Probability (ICP): Normalized Frequency (2) Estimate Change Propagation (CP) probabilities (3) Estimate Size of Change (SC) ICP=[icpi] SC=[sci/j] CP=[cpi/j] (4) Estimate component risk factor Tuesday November 28

Putting Maintainability-Based Risk to Work: Ranking Corrective Maintenance Tasks To order the corrective maintenance tasks for a certain project according to the importance of each task, we propose using the maintainability-based risk of the components that need to be fixed. the severity-level of failures that may be manifested from the errors in these components. Tuesday November 28

Prioritizing Corrective Maintenance Tasks for CM1 The CM1 case study has 98 error reports of components bugs. Assuming that these errors have not been yet fixed, we calculate the frequency of errors occurrences in the components of the system. Then, we estimate the initial change probability ICP of the components by normalizing the frequency of error occurrences by the total number of error reports. For maintenance tasks of components with high severity-levels, they should be fixed regardless of their corresponding maintainability-based risk because of the consequences of such potential failures on the system. On the other hand for maintenance tasks of components that have low severity-levels, we should examine the components maintainability-based risk. So, maintenance tasks of low severity-level and high maintainability-based risk should be avoided or delayed in the maintenance plan Critical Major Cat Cat. Minor Severity Level TMALI TIS SSI SCUI 1553 ICUI EDAC DPA DCX DCI CCM BIT Components Tuesday November 28

Worst Case Maintainability-Based Risk (Initial change probabilities set to one) Command and Control CM1 PaceMaker Tuesday November 28

Using Non-Homogeneous Poisson Process to Estimate Maintainability-Based Risk In [Burch+ 1997] and [Gefen+ 1996], the authors observed the non-homogeneous nature of maintenance request arrivals. In [Tan+ 2005], Tan et al. modeled the random arrival of maintenance requests using non-homogeneous Poisson process with time varying mean rate. Unlike previous maintainability-based risk models, NHPP provides us with an estimate which is a function of time The estimation procedure is more flexible as it relies on a statistical model to estimate ICP at different points of time. As the system gains more stability, we are able to acquire better estimates for the parameters of the statistical model. Thus, we can have a better predication of the maintainability-based risk Tuesday November 28

cs1 = {initial system features } Using NHPP to Estimate Maintainability-Based Risk (Adaptive/Perfective Maintenance) MP = {cs1 , cs2 , cs3 } cs1 = {initial system features } cs2 = { HeartBeat}, cs3 = { Transferc } Tuesday November 28

Using Non-Homogeneous Poisson Process to Estimate Maintainability-Based Risk Tuesday November 28

Initial Change Probabilities for the Components of CM1 Case Study Maintenance Request Arrival Generated using NHPP with Matlab simulation ICP obtained by Normalizing using max sum Tuesday November 28

Components Maintainability-Based Risk for CM1 Components Tuesday November 28

Outline Introduction The Problem Research Objectives Research Contribution Reliability-Based Risk Assessment Considering Dependencies among System Components Reliability-Based Risk Assessment with Functional Dependencies Maintainability-Based Risk Assessment Maintainability-Based Risk Assessment Estimation Methodology Software Architecture Risk Assessment (SARA) Tool Conclusion Future Work Tuesday November 28

Software Architecture Risk Assessment (SARA) Tool - Structural Description Tuesday November 28

Software Architecture Risk Assessment (SARA) Tool - Functional Description Tuesday November 28

Software Architecture Risk Assessment (SARA) Tool – Snap Shots Wang, Venu and Khader contributed in developing SARA tool Tuesday November 28

Outline Introduction The Problem Research Objectives Research Contribution Reliability-Based Risk Assessment Considering Dependencies among System Components Reliability-Based Risk Assessment with Functional Dependencies Maintainability-Based Risk Assessment Maintainability-Based Risk Assessment Estimation Methodology Software Architecture Risk Assessment (SARA) Tool Conclusion Future Work Tuesday November 28

Conclusion In this dissertation, we present risk assessment estimation methodologies based on architectural models of the software system Reliability-based risk assessment Used Error Propagation Probability in the assessment to account for the dependency among the components Generalized the reliability-based risk assessment to account for functional dependencies Maintainability-based risk assessment Introduced and defined maintainability-based risk Developed a general methodology for estimating the maintainability-based risk Automated the estimation methodology. Tuesday November 28

Outline Introduction The Problem Research Objectives Research Contribution Reliability-Based Risk Assessment Considering Dependencies among System Components Reliability-Based Risk Assessment with Functional Dependencies Maintainability-Based Risk Assessment Maintainability-Based Risk Assessment Estimation Methodology Software Architecture Risk Assessment (SARA) Tool Conclusion Future Work Tuesday November 28

Future Work The future work has the following aspects To apply the generalized reliability-based risk assessment methodology To validate the maintainability-based risk assessment estimation methodology, To apply methodology on other case studies/system architectures such as product lines To mine history repositories of the open-source projects To execute additional controlled experiments and perform pre/post analysis To extend the Software Architecture Risk Assessment (SARA) tool Tuesday November 28

Validation Prospects for Maintainability-Based Risk Estimation An experiment design should incorporate monitoring several maintenance projects with different size Bottom-up approach: ICP, CP, SC System components changes history Compare with domain expert subjective assessment Modular approach of our proposed maintainability-based risk assessment allow flexible improvements . Pilot exploratory studies CM1 case study from NASA Metrics Data Program MDP Controlled experiment on three case studies: Job Application, Colleague states and Borg Tuesday November 28

Imported error proneness for command and control system case study Tuesday November 28

Analytical error proneness of the components in steps Tuesday November 28

<<Extend>> relationship Tuesday November 28

<<Include>> relationship Tuesday November 28

Reliability-Based Risk Assessment with Functional Dependencies Tuesday November 28

DTMC of Retry_Both_Pumps use case Tuesday November 28

DTMC of the Monitoring use case Tuesday November 28

Multi-Step Change Propagation (i, j) := CP(Ci, Cj), i, j = 1,…,N (p) = (i, i1) ( i1, i2) … ( in-1, j) k(i, j)  n(i, j)  n(i, j) We use multi-step change propagation to predicting change propagation patterns. In [Clarkson+ 2000], Clarkson et al present a three-tiered classification of changes as follows Ripple of changes Wave of changes Avalanches of changes Ripple of change: the introduced changes will result in an acceptable behavior to be observed for the maintenance process. Changes are controlled and limited. Wave of change: the introduced changes will still result in an acceptable behavior to be observed for the maintenance process. Although there are many changes, they are under control. Avalanches of changes: the introduced changes will result in an unacceptable behavior to be observed in the maintenance process. There are many changes and they are uncontrolled. Tuesday November 28

Parameterization of the categorization of the change behavior  ( 0 <  < 1 ) is the propagation area significance,  ( 0 <  < 1 ) is the ripple threshold, and  ( 0 <  < 1 ) is the avalanche threshold Tuesday November 28

Graphical representation of the critical change propagation Tuesday November 28

Mn(Ci) of the components through multi-step change propagation Tuesday November 28

Using Change Propagation Probabilities to Assess Quality Attributes of Software Architectures The following methodology has been applied: Prepare a pair of architectures for the same application. One of the architectures is designed using design patterns while the other has no patterns. Apply the CP metric on both architectures. Apply other object-oriented metrics on both architectures. Analyze and compare the results. The architecture the employs software patterns should have a better quality in terms of extensibility and maintainability. Tuesday November 28

Job Application Case Study Tuesday November 28

Colleague States Case Study Tuesday November 28

Coupling Between Objects (CBO) Tuesday November 28

Response For a Class (RFC) Tuesday November 28

Message Passing Coupling (MPC) Tuesday November 28

Motivations Many types of risk are ushered when software systems undergo maintenance Some are similar to those we face while developing new software systems, e.g. project risk and usability risk. Maintainers often interact with complex and difficult to comprehend systems, which introduces types of risk unique to software maintenance Tuesday November 28

Motivations According to [Pigoski 1996], 60%-80% of the system budget is spent on maintenance Enhancements (perfective/ adaptive maintenance) account for 78%-83% of the maintenance effort Tuesday November 28

Improve the maintainability of the software architecture Goals and Objectives Improve the maintainability of the software architecture Identify risky components in terms of maintainability Use maintainability risk to manage system maintenance process Tuesday November 28

Maintainability-based Risk Estimation Methodology Tuesday November 28

Maintainability Based Risk in Perfective Maintenance Context Software system which is hard to maintain usually is plagued with bad smells Fowler and Beck presented a list of bad smells which can be identified at code level Some of the bad smells can be identified at architectural level Scale Index No of set() and get()/NOM NAM, WMC NUMPAR CP Matrix SC Matrix Tuesday November 28

Maintainability Based Risk in Perfective Maintenance Context Tuesday November 28