Analysing Structural Dependencies in Software Product Lines

Size: px
Start display at page:

Download "Analysing Structural Dependencies in Software Product Lines"

Transcription

1 Analysing Structural Dependencies in Software Product Lines Using Distribution and Network Statistics by Sven Apel, Sergiy Kolnesikov, Stefan Sobernig; in cooperation with Jörg Liebig and Norbert Siegmund March 21, 2012 Structural Dependencies FOSD-Treffen 12 Sobernig 1 / 23

2 Structure of the talk 1. Motivation 2. Gathering syntactic reference data from Java-based SPLs (Fuji) 3. Notions of reference 4. Degree statistics over reference data Ufff! A false x-ray apparatus for SPLs? (Illustration adapted from Perelman (1913/2008): Physics for Entertainment, Fig. 95, p. 132) Structural Dependencies FOSD-Treffen 12 Sobernig 2 / 23

3 Data collection for Fuji-driven SPLs Composition spec Compilation units (*.java) ASTs Composed ASTs Processing SPL structure JastAddJ parser frontend Feature module composition Reference extraction aspl Introductions Base A.java References Consolidated References F1 A.java Introductions See [Kol11] for details on Fuji Structural Dependencies FOSD-Treffen 12 Sobernig 3 / 23

4 A generic notion of reference In the Fuji/Java context, relevant DeclExpressions are... Class declarations Constructor and initializer declarations Method declarations Field declarations RelevantUseExpressions are... t aref s Class-instance creation expressions Field access expressions Method invocation expressions DeclExpression UseExpression Structural Dependencies FOSD-Treffen 12 Sobernig 4 / 23

5 An extended notion of Fuji reference Base F1 A foo() aref bar() B bref α: B.bar() A foo() f: F1 C R : F A Γ F A Γ = (({f i,α m,τ},{f j,α n,τ}),) 1 i,j F, i j 1 m,n A, m n τ Γ :{type, field, method, constructor} Intra-module references, e.g.: aref ({Base,B.bar(),method},{Base,A.foo(),method}) Inter-module references, e.g.: bref ({Base,B.bar(),method},{F1,A.foo(),method}) Structural Dependencies FOSD-Treffen 12 Sobernig 5 / 23

6 Available reference data sets (SPLs) References and introductions data of 28 SPLs Feature modules: = 99 (BerkeleyDB) vs. δ = 5 (Raroscope) Introductions: = 9379 (BerkeleyDB) vs. δ = 43 (EPL) (Unique) references: = (BerkeleyDB) vs. δ = 80 (EPL) (Unique) inter-module references: = (BerkeleyDB) vs. δ = 51 (Raroscope) Structural Dependencies FOSD-Treffen 12 Sobernig 6 / 23

7 Fuji reference space The reference data can be sliced by pairs of syntactic categories: source target field method constructor type field method constructor type 4 4 = 16 subsets of reference data per SPL Column-wise aggregation: field accesses, method accesses... the level of abstraction: per-element vs. per-feature-module... the kind of reference: intra-module vs. inter-module... the reference direction: in- vs. outgoing... or any combination of the above! Structural Dependencies FOSD-Treffen 12 Sobernig 7 / 23

8 Degrees in reference networks α: B.bar() f: F1 For each possible reference-data slice, e.g.: method method per-element, intra- and inter-module references... d+ = 3 d- = 1... we can form a graphg R We can identify local properties of each node n (e.g., element, feature module), such as: out-degree d + (n) in-degree d (n)... as well as their relative forms and global, degree-based characteristics Average, minimum, and maximum degrees: φd + (G R ),φd (G R ), d + (G R ), d (G R ),δd + (G R ), δd (G R ) (In-/Out-) Degree distribution Structural Dependencies FOSD-Treffen 12 Sobernig 8 / 23

9 An exemplary out-degree distribution For the given example, the global, out-degree characteristics are: d+ = 0 α: B.bar() d+ = 0 d+ = 2 d+ = 1 d+ = 1 d+ =2 d+ = 3 d+ = 0 f: F1 d+ = 1 d+ = 1 d + (G R ) = 3 δd + (G R ) = 0 φd + (G R ) =? The distribution of out-degree frequencies in G R : out-degree frequency rel. frequency Example (method->method out-degrees) rel. frequency out-degree Structural Dependencies FOSD-Treffen 12 Sobernig 9 / 23

10 Do degrees follow a particular distribution? Random binominal distribution (p = 0.5) Random Poisson distribution (lambda = 2) Random geometric distribution (p = 0.5) rel. frequency rel. frequency rel. frequency out-degree out-degree out-degree Structural Dependencies FOSD-Treffen 12 Sobernig 10 / 23

11 Towards Smell Detection, Ex. 1 (1) A variant of a Feature Envy [Fow03]: Excessive Inter-Module Method Invocations 1. For a given SPL, choose the appropriate data slice: per-element, * method references, out-degrees, inter-module 2. Indicator measures: network density, strength distribution (skewness) Possible envies? Mostly ego-centric? d+ = 2 α: B.bar() f: F1 f: F3 α: D.daz() d+ = 3 d+ = 4 d+ = 2 d+ = 3 d+ = 3 f: F2 α: C.faz() d+ = 0 α: B.bar() f: F1 f: F3 α: D.daz() d+ = 0 d+ = 3 d+ = 1 d+ = 1 d+ = 0 f: F2 α: C.faz() density = 17/30 ~ 0.57 F = 6 density = 5/30 = 0.3 F = Left-skewed 0.5 Right-skewed rel. frequency rel. frequency out-degree out-degree 2 3 Structural Dependencies FOSD-Treffen 12 Sobernig 11 / 23

12 Towards Smell Detection, Ex. 1 (2) Can one observe method-level feature Envies in the TankWar Fuji-SPL?,-./ :;<:.3=4>:?1@74@-1;A.-3A8A7>B!"( 173"4E17F?7.@=!"'!"&!"%!"$ Positive skew (right-tailed), also heavy-tailed?!"#!"!! # $ Majority of self-sufficient (cohesive) elements % & ' ( 8-1C78>4D714>:?1@7 Hubs ) * + (Frequent?) outliers Structural Dependencies FOSD-Treffen 12 Sobernig 12 / 23

