DOC PREVIEW
CodeBroker: An Active Reuse Repository System

This preview shows page 1-2-3-18-19-36-37-38 out of 38 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 38 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 38 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 38 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 38 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 38 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 38 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 38 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 38 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 38 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

CodeBroker: An Active Reuse Repository SystemSoftware reuseWhy reuse?Reuse process (sLCMS)Research problemsUser’s knowledge about a reuse repositoryReinventing the wheelReinventing the wheelReinventing the wheelProposed solutionChallenges in active reuse repository systemsCodeBrokerInferring the taskSimilarity analysis in CodeBrokerThe rationaleBasic information retrieval (IR) techniquesLSA: Improved IRProbabilistic IR modelWeighting schema in CodeBrokerSignature matching determines the constraint compatibilitySignature matching for classesPresenter: tailoring the delivery to larger context and userDiscourse models: Improving task-relevanceUser models: User-specific deliveryIncremental discourse modeling and user modelingModels in CodeBrokerRetrieval-by-reformulationThe cycle ofdelivery-browsing-searchingSupporting comprehension and useEvaluating retrieval effectivenessEvaluation experimentsSystem assessmentRole of discourse modelsRole of user modelsProblems foundFuture researchGeneral lesson: Designing information repository systemsSummaryCodeBroker: An Active Reuse Repository SystemYunwen YeMar 15, 2004Software reuse Definition Creating new software systems with existing artifacts Reusable artifacts Code artifacts macros, functions, methods, classes, subsystems, systems Non-code artifacts analyses, designs, test plans and cases, domain models Knowledge program idioms, program plans, design patterns, software architecture styles, domain knowledgeReuse repository systems Supporting reuse activitiesWhy reuse? Increased productivity Reduced development time Reduced cognitive load Reduced testing time Increased quality Fewer bugs Enhanced evolvability and maintainabilityReuse process (sLCMS)Research problems No attempt to reuse (Location) Information islands Not aware of the existence of reusable components Perceived low reuse utility (benefits/cost) High cost of locating components Unable to locate the component (Location) Situation model vs. system model Unable to use the component (Comprehension)User’s knowledge about a reuse repositoryL3:BeliefL4:System ModelL2: VaguelyKnownL1: WellKnownReinventing the wheel Have you ever found that you have accidentally implemented a function that is in the library already? Countless times! (tomo) Yes this happens often while learning a new language. (prabhu) Yes, I have done this a number of times. (mandalia) Yup, I wrote a parser in Java that would have been much easier with a StringTokenizer. I'm sure I've done this other times, but that one really gets me (minick).  Yes. When I was trying to convert a string of numbers into integer, I wrote a function to do it. Later on I found out there is function atio in C library to the exactly the same thing (jing).  Probably many times, but how would I know? (Jon Marbach).Reinventing the wheel Have you ever found that you have accidentally implemented a function that is in the library already? Not yet (jackson) I cannot remember ever implementing a function that was already in the library. (deriggi) No, but I have never really checked this out (Serina Croll).Reinventing the wheel “Conversations with developers revealed several cases in which programmers, unaware of a virtual machine primitive for an operation, repeatedly reimplemented the same operation--in one case, ten times.” [Devanbu, 1991] Reusable objects demand proper advertisement [Walton, 1992] “We have discovered that ‘marketing’ the components in the CSL is just as important as providing the correct technologies for users in Schlumbeger Oilfield Services products. [Rosenbaum 1995] It happens that we develop functions when they exist and we do not realise it. [Coulange 1997] “I could be creating a method that does exactly the same thing somebody else’s does ... even though we have access to each other’s code. We might call them different names and we might have a bit different way of doing it, but we’re still doing the same thing.” [Fichman, Kemerer, 1997]Proposed solution Active component repository systems Overcoming the limits of browsing and searching Supporting information delivery Benefits Reusing unknown components Reduced locating cost Seamless integration with programming environmentChallenges in active reuse repository systemsL3:BeliefL4:System ModelL2: VaguelyKnownTask-relevant informationL1: WellKnownCodeBrokerEditing spaceExampleDelivery bufferIllustratorListenerListenerPresenterFetcherRepositoryinferred queriesretrieved componentsInferring the task Plan recognition Actions Æ Inferred goal Æ Suggested actions or information Similarity analysis Current situationCurrent situationneedssimilarInformation XSituation ASituation Aprobably needsSimilarity analysis in CodeBrokerCreate a random number between two limitsint <- int x intGenerate a random number using the default generatorint <- int x intSignature MatchingInformation RetrievalCurrent situationSituation AFetcherListenerThe rationale Three aspects of a program Concept The functionality of the program Semantic information Revealed in comments, identifiers, … Constraint Execution environment Syntactic information Revealed in signatures, protocols, … Code The implementation The assumption Similar concept + compatible signature Æ reusable codeBasic information retrieval (IR) techniques Information retrieval: Finding similar documents based on the commonality of terms Documents and queries are represented by term vectorsDj= (f1, j, f2, j, ..., fN, j)  Similarity is the distance between two vectorsSimilarity (Q, D) = Q[i]× D[i]i =1n∑Q[i]2i=1n∑× D[i]2i =1n∑Contents Vector SimilarityQ human factors in information retrieval system(1 1 0 1 0 1 1)D1 factor factor factor human human retrieval system(3 0 0 2 0 1 1) 7/750.5=0.80D2 information operation retrieval retrieval (0 1 0 0 1 2 0) 0.55D3 factor help help retrieval (1 0 2 0 0 1 0) 0.37Term space: (factor information help human operation retrieval system)LSA: Improved IR Latent semantic analysis Addressing the vocabulary mismatch problem (people use different names to refer to the same concept) Creating a semantic space with a large amount of documentsReducing the singular vectorsProbabilistic IR model Adding weights to each term Dj= (t1, j , t2, j, ..., tN, j) ti,j= TRWi* fi,j


CodeBroker: An Active Reuse Repository System

Download CodeBroker: An Active Reuse Repository System
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view CodeBroker: An Active Reuse Repository System and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view CodeBroker: An Active Reuse Repository System 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?