The Software Composition Group Oscar Nierstrasz scg.unibe.ch.

Slides:



Advertisements
Similar presentations
Model Checking for an Executable Subset of UML Fei Xie 1, Vladimir Levin 2, and James C. Browne 1 1 Dept. of Computer Sciences, UT at Austin 2 Bell Laboratories,
Advertisements

GATEKEEPER MOSTLY STATIC ENFORCEMENT OF SECURITY AND RELIABILITY PROPERTIES FOR JAVASCRIPT CODE Salvatore Guarnieri & Benjamin Livshits Presented by Michael.
Modeling Change as a First-Class Entity Oscar Nierstrasz Software Composition Group, University of Bern
Towards a Practical Composition Language Oscar Nierstrasz Software Composition Group University of Bern.
SMU SRG reading by Tey Chee Meng: Automatic Patch-Based Exploit Generation is Possible: Techniques and Implications by David Brumley, Pongsin Poosankam,
© S. Demeyer, S. Ducasse, O. Nierstrasz Reverse Engineering.1 2. Reverse Engineering What and Why Setting Direction  Most Valuable First First Contact.
Google Web Toolkit - Gufran Mohammed. Google Web Toolkit (GWT) is an open source Java software development framework that makes writing AJAX applications.
Object-Oriented Reengineering Patterns and Techniques Prof. O. Nierstrasz Prof. S. Ducasse T.
12. Summary, Trends, Research. © O. Nierstrasz PS — Summary, Trends, Research Roadmap  Summary: —Trends in programming paradigms  Research:...
The Software Composition Group Prof. O. Nierstrasz
Object-Oriented Reengineering Oscar Nierstrasz Software Composition Group University of Bern.
Architectural Reasoning in ArchJava Jonathan Aldrich Craig Chambers David Notkin University of Washington ECOOP ‘02, 13 June 2002.
Dynamic Object-Oriented Programming with Smalltalk 1. Introduction Prof. O. Nierstrasz Summer Semester 2006.
Software Factory Assembling Applications with Models, Patterns, Frameworks and Tools Anna Liu Senior Architect Advisor Microsoft Australia.
Metamodeling and Metaprogramming Seminar 1. Introduction Prof. O. Nierstrasz Spring Semester 2008.
Object-Oriented Reengineering Patterns and Techniques Prof. O. Nierstrasz Prof. S. Ducasse T.
Visual Debugging Tools for Concurrent Models of Computation Elaine Cheong 15 May 2002 EE290N: Advanced Topics in System Theory.
Whole Platform Tesi di Dottorato di: RICCARDO SOLMI Università degli Studi di Bologna Facoltà di scienze matematiche, fisiche e naturali Corso di Dottorato.
Advanced Behavioral Modeling
© 2008 IBM Corporation Behavioral Models for Software Development Andrei Kirshin, Dolev Dotan, Alan Hartman January 2008.
Systems Analysis and Design 9 th Edition Toolkit B CASE Tools By: Prof. Lili Saghafi.
A Family of Languages for Architecture Description OOPSLA 2008 Markus Voelter
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Type-Directed, Whitespace-Delimited Parsing for Embedded DSLs Cyrus Omar School of Computer Science Carnegie Mellon University [GlobalDSL13] Benjamin ChungAlex.
Extensible Type-Driven Parsing for Embedded DSLs in Wyvern Cyrus Omar Benjamin Chung Darya Kurilova Ligia Nistor Alex Potanin (Victoria University of Wellington)
Impact Analysis of Database Schema Changes Andy Maule, Wolfgang Emmerich and David S. Rosenblum London Software Systems Dept. of Computer Science, University.
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
Sumant Tambe, et. al LEESA DSPD 2008 An Embedded Declarative Language for Hierarchical Object Structure Traversal Sumant Tambe* Aniruddha Gokhale Vanderbilt.
Introduction to “Oslo” Jeremy Boyd Director – Mindscape MSDN Regional Director
Sumant Tambe, et. al LEESA DSPD 2008 An Embedded Declarative Language for Hierarchical Object Structure Traversal Sumant Tambe* Aniruddha Gokhale Vanderbilt.
Platform Support for Developing Analysis and Testing Plugins Shauvik Roy Choudhary with Jeremy Duvall, Wei Jin, Dan Zhao, Alessandro Orso School of Computer.
Dart: A Meta-Level Object-Oriented Framework for Task-Specific Behavior Modeling by Domain Experts R. Razavi et al..OOPSLA Workshop DSML‘ Dart:
Object-Oriented Analysis and Design An Introduction.
Reviewing Recent ICSE Proceedings For:.  Defining and Continuous Checking of Structural Program Dependencies  Automatic Inference of Structural Changes.
Programming Models & Runtime Systems Breakout Report MICS PI Meeting, June 27, 2002.
Mads Torgersen, Microsoft.  Language INtegrated Query  An open multi-language query facility  Uses cool language stuff  Points into the future.
Domain-Specific Development Stuart Kent, Senior Program Manager, DSL Tools, Visual Studio Team System, Microsoft.
Design Management: a Collabortive Design Solution ECMFA 2013 Montpellier, France Maged Elaasar (Presenter) Senior Software Engineer, IBM
Abstract We present two Model Driven Engineering (MDE) tools, namely the Eclipse Modeling Framework (EMF) and Umple. We identify the structure and characteristic.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
A Logic Meta-Programming Approach to support the Co-Evolution of Object-Oriented Design and Implementation Roel Wuyts , PROG.
INRIA - LaBRICharles Consel Jan-06 1 Domain-Specific Software Engineering Charles Consel Phoenix Research Group LaBRI /INRIA-Futurs January 2006.
DSLs: The Good, the Bad, and the Ugly Tihamér Levendovszky Institute for Software-Integrated Systems Vanderbilt University Nashville, TN.
Model Checking and Model-Based Design Bruce H. Krogh Carnegie Mellon University.
OOPSLA workshop on Domain-Specific Visual Languages 1 Framework for Domain-Specific Visual Languages Juha-Pekka.
Visual Specification of a DSL Processor Debugger Tamás Mészáros and Tihamér Levendovszky Budapest University of Technology and Economics.
Semantics for DSL Group Members: Ritu Arora, Diyang Chu, Zekai Demirezen, Jeff Gray, Jacob Gulotta, Luis Pedro, Arturo Sanchez, Greg Sullivan,Ximing Yu.
CSCI Rational Purify 1 Rational Purify Overview Michel Izygon - Jim Helm.
Weaving a Debugging Aspect into Domain-Specific Language Grammars SAC ’05 PSC Track Santa Fe, New Mexico USA March 17, 2005 Hui Wu, Jeff Gray, Marjan Mernik,
Trip Report: DSL ‘97 October 15-17, 1997 Santa Barbara CA.
Taking Control of Visual Studio through Extensions and Extensibility Anthony Cangialosi Senior Program Manager Lead Microsoft Corporation DEV311.
CIM LAB MEETING Presentation on UML Rakesh Mopidevi Kwangyeol Ryu.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
OOPSLA workshop on Domain-Specific Visual Languages 1 Juha-Pekka Tolvanen, Steven Kelly, Jeff Gray, Kalle Lyytinen.
Software Engineering Prof. Dr. Bertrand Meyer Dr. Manuel Oriol Dr. Bernd Schoeller Chair of Software Engineering Lectures 22: Legacy Software.
Interoperability. Designing how to move from requirements to code Handling complexity – Platforms, libraries, technology evolution, languages, testing,
Advanced Software Development Karl Lieberherr CSG 260 Fall Semester
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
The Development Process Compilation. Compilation - Dr. Craig A. Struble 2 Programming Process Problem Solving Phase We will spend significant time on.
R-Verify: Deep Checking of Embedded Code James Ezick † Donald Nguyen † Richard Lethin † Rick Pancoast* (†) Reservoir Labs (*) Lockheed Martin The Eleventh.
T imed Languages for Embedded Software Ethan Jackson Advisor: Dr. Janos Szitpanovits Institute for Software Integrated Systems Vanderbilt University.
Object Oriented Analysis & Design By Rashid Mahmood.
Research topics: Mira Balaban
Towards Effective Adaptive User Interfaces Design
Bringing Reflection to Life with First-Class Interpreters
Tackling Software Navigation Issues of the Smalltalk IDE
Behavioral Models for Software Development
Model Checking for an Executable Subset of UML
Environmental Linked Features Interoperability Experiment
Jochen Seemann Program Manager Enterprise Tools Microsoft Corporation
Presentation transcript:

