Model-based Mining of Software Repositories. Markus Scheidgen
|
|
- Roger Cummings
- 5 years ago
- Views:
Transcription
1 Model-based Mining of Software Repositories Markus Scheidgen
2 Agenda Mining Software Repositories (MSR) and current approaches srcrepo a model-based MSR system srcrepo components and analysis process a meta-model for source code repositories gathering software metrics with an OCL-like internal Scala DSL work in progress - discussion of remaining problems and limitations 2
3 Relevant Research Fields Mining Software Repositories (MSR) The term mining software repositories (MSR) has been coined to describe a broad class of investigations into the examination of software repositories. The premise of MSR is that empirical and systematic investigations of repositories will shed new light on the process of software evolution. [] Software Metrics A software metric is a mathematical definition mapping the entities of a software system to numeric metrics values. [...] to express features of software with numbers in order to facilitate software quality assessment. [2] Reverse Engineering Reverse engineering is the process of analyzing a subject system to () identify the system s components and their interrelationships and (2) create representations of the system in another form or at a higher level of abstraction [3] Software Evolution Research (SER) (dis-)proving Lehmann s Laws of software evolution empirical investigations of software repositories through statistical analysis of software and software change metrics over the evolutionary cause of many software systems. Model-based Mining Software Repositories (with srcrepo) Overcoming heterogeneity and accessibility by raising the level of abstraction, while ensuring scalability and retaining meaningful information depth.. H. Kagdi, M.L. Collard, J.I. Maletic: A survey and taxonomy of approaches for mining software repositories in the context of software evolution; Journal of Software Maintenance and Evolution: Research and Practice; Vol.9/Nr.2/ R. Lincke, J. Lundberg, W. Löwe: Comparing Software Metrics Tools; 8th International Symposium on Software Testing and Analysis; E.J. Chikofsky, J.H. Cross: Reverse engineering and design recovery: A taxonomy; IEEE Software; Vol.7/Nr./990 3
4 Contemporary Approaches to Large Scale MSR for SER FLOSS Metrics [] database for over 3000 open source software projects contains data about all revisions Alitheia, multiple version control systems (VCS), but only text-based metrics not only source code repositories (SCR) via VCS, also issue-tracking systems, mailinglists, etc. Sourcerer [2] database and searchable index of declarations from over 4000 Java software projects tracks only release revisions metrics based on declarations (classes, methods, fields, etc., e.g. CK-metrics), but not based on actual implementations (e.g. McCabe, Halstead) Boa [3] domain specific language (DSL) for mining meta-data in ultralarge software repositories only tracks VCS meta-data, e.g. How many revisions are there in all Java projects using SVN? Scalability Heterogeneity Accessibility Information Depth a project large scale: multiple related projects, e.g. Apache, Eclipse ultra-large scale: 00k+ unrelated projects with varying quality [,2,3] abstraction from VCS [,2,3] abstraction from programming language: only metadata [3] or text [] programming database with index [,2] DSL [3] all revisions [,3], sample revisions [2] meta-data [3] text [] declarations [2]. G. Gousios, D. Spinellis: Alitheia core: An extensible software quality monitoring platform; Proceedings of the 3st International Conference on Software Engineering; E. Linstead, S. Bajracharya, T. Ngo, P. Rigor, C. Lopes, P. Baldi.: Sourcerer: mining and searching internet-scale software repositories; Data Mining and Knowledge Discovery; Vok.8/Nr.2/ R. Dyer, H.A. Nguyen, H. Rajan, T.N. Nguyen: Boa: A Language and Infrastructure for Analyzing Ultra-Large-Scale Software Repositories; Proceedings of the 203 International Conference on Software Engineering; 203 4
5 Goals and Hypothesis Scalability Heterogeneity Accessibility Information Depth a project large scale: multiple related projects, e.g. Apache, Eclipse ultra-large scale: 00k+ unrelated projects with varying quality [,2,3] abstraction from VCS [,2,3] abstraction from programming language: only metadata [3] or text [] programming database with index [,2] DSL [3] all revisions [,3], sample revisions [2] meta-data [3] text [] declarations [2] 4
6 Goals and Hypothesis Scalability Heterogeneity Accessibility Information Depth hypothesis goals approaches a project large scale: multiple related projects, e.g. Apache, Eclipse ultra-large scale: 00k+ unrelated projects with varying quality [,2,3] cluster- (batching) and cloud- (Map/Reduce)- computing support distributable databases distributable model persistence distributed processing of models abstraction from VCS [,2,3] abstraction from programming language: only metadata [3] or text [] common meta-model for VCSs meta-models for programming languages common meta-model for metrics abstraction for different VCSs exists abstraction regarding metrics for diff. progr. languages exists abstraction for diff. languages exists programming database with index [,2] DSL [3] internal DSL: DSL + programming with models common modeling framework existing tools/ frameworks is there a reasonable programming abstraction for gathering metrics/ change metrics all revisions [,3], sample revisions [2] meta-data [3] text [] declarations [2] all revisions abstract syntax trees (AST) differences between revisions (e.g. metrics on adaptations and refactorings) 5
7 srcrepo Components and Process 6
8 srcrepo Components and Process large scale software repositories (e.g. github, sourceforge) software projects issue tracker, mailing lists, wiki source code repository (e.g. controlled by Git, SVN, CVS) source code (e.g. java, C++, eclipse*) 6
9 srcrepo Components and Process large scale software repositories (e.g. github, sourceforge) software projects srcrepo storage (EMF-models via EMF-Fragments, e.g. on mongodb) revision tree issue tracker, mailing lists, wiki source code repository (e.g. controlled by Git, SVN, CVS) source code (e.g. java, C++, eclipse*) import A 2 3 A3 C3 AST-models of new and changed CUs 6
10 srcrepo Components and Process large scale software repositories (e.g. github, sourceforge) software projects srcrepo storage (EMF-models via EMF-Fragments, e.g. on mongodb) revision tree srcrepo runtime (headless eclipse RCP) revision tree issue tracker, mailing lists, wiki source code repository (e.g. controlled by Git, SVN, CVS) source code (e.g. java, C++, eclipse*) import A 2 3 A3 C3 AST-models of new and changed CUs analysis 2 3 S S2 S2 A A A3 C3 fully resolved snapshot models 6
11 srcrepo Components and Process large scale software repositories (e.g. github, sourceforge) software projects srcrepo storage (EMF-models via EMF-Fragments, e.g. on mongodb) revision tree srcrepo runtime (headless eclipse RCP) revision tree issue tracker, mailing lists, wiki source code repository (e.g. controlled by Git, SVN, CVS) source code (e.g. java, C++, eclipse*) import A 2 3 A3 C3 AST-models of new and changed CUs analysis 2 3 S S2 S2 A A A3 C3 fully resolved snapshot models revisions sources 6
12 issue tracker, mailing lists, wi (e.g. controlled by Git, SVN, CVS) source code (e.g. java, C++, eclipse*) import A 2 3 A3 C3 AST-models of new and changed CUs analysis 2 3 S S2 S2 A A A3 C3 fully resolved snapshot models isions sources 7
13 issue tracker, mailing lists, wi (e.g. controlled by Git, SVN, CVS) source code (e.g. java, C++, eclipse*) import A 2 3 A3 C3 AST-models of new and changed CUs analysis 2 3 S S2 S2 A OCL A M M2 M3 A3 C3 fully resolved snapshot models isions sources metrics 7
14 issue tracker, mailing lists, wi (e.g. controlled by Git, SVN, CVS) source code (e.g. java, C++, eclipse*) import A 2 3 A3 C3 AST-models of new and changed CUs analysis 2 3 S S2 S2 A OCL EMF-Compare A M M2 M3 D-2 OCL D2-3 A3 C3 fully resolved snapshot models isions sources metrics M-2 M2-3 7
15 issue tracker, mailing lists, wi (e.g. controlled by Git, SVN, CVS) source code (e.g. java, C++, eclipse*) import A 2 3 A3 C3 AST-models of new and changed CUs M M2 M2 analysis store 2 3 S S2 S2 A OCL EMF-Compare A M M2 M3 D-2 OCL D2-3 A3 C3 fully resolved snapshot models isions sources metrics M-2 M2-3 M-2 M2-3 timelines of metrics 7
16 issue tracker, mailing lists, wi (e.g. controlled by Git, SVN, CVS) source code (e.g. java, C++, eclipse*) import export A 2 3 A3 C3 AST-models of new and changed CUs M M2 M2 analysis store 2 3 S S2 S2 A OCL EMF-Compare A M M2 M3 D-2 OCL D2-3 A3 C3 fully resolved snapshot models isions sources metrics M-2 M2-3 M-2 M2-3 statistics software (e.g. R, Matlab) timelines of metrics 7
17 A Meta-Model for Source Code Repositories «fragments» revision tree 8 e
18 MoDisco source code «fragments» revision tree 9
19 Demo 0
20 A OCL-like internal Scala DSL for Computing Metrics OCL-like internal Scala DSL analog to our internal Scala model transformation language [] OCL collection operations mapped to Scala s higher-order fuctions [2]:. L. George, A. Wider, M. Scheidgen: Type-Safe Model Transformation Languages as Internal DSLs in Scala; Theory and Practice of Model Transformations - 5th International Conference, ICMT; Filip Krikava: Enrichting EMF Models with Scala; Slideshare
21 A OCL-like internal Scala DSL for Computing Metrics ownedelements OCL-like internal Scala DSL analog to our internal * Scala Model Package model transformation language [] Abstract Type Declaration OCL collection operations mapped to Scala s higher-order fuctions [2]: * ownedpackages * ownedelements pure OCL context Model: self.ownedelements->collect(p p.ownedelements)->size. L. George, A. Wider, M. Scheidgen: Type-Safe Model Transformation Languages as Internal DSLs in Scala; Theory and Practice of Model Transformations - 5th International Conference, ICMT; Filip Krikava: Enrichting EMF Models with Scala; Slideshare
22 A OCL-like internal Scala DSL for Computing Metrics ownedelements OCL-like internal Scala DSL analog to our internal * Scala Model Package model transformation language [] Abstract Type Declaration OCL collection operations mapped to Scala s higher-order fuctions [2]: * ownedpackages * ownedelements pure OCL context Model: self.ownedelements->collect(p p.ownedelements)->size OCL-like expression in Scala def numberoffirstpackageleveltypes(self: Model): Int = self.getownedelements().collect(p=>p.getownedelements()).size(). L. George, A. Wider, M. Scheidgen: Type-Safe Model Transformation Languages as Internal DSLs in Scala; Theory and Practice of Model Transformations - 5th International Conference, ICMT; Filip Krikava: Enrichting EMF Models with Scala; Slideshare
23 A OCL-like internal Scala DSL for Computing Metrics Extending OCL s collection operations: convenience operations closure aggregation execution trait OclCollection[E] extends java.lang.iterable[e] { def size(): Int def first(): E def exists(predicate: (E) => Boolean): Boolean def forall(predicate: (E) => Boolean): Boolean def select(predicate: (E) => Boolean): OclCollection[E] def reject(predicate: (E) => Boolean): OclCollection[E] def collect[r](expr: (E) => R): OclCollection[R] def selectoftype[t]:oclcollection[t] def collectnotnull[r](expr: (E) => R): OclCollection[R] def collectall[r](expr: (E) => OclCollection[R]): OclCollection[R] 2 def closure(expr: (E) => OclCollection[E]): OclCollection[E]
24 trait OclCollection[E] extends java.lang.iterable[e] { def size(): Int def first(): E def exists(predicate: (E) => Boolean): Boolean def forall(predicate: (E) => Boolean): Boolean def select(predicate: (E) => Boolean): OclCollection[E] def reject(predicate: (E) => Boolean): OclCollection[E] def collect[r](expr: (E) => R): OclCollection[R] } def selectoftype[t]:oclcollection[t] def collectnotnull[r](expr: (E) => R): OclCollection[R] def collectall[r](expr: (E) => OclCollection[R]): OclCollection[R] def closure(expr: (E) => OclCollection[E]): OclCollection[E] def aggregate[r,i](expr: (E) => I, start: () => R, aggr: (R, I) => R): R def sum(expr: (E) => Double): Double def product(expr: (E) => Double): Double def max(expr: (E) => Double): Double def min(expr: (E) => Double): Double def stats(expr: (E) => Double): Stats def run(runnable: (E) => Unit): Unit 3
25 Complex Example: Average Weighted Methods per Class (WMC) WMC is the first CK-metric []. There different commonly used weights; here we use cyclomatic complexity def classes(model:model):oclcollection[classdeclaration] = model.getownedelements().collectclosure(pkg=>pkg.getownedpackages()).collectall(pkg=>pkg.getownedelements()).collectclosure(typedcl=> typedcl.getbodydeclarations().selectoftype[classdeclaration]) def WMC(model:Model):Double = classes(model).stats(clazz=> clazz.getbodydeclarations().selectoftype[methoddeclaration]().sum(method=>cyclmaticcomplexity(method))).average def cyclomaticcomplexity(method:methoddeclaration):int =.... S.R. Chidamber, C.F. Kemerer: A Metrics Suite for Object Oriented Design; IEEE Transactions on Software Eng.; Vol.20/Nr.6/994 4
26 Complex Example: Average Weighted Methods per Class (WMC) WMC is the first CK-metric []. There different commonly used weights; here we use cyclomatic complexity def classes(model:model):oclcollection[classdeclaration] = model.getownedelements().collectclosure(pkg=>pkg.getownedpackages()).collectall(pkg=>pkg.getownedelements()).collectclosure(typedcl=> typedcl.getbodydeclarations().selectoftype[classdeclaration]) def WMC(model:Model):Double = Model classes(model).stats(clazz=> clazz.getbodydeclarations().selectoftype[methoddeclaration]().sum(method=>cyclmaticcomplexity(method))).average def cyclomaticcomplexity(method:methoddeclaration):int type = bodydeclarations *... Abstract Body Declaration. S.R. Chidamber, C.F. Kemerer: A Metrics Suite for Object Oriented Design; IEEE Transactions on Software Eng.; Vol.20/Nr.6/994 4 ownedelements Package * * ownedpackages usagesintypeaccess * Abstract Type Declaration * TypeAccess ownedelements * superinterfaces returntype superclass Class Declaration
27 Complex Example: Average Weighted Methods * per Class * (WMC) ownedpackages WMC is the first CK-metric []. There different Abstract commonly used weights; here we use cyclomatic complexity Model bodydeclarations Abstract ownedelements Package Type Declaration def classes(model:model):oclcollection[classdeclaration] = Body usagesintypeaccess * * model.getownedelements() Declaration.collectClosure(pkg=>pkg.getOwnedPackages()) TypeAccess.collectAll(pkg=>pkg.getOwnedElements()).collectClosure(typeDcl=> typedcl.getbodydeclarations().selectoftype[classdeclaration]) Method Declaration def WMC(model:Model):Double = classes(model).stats(clazz=> clazz.getbodydeclarations().selectoftype[methoddeclaration]().sum(method=>cyclmaticcomplexity(method))).average def cyclomaticcomplexity(method:methoddeclaration):int =... * type * ownedelements superinterfaces returntype superclass method Class Declaration Abstract Method Invocation. S.R. Chidamber, C.F. Kemerer: A Metrics Suite for Object Oriented Design; IEEE Transactions on Software Eng.; Vol.20/Nr.6/994 4
28 Implementation of the OCL-Collection Operations Just in time iterator-based implementation rather than straight forward aggregation of result collections. :RepositoryModel 2 :Rev :Rev :Rev 3 :Par... :Par... :Par... :Par... :Par... :Par... 4 :Diff :Diff :Diff :Diff :Diff :Diff :Diff :Diff :Diff :Diff 5
29 Future Work, Remaining Problems, and Limitations Scalability Heterogeneity Accessibility Information Depth very large compilation units incremental snapshot creation batching OCL execution experiments with large scale repository (e.g. git.eclipse.org) MoDisco for different programming languages common metrics meta-model (e.g. OMG, KDM) VCS abstraction and support for different VCS relating results to software repository entities persisting and exporting results diff-models from comparison of compilation units Very large compilation units (CU): e.g. a 3 MB, 600 kloc CU in org.eclipse.emf tends to have lots of dependencies changes often makes problem even bigger CUs are smallest common denominator between text-based VCS view and syntaxbased AST view smaller units require model-comparison or text-to-ast mappings Support for different programming languages: either abstraction, parallel meta-models, or mixed approach MoDisco is extendable, but only Java support exists; other languages need to be implemented parallel meta-models A reasonable abstraction for multiple (or all) programming language probably does not exist. A shared abstract meta-model that all language meta-models extends could be an sensible compromise. 6
30 Summary Overall model-based MSR with srcrepo works, but it still needs work. 80/20: Uncommonly large CUs are problematic and require complex additions to srcrepo. Ignored for now. Main goal heterogeneity is theoretically plausible, but requires lots of efforts to show practically. Not a matter of if, but of how much. Large experiments are still unfeasible due to lots of small issues rooted in the engineering complexity of the subject matter. 7
Model-based Analysis of Source Code Repositories
odel-based Analysis of Source Code Repositories arkus Scheidgen artin Schmidt Joachim Fischer {scheidge,schmidma,fischer@informatik.hu-berlin.de Humboldt Universität zu Berlin 1 Agenda Software Evolution,
More informationModel-based Mining of Source Code Repositories
Model-based Mining of Source Code Repositories Markus Scheidgen and Joachim Fischer Humboldt-Universität zu Berlin, Unter den Linden 6, 10099 Berlin, Germany {scheidge,fischer}@informatik.hu-berlin.de
More informationMining Source Code Repositories with. Boa. Robert Dyer, Hoan Nguyen, Hridesh Rajan, and Tien Nguyen
Mining Source Code Repositories with Boa Robert Dyer, Hoan Nguyen, Hridesh Rajan, and Tien Nguyen {rdyer,hoan,hridesh,tien}@iastate.edu Iowa State University The research and educational activities described
More informationMining Ultra-Large-Scale Software Repositories with. Boa
Mining Ultra-Large-Scale Software Repositories with Boa Robert Dyer, Hoan Nguyen, Hridesh Rajan, and Tien Nguyen {rdyer,hoan,hridesh,tien}@iastate.edu Iowa State University The research and educational
More informationTaxonomy Dimensions of Complexity Metrics
96 Int'l Conf. Software Eng. Research and Practice SERP'15 Taxonomy Dimensions of Complexity Metrics Bouchaib Falah 1, Kenneth Magel 2 1 Al Akhawayn University, Ifrane, Morocco, 2 North Dakota State University,
More informationInternational Journal for Management Science And Technology (IJMST)
Volume 4; Issue 03 Manuscript- 1 ISSN: 2320-8848 (Online) ISSN: 2321-0362 (Print) International Journal for Management Science And Technology (IJMST) GENERATION OF SOURCE CODE SUMMARY BY AUTOMATIC IDENTIFICATION
More information24 th Annual Research Review
24 th Annual Research Review April 4-6 2017 Towards Better Understanding of Software Quality Evolution Through Commit-Impact Analysis Pooyan Behnamghader USC CSSE pbehnamg@usc.edu Commit-Impact Analysis
More informationSoftware Quality Understanding by Analysis of Abundant Data (SQUAAD)
Software Quality Understanding by Analysis of Abundant Data (SQUAAD) By Pooyan Behnamghader Advisor: Barry Boehm ARR 2018 March 13, 2018 1 Outline Motivation Software Quality Evolution Challenges SQUAAD
More information2/8/18. Overview. Project Management. The First Law. What is Project Management? What Are These Changes? Software Configuration Management (SCM)
Overview Project Management How to manage a project? What is software configuration management? Version control systems Issue tracking systems N. Meng, L. Zhang 2 What is Project Management? Effective
More informationProject Management. Overview
Project Management Overview How to manage a project? What is software configuration management? Version control systems Issue tracking systems N. Meng, L. Zhang 2 1 What is Project Management? Effective
More informationVersion Control Systems (VCS)
Version Control Systems (VCS) Xianyi Zeng xzeng@utep.edu Department of Mathematical Sciences The University of Texas at El Paso. September 13, 2016. Version Control Systems Let s get the textbook! Online
More informationJ2EE Development Best Practices: Improving Code Quality
Session id: 40232 J2EE Development Best Practices: Improving Code Quality Stuart Malkin Senior Product Manager Oracle Corporation Agenda Why analyze and optimize code? Static Analysis Dynamic Analysis
More informationSANER 17. Klagenfurt, Austria
SANER 17 Klagenfurt, Austria Carol V. Alexandru, Sebastiano Panichella, Harald C. Gall Software Evolution and Architecture Lab University of Zurich, Switzerland {alexandru,panichella,gall}@ifi.uzh.ch 22.02.2017
More informationarxiv: v1 [cs.se] 25 Mar 2014
Do the Fix Ingredients Already Exist? An Empirical Inquiry into the Redundancy Assumptions of Program Repair Approaches Matias Martinez Westley Weimer Martin Monperrus University of Lille & INRIA, France
More informationJetBrains TeamCity Comparison
JetBrains TeamCity Comparison TeamCity is a continuous integration and continuous delivery server developed by JetBrains. It provides out-of-the-box continuous unit testing, code quality analysis, and
More informationSpringSource Tool Suite M2
SpringSource Tool Suite 2.7.0.M2 - New and Noteworthy - Martin Lippert 2.7.0.M2 June 13, 2011 Updated for 2.7.0.M2 ENHANCEMENTS 2.7.0.M2 General Updates Memory Settings We raised the default memory settings
More informationTowards Cohesion-based Metrics as Early Quality Indicators of Faulty Classes and Components
2009 International Symposium on Computing, Communication, and Control (ISCCC 2009) Proc.of CSIT vol.1 (2011) (2011) IACSIT Press, Singapore Towards Cohesion-based Metrics as Early Quality Indicators of
More informationTowards Better Understanding of Software Quality Evolution Through Commit Impact Analysis
Towards Better Understanding of Software Quality Evolution Through Commit Impact Analysis Sponsor: DASD(SE) By Mr. Pooyan Behnamghader 5 th Annual SERC Doctoral Students Forum November 7, 2017 FHI 360
More informationA Large-scale Empirical Study of Java Language Feature Usage
Computer Science Technical Reports Computer Science 6-20-2013 A Large-scale Empirical Study of Java Language Feature Usage Robert Dyer Iowa State University, rdyer@iastate.edu Hridesh Rajan Iowa State
More informationSearch Engine for Open Source Code. Snigdha Rao Parvatneni
Search Engine for Open Source Code Snigdha Rao Parvatneni Sourcerer Sourcerer Sourcerer is code search engine, designed to search open source code in Java (Bajracharya et al. 2006). Sourcerer enables user
More informationCSC 2700: Scientific Computing
CSC 2700: Scientific Computing Record and share your work: revision control systems Dr Frank Löffler Center for Computation and Technology Louisiana State University, Baton Rouge, LA Feb 13 2014 Overview
More informationBoa: Ultra-Large-Scale Software Repository and Source Code Mining
Computer Science Technical Reports Computer Science Summer 7-9-2015 Boa: Ultra-Large-Scale Software Repository and Source Code Mining Robert Dyer Bowling Green State University, rdyer@bgsu.edu Hoan Anh
More informationCoral: A Metamodel Kernel for Transformation Engines
Coral: A Metamodel Kernel for Transformation Engines Marcus Alanen and Ivan Porres TUCS Turku Centre for Computer Science Department of Computer Science, Åbo Akademi University Lemminkäisenkatu 14, FIN-20520
More informationTowards a Taxonomy of Approaches for Mining of Source Code Repositories
Towards a Taxonomy of Approaches for Mining of Source Code Repositories Huzefa Kagdi, Michael L. Collard, Jonathan I. Maletic Department of Computer Science Kent State University Kent Ohio 44242 {hkagdi,
More informationMQ Explorer for Power Users
MQ Explorer for Power Users An interactive demo Jeff Lowrey, IBM Agenda This is mostly a demonstration presentation Features of MQ Explorer you might not know Using MQ Explorer from a standalone Eclipse
More informationTool support for software metrics calculation of Java projects
Tool support for software metrics calculation of Java projects Bachelor's Thesis Informatica July 1, 2014 Student: J.D. van Leusen (2194767) Primary supervisor: Prof P. Avgeriou, PhD Z. Li Secondary supervisor:
More informationCandoia: A Platform and an Ecosystem for Building and Deploying Versatile Mining Software Repositories Tools
Computer Science Technical Reports Computer Science Fall 11-5-2015 Candoia: A Platform and an Ecosystem for Building and Deploying Versatile Mining Software Repositories Tools Nitin M. Tiwari Iowa State
More informationUnifying Big Data Workloads in Apache Spark
Unifying Big Data Workloads in Apache Spark Hossein Falaki @mhfalaki Outline What s Apache Spark Why Unification Evolution of Unification Apache Spark + Databricks Q & A What s Apache Spark What is Apache
More informationEffect of Principle Component Analysis and Support Vector Machine in Software Fault Prediction
International Journal of Computer Trends and Technology (IJCTT) volume 7 number 3 Jan 2014 Effect of Principle Component Analysis and Support Vector Machine in Software Fault Prediction A. Shanthini 1,
More informationComputation Independent Model (CIM): Platform Independent Model (PIM): Platform Specific Model (PSM): Implementation Specific Model (ISM):
viii Preface The software industry has evolved to tackle new approaches aligned with the Internet, object-orientation, distributed components and new platforms. However, the majority of the large information
More informationVisualizing Software Metrics for increased Refactoring
Visualizing Software Metrics for increased Refactoring Paul Steneram Bibby ada08pst@student.lu.se Fredrik Palmquist dat11fpa@student.lu.se March 7, 2016 Keywords: Agile Development, Code Complexity, Refactoring
More informationMACHINE LEARNING FOR SOFTWARE MAINTAINABILITY
MACHINE LEARNING FOR SOFTWARE MAINTAINABILITY Anna Corazza, Sergio Di Martino, Valerio Maggio Alessandro Moschitti, Andrea Passerini, Giuseppe Scanniello, Fabrizio Silverstri JIMSE 2012 August 28, 2012
More informationAn Exploration of Power-law in Use-relation of Java Software Systems
An Exploration of Power-law in Use-relation of Java Software Systems Makoto Ichii Makoto Matsushita Katsuro Inoue Graduate School of Information Science and Technology, Osaka University 1-3 Machikaneyama,
More informationSpringSource Tool Suite 2.7.1
SpringSource Tool Suite 2.7.1 - New and Noteworthy - Martin Lippert 2.7.1 July 12, 2011 Updated for 2.7.1.RELEASE ENHANCEMENTS 2.7.1 General Updates Spring Roo 1.1.5 STS now ships and works with the just
More informationComparison and merge use-cases from practice with EMF Compare
Comparison and merge use-cases from practice with EMF Compare Laurent Delaigue Philip Langer EMF Compare Working with models Comparing text files EMF Compare Working with models Comparing models EMF Compare
More informationA Comparative Study on Different Version Control System
e-issn 2455 1392 Volume 2 Issue 6, June 2016 pp. 449 455 Scientific Journal Impact Factor : 3.468 http://www.ijcter.com A Comparative Study on Different Version Control System Monika Nehete 1, Sagar Bhomkar
More informationSpecification and Automated Detection of Code Smells using OCL
Specification and Automated Detection of Code Smells using OCL Tae-Woong Kim 1, Tae-Gong Kim 2 and Jai-Hyun Seu 3 School of Computer Engineering, Inje University, Obang-dong 607, Gimhae, Gyeong-Nam, Korea
More informationReusability Metrics for Object-Oriented System: An Alternative Approach
Reusability Metrics for Object-Oriented System: An Alternative Approach Parul Gandhi Department of Computer Science & Business Administration Manav Rachna International University Faridabad, 121001, India
More informationAn Eclipse Plug-In for Generating Database Access Documentation in Java Code
An Eclipse Plug-In for Generating Database Access Documentation in Java Code Paul L. Bergstein and Aditya Gade Dept. of Computer and Information Science, University of Massachusetts Dartmouth, Dartmouth,
More informationBig Data Analytics using Apache Hadoop and Spark with Scala
Big Data Analytics using Apache Hadoop and Spark with Scala Training Highlights : 80% of the training is with Practical Demo (On Custom Cloudera and Ubuntu Machines) 20% Theory Portion will be important
More informationDocumenting Java Database Access with Type Annotations
Documenting Java Database Access with Type Annotations Paul L. Bergstein Dept. of Computer and Information Science, University of Massachusetts Dartmouth 285 Old Westport Rd., Dartmouth, MA 02747 pbergstein@umassd.edu
More informationWhat Every Xtext User Wished to Know Industry Experience of Implementing 80+ DSLs
What Every Xtext User Wished to Know Industry Experience of Implementing 80+ DSLs EclipseCon Europe 2016 2016-10-26 Roman Mitin Avaloq Evolution AG Allmendstrasse 140 8027 Zurich Switzerland T +41 58 316
More informationAn Object Oriented Runtime Complexity Metric based on Iterative Decision Points
An Object Oriented Runtime Complexity Metric based on Iterative Amr F. Desouky 1, Letha H. Etzkorn 2 1 Computer Science Department, University of Alabama in Huntsville, Huntsville, AL, USA 2 Computer Science
More informationAdding a Source Code Searching Capability to Yioop ADDING A SOURCE CODE SEARCHING CAPABILITY TO YIOOP CS297 REPORT
ADDING A SOURCE CODE SEARCHING CAPABILITY TO YIOOP CS297 REPORT Submitted to Dr. Chris Pollett By Snigdha Rao Parvatneni 1 1. INTRODUCTION The aim of the CS297 project is to explore and learn important
More informationWhen Modeling meets Productivity. Sven Efftinge - itemis
When Modeling meets Productivity Sven Efftinge - itemis I Eclipse JDT I GIT So what s the Problem? It s the Language not the Tooling! Level of Abstraction Reuse existing, proven technology and apply
More informationDomain-Specific Languages Language Workbenches
Software Engineering with and Domain-Specific Languages Language Workbenches Peter Friese Itemis peter.friese@itemis.de Markus Voelter Independent/itemis voelter@acm.org 1 Programming Languages C# Erlang
More informationData Management Glossary
Data Management Glossary A Access path: The route through a system by which data is found, accessed and retrieved Agile methodology: An approach to software development which takes incremental, iterative
More informationTowards the re-usability of software metric definitions at the meta level
Towards the re-usability of software metric definitions at the meta level - Position Paper - Jacqueline A. McQuillan and James F. Power Department of Computer Science, National University of Ireland, Maynooth,
More informationIntroduction to Dependable Systems: Meta-modeling and modeldriven
Introduction to Dependable Systems: Meta-modeling and modeldriven development http://d3s.mff.cuni.cz CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics 3 Software development Automated software
More informationBugMaps-Granger: A Tool for Causality Analysis between Source Code Metrics and Bugs
BugMaps-Granger: A Tool for Causality Analysis between Source Code Metrics and Bugs Cesar Couto, Pedro Pires, Marco Tulio Valente, Roberto Bigonha, Andre Hora, Nicolas Anquetil To cite this version: Cesar
More informationJBPM Course Content. Module-1 JBPM overview, Drools overview
JBPM Course Content Module-1 JBPM overview, Drools overview JBPM overview Drools overview Community projects Vs Enterprise projects Eclipse integration JBPM console JBPM components Getting started Downloads
More informationDeploying, Managing and Reusing R Models in an Enterprise Environment
Deploying, Managing and Reusing R Models in an Enterprise Environment Making Data Science Accessible to a Wider Audience Lou Bajuk-Yorgan, Sr. Director, Product Management Streaming and Advanced Analytics
More informationAnalyzing the Product Line Adequacy of Existing Components
Analyzing the Product Line Adequacy of Existing Components Jens Knodel and Dirk Muthig Fraunhofer Institute for Experimental Software Engineering (IESE), Fraunhofer-Platz 1, D-67663 Kaiserslautern, Germany
More informationFramework for Constructing Context- Specific Migration Methods for Test Cases
for Constructing Context- Specific s for Cases Presented by Ivan Jovanovikj All rights reserved Agenda 1 Challenges in Case Reuse in Projects 2 Construction of Context- Specific s 3 Outlook and Conclusion
More informationEvolutionary Decision Trees and Software Metrics for Module Defects Identification
World Academy of Science, Engineering and Technology 38 008 Evolutionary Decision Trees and Software Metrics for Module Defects Identification Monica Chiş Abstract Software metric is a measure of some
More informationAn Empirical Study of Multi-Entity Changes in Real Bug Fixes
An Empirical Study of Multi-Entity Changes in Real Bug Fixes Ye Wang, Na Meng Department of Computer Science Virginia Tech, Blacksburg, VA, USA {yewang16, nm8247}@vt.edu Hao Zhong Department of Computer
More informationHOW AND WHEN TO FLATTEN JAVA CLASSES?
HOW AND WHEN TO FLATTEN JAVA CLASSES? Jehad Al Dallal Department of Information Science, P.O. Box 5969, Safat 13060, Kuwait ABSTRACT Improving modularity and reusability are two key objectives in object-oriented
More informationCUDA Development Using NVIDIA Nsight, Eclipse Edition. David Goodwin
CUDA Development Using NVIDIA Nsight, Eclipse Edition David Goodwin NVIDIA Nsight Eclipse Edition CUDA Integrated Development Environment Project Management Edit Build Debug Profile SC'12 2 Powered By
More informationExpressive and Scalable Source Code Queries with Graph Databases
Expressive and Scalable Source Code Queries with Graph Databases Raoul-Gabriel Urma Computer Laboratory, University of Cambridge raoul.urma@cl.cam.ac.uk Alan Mycroft Computer Laboratory, University of
More informationMaintainability and Agile development. Author: Mika Mäntylä
Maintainability and Agile development Author: Mika Mäntylä ISO 9126 Software Quality Characteristics Are the required functions available in the software? How easy is it to
More informationEmpirical Software Engineering. Empirical Software Engineering with Examples. Classification. Software Quality. precision = TP/(TP + FP)
Empirical Software Engineering Empirical Software Engineering with Examples a sub-domain of software engineering focusing on experiments on software systems devise experiments on software, in collecting
More informationQuantify the project. Better Estimates. Resolve Software crises
Quantify the project Quantifying schedule, performance,work effort, project status Helps software to be compared and evaluated Better Estimates Use the measure of your current performance to improve your
More informationRisk-based Object Oriented Testing
Risk-based Object Oriented Testing Linda H. Rosenberg, Ph.D. Ruth Stapko Albert Gallo NASA GSFC SATC NASA, Unisys SATC NASA, Unisys Code 302 Code 300.1 Code 300.1 Greenbelt, MD 20771 Greenbelt, MD 20771
More informationSoftware product quality control Dr. Stefan Wagner Dr. Florian Deißenböck Technische Universität München
Tool-supported Software product quality control Dr. Stefan Wagner Dr. Florian Deißenböck Technische Universität München Google Developer Day Munich November 9, 2010 Continuous Quality Control Quality Model
More informationTCSS 360: SOFTWARE DEVELOPMENT AND QUALITY ASSURANCE
TCSS 360: SOFTWARE DEVELOPMENT AND QUALITY ASSURANCE Scrum Software Process, Version Control, Git/Github Github, Postman Wes J. Lloyd Institute of Technology University of Washington - Tacoma OBJECTIVES
More informationRefactoring and Rearchitecturing
Refactoring and Rearchitecturing Overview Introduction Refactoring vs reachitecting Exploring the situation Legacy code Code written by others Code already written Not supported code Code without automated
More informationA Meta-Model for Fact Extraction from Delphi Source Code
Electronic Notes in Theoretical Computer Science 94 (2004) 9 28 www.elsevier.com/locate/entcs A Meta-Model for Fact Extraction from Delphi Source Code Jens Knodel and G. Calderon-Meza 2 Fraunhofer Institute
More informationQuantifying and Assessing the Merge of Cloned Web-Based System: An Exploratory Study
Quantifying and Assessing the Merge of Cloned Web-Based System: An Exploratory Study Jadson Santos Department of Informatics and Applied Mathematics Federal University of Rio Grande do Norte, UFRN Natal,
More informationLaboratorio di Programmazione. Prof. Marco Bertini
Laboratorio di Programmazione Prof. Marco Bertini marco.bertini@unifi.it http://www.micc.unifi.it/bertini/ Code versioning: techniques and tools Software versions All software has multiple versions: Each
More informationExecution Trace Streaming based Real Time Collection of Dynamic Metrics using PaaS
Execution Trace Streaming based Real Time Collection of Dynamic Metrics using PaaS Amit Kumar Dogra, Harkomal Singh, Paramvir Singh Dept. of Computer Science and Engineering Dr. B R Ambedkar National Institute
More informationSimilarity management of 'cloned and owned' variants
Similarity management of 'cloned and owned' variants Thomas Schmorleiz and Ralf Lämmel University of Koblenz-Landau 1 What is similarity management and why do we need it anyway? 2 Consider similarity across
More informationConfiguration Management for Component-based Systems
Configuration Management for Component-based Systems Magnus Larsson Ivica Crnkovic Development and Research Department of Computer Science ABB Automation Products AB Mälardalen University 721 59 Västerås,
More informationSecuring Design Source Inside a Design Repository
Securing Design Source Inside a Design Repository Old Content - see latest equivalent Modified by Jason Howie on 31-May-2017 Parent article: Board Design Release The best way of working from a known set
More informationMINING SOURCE CODE REPOSITORIES AT MASSIVE SCALE USING LANGUAGE MODELING COMP 5900 X ERIC TORUNSKI DEC 1, 2016
MINING SOURCE CODE REPOSITORIES AT MASSIVE SCALE USING LANGUAGE MODELING COMP 5900 X ERIC TORUNSKI DEC 1, 2016 OVERVIEW Miltiadis Allamanis, Mining Source Code Repositories at Massive Scale using Language
More informationCompositional Model Based Software Development
Compositional Model Based Software Development Prof. Dr. Bernhard Rumpe http://www.se-rwth.de/ Seite 2 Our Working Groups and Topics Automotive / Robotics Autonomous driving Functional architecture Variability
More informationContinuous Integration and Deployment (CI/CD)
WHITEPAPER OCT 2015 Table of contents Chapter 1. Introduction... 3 Chapter 2. Continuous Integration... 4 Chapter 3. Continuous Deployment... 6 2 Chapter 1: Introduction Apcera Support Team October 2015
More informationEmpirical Software Engineering. Empirical Software Engineering with Examples! is not a topic for examination. Classification.
Empirical Software Engineering Empirical Software Engineering with Examples is not a topic for examination a sub-domain of software engineering focusing on experiments on software systems devise experiments
More informationCHAPTER 4 HEURISTICS BASED ON OBJECT ORIENTED METRICS
CHAPTER 4 HEURISTICS BASED ON OBJECT ORIENTED METRICS Design evaluation is most critical activity during software development process. Design heuristics are proposed as a more accessible and informal means
More informationApache Subversion Tutorial
Apache Subversion Tutorial Computer Science Standard C-6.C Diana Machado Raul Garcia Dr. Shu-Ching Chen Florida International University Computer Science 2/22/2014 What is Subversion (SVN)? A free and
More informationIBM WebSphere Studio Asset Analyzer, Version 5.1
Helping you quickly understand, enhance and maintain enterprise applications IBM, Version 5.1 Highlights n Provides interactive textual n Helps shorten the learning curve and graphic reports that help
More informationObject Oriented Metrics. Impact on Software Quality
Object Oriented Metrics Impact on Software Quality Classic metrics Lines Of Code Function points Complexity Code coverage - testing Maintainability Index discussed later Lines of Code KLOC = 1000 Lines
More informationFault Identification from Web Log Files by Pattern Discovery
ABSTRACT International Journal of Scientific Research in Computer Science, Engineering and Information Technology 2017 IJSRCSEIT Volume 2 Issue 2 ISSN : 2456-3307 Fault Identification from Web Log Files
More information[Software Development] Development Tools. Davide Balzarotti. Eurecom Sophia Antipolis, France
[Software Development] Development Tools Davide Balzarotti Eurecom Sophia Antipolis, France Version Control Version (revision) control is the process of tracking and recording changes to files Most commonly
More informationHow We Refactor, and How We Know It
Emerson Murphy-Hill, Chris Parnin, Andrew P. Black How We Refactor, and How We Know It Urs Fässler 30.03.2010 Urs Fässler () How We Refactor, and How We Know It 30.03.2010 1 / 14 Refactoring Definition
More informationPush up your code next generation version control with (E)Git
Push up your code next generation version control with (E)Git Dominik Schadow Senior Consultant Application Development dominik.schadow@trivadis.com Java Forum Stuttgart, 07.07.2011 Basel Bern Lausanne
More informationWhole Platform Foundation. The Long Way Toward Language Oriented Programming
Whole Platform Foundation The Long Way Toward Language Oriented Programming 2008 by Riccardo Solmi made available under the Creative Commons License last updated 22 October 2008 Outline Aim: Engineering
More informationComputer Programming IA
EXAM INFORMATION Items 42 Points 51 Prerequisites NONE Course Length ONE SEMESTER DESCRIPTION introduces students to the fundamentals of computer programming. Students will learn to design, code, and test
More informationEclipse b3. Eclipse Project Creation Review. November, 2009 Henrik Lindberg, Cloudsmith Inc. Project Creation Review
Eclipse b3 Eclipse Project Creation Review November, 2009 Henrik Lindberg, Cloudsmith Inc 2009 Cloudsmith Inc. Made available under EPL Public License v1.0 1 b3 objectives to develop a new generation of
More informationClasses and Objects. Object Orientated Analysis and Design. Benjamin Kenwright
Classes and Objects Object Orientated Analysis and Design Benjamin Kenwright Outline Review Previous Weeks Object Model, Complexity,.. What do we mean by Classes and Objects? Summary/Discussion Review
More informationCISC836: Models in Software Development: Methods, Techniques and Tools
CISC836: Models in Software Development: Methods, Techniques and Tools Topic 4: Code Generation with EMF Meta modeling Languages for meta models: Ecore Using EMF and Ecoreto define a data model Using EMF
More informationInsECTJ: A Generic Instrumentation Framework for Collecting Dynamic Information within Eclipse
InsECTJ: A Generic Instrumentation Framework for Collecting Dynamic Information within Eclipse Arjan Seesing and Alessandro Orso College of Computing Georgia Institute of Technology a.c.seesing@ewi.tudelft.nl,
More informationModel-Driven Iterative Development of 3D Web-Applications Using SSIML, X3D and JavaScript
Freiberg University of Mining and Technology The University of Resources. Since 1765. WEB3D 2012-17th International Conference on 3D Web Technology Model-Driven Iterative Development of 3D Web-Applications
More informationThis tutorial explains how you can use Gradle as a build automation tool for Java as well as Groovy projects.
About the Tutorial Gradle is an open source, advanced general purpose build management system. It is built on ANT, Maven, and lvy repositories. It supports Groovy based Domain Specific Language (DSL) over
More informationEGit in Eclipse. Distributed Verzion Control Systems
EGit in Eclipse Distributed Verzion Control Systems 1 EGit in Eclipse Distributed Verzion Control Systems Distributed Verizon Control Systems 1.1 1.2 2 EGit in Eclipse Distributed Verzion Control Systems
More informationInterface evolution via public defender methods
Interface evolution via public defender methods Brian Goetz Second draft, May 2010 1. Problem statement Once published, it is impossible to add methods to an interface without breaking existing implementations.
More information2014, IJARCSSE All Rights Reserved Page 303
Volume 4, Issue 1, January 2014 ISSN: 2277 128X International Journal of Advanced Research in Computer Science and Software Engineering Research Paper Available online at: www.ijarcsse.com A Novel Software
More informationTowards a Unified Source Code Measurement Framework Supporting Multiple Programming Languages
Towards a Unified Source Code Measurement Framework Supporting Multiple Programming Languages Reisha Humaira, Kazunori Sakamoto, Akira Ohashi, Hironori Washizaki, Yoshiaki Fukazawa Dept. Computer Science
More informationThe Evolution of Big Data Platforms and Data Science
IBM Analytics The Evolution of Big Data Platforms and Data Science ECC Conference 2016 Brandon MacKenzie June 13, 2016 2016 IBM Corporation Hello, I m Brandon MacKenzie. I work at IBM. Data Science - Offering
More informationA Model-Driven Framework for Domain Specific Process Design and Governance
A Model-Driven Framework for Domain Specific Process Design and Governance Adrian Mos 1, Mario Cortes-Cornax 1, José Miguel Pérez-Álvarez1,2, María Teresa Gómez-López 2 1 Xerox Research Center, 6 Chemin
More informationProduct Release Notes Alderstone cmt 2.0
Alderstone cmt product release notes Product Release Notes Alderstone cmt 2.0 Alderstone Consulting is a technology company headquartered in the UK and established in 2008. A BMC Technology Alliance Premier
More information