Evaluating Off-The-Shelf Architectural Components Kendra Cooper Lawrence Chung Weimin Ma The Component-Aware Technology (CAT) Lab. Department of Computer Science The University of Texas at Dallas
What do I need ??? What is the type of HACS Controller? What is the type of AC Controller? An Example: Home Appliance Control System (HACS)
Evaluating Home Appliance Control System (HACS) Components How to effectively evaluate components, simple and composite? Specifier
UML Class Diagram as Model of Software Components Figure 1: Results for matching and ranking OTS components Figure 2: UML class diagram model of component set 1 Figure 3: UML class diagram model of component set 4
Outline A Scenario for Using Software Components Conclusions Similarity Measure Criteria-Based User Query Evaluation of Components The Notion of Distance The Notion of Criteria Evaluation of Simple Components (E.g., Evaluate AC Controller; Evaluate HACS Controller) Evaluation of Relationships Evaluation of Composite Components
User Evaluator 2. Is there an AC Controller with feature “Set Temp”? 3. Component set 3>>4>{1, 2} 4. Is there a HACS Controller with feature “Check Status”? Searching … 5. Component set 3>>4>>1>>2 1. I need AC Controller with feature “Set Temp” & HACS Controller with feature “Check Status”. negotiate 6. Do HACS Controller and AC Controller fit together well? 7. Component set {2, 3}>>{1, 4} A Scenario for Using Software Components Component Sets/Vendors 1,2 3,4 >>: better match Evaluator 8. How well do the component sets match? 9. A possible ranking: 3>>{4, 2}>>1 Specifier
Distance is 1. Similarity Measure: The Notion of Distance Distance is 1. Distance is 2. ? Criterion a: number of figures. Criterion b: number & shape of figures. Criteria are necessary for software component evaluation! Simple Component:Composite Component: Distance is 1. Distance is 2. Distance is 3. ? Type of relationship & number of extra intermediaries Criterion a: number of figures. Criterion b: number & shape of figures. No context consideration. Distance is 0. ?
Similarity Measure: The Notion of Criteria
Criteria-Based User Query Unstructured user query: Using the criteria and through communication, the specifier can turn it into criteria-based structure (à la Case-Based Reasoning): (Class Name) AC Controller (Attribute) Temperature (Operation) setTemperature (Class Name) HACS Controller (Attribute) Status (Operation) checkStatus I want a HACS system whose HACS controller has feature “Check Status” and AC controller has feature “Set Temp”. (Association) Sub-query 1:Sub-query 2:
Sub-query 1: (Class Name) AC Controller (Attribute) Temperature (Operation) setTemperature Component Set 1: (Class Name) AC Conditioner (Attribute) temp (Operation) Component Set 2: (Class Name) AC Conditioner (Attribute) temp (Operation) Component Set 3: (Class Name) AC Controller (Attribute) temperature (Operation) settemp Component Set 4: (Class Name) Temperature Controller (Attribute) temperature (Operation) setTemperature S_m: 1 - (½ )/3 = 0.5. S_m: 1 - ( )/3 = 0. S_m: 1 – (½ )/3 = Evaluation of Components for “AC Controller” Based on Case-based Scheme Figure 2: UML class diagram model of component set 1 Criteria Sim_component_set (“AC Controller”, component set 1) " [ 1 i i in feature, AC Controller, component set 1 i priority X %_m(i)] priority i in feature, AC Controller, component set 1
Sub-query 2: (Class Name) HACS Controller (Attribute) Status (Operation) checkStatus Component Set 1: (Class Name) System Control (Attribute) (Operation) getHistory Component Set 2: (Class Name) System Control (Attribute) (Operation) Component Set 3: (Class Name) HACS Interaction Device (Attribute) (Operation) checkstatus Component Set 4: (Class Name) HACS Controller (Attribute) (Operation) S_m: 1 – (½ ¼)/3 = S_m: 1 – (½ )/3 = S_m: 1 – (½ )/3 = 0.5. S_m: 1 – ( )/3 = Evaluation of Components for “HACS Controller” Based on Case-based Scheme Figure 2: UML class diagram model of component set 1 Criteria Sim_component_set (“AC Controller”, component set 1) " [ 1 i i in feature, AC Controller, component set 1 i priority X %_m(i)] priority i in feature, AC Controller, component set 1
Sub-query 1 and Sub-query 2 Component Set 1: (# of Relationships) 2 (Relationship Type) {1 Association, 1 generalization} Component Set 2: (# of Relationships) 1 (Relationship Type) {1 association} Component Set 3: (# of Relationships) 1 (Relationship Type) {1 association} Component Set 4: (# of Relationships) 2 (Relationship Type) {1 association, 1 generalization} Distance: 2 Distance: 0 Distance: 2 Evaluation of Relationship between Components Criteria Figure 3: UML class diagram model of component set 4 Figure 2: UML class diagram model of component set 1
Similarity (Component Set 1): 0.75 Similarity (AC Controller) 0.5 Similarity (relationship) 1 Similarity (HACS Controller) 0.75 Evaluation of Composite Components Ranking of component sets for user’s query: 3>>{4, 2, 1} ? 3>>{4, 2}>>1 Ranking of “AC Controller”: 3 >> 4>> {1, 2} Ranking of “HACS Controller”: 3>> 4>> 1>> 2 Ranking of relationship between components: {2, 3} >> {4, 1} (Sim(AC Controller) + Sim(Relationship between AC-HACS) + Sim(HACS Controller))/ (#component+#relationships), where Sim(Relationship between AC-HACS) = (#extra-relationships+#relationship-mismatch)/ (#relationship-in-query+#possible-relationship-attributes) SetComponentSim/)1__( .... Component Sets/Vendors = {1, 2, 3, 4}
Conclusions Hierarchy of criteria for component evaluation Cased-based scheme for similarity-based evaluation. Contributions Multiple evaluation schemes (e.g., AHP/MCDM, fuzzy case-based reasoning) Application to a suite of UML diagrams Future Work Technique for evaluating architectural components using UML class diagrams Refinements of distance and criteria (context information).