A Logic Meta-Programming Approach to support the Co-Evolution of Object-Oriented Design and Implementation Roel Wuyts 15-12-2000, PROG.

Slides:



Advertisements
Similar presentations
Profiles Construction Eclipse ECESIS Project Construction of Complex UML Profiles UPM ETSI Telecomunicación Ciudad Universitaria s/n Madrid 28040,
Advertisements

Semantics Static semantics Dynamic semantics attribute grammars
May 2, May 2, 2015May 2, 2015May 2, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa, CA.
A survey of techniques for precise program slicing Komondoor V. Raghavan Indian Institute of Science, Bangalore.
Verification/Simulati on –GUI for simulation and formal verification –Simulator: Exploration of dynamic behavior Checking.
SRDC Ltd. 1. Problem  Solutions  Various standardization efforts ◦ Document models addressing a broad range of requirements vs Industry Specific Document.
SERL - Software Engineering Research Labslide1 Frameworks and Hooks by Garry Froehlich Paul Sorenson SERL (Software Engineering Research Lab)
Modeling Process-Oriented Integration of Services Using Patterns and Pattern Primitives Uwe Zdun and Schahram Dustdar Distributed Systems Group Institute.
Constraint Logic Programming Ryan Kinworthy. Overview Introduction Logic Programming LP as a constraint programming language Constraint Logic Programming.
UML CASE Tool. ABSTRACT Domain analysis enables identifying families of applications and capturing their terminology in order to assist and guide system.
AOSE-2003, Melbourne July 15 th 1 Agent Oriented modeling by interleaving formal and informal analysis Anna Perini 1, Marco Pistore 2,1, Marco Roveri 1,
Investigate the degree to which programming concepts are interrelated Reshmi Ravi.
Spectra Software Defined Radio Products Applying Model Driven Design, Generative Programming, and Agile Software Techniques to the SDR Domain OOPSLA '05.
A novel approach to modeling Zvezdan Protić, Tom Verhoeff, Mark van den Brand.
Introduction To System Analysis and design
Chapter 2 The process Process, Methods, and Tools
Ontology Development Kenneth Baclawski Northeastern University Harvard Medical School.
XML-QL A Query Language for XML Charuta Nakhe
Methodology - Conceptual Database Design Transparencies
A Z Approach in Validating ORA-SS Data Models Scott Uk-Jin Lee Jing Sun Gillian Dobbie Yuan Fang Li.
2000 Advanced OOSA State of the Art on Software Architecture Declarative Meta Programming Session 1: Introduction Nantes, EMOOSE.
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
Agenda 1. Introduction 2. Overview of SU-MoVal 3. OCL-based Model Validation 4. QVT-based Transformations 5. Demo of SU-MoVal 6. Conclusion and Future.
Alignment of ATL and QVT © 2006 ATLAS Nantes Alignment of ATL and QVT Ivan Kurtev ATLAS group, INRIA & University of Nantes, France
Building Tools by Model Transformations in Eclipse Oskars Vilitis, Audris Kalnins, Edgars Celms, Elina Kalnina, Agris Sostaks, Janis Barzdins Institute.
HCI in Software Process Material from Authors of Human Computer Interaction Alan Dix, et al.
1 Chapter 5 Software Engineering Practice. 2 What is “Practice”? Practice is a broad array of concepts, principles, methods, and tools that you must consider.
Object-Oriented Analysis and Design An Introduction.
Coming up: Software Engineering: A Practitioner’s Approach, 6/e Chapter 5 Practice: A Generic View copyright © 1996, 2001, 2005 R.S. Pressman & Associates,
Reviewing Recent ICSE Proceedings For:.  Defining and Continuous Checking of Structural Program Dependencies  Automatic Inference of Structural Changes.
1 Programming Language History and Evolution In Text: Chapter 2.
A Novel Approach to Architectural Recovery in Evolving Object- Oriented Systems PhD thesis Koen De Hondt December 11, 1998.
Information System Development Courses Figure: ISD Course Structure.
Methodology - Conceptual Database Design. 2 Design Methodology u Structured approach that uses procedures, techniques, tools, and documentation aids to.
1/26/2004TCSS545A Isabelle Bichindaritz1 Database Management Systems Design Methodology.
Chapter 7 System models.
Model Driven Development An introduction. Overview Using Models Using Models in Software Feasibility of MDA MDA Technologies The Unified Modeling Language.
Abstract We present two Model Driven Engineering (MDE) tools, namely the Eclipse Modeling Framework (EMF) and Umple. We identify the structure and characteristic.
Composition of UML Described Refactoring Rules Presented by Chin-Yi Tsai.
Methodology - Conceptual Database Design
Part4 Methodology of Database Design Chapter 07- Overview of Conceptual Database Design Lu Wei College of Software and Microelectronics Northwestern Polytechnical.
Sheet 1 DocEng’03, Grenoble, November 2003 Model Driven Architecture based XML Processing Ivan Kurtev, Klaas van den Berg University of Twente, the Netherlands.
Towards Multi-Paradigm Software Development Valentino Vranić Department of Computer Science and Engineering Faculty of Electrical Engineering.
Programming Technology Lab1 Declarative Meta Programming Dr. Kim Mens ( ) Programming Technology.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 5 Practice: A Generic View Software Engineering: A Practitioner’s Approach, 6/e Chapter.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
Generating Software Documentation in Use Case Maps from Filtered Execution Traces Edna Braun, Daniel Amyot, Timothy Lethbridge University of Ottawa, Canada.
1 Unified Modeling Language, Version 2.0 Chapter 2.
Formal Specification: a Roadmap Axel van Lamsweerde published on ICSE (International Conference on Software Engineering) Jing Ai 10/28/2003.
2000 Advanced OOSA State of the Art on Software Architecture Declarative Meta Programming Session 3: Declarative Meta Programming.
Concepts and Realization of a Diagram Editor Generator Based on Hypergraph Transformation Author: Mark Minas Presenter: Song Gu.
Chapter 18 Object Database Management Systems. Outline Motivation for object database management Object-oriented principles Architectures for object database.
® IBM Software Group A Metamodeling Approach to Pattern Specification Maged Elaasar 1,2, Dr. Lionel Briand 1, Dr. Yvan Labiche 1 1 Carleton University,
Connecting Architecture Reconstruction Frameworks Ivan Bowman, Michael Godfrey, Ric Holt Software Architecture Group University of Waterloo CoSET ‘99 May.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
1 Declaratively Codifying Software Architectures Using Virtual Software Classifications Kim Mens Kim Mens, Roel Wuyts, Theo D’Hondt Programming Technology.
2000 Research Overview Dr. Kim Mens Programming Technology Lab Vrije Universiteit Brussel.
A Survey of Object-Oriented Concept Oscar Nierstrasz.
A UML-Based Pattern Specification Technique Presented by Chin-Yi Tsai IEEE TRANSACTION ON SOFTWARE ENGINEERING, VOL. 30, NO. 3, MARCH 2004 Robert B. France,
1 Ontological Foundations For SysML Henson Graves September 2010.
CHESS Methodology and Tool Federico Ciccozzi MBEES Meeting Sälen, January 2011 January 2011.
Smalltalk Meta-Programming Programming Languages HUJI 2010 Yardena Meymann.
Apposition “In order to fill the observed gap between the various phases of the object-oriented software development life-cycle, they should be regarded.
Implementing Language Extensions with Model Transformations
Lecture 23 Pages : Separating Syntactic Analysis from Execution. We omit many details so you have to read the section in the book. The halting.
Intentional source-code views
An Introduction to Software Architecture
Presented By: Darlene Banta
Implementing Language Extensions with Model Transformations
NARS an Artificial General Intelligence Project
Presentation transcript:

