html5-img
1 / 12

The Software Composition Group

The Software Composition Group. Oscar Nierstrasz scg.unibe.ch. 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

chava
Download Presentation

The Software Composition Group

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. The Software Composition Group 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

  3. The Software Composition Group 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

  4. Embedding Domain Models in Code The Software Composition Group Make Domain Specific Languages (DSLs) first-class citizens of the host language. • 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

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

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

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

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

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

  10. 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

  11. 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

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

More Related