A utomatic Model Generation from Documentation as long as Java API Functions Motivation Automatically Generate Models as long as Libraries How to model library behaviors
Bellis, Bill, Meteorologist has reference to this Academic Journal, PHwiki organized this Journal Automatic Model Generation from Documentation as long as Java API Functions Juan Zhai, Jianjun Huang, Shiqing Ma, Xiangyu Zhang,Lin Tan, Jianhua Zhao, Feng QinMotivationLibrariesPart of software behaviorsAs important as the software itselfChallengesBinary only, no source codeImplemented in different languagesComplex optimizationsMany more Previous works: generate models manuallyAutomatically Generate Models as long as LibrariesHow to model library behaviorspublic void add(int index, E element)Inserts the specified element at the specified position in this list.Shifts the element currently at that position (if any), in addition to any subsequent elements to the right.Throws:IndexOutOfBoundsException: if the index is out of range (index<0index>size())-Q: How do we know how to use libraries-A: By reading API documents.-Q: Can we model libraries from API documents-A: Yes. This is what we do.
This Particular University is Related to this Particular Journal
Design: OverviewText AnalyzerModel GeneratorModel ValidatorTree Trans as long as merDesign: Text AnalyzerState-of-the-art work: Stan as long as d ParserNot perfect because of the nature (e.g. ambiguity) of natural languagesthe head ofthis deque,ornull if this deque is emptyReturns the head of this deque,OR returns the head of null if this deque is empty.Returns the head of this deque, or null if this deque is empty.Returnsthe head ofthis deque,ornull if this deque is emptyReturns the head of this deque,OR returns null if this deque is empty.ReturnsLift Up
Design: Tree Node Trans as long as mer Ambiguities of natural languagesK tree c in addition to idatesHighest-scoring tree is not always the correct oneToo much time to try all c in addition to idatesObservation:Caused by phrases starting with , or in addition to , in addition to Solution:Lift up & Push down , , or / in addition to in addition to all their right siblingsDesign: GeneratorsCopy & PasteIR & Model generatorVariables, Structures, OperationsDesign: IR Generator – VariablesInternal variables: any namesParameters: identify from documentsadd(int index , E element)Inserts the specified element at the specified position in this list.Inserts element at index in this list.the specified $(word)
Design: IR Generator – Program structuresSequentialDefaultLoop structurepluralssingular nouns modified by eachthe first/last occurrence indicate the loop iteration orderConditional structureif/whenotherwiseDesign: Model GeneratorTile the IR (tree)Tree Pattern Design: Model GeneratorUnified data structure model: one-dimensional arrayPrimitive: tree pattern corresponds to a piece of code templateelements[o2] = o1elements[index] = elementinsert
Design: Model GeneratorTile the IR (tree)Design: Model ValidatorEvaluation SetupHardwareCPU: Intel® i7-3770RAM: 8GBOperating systemUbuntu 12.04
Evaluation: Overall ResultEvaluation: Cases that Cannot be H in addition to ledIncompleteness of API documentsadd(int index, Object element) in AttributeList lack of descriptions about the IndexOutOfBoundsException Describe one primitive behavior with several sentencesinsert(int index, Char str, int offset, int len) in StringBuffer Inserts the string representation of a subarray of the str array argument into this sequence. The subarray begins at the specified offset in addition to extends len chars. The characters of the subarray are inserted into this sequence atthe position indicated by indexEvaluation: Static Taint AnalysisUndesirable in as long as mation flowCompare paths found by using our model V.S. official JDKSet upAndroid: 96 appsSources: User inputSinks: Internet, Log
Evaluation: Static Taint AnalysisResultsthe same set of in as long as mation leak warnings as long as both versions as long as almost all appsexcept app com.yes123.mobileCase: com.123yes.mobilOur model – 16 paths V.S. JDK 14 pathsJava Native Interface (JNI) function call: toArray(object) -> System.arrayCopy()Evaluation: Static Taint AnalysisEfficiency improvement distributionMaximum: ~50%Average: ~16%Evaluation: Dynamic SlicingOur Models vs Naïve Models~32 times smaller dynamic slice size~17% per as long as mance improvement
Related WorkDocumentation AnalysisSarah[ICSE 16], Zhong [OOPSLA 13, ASE 09], Tan [ICST 12, ICSE 11, SOSP 07] , P in addition to ita [ICSE 12], Sun [ICSE 10], Sinha [ICST 10], Runeson [ICSE 07] , Henkel [TSE 07]Environment ModelingJeon[ICSE 16], Merwe [SEN 15], Ceccarello [SEN 14], Palepu [ASE 13], Qi [WCRE 12], Cadar [OSDI 08], Tkachuk [ASE 03]ConclusionIdea: modeling Java library from Java API documentsA combination of NLP in addition to auto-testingAdvantagesExpected behaviors with simpler code (no JNI code, no other languages etc.)Helps many program analysis techniques
Bellis, Bill Meteorologist
Bellis, Bill is from United States and they belong to ABC15 News at 6 PM – KNXV-TV and they are from Phoenix, United States got related to this Particular Journal. and Bellis, Bill deal with the subjects like Meteorology
Journal Ratings by Darton College
This Particular Journal got reviewed and rated by Darton College and short form of this particular Institution is US and gave this Journal an Excellent Rating.