Model-based Mining of Software Repositories. Markus Scheidgen

Size: px
Start display at page:

Download "Model-based Mining of Software Repositories. Markus Scheidgen"

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

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 information

Model-based Mining of Source Code Repositories

Model-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 information

Mining 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 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 information

Mining Ultra-Large-Scale Software Repositories with. Boa

Mining 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 information

Taxonomy Dimensions of Complexity Metrics

Taxonomy 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 information

International Journal for Management Science And Technology (IJMST)

International 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 information

24 th Annual Research Review

24 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 information

Software Quality Understanding by Analysis of Abundant Data (SQUAAD)

Software 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 information

2/8/18. Overview. Project Management. The First Law. What is Project Management? What Are These Changes? Software Configuration Management (SCM)

2/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 information

Project Management. Overview

Project 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 information

Version Control Systems (VCS)

Version 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 information

J2EE Development Best Practices: Improving Code Quality

J2EE 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 information

SANER 17. Klagenfurt, Austria

SANER 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 information

arxiv: v1 [cs.se] 25 Mar 2014

arxiv: 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 information

JetBrains TeamCity Comparison

JetBrains 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 information

SpringSource Tool Suite M2

SpringSource 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 information

Towards Cohesion-based Metrics as Early Quality Indicators of Faulty Classes and Components

Towards 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 information

Towards Better Understanding of Software Quality Evolution Through Commit Impact Analysis

Towards 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 information

A Large-scale Empirical Study of Java Language Feature Usage

A 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 information

Search Engine for Open Source Code. Snigdha Rao Parvatneni

Search 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 information

CSC 2700: Scientific Computing

CSC 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 information

Boa: Ultra-Large-Scale Software Repository and Source Code Mining

Boa: 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 information

Coral: A Metamodel Kernel for Transformation Engines

Coral: 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 information

Towards a Taxonomy of Approaches for Mining of Source Code Repositories

Towards 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 information

MQ Explorer for Power Users

MQ 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 information

Tool support for software metrics calculation of Java projects

Tool 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 information

Candoia: A Platform and an Ecosystem for Building and Deploying Versatile Mining Software Repositories Tools

Candoia: 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 information

Unifying Big Data Workloads in Apache Spark

Unifying 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 information

Effect of Principle Component Analysis and Support Vector Machine in Software Fault Prediction

Effect 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 information

Computation Independent Model (CIM): Platform Independent Model (PIM): Platform Specific Model (PSM): Implementation Specific Model (ISM):

Computation 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 information

Visualizing Software Metrics for increased Refactoring

Visualizing 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 information

MACHINE LEARNING FOR SOFTWARE MAINTAINABILITY

MACHINE 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 information

An Exploration of Power-law in Use-relation of Java Software Systems

An 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 information

SpringSource Tool Suite 2.7.1

SpringSource 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 information

Comparison and merge use-cases from practice with EMF Compare

Comparison 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 information

A Comparative Study on Different Version Control System

A 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 information

Specification and Automated Detection of Code Smells using OCL

Specification 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 information

Reusability Metrics for Object-Oriented System: An Alternative Approach

Reusability 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 information

An Eclipse Plug-In for Generating Database Access Documentation in Java Code

An 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 information

Big Data Analytics using Apache Hadoop and Spark with Scala

Big 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 information

Documenting Java Database Access with Type Annotations

Documenting 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 information

What 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 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 information

An Object Oriented Runtime Complexity Metric based on Iterative Decision Points

An 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 information

Adding 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 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 information

When Modeling meets Productivity. Sven Efftinge - itemis

When 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 information

Domain-Specific Languages Language Workbenches

Domain-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 information

Data Management Glossary

Data 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 information

Towards the re-usability of software metric definitions at the meta level

Towards 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 information

Introduction to Dependable Systems: Meta-modeling and modeldriven

Introduction 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 information

BugMaps-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 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 information