13 Research question(s): Are we looking at variants of a power-law distribution for our SPLs and for all/certain slices? Random Barabasi power-law distribution (n = 30, linear attachment) 0.5 rel. frequency out-degree Why would one expect to find such a degree distribution in a Fuji SPL? Structural Dependencies FOSD-Treffen 12 Sobernig 13 / 23

14 On Power Laws (or the like) Numerous reports for important OO program structures: Many hierarchical (ownership) and non-hierarchical (statements) relations within and between class boundaries; Qualitas Corpus [TSWW11]; also states the correspondence between overall connectivity and between-class connectivity. Classes and class relations such as inheritance and aggregation; JDK class libraries [WC03] Variable type annotations, object creation, and parameter passing; Squeak and VisualWorks Smalltalk [MPST04]. Global layout of 60 object graphs, extracted from object-object references from sources as diverse as C++ frontend to GCC, the Self runtime, and Java ArgoUML [PNFB05] Underlying forces (development processes and practises) Preferential attachment in the development process OO design patterns (e.g., template & hook methods, abstract class designs) Key classes Structural Dependencies FOSD-Treffen 12 Sobernig 14 / 23

15 Per-feature-module statistics α: B.bar() f: F1 Base F1 Only inter-module reference are considered Per-element references become aggregated/subsumed by per-module references (edge weights) Structural Dependencies FOSD-Treffen 12 Sobernig 15 / 23

16 Towards Smell Detection, Ex. 2 Direct Field Accesses vs. Feature-Module Boundaries [AKL + 12] 1. For a given SPL, choose the appropriate data slice: per-feature, * field references, out-degrees, inter-module 2. Indicator measures: network density, degree distribution (skewness) Relatively high coupling Relatively low coupling d+ = 2 d+ = 1 d+ = 3 d+ = 3 d+ = 2 d+ = 0 d+ = 0 d+ = 1 d+ = 0 d+ = 4 d+ = 3 d+ = 3 density = 17/30 ~ 0.57 F = 6 density = 5/30 = 0.17 F = Left-skewed 0.5 Right-skewed rel. frequency rel. frequency out-degree out-degree 2 3 Structural Dependencies FOSD-Treffen 12 Sobernig 16 / 23

17 Closing: Further directions of analysis 1. Short-term objectives (Stefan, Sven, Sergiy) Additional slicing dimensions: Incorporate co-occurrence dependencies between feature modules (never, always, optional) Usage frequencies of introductions Distribution statistics for field and method accesses per feature module Local/global characteristics of derivative features (Jörg) Detection/calibration of intrinsic (statistical) thresholds for degree and distribution statistics Input for Performance Prediction (see Norbert s and Sergiy s talks): Higher-Order (e.g., triangles) and Hot-Spot Features (hubs, betweeness) 2. Mid-term objectives Detection/calibration of extrinsic thresholds, by incorporating the non-functional data profiles of the SPLs (Sergiy, Norbert, Jörg) Weighted network statistics (Stefan, Sven, Jörg) Edge weights based on reference counts (per-element, per-feature) Attribute measures as edge weights (e.g., degrees of coupling and scattering,... )... Structural Dependencies FOSD-Treffen 12 Sobernig 17 / 23

18 Shooting time! What do you see through the walls of SPL code data? (Illustration adapted from Perelman (1913/2008): Physics for Entertainment, Fig. 95, p. 132) Structural Dependencies FOSD-Treffen 12 Sobernig 18 / 23

19 References Sergiy Kolesnikov. Ein erweiterbarer Compiler zum feature-orientierten Programmieren in Java. Talk at the FOSD Annual Meeting 2011, Dresden, März 2011 Craig Taube-Schock, Robert Walker, and Ian Witten. Can we avoid high coupling? In ECOOP 2011 Object-Oriented Programming, volume 6813 of Lecture Notes in Computer Science, pages Springer-Verlag, 2011 M. Marchesi, S. PINNA, N. SERRA, and S. Tuveri. Power laws in smalltalk. In Proceedings of the 12th Smalltalk Joint Event, 2004 Richard Wheeldon and Steve Counsell. Power Law Distributions in Class Relationships. Proceedings of the IEEE International Workshop on Source Code Analysis and Manipulation (SCAM 03), pages 1 10, 2003 Sven Apel, Sergiy Kolesnikov, Jörg Liebig, Christian Kästner, Martin Kuhlemann, and Thomas Leich. Access control in feature-oriented programming. Science of Computer Programming, 77(3): , 2012 Martin Fowler. Refactoring Improving the Design of Existing Code. The Addison-Wesley object technology series. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 2003 Lionel C. Briand, John W. Daly, and Jürgen K. Wüst. A Unified Framework for Coupling Measurement in Object-Oriented Systems. IEEE Transactions on Software Engineering, 25:91 121, 1999 Structural Dependencies FOSD-Treffen 12 Sobernig 19 / 23

20 Appendix Structural Dependencies FOSD-Treffen 12 Sobernig 20 / 23

21 Fuji-driven SPLs Composition spec Compilation units (*.java) ASTs Composed ASTs Product (bytecode) Processing SPL structure JastAddJ parser frontend Feature module composition JastAddJ compiler backend aspl Base A.java F1 A.java See [Kol11] for details on Fuji Structural Dependencies FOSD-Treffen 12 Sobernig 21 / 23

22 Feature-module composition Fuji composes feature modules using AST superimposition: Base F 1 Base F1 α: A τ: type A B α: B τ: type f: F1 α: A τ: type A C f: F1 α: C τ: type foo() bar() α: B.bar() f: F1 foo()... its introducing feature module f : Base,F1... its labelα: A,B,...,foo()... its syntactic categoryτ : type,method Each declaration element are identified by... Structural Dependencies FOSD-Treffen 12 Sobernig 22 / 23

