300 likes | 442 Views
Reliability and availability requirements engineering within the Unified Process using a Dependability Analysis and Modeling profile. Simona Bernardi, Università di Torino José Merseguer, Universidad de Zaragoza Robyn R. Lutz, Iowa State University. Outline.
E N D
Reliability and availability requirements engineering within the Unified Process using a Dependability Analysis and Modeling profile Simona Bernardi, Università di Torino José Merseguer, Universidad de Zaragoza Robyn R. Lutz, Iowa State University
Outline • Improve elicitation, documentation and analysis of R&A sw requirements within the Unified Process (UP) • Extension of the requirement workflow to handle R&AR • Step-by-step incremental process • Use of a UML profile (DAM) to 1) specify R&AR and 2) characterize system faults/failures • Application to an intrusion-tolerant, distributed firewall for critical information infrastructures (CRUTIAL IST project)
Motivation • Toward the definition of a methodology for the synergetic use of dependability techniques within the UP • Why the Unified Process (UP) ? • Incremental & iterative: manages risks and handles changes in sw projects better than waterfall models • Uses UML as its specification language • Can be customized for different kind of sw systems/application domains • UP pays little attention to non-functional reqs • Several UML profiles exist that help to gather NFPs • MARTE OMG standard profile • DAM profile for dependability NFPs
Phases Inception Elaboration Construction Transition Workflows Requirements Analysis Design Implementation Test Preliminary Iterations It. #1 It. #2 It. #i It. #i+1 It. #n It. #n+1 It. #n+2 It. #m It. #m+1 System Analyst Structure UC model Find actors & UCs Architect Prioritize UCs UC Specifier Detail UCs UI Designer Prototype UI Unified Process & req. workflow
The set of dependability reqs specification techniques • (Mis)Use cases • IEEE Std. 830-1998 • IEEE Recommended practise for sw requirements specification • DAM profile • Fault Trees
Generation of illegal traffic <<mitigates>> CIS PS Destination Attacker Payload corruption <<threatens>> <<include>> PRRW Service <<mitigates>> Ouside Threat Inside Threat Sender (Mis)Use Cases • Use Cases are textual specifications • Use of templates, like the Cockburn's one
IEEE 830-1998 • Recommends approaches for sw req specification and describes contents and qualities of a good SRS • UP Supplementary Spec document inspired by IEEE 830-1998
DAM profile • DAM Profile has been devised to annotate the design, in this work we use it to specify R&AR • It is a specialization of the MARTE profile • MARTE NFP types enable to describe relevant dependability aspect using “properties”: • Value: value/parameter name • Expr: VSL expression • Source: origin of the NFP (req,est,msr,assm) • StatQ: statistical qualifier (mean,min,max,..)
Fault Trees • FTs are used to • Gather information about the potential contributing causes to threats • Trace the combination of faults/failures to misuse and use cases
CIS LAN WAN CIS Hub Hub CIS WAN Traffic Replicator Message WAN untrusted * * send receive Host 1..* incoming 1..* 2..* join LAN LAN Traffic Replicator CIS Firewall outgoing 1..* trusted A running example from CRUTIAL project
Step-by-step process: ith iteration in the requirement workflow (I) • Input: DMi-1,UCDi-1,SSi-1 • Output: DMi,UCDi,SSi • Discover new UCs,MUCs and actors: UCDi ← UCDi-1 U UCnew U MUCnew U ACnew • Select UCs to be specified: selUCi UDCi • Forall uc selUCi do • Specify(uc)
UC specify activity • Textual description of the UC using Cockburn template • R&AR from the Special Requirement section • Application of DAM profile for rewriting them in a standard and disciplined form
Generation of illegal traffic <<mitigates>> CIS PS Destination Attacker Payload corruption <<threatens>> <<include>> PRRW Service <<mitigates>> Ouside Threat Inside Threat Sender UCDi-1
ssAvail=(value=99.99%,statQ=min,source=req); failure = (MTBF = (value=(6,month),statQ=min,source=req) <<DaService>> CIS PS Destination <<stereotype>> DaService <<tupleType>> DaFailure Sender ssAvail:NFP_Percent[*] failure:DaFailure[*] .... MTBF:NFP_Duration[*] ... DAM annotation to CIS PS use case DAM annotation DAM extensions
Step-by-step process: ith iteration in the requirement workflow (II) • Select MUCs related to selUCi: selMUCi UDCi • Forall muc selMUCi do • Specify(muc)
MUC specify activity • Textual description of the MUC using Cockburn template • Threats information from Success guarantee, Main/Alternate scenario and Other Reqs sections • Application of the DAM profile to characterize from both a qualitative/quantitative viewpoints faults/failures • Faults Trees are used to formally specify UCD relationships • Among Negative Actor actions and Misuse Case success • Among Misuse Cases and related Use Case
Generation of illegal traffic <<mitigates>> CIS PS Destination Attacker Payload corruption <<threatens>> <<include>> PRRW Service <<mitigates>> Ouside Threat Inside Threat Sender UCD0
numberOfFaults=(value=$f,statQ=max,source=est/msr); fault = (type = (value=malicious-logic); occurrenceRate = (value=$fr1,statQ=mean,source=est/msr); effect = (domain = (value=invalid,omission))); <<DaFaultGenerator>> Payload corruption <<threatens>> <<DaService>> CIS PS Attacker <<tupleType>> DaFault type:FaultType[*] occurrenceRate:NFP_Frequency[*] effect: DaFailure[*] <<stereotype>> DaFaultGenerator numerOfFaults:NFP_Integer[*] fault:DaFault <<tupleType>> DaFailure domain:Domain[*] ... DAM annotation to Payload Corruption MUC DAM annotation DAM extensions
CIS PS failure <<DaService>> CIS PS Quorum not reached or wrong judgement The leader is corrupted (fails to fwd the approved message to Destination) <<threatens>> [n/2]+1:n Pn corrupted P1 corrupted ... <<DaFaultGenerator>> Payload corruption P omission (FM2) P is the leader P1 invalid (FM1) P1 omission (FM2) Use of FT to formalize MUC-UC relationships
Step-by-step process: ith iteration in the requirement workflow (III) • Discover new NFRs: SSi ← SSi-1 U NFRnew • Select a subset of requirements: selNFRi SSi • Forall nfr selNFRi do • Elaborate(nfr) • Restructure UCDi and DMi if necessary
NFR elaboration activity • Rewriting of further NFR from the SS, related to dependability/fault-tolerance with the DAM profile • Annotation in the Domain Model/Use Case Diagrams
IEEE 830-1998 • Recommends approaches for sw req specification and describes contents and qualities of a good SRS • UP Supplementary Spec document inspired by IEEE 830-1998 3.6 Other requirements: (Fault Tolerance) There shall be at least 2f+1 CIS Firewalls to tolerate f concurrent faults
Message WAN WAN Traffic Replicator untrusted * * send receive Host 1..* incoming join 1..* 2..* <<DaVariant>> CIS Firewall LAN outgoing LAN Traffic Replicator 1..* trusted multiplicity=(value=$n,expr=($n>=2*$f+1),source=req); 3.6 Other requirements: (Fault Tolerance) There shall be at least 2f+1 CIS Firewalls to tolerate f concurrent faults DAM annotation to Domain Model
Conclusions • The DAM annotated UML artifacts (UCD,DM) provide input for the other UP workflows (design,test,..) as well as for V&V activities • Next steps: • Study of the DAM applicability in the other UP workflows • V&V activities driven by DAM annotated M(UC)s
MARTE::GRM:: ResourceCore::Resource MARTE::GQAM:: AnalysisContext MARTE::GQAM:: GQAM_Workload:: BehaviorScenario <<user>> ServiceRequest Dependability Analysis Context 1..* accessProb serviceProb[1..*]{ordered} 1..* Component 1..* 1..* stateful origin isActive failureCoverage /percPermFault /ssAvail unreliability /reliability missionTime availLevel reliabLevel safetyLevel complexity * Service requests {ordered} execProb /ssAvail instAvail unreliability /reliability missionTime availLevel reliabLevel safetyLevel complexity 1..* * 1..* 0..1 provides 0..1 1..* * * * requests basicServices sub {Component.provides->lowerBound()+ Component.requests->lowerBound()>=1} {ordered} * Connector MARTE::GQAM:: GQAM_Workload::Step Step 2 1..* coupling interacts-via DAM Core model
DAM Threats model System::Redundancy:: RedundantStructure ErrorPropagation Relation System::Core:: Connector from effect System::Core:: Component ErrorPropagation Impairment System::Core:: Service to effect cause effect Fault Error Failure Hazard cause effect cause cause domain MTTF …. severity risk …. SystemCore:: Core::Step Fault Generator ErrorStep FailureStep HazardStep
<<modelLibrary>> MARTE::MARTE_Library::BasicNFP_Types <<profile>> MARTE::GQAM <<import>> <<import>> <<profile>> DAM <<modelLibrary>> DAM::DAM_Library <<profile>> MARTE::NFPs <<modelLibrary>> DAM_Library Basic_DA_Types <<apply>> <<import>> <<import>> <<profile>> MARTE::VSL:: DataType DAM_UML_Extensions Complex_DA_Types <<apply>> DAM profile overview