A Discussion of: Murphy, Notkin & Sullivan’s Software Reflexion Models: Bridging the Gap between Source and High-Level Models André M. Carrington.

Slides:



Advertisements
Similar presentations
Rotate Strokes Digits A Presentation An animation will play when the slideshow is viewed. If the animation does not play, please check the system requirements.
Advertisements

Performance Assessment
Chapter 11 user support. Issues –different types of support at different times –implementation and presentation both important –all need careful design.
Supported by: Joint MSc curriculum in software engineering European Union TEMPUS Project CD_JEP New Topics for Software Evolution Miloš Radovanović.
Fakultät für Informatik Technische Universität München A Quantitative Perspective on Systems of Systems Formerly: Upscaling for Systems of Systems Astrid,
© 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06 Informatics 121 Software Design I Lecture 10 André van der Hoek &
Help and Documentation zUser support issues ydifferent types of support at different times yimplementation and presentation both important yall need careful.
GenSpace: Exploring Social Networking Metaphors for Knowledge Sharing and Scientific Collaborative Work Chris Murphy, Swapneel Sheth, Gail Kaiser, Lauren.
Stimulating reuse with an automated active code search tool Júlio Lins – André Santos (Advisor) –
Software Engineer Report What should contains the report?!
Domain Modelling the upper levels of the eframework Yvonne Howard Hilary Dexter David Millard Learning Societies LabDistributed Learning, University of.
GL12 Conf. Dec. 6-7, 2010NTL, Prague, Czech Republic Extending the “Facets” concept by applying NLP tools to catalog records of scientific literature *E.
Advanced Research Methodology
Project Proposal (Title + Abstract) Due Wednesday, September 4, 2013.
MDC Open Information Model West Virginia University CS486 Presentation Feb 18, 2000 Lijian Liu (OIM:
Educator’s Guide Using Instructables With Your Students.
May Distribution authorized to U.S. Government Agencies only Symmetric Multimodal Interactive Intelligent Development Environments Dramatic reduction.
UML Tools ● UML is a language, not a tool ● UML tools make use of UML possible ● Choice of tools, for individual or group use, has a large affect on acceptance.
Aurora: A Conceptual Model for Web-content Adaptation to Support the Universal Accessibility of Web-based Services Anita W. Huang, Neel Sundaresan Presented.
CS 355 – Programming Languages
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University ICSE 2003 Java.
Karolina Muszyńska. Reverse engineering - looking at the solution to figure out how it works Reverse engineering - breaking something down in order to.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
1 REQUIREMENT ENGINEERING Chapter 7. 2 REQUIREMENT ENGINEERING Definition Establishing what the customer requires from a software system. OR It helps.
Chapter 1 Introduction Dr. Frank Lee. 1.1 Why Study Compiler? To write more efficient code in a high-level language To provide solid foundation in parsing.
Mobile Topic Maps for e-Learning John McDonald & Darina Dicheva Intelligent Information Systems Group Computer Science Department Winston-Salem State University,
Sharad Oberoi and Susan Finger Carnegie Mellon University DesignWebs: Towards the Creation of an Interactive Navigational Tool to assist and support Engineering.
Building Tools by Model Transformations in Eclipse Oskars Vilitis, Audris Kalnins, Edgars Celms, Elina Kalnina, Agris Sostaks, Janis Barzdins Institute.
Knowledge Representation and Indexing Using the Unified Medical Language System Kenneth Baclawski* Joseph “Jay” Cigna* Mieczyslaw M. Kokar* Peter Major.
Web Search. Structure of the Web n The Web is a complex network (graph) of nodes & links that has the appearance of a self-organizing structure  The.
Domain Modeling In FREMA David Millard Yvonne Howard Hugh Davis Gary Wills Lester Gilbert Learning Societies Lab University of Southampton, UK.
1 Computer Programming (ECGD2102 ) Using MATLAB Instructor: Eng. Eman Al.Swaity Lecture (1): Introduction.
1 3. Computing System Fundamentals 3.1 Language Translators.
Literature Reviews: the Hows, Whys and Wherefores GEO 518 Anne Nolin and Dawn Wright.
How to Read Research Papers? Xiao Qin Department of Computer Science and Software Engineering Auburn University
Lucian Voinea Visualizing the Evolution of Code The Visual Code Navigator (VCN) Nunspeet,
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Connecting Task to Source Gail C. Murphy Department of Computer Science University of British Columbia Includes joint work with: Elisa Baniassad, University.
2007. Software Engineering Laboratory, School of Computer Science S E Web-Harvest Web-Harvest: Open Source Web Data Extraction tool 이재정 Software Engineering.
Chapter 8 Object Design Reuse and Patterns. Object Design Object design is the process of adding details to the requirements analysis and making implementation.
SKOS. Ontologies Metadata –Resources marked-up with descriptions of their content. No good unless everyone speaks the same language; Terminologies –Provide.
Chap#11 What is User Support?
1. 2 Preface In the time since the 1986 edition of this book, the world of compiler design has changed significantly 3.
2000 Advanced OOSA State of the Art on Software Architecture Declarative Meta Programming Session 5: Lightweight Architectural.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University IWPSE 2003 Program.
Digital Libraries1 David Rashty. Digital Libraries2 “A library is an arsenal of liberty” Anonymous.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
User Interface Design for a Large-Scale Computer Science Research Digital Library Min-Yen Kan Department of Computer Science National University of Singapore.
MNP1163/MANP1163 (Software Construction).  Minimizing complexity  Anticipating change  Constructing for verification  Reuse  Standards in software.
ICT in Classroom Prepared by: Ymer LEKSI Kukes
® IBM Software Group © 2009 IBM Corporation Essentials of Modeling with the IBM Rational Software Architect, V7.5 Module 15: Traceability and Static Analysis.
Achieving Semantic Interoperability at the World Bank Designing the Information Architecture and Programmatically Processing Information Denise Bedford.
WebLenses Bringing Data into Focus Haggai Mark Learning, Design & Technology Stanford University 2009.
Writing a Science or Engineering Paper: It is just a story Frank Shipman Department of Computer Science Texas A&M University.
Lean Manufacturing Practices In Malaysian SMEs. 1.0Introduction Research Background Why Lean Manufacturing needs to be practiced in SMEs? Problem Statement.
ECE 750 Topic 8 Meta-programming languages, systems, and applications Automatic Program Specialization for J ava – U. P. Schultz, J. L. Lawall, C. Consel.
Programming Languages Concepts Chapter 1: Programming Languages Concepts Lecture # 4.
1 Using DLESE: Finding Resources to Enhance Teaching Shelley Olds Holly Devaul 11 July 2004.
Human Computer Interaction Lecture 21 User Support
Making Students Effective Researchers
Advanced Computer Systems
Chapter 1 Introduction.
Human Computer Interaction Lecture 21,22 User Support
Chapter 1 Introduction.
Program comprehension during Software maintenance and evolution Armeliese von Mayrhauser , A. Marie Vans Colorado State University Summary By- Fardina.
SWE-795 Presentation 01 11/16/2018 Asking and Answering Questions during a Programming Change Task Jonathan Sillito, Member, IEEE Computer Society, Gail.
CSCD 506 Research Methods for Computer Science
Chapter 11 user support.
From Use Cases to Implementation
Presentation transcript:

A Discussion of: Murphy, Notkin & Sullivan’s Software Reflexion Models: Bridging the Gap between Source and High-Level Models André M. Carrington for CS 846 October 2011. v1.01. David R. Cheriton School of Computer Science University of Waterloo

Agenda Context The Reflexion method Contributions claimed, impact award Motives, applications & extensions Demo Note on Reflexion: The old English spelling differentiates [their] use of “reflexion” from the field of reflective computing [Smi84]

In the last two classes we covered papers on Information needs analysis synthesis (of fragments) Code search, for reuse debugging, understanding

Some points that we discussed are relevant to this paper: Accurate system information is important Documentation is often inaccurate What provides the information sought? Developers may be under pressure

A Typical Scenario* *from G.C. Murphy’s presentation: Structural Summarization, 1996. This example is also discussed in the paper re: a developer with expertise in UNIX virtual memory but not NetBSD as a specific implementation.

Context circa 1995 *from G.C. Murphy’s doctoral dissertation (on the same topic as the paper), 1996.

Reflexion bridges the gap between source and models 1 4 3 2

1. Alice creates a High Level Model

2. Alice extracts a Source model She uses FIELD’s xrefdb* and an awk script to obtain “calls relation” tuples: calling fn called fn *XREFDB is a relational database whose relations were specifically designed to support queries about programming languages. FIELD is a distributed programming environment/solution.

3. Alice maps the HLM to Source Using general domain knowledge, specific codebase knowledge, or assumptions. Source entities* are grouped or abstracted using regular expressions, directories, files, classes and functions/methods. A partial map re scope (subsystems) of interest is allowed. *from the calls relation, from browsing, or from knowledge or other sources Source High-Level Model (HLM)

4. Alice computes a Reflexion Model Src HLM ✔ ✖

Alice may iterate by refining the HLM & Map from the Reflexion 1 4 3 2

How does it work? Want proof?Learn static code in Z…

And computations in Z, or…

Read the source. Try it. Read the thesis. Apply it to itself! An Eclipse plugin for Java (built from source) is available at: http://sourceforge.net/projects/jrmtool/ One of the web pages said to e-mail Professor Gail Murphy for other versions (e.g. standalone, other languages).

Metrics are provided to demonstrate its viability.

Contributions claimed Reflexion “enables an engineer to produce sufficiently accurate high-level models in a different way”. Reflexion “has been applied to aid engineers in performing a variety of software engineering tasks on a number of different software systems that vary in size and implementation language” Reflexion “permit[s] an engineer to easily explore structural aspects of a large software system” A benefit of the paper’s “syntactic approach is the ability…to investigate many different kinds of structural interactions in a software system (calls, data dependencies, or event interactions, etc.).

Contributions claimed “The declarative maps…enable an engineer to focus on information of interest” Reflexion models “bridge the gap between an engineer’s high-level model and a model of the source” Lastly, they almost suggest their goal was met: “The goal…to produce, at low cost, high-level models that are ‘good enough’…Three aspects…critical to meeting this goal are the use of syntactic models, the use of expressive declarative maps, and support for querying a reflexion model.”

Impact Award ACM’s Special Interest Group on Software Engineering – SIGSOFT – launched an initiative several years ago to recognize research papers that have been particularly influential in software engineering research.  This 1995 paper on Reflexion models was selected to receive a 2011 SIGSOFT Retrospective Impact Paper award. Citations: 422 (Google); 93 (ACM digital library) The most ideal impact, in my view, would be: widespread use in industry.

Motivation I select papers: that provide value to society; and that are interesting or inspiring. This paper extended my thinking about what is possible. I think that many people would use the Reflexion tool if it were marketed (and if the paper was more accessible to a non-academic audience).

Applications of this Research Reengineering Getting acquainted with a codebase to re-engineer a VM Understanding & assessing structure to re-engineer Excel Conformance Assessing conformance to layered architecture, directly. Assessing conformance to design documentation System Understanding Getting acquainted with a codebase in general Seeing how others’ work combines & aligns with your own Observing meaningful divergences, e.g. between a difficult-to- understand compiler and a typical compiler) Finding optimizations in divergences, e.g. VM