JBPM Course Content. Module-1 JBPM overview, Drools overview

JBPM 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 information

Deploying, Managing and Reusing R Models in an Enterprise Environment

Deploying, 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 information

Analyzing the Product Line Adequacy of Existing Components

Analyzing 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 information

Framework for Constructing Context- Specific Migration Methods for Test Cases

Framework 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 information

Evolutionary Decision Trees and Software Metrics for Module Defects Identification

Evolutionary 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 information

An Empirical Study of Multi-Entity Changes in Real Bug Fixes

An 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 information

HOW AND WHEN TO FLATTEN JAVA CLASSES?

HOW 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 information

CUDA Development Using NVIDIA Nsight, Eclipse Edition. David Goodwin

CUDA 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 information

Expressive and Scalable Source Code Queries with Graph Databases

Expressive 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 information

Maintainability and Agile development. Author: Mika Mäntylä

Maintainability 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 information

Empirical Software Engineering. Empirical Software Engineering with Examples. Classification. Software Quality. precision = TP/(TP + FP)

Empirical 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 information

Quantify the project. Better Estimates. Resolve Software crises

Quantify 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 information

Risk-based Object Oriented Testing

Risk-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 information

Software product quality control Dr. Stefan Wagner Dr. Florian Deißenböck Technische Universität München

Software 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 information

TCSS 360: SOFTWARE DEVELOPMENT AND QUALITY ASSURANCE

TCSS 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 information

Refactoring and Rearchitecturing

Refactoring 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 information

A Meta-Model for Fact Extraction from Delphi Source Code

A 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 information

Quantifying 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 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 information

Laboratorio di Programmazione. Prof. Marco Bertini

Laboratorio 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 information

Execution Trace Streaming based Real Time Collection of Dynamic Metrics using PaaS

Execution 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 information

Similarity management of 'cloned and owned' variants

Similarity 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 information

Configuration Management for Component-based Systems

Configuration 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 information

Securing Design Source Inside a Design Repository

Securing 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 information

MINING 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 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 information

Compositional Model Based Software Development

Compositional 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 information

Continuous Integration and Deployment (CI/CD)

Continuous 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 information

Empirical 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. 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 information

CHAPTER 4 HEURISTICS BASED ON OBJECT ORIENTED METRICS

CHAPTER 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 information

Apache Subversion Tutorial

Apache 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 information

IBM WebSphere Studio Asset Analyzer, Version 5.1

IBM 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 information

Object Oriented Metrics. Impact on Software Quality

Object 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 information

Fault Identification from Web Log Files by Pattern Discovery

Fault 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 [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 information

How We Refactor, and How We Know It

How 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 information

Push up your code next generation version control with (E)Git

Push 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 information

Whole Platform Foundation. The Long Way Toward Language Oriented Programming

Whole 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 information

Computer Programming IA

Computer 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 information

Eclipse 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. 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 information

Classes and Objects. Object Orientated Analysis and Design. Benjamin Kenwright

Classes 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 information

CISC836: Models in Software Development: Methods, Techniques and Tools

CISC836: 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 information

InsECTJ: A Generic Instrumentation Framework for Collecting Dynamic Information within Eclipse

InsECTJ: 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 information

Model-Driven Iterative Development of 3D Web-Applications Using SSIML, X3D and JavaScript

Model-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 information

This tutorial explains how you can use Gradle as a build automation tool for Java as well as Groovy projects.

This 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 information

EGit in Eclipse. Distributed Verzion Control Systems

EGit 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 information

Interface evolution via public defender methods

Interface 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 information

2014, IJARCSSE All Rights Reserved Page 303

2014, 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 information

Towards a Unified Source Code Measurement Framework Supporting Multiple Programming Languages

Towards 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 information

The Evolution of Big Data Platforms and Data Science

The 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 information

A Model-Driven Framework for Domain Specific Process Design and Governance

A 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 information

Product Release Notes Alderstone cmt 2.0

Product 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