23 Exploratory issue: Per-feature-module statistics (1) r1 fs s ft t f1 fn r2 cross-tabulation f1 fn rm Reference data (showing source and target feature per reference) Asymmetric feature-feature matrix Structural Dependencies FOSD-Treffen 12 Sobernig 23 / 23

International Journal of Web & Semantic Technology (IJWesT) Vol.3, No.3, July 2012. Vishnuvardhan Mannava 1 and T. Ramesh 2

International Journal of Web & Semantic Technology (IJWesT) Vol.3, No.3, July 2012. Vishnuvardhan Mannava 1 and T. Ramesh 2 COMPOSITE DESIGN PATTERN FOR FEATURE- ORIENTED SERVICE INJECTION AND COMPOSITION OF WEB SERVICES FOR DISTRIBUTED COMPUTING SYSTEMS WITH SERVICE ORIENTED ARCHITECTURE Vishnuvardhan Mannava 1 and T. Ramesh

More information

Empirical study of software quality evolution in open source projects using agile practices

Empirical study of software quality evolution in open source projects using agile practices 1 Empirical study of software quality evolution in open source projects using agile practices Alessandro Murgia 1, Giulio Concas 1, Sandro Pinna 1, Roberto Tonelli 1, Ivana Turnu 1, SUMMARY. 1 Dept. Of

More information

Towards Software Configuration Management for Test-Driven Development

Towards Software Configuration Management for Test-Driven Development Towards Software Configuration Management for Test-Driven Development Tammo Freese OFFIS, Escherweg 2, 26121 Oldenburg, Germany tammo.freese@offis.de Abstract. Test-Driven Development is a technique where

More information

Agile Software Development

Agile Software Development Agile Software Development Lecturer: Raman Ramsin Lecture 13 Refactoring Part 3 1 Dealing with Generalization: Pull Up Constructor Body Pull Up Constructor Body You have constructors on subclasses with

More information

Safe Generation in Feature-Oriented Software Development Sven Apel

Safe Generation in Feature-Oriented Software Development Sven Apel Safe Generation in Feature-Oriented Software Development Sven Apel Lehrstuhl für Programmierung Universität Passau Software Product Line Engineering OS FAME-DBMS BufferMgr Statistics Storage Domain Analysis

More information

Bridging the Gap between Variability in Client Application and Database Schema

Bridging the Gap between Variability in Client Application and Database Schema Bridging the Gap between Variability in Client Application and Database Schema Norbert Siegmund 1, Christian Kästner 1, Marko Rosenmüller 1, Florian Heidenreich 2, Sven Apel 3, and Gunter Saake 1 1 School

More information

Colligens: A Tool to Support the Development of Preprocessor-based Software Product Lines in C

Colligens: A Tool to Support the Development of Preprocessor-based Software Product Lines in C Colligens: A Tool to Support the Development of Preprocessor-based Software Product Lines in C Flávio Medeiros 1, Thiago Lima 2, Francisco Dalton 2, Márcio Ribeiro 2, Rohit Gheyi 1, Baldoino Fonseca 2

More information

Clone Detection in a Product Line Context

Clone Detection in a Product Line Context Clone Detection in a Product Line Context Thilo Mende, Felix Beckwermert University of Bremen, Germany {tmende,beckwermert}@informatik.uni-bremen.de Abstract: Software Product Lines (SPL) can be used to

More information

Object Oriented Design

Object Oriented Design Object Oriented Design Kenneth M. Anderson Lecture 20 CSCI 5828: Foundations of Software Engineering OO Design 1 Object-Oriented Design Traditional procedural systems separate data and procedures, and

More information

RobbyDBMS A Case Study on Hardware/Software Product Line Engineering

RobbyDBMS A Case Study on Hardware/Software Product Line Engineering RobbyDBMS A Case Study on Hardware/Software Product Line Engineering Jörg Liebig and Sven Apel and Christian Lengauer Department of Infmatics and Mathematics University of Passau, Germany {joliebig,apel,lengauer}@fim.uni-passau.de

More information

sql-schema-comparer: Support of Multi-Language Refactoring with Relational Databases

sql-schema-comparer: Support of Multi-Language Refactoring with Relational Databases sql-schema-comparer: Support of Multi-Language Refactoring with Relational Databases Hagen Schink Institute of Technical and Business Information Systems Otto-von-Guericke-University Magdeburg, Germany

More information

Automated Validation & Verification of Software Paper Presentation

Automated Validation & Verification of Software Paper Presentation Regression Test Selection for Java Software Salvador Valencia Rodríguez Automated Validation & Verification of Software Paper Presentation Paper authors Mary Jean Harrold James A. Jones Tongyu Li Donglin

More information

Practical Graph Mining with R. 5. Link Analysis

Practical Graph Mining with R. 5. Link Analysis Practical Graph Mining with R 5. Link Analysis Outline Link Analysis Concepts Metrics for Analyzing Networks PageRank HITS Link Prediction 2 Link Analysis Concepts Link A relationship between two entities

More information

Measuring the Coherence of Software Product Line Architectures

Measuring the Coherence of Software Product Line Architectures Measuring the Coherence of Software Product Line Architectures Vojislav B. Mišić 1 technical report TR 06/03 Department of Computer Science, University of Manitoba Winnipeg, Manitoba, Canada R3T 2N2 June

More information

Regression Test Selection for Java Software

Regression Test Selection for Java Software Proc. of the ACM Conf. on OO Programming, Systems, Languages, and Applications (OOPSLA ), ACM Copyright. Regression Test Selection for Java Software Mary Jean Harrold harrold@cc.gatech.edu Alessandro Orso

More information

VisCG: Creating an Eclipse Call Graph Visualization Plug-in. Kenta Hasui, Undergraduate Student at Vassar College Class of 2015

VisCG: Creating an Eclipse Call Graph Visualization Plug-in. Kenta Hasui, Undergraduate Student at Vassar College Class of 2015 VisCG: Creating an Eclipse Call Graph Visualization Plug-in Kenta Hasui, Undergraduate Student at Vassar College Class of 2015 Abstract Call graphs are a useful tool for understanding software; however,