Challenges The RMTool download link does not work. The link to the no-install plugin approach for the jRMTool does not work. The jRMTool requires fixes (which I achieved) to get it working on a current version of Eclipse, because of a deprecated method (requiring changes to code); and deprecated code practices (requiring use of an older java compiler version and disregard for warnings) The sourceforge project does not have any recent activity; and thus support for the tool is in question.

Research Extensions A better survey (and objective measure) of sufficiency and utility – with a statistically significant sample size. While the Related Work section appears to be well written, a presentation by the authors of FIELD* at around the same time (1993) that provides a taxonomy of development tools for visualizing abstractions, that might better contextualize and advance this work. They indicate: Support for typing relations in source models and HLMs Examine the sensitivity of the Map to changes in source Improve querying to assist interpretation of Reflexion models *FIELD’s xrefdb is used by the paper for source model extraction

Reiss’ Taxonomy Syntactic: Event: Semantic: Data-based: Call graph dynamic call graph Class hierarchy display synchronization viewer Design language algorithm animation Semantic: Data-based: program slices data structure visualization data flow graphs make dependency graph library-based (e.g. threads) potential class groupings Reiss, Stephen P. “FIELD: Friendly, Integrated Environment for Learning and Development” (presentation), Brown University, 1993.

Demo with a simple program

Demo with a simple program

Demo with more complexity

This concludes the presentation.

Trivia with prizes! (or obscure things I learned) The first to correctly answer wins a prize! What formal specification language is used in the paper? Answer: Z What does the K in AWK stand for? (hint: they co-authored a book on C) Answer: Kernighan (1st reference) What late pop star is mentioned in the paper? Answer: Michael Jackson (Acknowledgements)

Lexical Source Model Extraction* *from G.C. Murphy’s doctoral dissertation (on the same topic as the paper), 1996.

LSME Detail *from G.C. Murphy’s doctoral dissertation (on the same topic as the paper), 1996.