Reviewing Recent ICSE Proceedings For:.  Defining and Continuous Checking of Structural Program Dependencies  Automatic Inference of Structural Changes.

Slides:



Advertisements
Similar presentations
Aspect Oriented Programming. AOP Contents 1 Overview 2 Terminology 3 The Problem 4 The Solution 4 Join point models 5 Implementation 6 Terminology Review.
Advertisements

Data Model driven applications using CASE Data Models as the nucleus of software development in a Computer Aided Software Engineering environment.
Introduction to Databases
Advantage Data Dictionary. agenda Creating and Managing Data Dictionaries –Tables, Indexes, Fields, and Triggers –Defining Referential Integrity –Defining.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System modeling 2.
SRDC Ltd. 1. Problem  Solutions  Various standardization efforts ◦ Document models addressing a broad range of requirements vs Industry Specific Document.
Automated creation of verification models for C-programs Yury Yusupov Saint-Petersburg State Polytechnic University The Second Spring Young Researchers.
Software Engineering COMP 201
Xyleme A Dynamic Warehouse for XML Data of the Web.
File Systems and Databases
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
© Copyright Eliyahu Brutman Programming Techniques Course.
© 2008 IBM Corporation Behavioral Models for Software Development Andrei Kirshin, Dolev Dotan, Alan Hartman January 2008.
Configuration Management
Chapter 7: System models
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
272: Software Engineering Fall 2012 Instructor: Tevfik Bultan Lecture 17: Code Mining.
Week 1 Lecture MSCD 600 Database Architecture Samuel ConnSamuel Conn, Asst. Professor Suggestions for using the Lecture Slides.
REFACTORING Lecture 4. Definition Refactoring is a process of changing the internal structure of the program, not affecting its external behavior and.
The Data Attribution Abdul Saboor PhD Research Student Model Base Development and Software Quality Assurance Research Group Freie.
Yu SunUniversity of Alabama at Birmingham PAR Works Jeff Gray University of Alabama Montpellier, France July 3rd, 2013 This research is supported.
C++ Code Analysis: an Open Architecture for the Verification of Coding Rules Paolo Tonella ITC-irst, Centro per la Ricerca Scientifica e Tecnologica
Implementation Considerations Yonglei Tao. Components of Coding Standards 2  File header  file location, version number, author, project, update history.
Dependency Tracking in software systems Presented by: Ashgan Fararooy.
System models Abstract descriptions of systems whose requirements are being analysed Abstract descriptions of systems whose requirements are being analysed.
Architecture-Based Runtime Software Evolution Peyman Oreizy, Nenad Medvidovic & Richard N. Taylor.
Persistence Store Project Proposal.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions.
Lecture 3 Software Engineering Models (Cont.)
Hyper/J and Concern Manipulation Environment. The need for AOSD tools and development environment AOSD requires a variety of tools Life cycle – support.
Samad Paydar Web Technology Lab. Ferdowsi University of Mashhad 10 th August 2011.
Chapter 7 System models.
System models l Abstract descriptions of systems whose requirements are being analysed.
Modified by Juan M. Gomez Software Engineering, 6th edition. Chapter 7 Slide 1 Chapter 7 System Models.
Chapter 18 Object Database Management Systems. McGraw-Hill/Irwin © 2004 The McGraw-Hill Companies, Inc. All rights reserved. Outline Motivation for object.
Lecture # 3 & 4 Chapter # 2 Database System Concepts and Architecture Muhammad Emran Database Systems 1.
DataBase Management System What is DBMS Purpose of DBMS Data Abstraction Data Definition Language Data Manipulation Language Data Models Data Keys Relationships.
Presented by: Ashgan Fararooy Referenced Papers and Related Work on:
Inter-Type Declarations in AspectJ Awais Rashid Steffen Zschaler © Awais Rashid, Steffen Zschaler 2009.
3 Copyright © 2004, Oracle. All rights reserved. Working in the Forms Developer Environment.
Development with Eclipse Software Engineering Prof. Werner Krandick.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
SYSE 802 John D. McGregor Module 1 Session 2 Requirements Modeling in SysML.
Constraints Lesson 8. Skills Matrix Constraints Domain Integrity: A domain refers to a column in a table. Domain integrity includes data types, rules,
Scalable Clone Detection and Elimination for Erlang Programs Huiqing Li, Simon Thompson University of Kent Canterbury, UK.
Session 1 Module 1: Introduction to Data Integrity
® IBM Software Group © 2007 IBM Corporation Module 1: Getting Started with Rational Software Architect Essentials of Modeling with IBM Rational Software.
Data Design and Implementation. Definitions Atomic or primitive type A data type whose elements are single, non-decomposable data items Composite type.
Cross Language Clone Analysis Team 2 February 3, 2011.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Chapter 18 Object Database Management Systems. Outline Motivation for object database management Object-oriented principles Architectures for object database.
10 1 Chapter 10 - A Transaction Management Database Systems: Design, Implementation, and Management, Rob and Coronel.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Java IDE Dwight Deugo Nesa Matic
Defects of UML Yang Yichuan. For the Presentation Something you know Instead of lots of new stuff. Cases Instead of Concepts. Methodology instead of the.
Development with Eclipse
Working in the Forms Developer Environment
Basic 1960s It was designed to emphasize ease of use. Became widespread on microcomputers It is relatively simple. Will make it easier for people with.
SysML v2 Formalism: Requirements & Benefits
Architecture Components
Abstract descriptions of systems whose requirements are being analysed
File Systems and Databases
Chapter 20 Object-Oriented Analysis and Design
Data Model.
Java IDE Dwight Deugo Nesa Matic Portions of the notes for this lecture include excerpts from.
Recommending Adaptive Changes for Framework Evolution
Presentation transcript:

