A Grammatical Approach to Quality of Service Requirements Analysis for Distributed Real-Time and Embedded Systems Shih-Hsi Liu 1, Fei Cao 1, Barrett R. Bryant 1, Jeffrey G. Gray 1, Rajeev R. Raje 2, Andrew M. Olson 2, and Mikhail Auguston 3 1 University of Alabama at Birmingham 2 Indiana University Purdue University Indianapolis 3 Naval Postgraduate School Software Composition and Modeling Laboratory Department of Computer and Information Sciences
Outline Background Problem Statement Proposed Solution Contributions Conclusion
Background (1/2) Distributed Real-time and Embedded (DRE) Systems - Component Based Software Development: composition Reusability and Changeability - Software Product Lines: Analysis and Construction Commonality and Variability - Quality of Service (QoS) Sensitive: System Resources Sensitivity
Background (2/2) Requirements Engineering - Functional Requirements: Functionality Specification - Non-Functional Requirements: System Resources Specification Component-based DRE systems + Requirements Engineering - Construct a DRE system by composing components that satisfies the requirements
Problem Statement (1/2) The Component Perspective Problem - Component Perspective: component is the unit for composition - Problem: nonfunctional requirements are tangled with functional ones The Abundant Alternatives Problem - Composition Decisions and Permutation abundant alternatives - Problem: ponderous overload in the requirements phase
Problem Statement (2/2) The Composition Semantics Problem - Composition regarding QoS parameters: degrade or upgrade QoS parameters - Problem: (a) No well-defined semantics for composition regarding QoS Parameters (b) Difficult to evaluate QoS parameters
Proposed Solution – A Grammatical QoS-Driven Approach (1/8) A Grammatical Concept: Two-Level Grammar++ - Two Context Free Grammars (CFGs): The 1 st CFG: define a set of parameters The 2 nd CFG: define a set of function definitions - Define Syntax and Semantics of Programming Languages The 1 st CFG: define the syntax by production rules The 2 nd CFG: define the semantics of the production rules
Proposed Solution (2/8) A QoS-Driven Concept: A TLG++ Class defines a QoS Parameter - The 1 st CFG: define the selected components for software product lines - The 2 nd CFG: define the composition semantics regarding the QoS parameter An Inference Concept: - The 2 nd CFG: define the queries for verifying pre-conditions and post-conditions of composition
Proposed Solution (3/8): Classification of QoS Parameters Static: design related Dynamic: depends on deployment environment Strict: forced to satisfy the QoS requirements Non-Strict: allows margins of errors Orthogonal: resource isolation Non-orthogonal: mutually-influenced by resource
Proposed Solution (4/8)
Proposed Solution (5/8) 1 Security C1 C2 D1 2 D1 C3 D2 | C4 D3 3 D2 C4 C5 | C5 C6 4 D3 C5 D4 | C5 C7 5 D4 C3 C7 1 Signal C1 C2 E1 2 E1 C3 E2 | C4 E3 | C5 E4 3 E2 C6 C7 4 E3 C3 C5 E5 | C3 C6 5 E4 C4 C6 C7 6 E5 C7 1 CPU C1 F1 | C2 F2 2 F1 C2 C4 F3 | C3 C4 F4 3 F2 C5 C6 F5 | C5 | C6 F6 4 F3 C7 C6 5 F4 C2 C5 6 F5 C3 C7 7 F6 C1 C4
Proposed Solution (6/8): Cascading Scenario class Security_1 implements Serializable 2 Product_Line :: Comp_1 Comp_2. 3 //…other parameter definition 4 Query_1 := semantics of queryComponent with Comp_1; //verifies the pre-condition 5 Query_2 := semantics of queryComponent with Comp_2; //verifies the pre-condition 6 Query_3 := if Query_1 && Query_2, then semantics of minimum with 7 Comp_1 and Comp_2, else False, end if; 8 Query_4 := semantics of queryPattern with QoSValue; //verifies the post-cond. of Comp_1 9 //and Comp_2, see if it is out of range 10 if Query_4, then MyRete semantics of UpdatePattern, else “Composition False”, end if. 11 //if Query_4 true, the composed pattern is assured. Update the pattern to the knowledge base 12 semantics of queryComponent with Component : 13 //…the semantics of the query for pre-conditions 14 semantics of minimum with Component1 and Component2 : 15 //…the semantics of the component composition 16 semantics of queryPattern with Double : 17 //…the semantics of the query for post-conditions 18 semantics of UpdatePattern : 19 //…the semantics that updates the verified composed pattern into the knowledge base end class
Proposed Solution (7/8): Cascading Scenario class Security_2 implements Serializable. 2 Product_Line :: Comp_3 ; Comp_4. //…Comp_3 OR Comp_4 as alternatives 3 //…other parameter definition 4 semantics of ProductLine_1 with Component1 : //semantics for Comp_3 OR Comp_4 5 Query_1 := semantics of queryComponent with Component1;//verify the pre-condition 6 if Query_1, then semantics of addition with Security_1 and Component1, else False, end if; 7 Query_2 := Rete semantics of queryPattern with QoSValue; 8 if Query_2, then Rete semantics of UpdateFact, 9 Rete semantics of UpdatePattern, else “Composition False”, end if. 10 //…verify the post-condition 11 semantics of addition with Component1 and Component2 : 12 //…semantics of addition 13 //…semantics of queryPattern, UpDateFact and UpdatePattern are ignored here. end class
Proposed Solution (8/8) Evaluate each strict or orthogonal QoS parameter individually Evaluate a set of non-orthogonal QoS parameters regarding a specific resource together The evaluated results of every QoS parameter at requirement level as the reference for the decedent phases of software lifecycle
Conclusion A straightforward and manageable approach for evaluating and verifying QoS characteristics - Separation of requirements concern by the QoS-driven concept - Reduce the overload in the requirements phase - Assist in precisely evaluating individual and system-wide QoS parameters - Separation of inference concern by a stand-alone inference engine
Future Work A selection procedure to assist in assigning the parameters in TLG++ classes A proper termination criterion discovering the optimal composition solution within a reasonable searching period
More research information Acknowledgements This research is supported in part by U. S. Office of Naval Research award N Questions?