The Software Composition Group Oscar Nierstrasz scg.unibe.ch

© O. Nierstrasz The Software Composition Group 13.2 Software inevitably changes …  … but present-day programming languages and development environments go out of their way to inhibit change rather than to support it  Symptoms: —Assumption of global consistency —Static type systems —Design patterns —… Oscar Nierstrasz, Alexandre Bergel, Marcus Denker, Stéphane Ducasse, Markus Gaelli and Roel Wuyts, “On the Revival of Dynamic Languages,” Proceedings of Software Composition 2005

© O. Nierstrasz The Software Composition Group 13.3 Ongoing research projects (a selection)  DSLs — embedding domain models in code  Geppetto — fine-grained reflection  Hermion — bring dynamic information to the IDE  Object Flow Analysis — track flow of object references

© O. Nierstrasz The Software Composition Group 13.4 Embedding Domain Models in Code  Examples —Seaside – Generate XHTML, JavaScript —Mondrian – Graph visualization engine —Magritte – Meta-modeling of domain-objects  How to … —integrate with host language? —integrate with other DSLs? —integrate with existing tools? —migrate from/to a DSL? 13.4 Make Domain Specific Languages (DSLs) first-class citizens of the host language.

© O. Nierstrasz The Software Composition Group 13.5 Example DSL: String Interpolation 13.5 DSLSearchPattern new expression: '`#literal'; verification: [ :ast | ast value isString ]; action: [ :ast |ast replaceWith: (self interpolate: ast value) ]; yourself Transcript show: ’10! = {10 factorial}’ Transcript show: '10! = ', 10 factorial asString Domain Code Specification of DSL