More information

Quality Assurance by Means of Feature Models

Quality Assurance by Means of Feature Models Faculty of Computer Science, Institute of Software- and Multimedia-Technology, Chair for Software Technology Quality Assurance by Means of Feature Models David Gollasch FOSD Meeting 2014, Dagstuhl, 07.05.2014

More information

IMPROVING JAVA SOFTWARE THROUGH PACKAGE STRUCTURE ANALYSIS

IMPROVING JAVA SOFTWARE THROUGH PACKAGE STRUCTURE ANALYSIS IMPROVING JAVA SOFTWARE THROUGH PACKAGE STRUCTURE ANALYSIS Edwin Hautus Compuware Europe P.O. Box 12933 The Netherlands edwin.hautus@nl.compuware.com Abstract Packages are an important mechanism to decompose

More information

Computer Network Topologies: Models and Generation Tools

Computer Network Topologies: Models and Generation Tools Consiglio Nazionale delle Ricerche Technical Report n. 5/200 Computer Network Topologies: Models and Generation Tools Giuseppe Di Fatta, Giuseppe Lo Presti 2, Giuseppe Lo Re CE.R.E. Researcher 2 CE.R.E.,

More information

Chapter 1 Fundamentals of Java Programming

Chapter 1 Fundamentals of Java Programming Chapter 1 Fundamentals of Java Programming Computers and Computer Programming Writing and Executing a Java Program Elements of a Java Program Features of Java Accessing the Classes and Class Members The

More information

An Aspect-Oriented Product Line Framework to Support the Development of Software Product Lines of Web Applications

An Aspect-Oriented Product Line Framework to Support the Development of Software Product Lines of Web Applications An Aspect-Oriented Product Line Framework to Support the Development of Software Product Lines of Web Applications Germán Harvey Alférez Salinas Department of Computer Information Systems, Mission College,

More information

Remix Your Data: Visualizing Library Instruction Statistics

Remix Your Data: Visualizing Library Instruction Statistics Remix Your Data: Visualizing Library Instruction Statistics Brianna Marshall David Edward Ted Polley We will be handing out flash drives. If you would like to follow along, please install Sci2 and Gephi

More information

General Network Analysis: Graph-theoretic. COMP572 Fall 2009

General Network Analysis: Graph-theoretic. COMP572 Fall 2009 General Network Analysis: Graph-theoretic Techniques COMP572 Fall 2009 Networks (aka Graphs) A network is a set of vertices, or nodes, and edges that connect pairs of vertices Example: a network with 5

More information

The Nature and Importance of a Programming Paradigm

The Nature and Importance of a Programming Paradigm Multiple Software Development Paradigms and Multi-Paradigm Software Development Valentino Vranić vranic@elf.stuba.sk Abstract: While OOP (including OOA/D) is reaching the level of maturity of structured

More information

SOACertifiedProfessional.Braindumps.S90-03A.v2014-06-03.by.JANET.100q. Exam Code: S90-03A. Exam Name: SOA Design & Architecture

SOACertifiedProfessional.Braindumps.S90-03A.v2014-06-03.by.JANET.100q. Exam Code: S90-03A. Exam Name: SOA Design & Architecture SOACertifiedProfessional.Braindumps.S90-03A.v2014-06-03.by.JANET.100q Number: S90-03A Passing Score: 800 Time Limit: 120 min File Version: 14.5 http://www.gratisexam.com/ Exam Code: S90-03A Exam Name:

More information

First-Class Relationships for Object-Orientated Programming Languages

First-Class Relationships for Object-Orientated Programming Languages First-Class Relationships for Object-Orientated Programming Languages by Stephen Nelson A proposal submitted to the Victoria University of Wellington in fulfilment of the requirements for the degree of

More information

Clustering Connectionist and Statistical Language Processing

Clustering Connectionist and Statistical Language Processing Clustering Connectionist and Statistical Language Processing Frank Keller keller@coli.uni-sb.de Computerlinguistik Universität des Saarlandes Clustering p.1/21 Overview clustering vs. classification supervised

More information

Variability in Service-Oriented Systems: An Analysis of Existing Approaches

Variability in Service-Oriented Systems: An Analysis of Existing Approaches Variability in -Oriented Systems: An Analysis of Existing Approaches Holger Eichelberger and Christian Kröher and Klaus Schmid 1 Software Systems Engineering, Institute of Computer Science, University

More information

Masters of Science in Software & Information Systems

Masters of Science in Software & Information Systems Masters of Science in Software & Information Systems To be developed and delivered in conjunction with Regis University, School for Professional Studies Object Oriented Design Table of Contents January

More information

Run-time Variability Issues in Software Product Lines

Run-time Variability Issues in Software Product Lines Run-time Variability Issues in Software Product Lines Alexandre Bragança 1 and Ricardo J. Machado 2 1 Dep. I&D, I2S Informática Sistemas e Serviços SA, Porto, Portugal, alexandre.braganca@i2s.pt 2 Dep.

More information

