Stimulating reuse with an automated active code search tool Júlio Lins – André Santos (Advisor) –

Slides:



Advertisements
Similar presentations
Usage of the memoQ web service API by LSP – a case study
Advertisements

1 OBJECTIVES To generate a web-based system enables to assemble model configurations. to submit these configurations on different.
Software Construction
SPICE! An Ontology Based Web Application By Angela Maduko and Felicia Jones Final Presentation For CSCI8350: Enterprise Integration.
July 11 th, 2005 Software Engineering with Reusable Components RiSE’s Seminars Sametinger’s book :: Chapters 16, 17 and 18 Fred Durão.
1 SWE Introduction to Software Engineering Lecture 22 – Architectural Design (Chapter 13)
3/12/ Modeling and controlling the Caltech Ducted Fan Vehicle Steve Neuendorffer, Ptolemy Group, UC Berkeley.
Application architectures
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
Satzinger, Jackson, and Burd Object-Orieneted Analysis & Design
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
TRAVEL RESERVATION SYSTEM USING WEB SERVICES COMPOSITION LANGUAGE
Computer Science 101 Web Access to Databases Overview of Web Access to Databases.
Slide 1 of 9 Presenting 24x7 Scheduler The art of computer automation Press PageDown key or click to advance.
Application architectures
1 LOMGen: A Learning Object Metadata Generator Applied to Computer Science Terminology A. Singh, H. Boley, V.C. Bhavsar National Research Council and University.
MDC Open Information Model West Virginia University CS486 Presentation Feb 18, 2000 Lijian Liu (OIM:
Object Oriented Software Development
October 30, 2008 Extensible Workflow Management for Simmod ESUG32, Frankfurt, Oct 30, 2008 Alexander Scharnweber (DLR) October 30, 2008 Slide 1 > Extensible.
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
Aurora: A Conceptual Model for Web-content Adaptation to Support the Universal Accessibility of Web-based Services Anita W. Huang, Neel Sundaresan Presented.
A Generative and Model Driven Framework for Automated Software Product Generation Wei Zhao Advisor: Dr. Barrett Bryant Computer and Information Sciences.
 Copyright 2005 Digital Enterprise Research Institute. All rights reserved. Towards Translating between XML and WSML based on mappings between.
Software Engineering 2003 Jyrki Nummenmaa 1 CASE Tools CASE = Computer-Aided Software Engineering A set of tools to (optimally) assist in each.
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
© 2006 IBM Corporation IBM WebSphere Portlet Factory Architecture.
Project Coordinators: Eduardo Santana de Almeida Silvio Romero de Lemos Meira Federal University of Pernambuco Informatics Center Recife Center for Advanced.
Configuration Management (CM)
1.8History of Java Java –Based on C and C++ –Originally developed in early 1991 for intelligent consumer electronic devices Market did not develop, project.
Hyper/J and Concern Manipulation Environment. The need for AOSD tools and development environment AOSD requires a variety of tools Life cycle – support.
11 CORE Architecture Mauro Bruno, Monica Scannapieco, Carlo Vaccari, Giulia Vaste Antonino Virgillito, Diego Zardetto (Istat)
Distributed Java Programming Distributed Java Programming Setting up a Java Development Environment.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
introducing the Java Data Processing Framework Paolo Ciccarese, PhD On behalf of the JDPF Team Pavia, December 11, 2007.
ICDL 2004 Improving Federated Service for Non-cooperating Digital Libraries R. Shi, K. Maly, M. Zubair Department of Computer Science Old Dominion University.
Grid programming with components: an advanced COMPonent platform for an effective invisible grid © 2006 GridCOMP Grids Programming with components. An.
XML Grammar and Parser for WSOL Kruti Patel, Vladimir Tosic, Bernard Pagurek Network Management & Artificial Intelligence Lab Department of Systems & Computer.
Eclipse 24-Apr-17.
© Geodise Project, University of Southampton, Knowledge Management in Geodise Geodise Knowledge Management Team Barry Tao, Colin Puleston, Liming.
11 CORE Architecture Mauro Bruno, Monica Scannapieco, Carlo Vaccari, Giulia Vaste Antonino Virgillito, Diego Zardetto (Istat)
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Strategies for subject navigation of linked Web sites using RDF topic maps Carol Jean Godby Devon Smith OCLC Online Computer Library Center Knowledge Technologies.
IBM Software Group ® Managing Reusable Assets Using Rational Suite Shimon Nir.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Plug-in Architectures Presented by Truc Nguyen. What’s a plug-in? “a type of program that tightly integrates with a larger application to add a special.
May08-21 Model-Based Software Development Kevin Korslund Daniel De Graaf Cory Kleinheksel Benjamin Miller Client – Rockwell Collins Faculty Advisor – Dr.
Model Design using Hierarchical Web-Based Libraries F. Bernardi Pr. J.F. Santucci {bernardi, University of Corsica SPE Laboratory.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2000 Session 4 Lecture # 3 - September 28, 2004.
Cross Language Clone Analysis Team 2 February 3, 2011.
Recommending Adaptive Changes for Framework Evolution Barthélémy Dagenais and Martin P. Robillard ICSE08 Dec 4 th, 2008 Presented by EJ Park.
Steven Perry Dave Vieglais. W a s a b i Web Applications for the Semantic Architecture of Biodiversity Informatics Overview WASABI is a framework for.
XML Tools (Chapter 4 of XML Book). What tools are needed for a complete XML application? n Fundamental components n Web infrasructure n XML development.
© 2008 UniTESK Lab, ISP RAS; made available under the EPL v1.0 Towards Common Language Toolkit Institute for System Programming of RAS,
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
Presented By:. What is JavaHelp: Most software developers do not look forward to spending time documenting and explaining their product. JavaSoft has.
Activiti Dima Ionut Daniel. Contents What is Activiti? Activiti Basics Activiti Explorer Activiti Modeler Activiti Designer BPMN 2.0 Activiti Process.
Architectural Mismatch: Why reuse is so hard? Garlan, Allen, Ockerbloom; 1994.
Plug-In Architecture Pattern. Problem The functionality of a system needs to be extended after the software is shipped The set of possible post-shipment.
Maven. Introduction Using Maven (I) – Installing the Maven plugin for Eclipse – Creating a Maven Project – Building the Project Understanding the POM.
© 2010 IBM Corporation RESTFul Service Modelling in Rational Software Architect April, 2011.
Processes The most important processes used in Web-based systems and their internal organization.
Database System Concepts and Architecture
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Recommending Adaptive Changes for Framework Evolution
Architectural Mismatch: Why reuse is so hard?
Plug-In Architecture Pattern
Software Architecture & Design
Presentation transcript:

Stimulating reuse with an automated active code search tool Júlio Lins – André Santos (Advisor) –

Reuse in Software Engineering Group 2 Context  Locating and retrieving software components if one of the most important problems of reuse  Large reuse repositories make it difficult to find reusable components  Developers tend to reuse components they wrote or previously known components How to locate and present reusable software components?

Reuse in Software Engineering Group 3 Recent techniques for finding software components  Indexing using an uncontrolled vocabulary  Free-text indexing (similar to web search engines)  Indexing using a controlled vocabulary (Facets)  Manual: requires big effort for large repositories  Automatic: indexing tools translate the encountered terms to an equivalent from a set of well defined terms  Signature matching  Formalization of the code structure  May specify semantic with a formal language

Reuse in Software Engineering Group 4 Active Component Repository Systems [YE 2001]  Locate reusable software components relevant to the task at hand  Components in repository are actively located when the developer is programming  Uses the information available on the current piece of software being written  Keywords form the documentation: indexed search  Method signature search

Reuse in Software Engineering Group 5 Benefits  Presents reusable components that might not be known to the developer  Forces the developer to know that what he/she is doing has probably being already done  Automates the job of doing a search into the repository

Reuse in Software Engineering Group 6 Code Searcher  Implements the task-relevant search for the Eclipse platform  It is a plug-in for the Eclipse environment  Detects a creation of a new method or a change in a method signature  Two search methods are used  Keyword search  Signature matching (formal definition is not required)

Reuse in Software Engineering Group 7 Keywords: Cadastra uma conta corrente na base de dados inserir conta Method Signature: Conta -> void Scenario

Reuse in Software Engineering Group 8 Architecture Agent Notifies Repository Interface Searches Presenter Presents Eclipse IDE

Reuse in Software Engineering Group 9 Agent  Uses the information available in the IDE for the current method being created or modified  Combines different types of search to present the most relevant components

Reuse in Software Engineering Group 10 Agent plug-in  Listens to changes made to a compilation unit open in a Java editor  The JDT API provides access to  The Java compiler  Source code generator  The refactor  The Eclipse Java parser is very powerful  Provides an object model to the java language elements  Offers an abstract level API

Reuse in Software Engineering Group 11 The search algorithm  One keyword search if executed using the words available in the javadoc main description, plus the method name and the name of the each parameter  Several code structure searches may be run  Method signature matching  Methods that handle the same exceptions  Methods that throws the same exceptions  Each result has a priority  For each repeated search result: p = p 2

Reuse in Software Engineering Group 12 Repository  A reuse repository is previously populated with source code  Three kinds of code  Reusable components  The current system code  Code from previews systems, that may be not read for reuse  The idea is to find similar code and then let the developer decide how the reuse will happen for each case

Reuse in Software Engineering Group 13 Repository structure Repository Interface Source code copy Indexed documents File systemApache Lucene Code structure SGBD

Reuse in Software Engineering Group 14 Technologies used  Apache Lucene  Open source free-text indexing tool  Provides a built-in java source code indexer  IBM Cloudscape  Java embedded relational database  Supports the same SQL as the DB2  The system may be migrated to a centralized DB2 server  The SGBD technology was chosen due to memory use constraints  Approximately 26MB of memory is needed for the Java 1.4 source  An XML structure requires 72MB

Reuse in Software Engineering Group 15 Presenter  An Eclipse View that may be optionally showed  When open, activates the Agent  Presents the search results ordered by relevance  File name, project, date  Allows the developer to double-click a result  Opens the file in the Java edtior

Reuse in Software Engineering Group 16 DEMO

Reuse in Software Engineering Group 17 Planned new functionalities  Change the passive search to a scrap book page where code can be written  The idea is to locate similar code  Allow access to the javadoc of the reusable component  Include a simple faceted classification  Operating system, platform  Allow the configuration of synonymous for possible keywords  Allows the developer to filter the results

Reuse in Software Engineering Group 18 Any new ideas?

Reuse in Software Engineering Group 19 References  Y. Ye (2001) Supporting Component-Based Software Development with Active Component Repository Systems, Ph.D. Dissertation, Department of Computer Science, University of Colorao at Boulder.