A Logic Meta-Programming Approach to support the Co-Evolution of Object-Oriented Design and Implementation Roel Wuyts , PROG

2 Roadmap Context Thesis Synchronization Artifact: Synchronization Framework –SOUL –Declarative Framework –Synchronization Tool Framework Validation –HotDraw Experiments –MediaGeniX Experiments Conclusion and Future Work

3 Context: Problem Relation between design and implementation is often implicit ==>both can change independently, without leaving any traces ==>architectural drift documentation problems iterative development support problems

4 Context: Co-evolution To solve these problems: co-evolutionary development: design and implementation are subject to evolution, and influence each other ==> Link explicit, and usable by tools Problem: how to support co-evolution ?

5 Thesis A framework for co-evolution of design and implementation, where design and implementation are related in such a way that the one can check, generate or constrain the other, can be achieved in a logic meta-programming language integrated with a software development environment.

6 Synchronization: overview Synchronization = ‘to occur at the same time’ We relax this timing constraint ==> spectrum ==> characterizing synchronization of design and implementation

7 Synchronization: related work CS = CoffeeStrainer, LGA = Law Governed Architectures SRM = Software Reflexion Models, FM = Fragment Model SF = Synchronization Framework

8 Synchronization Framework Framework to construct applications that require synchronization of design and implementation Goal: support different characterizations Two parts: –Declarative framework to express design as a logic meta program over implementation –Synchronization Tool Framework to integrate the declarative framework in the development environment

