Evaluating Off-The-Shelf Architectural Components
Kendra Cooper Lawrence Chung Weimin Ma
[email protected] [email protected] [email protected]
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.Distance is 1.
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 - (½ + 1 + 0)/3 = 0.5.
S_m: 1- (½ + 1 + 0)/3 = 0.5.
S_m: 1 - (1 + 1 + 1)/3 = 0.
S_m: 1 – (½ + 1 + 1)/3 = 0.167.
Evaluation of Components for “AC Controller” Based on Case-based Scheme
Figure 2: UML class diagram model of component set 1Criteria
Sim_component_set (“AC Controller”, component set 1)
"
[
1i
i in feature, AC Controller, component set 1i
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 – (½ + 0 + ¼)/3 = 0.75.
S_m: 1 – (½ + 0 + 0)/3 = 0.833.
S_m: 1 – (½ + 0 + 1)/3 = 0.5.
S_m: 1 – (1 + 0 + 0)/3 = 0.667.
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)
"
[
1i
i in feature, AC Controller, component set 1i
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: 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).