190 likes | 263 Vues
Enhance program reusability by automatically discovering simple methods, modules, classes, and components with advanced technologies like Semantic Web and UDDI. Find program XXX easily with canonical approaches and usage scenarios.
E N D
Automatic discovery of program unitsAutomatyczne przeszukiwanie repozytoriów jednostek programowych Promoter: Jerzy Nawrocki, Professor Bartosz Paliświat
Where can I find program XXX? Goal – reusability improvement • Reusability: • Decreases effort • Improves quality • Improves modularity
Goal – reusability improvement Discovery improvement Reusability improvement
Subject of discovery • Simple methods • Modules • Classes (standalone class or package) • Components
Repository programXXX programYYY Discovery - overview Query engine
WSFL, XLANG Context SemanticWeb Semantic networks UDDI, JNDI Taxonomies Naming conventions, standardization Java Beans, ebXML Interface definition WSDL, IDL Discovery - technologies
WSFL, XLANG SemanticWeb UDDI, JNDI Java Beans, ebXML WSDL, IDL Discovery - technologies Context Semantic networks Taxonomies Naming conventions, standardization Interface definition
Problem What kind of categories should I have in my Taxonomy? Why there is no such category, it’s so obvious!
Problem - example Dictionary
Problem - example Dictionary WITH SPECIALIZED TERMS
Additional filtering Taxonomies, Semantic networks Usage scenarios, canonical aproach Componentfound
Usage scenarios, canonical aproach Additional filtering
Canonical aproach Function(x1:T1, x2:T2, ... x3:T3): RT [0, 0, ..., 0] = 1 [0, 0, ..., 1] = 2 ... [0, 1, ..., 0] = 0 ...
Canonical aproach • Advantages: • Simple and effective way for finding computational functions • Does not require components execution
Canonical aproach • Disadvantages: • Canonical input data may not be accurate • Difficulties with canonical representation of non-basic data types • Exponential number of possible permutations • Applies only to stateless methods
TestCase 1 ? TestCase 2 Usage scenarios
Usage scenarios • Advantages: • Test data provided by user, thus more accurate • State and context aware
Usage scenarios • Disadvantages: • Requires component execution • Difficulties with methods and parameters maping • Complicated component-side description • Exponential algorithms