Software Quality Factors OOA, OOD, and OOP Object-oriented techniques enhance key external and internal software quality factors, e.g., 1. External (v

Software Quality Factors OOA, OOD, and OOP Object-oriented techniques enhance key external and internal software quality factors, e.g., 1. External (v Object-Oriented Design and Programming Deja Vu? In the past: Structured = Good Overview of Object-Oriented Design Principles and Techniques Today: Object-Oriented = Good e.g., Douglas C. Schmidt www.cs.wustl.edu/schmidt/

More information

Network Analysis. BCH 5101: Analysis of -Omics Data 1/34

Network Analysis. BCH 5101: Analysis of -Omics Data 1/34 Network Analysis BCH 5101: Analysis of -Omics Data 1/34 Network Analysis Graphs as a representation of networks Examples of genome-scale graphs Statistical properties of genome-scale graphs The search

More information

Program Understanding in Software Engineering

Program Understanding in Software Engineering Taming the complexity: The need for program understanding in software engineering Raghvinder S. Sangwan, Ph.D. Pennsylvania State University, Great Valley School of Graduate Professional Studies Robert

More information

Generating Aspect Code from UML Models

Generating Aspect Code from UML Models Generating Aspect Code from UML Models Iris Groher Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich, Germany Iris.Groher@fh-hagenberg.at Stefan Schulze Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich,

More information

Structural Complexity Evolution in Free Software Projects: A Case Study

Structural Complexity Evolution in Free Software Projects: A Case Study Structural Complexity Evolution in Free Software Projects: A Case Study Antonio Terceiro and Christina Chavez Computer Science Department Universidade Federal da Bahia {terceiro,flach}@dcc.ufba.br Abstract.

More information

Technical Review. The Institution of Electronics and Telecommunication Engineers. www.ietejournals.org. Volume 26 No.

Technical Review. The Institution of Electronics and Telecommunication Engineers. www.ietejournals.org. Volume 26 No. ISSN : 0256-4602 THE INSTITUTION OF IETE ELECTRONICS AND TELECOMMUNICATION ENGINEERS The Institution of Electronics and Telecommunication Engineers IETE Technical Review Volume 26 No. 5 Sep-Oct 2009 www.ietejournals.org

More information

language 1 (source) compiler language 2 (target) Figure 1: Compiling a program

language 1 (source) compiler language 2 (target) Figure 1: Compiling a program CS 2112 Lecture 27 Interpreters, compilers, and the Java Virtual Machine 1 May 2012 Lecturer: Andrew Myers 1 Interpreters vs. compilers There are two strategies for obtaining runnable code from a program

More information

Part 2: Community Detection

Part 2: Community Detection Chapter 8: Graph Data Part 2: Community Detection Based on Leskovec, Rajaraman, Ullman 2014: Mining of Massive Datasets Big Data Management and Analytics Outline Community Detection - Social networks -

More information

Overview. Elements of Programming Languages. Advanced constructs. Motivating inner class example

Overview. Elements of Programming Languages. Advanced constructs. Motivating inner class example Overview Elements of Programming Languages Lecture 12: Object-oriented functional programming James Cheney University of Edinburgh November 6, 2015 We ve now covered: basics of functional and imperative

More information

EVALUATING METRICS AT CLASS AND METHOD LEVEL FOR JAVA PROGRAMS USING KNOWLEDGE BASED SYSTEMS

EVALUATING METRICS AT CLASS AND METHOD LEVEL FOR JAVA PROGRAMS USING KNOWLEDGE BASED SYSTEMS EVALUATING METRICS AT CLASS AND METHOD LEVEL FOR JAVA PROGRAMS USING KNOWLEDGE BASED SYSTEMS Umamaheswari E. 1, N. Bhalaji 2 and D. K. Ghosh 3 1 SCSE, VIT Chennai Campus, Chennai, India 2 SSN College of

More information

Mining Metrics to Predict Component Failures

Mining Metrics to Predict Component Failures Mining Metrics to Predict Component Failures Nachiappan Nagappan, Microsoft Research Thomas Ball, Microsoft Research Andreas Zeller, Saarland University Overview Introduction Hypothesis and high level

More information

Obj ect-oriented Construction Handbook

Obj ect-oriented Construction Handbook Obj ect-oriented Construction Handbook Developing Application-Oriented Software with the Tools & Materials Approach Heinz Züllighoven IT'Workplace Solutions, Inc., and LJniversity of Hamburg, Germany as

More information

Software Refactoring using New Architecture of Java Design Patterns

Software Refactoring using New Architecture of Java Design Patterns Software Refactoring using New Architecture of Java Design Patterns Norddin Habti, Prashant 1, 1 Departement d informatique et de recherche operationnelle, Universite de Montreal, Quebec, Canada (Dated:

More information

Pattern Languages for Architecture Visualization

Pattern Languages for Architecture Visualization Pattern Languages for Architecture Visualization YOUNGSU SON, NHN NEXT JIWON KIM, SAMSUNG ELECTRONICS SUNGWOO YU, NHN NEXT HYUNCHUL YANG, UNIVERSITY OF SEOUL HYESEONG OH, SEJONG UNIVERSITY SEUNGSU JEONG,

More information

Tool Support for Software Variability Management and Product Derivation in Software Product Lines

Tool Support for Software Variability Management and Product Derivation in Software Product Lines Tool Support for Software Variability Management and Product Derivation in Software s Hassan Gomaa 1, Michael E. Shin 2 1 Dept. of Information and Software Engineering, George Mason University, Fairfax,

More information

Social Media Mining. Network Measures

Social Media Mining. Network Measures Klout Measures and Metrics 22 Why Do We Need Measures? Who are the central figures (influential individuals) in the network? What interaction patterns are common in friends? Who are the like-minded users

More information

KITES TECHNOLOGY COURSE MODULE (C, C++, DS)

KITES TECHNOLOGY COURSE MODULE (C, C++, DS) KITES TECHNOLOGY 360 Degree Solution www.kitestechnology.com/academy.php info@kitestechnology.com technologykites@gmail.com Contact: - 8961334776 9433759247 9830639522.NET JAVA WEB DESIGN PHP SQL, PL/SQL

More information

A Framework for Effective Object-Oriented Software Change Impact Analysis

A Framework for Effective Object-Oriented Software Change Impact Analysis I.J. Information Technology and Computer Science, 205, 04, 28-4 Published Online March 205 in MECS (http://www.mecs-press.org/) DOI: 0.585/ijitcs.205.04.03 A Framework for Effective Object-Oriented Software

More information

University. Course Catalog. December 2009

University. Course Catalog. December 2009 University Course Catalog December 2009 Course Catalog December 2009 The Siperian Master Data Management (MDM) training courses address the needs of all core roles involved in implementing, developing,

More information

Habanero Extreme Scale Software Research Project

Habanero Extreme Scale Software Research Project Habanero Extreme Scale Software Research Project Comp215: Java Method Dispatch Zoran Budimlić (Rice University) Always remember that you are absolutely unique. Just like everyone else. - Margaret Mead

More information

Structural Design Patterns Used in Data Structures Implementation

Structural Design Patterns Used in Data Structures Implementation Structural Design Patterns Used in Data Structures Implementation Niculescu Virginia Department of Computer Science Babeş-Bolyai University, Cluj-Napoca email address: vniculescu@cs.ubbcluj.ro November,

More information

Generative Software Product Line Development using Variability-Aware Design Patterns

Generative Software Product Line Development using Variability-Aware Design Patterns Platzhalter für Bild, Bild auf Titelfolie hinter das Logo einsetzen Generative Software Product Line Development using Variability-Aware Design Patterns Christoph Seidl, Sven Schuster, Ina Schaefer May

More information

Modeling Turnpike: a Model-Driven Framework for Domain-Specific Software Development *

Modeling Turnpike: a Model-Driven Framework for Domain-Specific Software Development * for Domain-Specific Software Development * Hiroshi Wada Advisor: Junichi Suzuki Department of Computer Science University of Massachusetts, Boston hiroshi_wada@otij.org and jxs@cs.umb.edu Abstract. This

More information

Data Exploration Data Visualization

Data Exploration Data Visualization Data Exploration Data Visualization What is data exploration? A preliminary exploration of the data to better understand its characteristics. Key motivations of data exploration include Helping to select

More information

Bad code smells Refactoring Example

Bad code smells Refactoring Example Bad code smells Refactoring Example Game Design Experience Professor Jim Whitehead January 26, 2009 Creative Commons Attribution 3.0 creativecommons.org/licenses/by/3.0 Announcements Game concept document

More information

CompuScholar, Inc. Alignment to Utah's Computer Programming II Standards

CompuScholar, Inc. Alignment to Utah's Computer Programming II Standards CompuScholar, Inc. Alignment to Utah's Computer Programming II Standards Course Title: TeenCoder: Java Programming Course ISBN: 978 0 9887070 2 3 Course Year: 2015 Note: Citation(s) listed may represent

More information

Technical paper review. Program visualization and explanation for novice C programmers by Matthew Heinsen Egan and Chris McDonald.

Technical paper review. Program visualization and explanation for novice C programmers by Matthew Heinsen Egan and Chris McDonald. Technical paper review Program visualization and explanation for novice C programmers by Matthew Heinsen Egan and Chris McDonald Garvit Pahal Indian Institute of Technology, Kanpur October 28, 2014 Garvit

More information

An Automatic Reversible Transformation from Composite to Visitor in Java

An Automatic Reversible Transformation from Composite to Visitor in Java An Automatic Reversible Transformation from Composite to Visitor in Java Akram To cite this version: Akram. An Automatic Reversible Transformation from Composite to Visitor in Java. CIEL 2012, P. Collet,

More information

Tool Support for Inspecting the Code Quality of HPC Applications

Tool Support for Inspecting the Code Quality of HPC Applications Tool Support for Inspecting the Code Quality of HPC Applications Thomas Panas Dan Quinlan Richard Vuduc Center for Applied Scientific Computing Lawrence Livermore National Laboratory P.O. Box 808, L-550

More information

Component visualization methods for large legacy software in C/C++

Component visualization methods for large legacy software in C/C++ Annales Mathematicae et Informaticae 44 (2015) pp. 23 33 http://ami.ektf.hu Component visualization methods for large legacy software in C/C++ Máté Cserép a, Dániel Krupp b a Eötvös Loránd University mcserep@caesar.elte.hu

More information

SPLConfig: Product Configuration in Software Product Line

SPLConfig: Product Configuration in Software Product Line SPLConfig: Product Configuration in Software Product Line Lucas Machado, Juliana Pereira, Lucas Garcia, Eduardo Figueiredo Department of Computer Science, Federal University of Minas Gerais (UFMG), Brazil

More information

Analyzing data. Thomas LaToza. 05-899D: Human Aspects of Software Development (HASD) Spring, 2011. (C) Copyright Thomas D. LaToza

Analyzing data. Thomas LaToza. 05-899D: Human Aspects of Software Development (HASD) Spring, 2011. (C) Copyright Thomas D. LaToza Analyzing data Thomas LaToza 05-899D: Human Aspects of Software Development (HASD) Spring, 2011 (C) Copyright Thomas D. LaToza Today s lecture Last time Why would you do a study? Which type of study should

More information

Quality prediction model for object oriented software using UML metrics

Quality prediction model for object oriented software using UML metrics THE INSTITUTE OF ELECTRONICS, INFORMATION AND COMMUNICATION ENGINEERS TECHNICAL REPORT OF IEICE. UML Quality prediction model for object oriented software using UML metrics CAMARGO CRUZ ANA ERIKA and KOICHIRO

More information

Language-Independent Safe Decomposition of Legacy Applications into Features

Language-Independent Safe Decomposition of Legacy Applications into Features Nr.: FIN-02-2008 Language-Independent Safe Decomposition of Legacy Applications into Features Christian Kästner, Sven Apel, Salvador Trujillo, Martin Kuhlemann, Don Batory Arbeitsgruppe Datenbanken Fakultät

More information

Service Oriented Architectures

Service Oriented Architectures 8 Service Oriented Architectures Gustavo Alonso Computer Science Department Swiss Federal Institute of Technology (ETHZ) alonso@inf.ethz.ch http://www.iks.inf.ethz.ch/ The context for SOA A bit of history

More information

Removing False Code Dependencies to Speedup Software Build Processes

Removing False Code Dependencies to Speedup Software Build Processes Removing False Code Dependencies to Speedup Software Build Processes Yijun Yu Homy Dayani-Fard John Mylopoulos yijun@cs.toronto.edu homy@cs.toronto.edu jm@cs.toronto.edu University of Toronto IBM Canada

More information

Analysis report examination with CUBE

Analysis report examination with CUBE Analysis report examination with CUBE Brian Wylie Jülich Supercomputing Centre CUBE Parallel program analysis report exploration tools Libraries for XML report reading & writing Algebra utilities for report

More information

Idea: Measuring the Effect of Code Complexity on Static Analysis Results

Idea: Measuring the Effect of Code Complexity on Static Analysis Results Idea: Measuring the Effect of Code Complexity on Static Analysis Results James Walden, Adam Messer, and Alex Kuhl Department of Computer Science Northern Kentucky University Highland Heights, KY 41099

More information

Understanding Software Static and Dynamic Aspects

Understanding Software Static and Dynamic Aspects Understanding Software Static and Dynamic Aspects Welf Löwe IPD, Universität Karlsruhe PF 6980, 76128 Karlsruhe Germany loewe@ira.uka.de Andreas Ludwig IPD, Universität Karlsruhe PF 6980, 76128 Karlsruhe

More information

Concepts and terminology in the Simula Programming Language

Concepts and terminology in the Simula Programming Language Concepts and terminology in the Simula Programming Language An introduction for new readers of Simula literature Stein Krogdahl Department of Informatics University of Oslo, Norway April 2010 Introduction

More information

Language Based Virtual Machines... or why speed matters. by Lars Bak, Google Inc

Language Based Virtual Machines... or why speed matters. by Lars Bak, Google Inc Language Based Virtual Machines... or why speed matters by Lars Bak, Google Inc Agenda Motivation for virtual machines HotSpot V8 Dart What I ve learned Background 25+ years optimizing implementations

More information

Architecture. Reda Bendraou reda.bendraou{{@}}lip6.fr http://pagesperso-systeme.lip6.fr/reda.bendraou/

Architecture. Reda Bendraou reda.bendraou{{@}}lip6.fr http://pagesperso-systeme.lip6.fr/reda.bendraou/ Architecture Reda Bendraou reda.bendraou{{@}}lip6.fr http://pagesperso-systeme.lip6.fr/reda.bendraou/ Some slides were adapted from L. Osterweil, B. Meyer, and P. Müller material Reda Bendraou LI386-S1

More information

Reactive Variability Realization with Test-Driven Development and Refactoring

Reactive Variability Realization with Test-Driven Development and Refactoring Reactive Variability Realization with Test-Driven Development and Refactoring Glauco Silva Neves Informatics and Statistics Department - INE Federal University of Santa Catarina - UFSC Florianópolis, Brazil

More information

XFlash A Web Application Design Framework with Model-Driven Methodology

XFlash A Web Application Design Framework with Model-Driven Methodology International Journal of u- and e- Service, Science and Technology 47 XFlash A Web Application Design Framework with Model-Driven Methodology Ronnie Cheung Hong Kong Polytechnic University, Hong Kong SAR,

More information

AIPLE-IS: An Approach to Develop Product Lines for Information Systems Using Aspects

AIPLE-IS: An Approach to Develop Product Lines for Information Systems Using Aspects SBCARS 2007 AIPLE-IS: An Approach to Develop Product Lines for Information Systems Using Aspects Rosana T. Vaccare Braga, Fernão S. Rodrigues Germano, Stanley F. Pacios, Paulo C. Masiero Instituto de Ciências

More information

The Big Picture. Describing Data: Categorical and Quantitative Variables Population. Descriptive Statistics. Community Coalitions (n = 175)

The Big Picture. Describing Data: Categorical and Quantitative Variables Population. Descriptive Statistics. Community Coalitions (n = 175) Describing Data: Categorical and Quantitative Variables Population The Big Picture Sampling Statistical Inference Sample Exploratory Data Analysis Descriptive Statistics In order to make sense of data,

More information

Implementing a Bidirectional Model Transformation Language as an Internal DSL in Scala

Implementing a Bidirectional Model Transformation Language as an Internal DSL in Scala Implementing a Bidirectional Model Transformation Language as an Internal DSL in Scala BX 14: 3rd International Workshop on Bidirectional Transformations @EDBT/ICDT 14, Athens, Greece Arif Wider Humboldt-University

More information

Multi-objective Design Space Exploration based on UML

Multi-objective Design Space Exploration based on UML Multi-objective Design Space Exploration based on UML Marcio F. da S. Oliveira, Eduardo W. Brião, Francisco A. Nascimento, Instituto de Informática, Universidade Federal do Rio Grande do Sul (UFRGS), Brazil

More information

Exploiting Dynamic Information in IDEs Eases Software Maintenance

Exploiting Dynamic Information in IDEs Eases Software Maintenance Exploiting Dynamic Information in IDEs Eases Software Maintenance David Röthlisberger Software Composition Group, University of Bern, Switzerland roethlis@iam.unibe.ch Abstract The integrated development

More information

Feature-Oriented Software Development

Feature-Oriented Software Development Feature-Oriented Software Development A Short Tutorial on Feature-Oriented Programming, Virtual Separation of Concerns, and Variability-Aware Analysis Christian Kästner 1 and Sven Apel 2 1 Philipps University

More information

FeatureIDE: An Extensible Framework for Feature-Oriented Software Development

FeatureIDE: An Extensible Framework for Feature-Oriented Software Development FeatureIDE: An Extensible Framework for Feature-Oriented Software Development Thomas Thüm a, Christian Kästner b, Fabian Benduhn a, Jens Meinicke a, Gunter Saake a, Thomas Leich c a University of Magdeburg,

More information

Model-Driven Development - From Frontend to Code

Model-Driven Development - From Frontend to Code Model-Driven Development - From Frontend to Code Sven Efftinge sven@efftinge.de www.efftinge.de Bernd Kolb bernd@kolbware.de www.kolbware.de Markus Völter voelter@acm.org www.voelter.de -1- Model Driven

More information

Core Issues Affecting Software Architecture in Enterprise Projects

Core Issues Affecting Software Architecture in Enterprise Projects Core Issues Affecting Software Architecture in Enterprise Projects Halûk Gümüşkaya Abstract In this paper we analyze the core issues affecting software architecture in enterprise projects where a large

More information

Scalable Prediction of Non-functional Properties in Software Product Lines

Scalable Prediction of Non-functional Properties in Software Product Lines Scalable Prediction of Non-functional Properties in Software Product Lines Norbert Siegmund, Marko Rosenmüller University of Magdeburg, Germany Christian Kästner, Paolo G. Giarrusso Phillips University

More information

International Journal of Software Engineering and Knowledge Engineering c World Scientific Publishing Company

International Journal of Software Engineering and Knowledge Engineering c World Scientific Publishing Company International Journal of Software Engineering and Knowledge Engineering c World Scientific Publishing Company Rapid Construction of Software Comprehension Tools WELF LÖWE Software Technology Group, MSI,

More information

CSC408H Lecture Notes

CSC408H Lecture Notes CSC408H Lecture Notes These lecture notes are provided for the personal use of students taking Software Engineering course in the Summer term 2005 at the University of Toronto. Copying for purposes other

More information

Code Generation Tools for PDEs. Matthew Knepley PETSc Developer Mathematics and Computer Science Division Argonne National Laboratory

Code Generation Tools for PDEs. Matthew Knepley PETSc Developer Mathematics and Computer Science Division Argonne National Laboratory Code Generation Tools for PDEs Matthew Knepley PETSc Developer Mathematics and Computer Science Division Argonne National Laboratory Talk Objectives Introduce Code Generation Tools - Installation - Use

More information

Perspectives on Automated Testing of Aspect-Oriented Programs

Perspectives on Automated Testing of Aspect-Oriented Programs Perspectives on Automated Testing of Aspect-Oriented Programs ABSTRACT Tao Xie Department of Computer Science North Carolina State University Raleigh, NC 27695 xie@csc.ncsu.edu Aspect-oriented software

More information

Case Studies of Running the Platform. NetBeans UML Servlet JSP GlassFish EJB

Case Studies of Running the Platform. NetBeans UML Servlet JSP GlassFish EJB September Case Studies of Running the Platform NetBeans UML Servlet JSP GlassFish EJB In this project we display in the browser the Hello World, Everyone! message created in the session bean with servlets

More information

Generating Highly Customizable SQL Parsers

Generating Highly Customizable SQL Parsers Generating Highly Customizable SQL Parsers Sagar Sunkle, Martin Kuhlemann, Norbert Siegmund, Marko Rosenmüller, Gunter Saake School of Computer Science University of Magdeburg 39106 Magdeburg, Germany

More information

International Journal of Advanced Research in Computer Science and Software Engineering

International Journal of Advanced Research in Computer Science and Software Engineering Volume 3, Issue 3, March 2013 ISSN: 2277 128X International Journal of Advanced Research in Computer Science and Software Engineering Research Paper Available online at: www.ijarcsse.com Coupling and Cohesion

More information

VARIABILITY MODELING FOR CUSTOMIZABLE SAAS APPLICATIONS

VARIABILITY MODELING FOR CUSTOMIZABLE SAAS APPLICATIONS VARIABILITY MODELING FOR CUSTOMIZABLE SAAS APPLICATIONS Ashraf A. Shahin 1, 2 1 College of Computer and Information Sciences, Al Imam Mohammad Ibn Saud Islamic University (IMSIU) Riyadh, Kingdom of Saudi

More information

Implementation and Evaluation of Certificate Revocation List Distribution for Vehicular Ad-hoc Networks

Implementation and Evaluation of Certificate Revocation List Distribution for Vehicular Ad-hoc Networks Implementation and Evaluation of Certificate Revocation List Distribution for Vehicular Ad-hoc Networks Petra Ardelean advisor: Panos Papadimitratos January 2009 Abstract Vehicular Ad-hoc Networks (VANETs)

More information

Semantic Object Language Whitepaper Jason Wells Semantic Research Inc.

Semantic Object Language Whitepaper Jason Wells Semantic Research Inc. Semantic Object Language Whitepaper Jason Wells Semantic Research Inc. Abstract While UML is the accepted visual language for object-oriented system modeling, it lacks a common semantic foundation with

More information

JSClassFinder: A Tool to Detect Class-like Structures in JavaScript

JSClassFinder: A Tool to Detect Class-like Structures in JavaScript JSClassFinder: A Tool to Detect Class-like Structures in JavaScript Leonardo Humberto Silva 1, Daniel Hovadick 2, Marco Tulio Valente 2, Alexandre Bergel 3,Nicolas Anquetil 4, Anne Etien 4 1 Department

More information

A Multi-layered Domain-specific Language for Stencil Computations

A Multi-layered Domain-specific Language for Stencil Computations A Multi-layered Domain-specific Language for Stencil Computations Christian Schmitt, Frank Hannig, Jürgen Teich Hardware/Software Co-Design, University of Erlangen-Nuremberg Workshop ExaStencils 2014,

More information

On the Statistical Distribution of Object-Oriented System Properties

On the Statistical Distribution of Object-Oriented System Properties On the Statistical Distribution of Object-Oriented System Properties Israel Herraiz Technical University of Madrid Madrid, Spain israel.herraiz@upm.es Daniel Rodriguez University of Alcala Alcala de Henares,

More information

The Service Revolution software engineering without programming languages

The Service Revolution software engineering without programming languages The Service Revolution software engineering without programming languages Gustavo Alonso Institute for Pervasive Computing Department of Computer Science Swiss Federal Institute of Technology (ETH Zurich)

More information

Goal Setting and the Software Design Process

Goal Setting and the Software Design Process Analysis of designers work Master s Thesis Joost Meijles Thursday, 2005 July 14 1 year Master Software Engineering Supervisors Universiteit van Amsterdam Prof. Dr. P. Klint Philips Medical Systems Ir.

More information

Software Metrics in Static Program Analysis

Software Metrics in Static Program Analysis www.redlizards.com Software Metrics in Static Program Analysis ICFEM, 11/18/2010 Andreas Vogelsang 1, Ansgar Fehnker 2, Ralf Huuck 2, Wolfgang Reif 3 1 Technical University of Munich 2 NICTA, Sydney 3

More information