Reviewing Recent ICSE Proceedings For:

 Defining and Continuous Checking of Structural Program Dependencies  Automatic Inference of Structural Changes for Matching across Program Versions  SpyWare: a change-aware development toolset  An empirical study of software developers' management of dependencies and changes  Tracking Code Clones in Evolving Software (ICSE 2008 & 2007)

 Dependencies between program elements need to be modeled from different perspectives: Architectural Design Implementation  Codify these different perspectives on the permitted dependencies in a software system  Detect violations continuously and incrementally as software evolves

 Proposes an approach that uses declarative queries to group source elements into overlapping ensembles  The dependencies between these ensembles are also specified as logic queries  The approach has been integrated into the incremental build process of Eclipse  Ensures continuous checking, using an engine for tabled and incremental evaluation of logic queries

 Constraints on structural dependencies: Constraints on dependencies between layers in a layered architecture (architectural level) Only factory classes can access constructors of product classes (design level) Field access only through getters and setters (implementation level)  Ensemble denotes any logical grouping of code elements affected by a structural dependency constraint to be expressed

 Module-centric visibility mechanisms supported by programming languages are insufficient for expressing constraints on structural dependencies  They lack two properties, that ensembles posess: Ensembles can be defined orthogonal to the module system of the implementation language Ensembles can share members

 Motivation: change must be put in the center  SpyWare: a toolset which tracks the changes that a developer performs on a program as they happen  Stores these first-class changes in a repository  Offers the recorded information for possible productivity-enhancing IDE extensions

 Software must be continuously tailored to fit new or updated requirements  Historical information of software systems is useful for several applications: o CCVisu: Automatic Visual Software Decomposition o Finding common error patterns by mining software revision histories o Mining Version Histories to Guide Software Changes o Mining Software Repositories for Traceability Links

 The evolutionary information mostly used suffers from several problems  SpyWare aims at capturing changes as they happen at the level of program entities  The tool chain monitors changes as they happen in the IDE to have a finer granularity of changes  Sequence of first-class change operations rather than a sequence of successive versions

Features: o Monitor developer activity as it happens in the IDE, using a monitoring plug-in o Convert the changes of the program to first-class change operations o Stores the changes in a repository for later use o Record higher-level changes such as refactorings o Generate part or the whole of the system at any point in time

Features: o Access the change history of any package, class, instance variable, method, or statement defined in the system o Show the differences between two states of the program, using color-coding to reflect the type of changes o Measure the extent of changes using structural metrics and the type of changes that were performed

Features: o Visualize how the system was changed with metrics, graphs, and interactive visualizations o Generalize concrete changes to the system to reusable program transformations o Access all of its functionality from the IDE, rather than a stand-alone tool, to ease its usage

 Atomic  Composite

o Creation Creates a node n for an entity of a given type t o Addition Adds a node n as a child of a given parent p o Removal Removes a node n from the childs of its parent p  Atomic

o Property change Changes value v of property p of node n o Insertion Inserts node n at location m as a child of (method) parent p o Deletion Deletes a node n from location m in the children of the given parent p  Atomic

 Atomic  Composite o Developer Action A unit of change from a developer’s viewpoint o Refactoring A behavior-preserving automatic code transformation o Development Session It aggregates all changes done during a single development session

 View the history of a software system as the sum of change operations  Represent programs as domain specific entities rather than text files  Consider a software system as an evolving abstract syntax tree (AST)  Each AST entity has a change history containing all changes applied to it

 Change Operations represent the transition from one state of the evolving system to the next  They are executable: A change operation c applied to the state n of the program yields the state n+1 of the program  Atomic changes are, at the finest level, operations on the program’s AST  Atomic change operations are executable, and can be undone

 Representing the entire evolution of a system only by its atomic modifications is overwhelming  They abstract change operations into higher- level composite changes  Example: moving a class from package A to package B consists in removing it from A and adding it to B  The Change Repository: Changes are captured as they happen in the IDE and are stored in the repository

 The Launcher The launcher allows us to load the model of a system in the environment  The Metric Graph It follows the evolution of one or more structural metrics on one or more projects  The Change List Lists all the changes done to a part or the whole system, in a hierarchy from sessions,..., up to atomic changes  The View Browser It shows the code of the system at a specific date