9 Synchronization Framework: setup

10 SOUL: Overview Logic meta-programming language, featuring symbiosis and reflection with Smalltalk Specific language features: –Smalltalk term: wrap extended Smalltalk code –Generate predicate: transform collection of x Smalltalk elements into x logic solutions –Quoted term: represent strings with logic variables Incremental solver implemented on top of SOUL

11 SOUL: Symbiosis Up-down mechanism: ST SOUL [?c selectors isEmpty], {?c -> [Array]} [:env | (env at: 1) soulUp selectors isEmpty] false [false] up down reification in the smalltalk term of the repository and bindings used in the interpretation for reflection

12 SOUL: Incremental Solver Built on top of SOUL Local propagation of changes to results of relations Symbolic constraint solver

13 Declarative Framework Reifies classes, methods, instance variables and inheritance Maps design to implementation Uses the SOUL nested repositories Logic layer Representational layer Basic layer Design layer

14 Synchronization Tool Framework Integrates tools with the development environment

15 Validation Conceptual proof that the framework supports the characterizations Experimental proof that the framework supports the characterizations -> HotDraw experiments Experiments on real-world case study to assess the practical usability and scalability -> MediaGeniX experiments

16 HotDraw Experiments HotDraw = framework for drawing editors Experiments: –Extracting design from implementation –Adding specific HotDraw design information –Generating implementation from design –Checking conformance of design and implementation Done for direct and delayed synchronization –Direct -> incremental solver –Delayed -> SOUL queries

17 MediaGeniX Experiments Experiments: –Conformance checking MMM UML-diagrams with MMM’s implementation –Checking evolution in MMM’s implementation –Expressing MAF-conventions –Finding MAF-violations in the implementation Usable on real-world implementations Scalable through programming conventions Conformance checking feasible in practice

18 Conclusion Co-evolution between design and implementation -> synchronization of changes Characterization of synchronization Synchronization framework artefact –design logic-meta program of implementation –design can check, generate and constrain implementation, and vice versa –Supports the characterizations Conceptual and experimental validation

19 Conclusion: contributions Contributions: –Study and characterization of synchronization of design and implementation –Symbiosis of a logic meta-programming language and an object-oriented programming language –Incremental solver that uses local propagation techniques to solve symbolic constraints –The synchronization framework itself (the combination of the synchronization tool framework and the declarative framework)

20 Future Work Further validation on more cases (as a framework can only become better the more it is applied) SOUL-2: SOUL, but –using stack-based interpretation mechanism, –With better reflection with Smalltalk –With a tighter integration with the incremental solver –With a true repository composition mechanism Combining Solvers: of different expressive power and performance in one system Full Co-evolution support