© O. Nierstrasz The Software Composition Group 13.6 Geppetto — dynamic adaptation through partial behavioural reflection Marcus Denker, et al., "Sub-Method Reflection", TOOLS Europe 2007 Applications to: Instrumentation Pluggable types AOP & COP …

© O. Nierstrasz The Software Composition Group 13.7 Hermion — combining static and dynamic information in the IDE David Röthlisberger, et al. "Feature Driven Browsing", ICDL 2007 Feature-centric environment:

© O. Nierstrasz The Software Composition Group 13.8 David Röthlisberger, et al. "Exploiting Runtime Information in the IDE", ICPC 2008 Enriching source artifacts with dynamic information

© O. Nierstrasz The Software Composition Group 13.9 David Röthlisberger, "Querying Runtime Information in the IDE", submitted to QTAPC 2008 Querying runtime information in the IDE

© O. Nierstrasz The Software Composition Group Object Flow Analysis  Track flow of object references by means of first-class aliases —Trace flows between features, classes etc. —Trace back flow from errors to code that produced the objects Adrian Lienhard, Stéphane Ducasse and Tudor Gîrba, “Object Flow Analysis — Taking an Object-Centric View on Dynamic Analysis”, ICDL’07

© O. Nierstrasz The Software Composition Group Problem: back-in-time history quickly grows beyond memory capacity Solution:  A VM that stores history as real objects in application memory  Uses object flow model  to remember past object states and  to remember how objects are passed around  Discards obsolete history using the GC Adrian Lienhard, Tudor Gîrba and Oscar Nierstrasz, “Practical Object-Oriented Back-in-Time Debugging”, ECOOP’08

© O. Nierstrasz The Software Composition Group Projects  Student projects & Masters projects —scg.unibe.ch [Caveat — never up-to-date!] —Come and talk to us!