from research to startup: experiences in interoperability

22
From Research to Startup: Experiences in Interoperability Arie van Deursen Leon Moonen 23 January 2001

Upload: neylan

Post on 18-Mar-2016

26 views

Category:

Documents


1 download

DESCRIPTION

From Research to Startup: Experiences in Interoperability. Arie van Deursen Leon Moonen 23 January 2001. The ASF+SDF Experience. Bergstra, Heering, Klint Alg. Specification , 1989. Describe language: SDF: abstract + concrete syntax ASF: language processors Generate tools - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: From Research to Startup:  Experiences in Interoperability

From Research to Startup: Experiences in Interoperability

Arie van DeursenLeon Moonen23 January 2001

Page 2: From Research to Startup:  Experiences in Interoperability

2

The ASF+SDF Experience Describe language:

SDF: abstract + concrete syntax ASF: language processors

Generate tools Parser, pretty printer, structure editor Type checker, evaluator, transformer …

Meta-Environment

Bergstra, Heering, KlintAlg. Specification,

1989

Van Deursen, Heering, KlintLanguage Prototyping, 1996

Klint, TOSEM 1993

Page 3: From Research to Startup:  Experiences in Interoperability

3

(Meta) Environment Architecture

Heterogeneous tools

P1P2

P3Pn

msg msg

msg

…transeditorparser pp

evaldo

ack-event value eventAnnotated terms

ToolBus coordination architecture

Bergstra, Klint, SCP, 1998

Page 4: From Research to Startup:  Experiences in Interoperability

4

Independent Tools Size matters:

use sharing to deflate large data Format wars hard to avoid

AsFix 1, 2, and 1.5. (AsFix = local AST representation format)

Installing independent tools requires appropriate bundling

Page 5: From Research to Startup:  Experiences in Interoperability

5

Agreeing on Grammars Abstract syntax ~ schema. Tools for one language share grammar?

Different tasks require different variations Evolving grammars implies divergence Our best attempt: a grammar base

Set of reference grammars. Maturity levels indicate stability/immutability

www.program-transformation.org/xt/

Page 6: From Research to Startup:  Experiences in Interoperability

6

Talking to Industry Discuss maintenance problems with

ABN AMRO Bank Software house Roccade

Use language technology as basis for reverse and re-engineering research

Goal: Strengthen generic technology Start with Cobol instantiation

Page 7: From Research to Startup:  Experiences in Interoperability

7

Dealing with Data Flow Many data flow problems reimplemented

for different languages Dhal Framework:

map languages to common representationvariable definitions and usescontrol flow (structured & unstructured)

framework performs control flow normalization

generic data flow solutions on Dhal

Re-useDFA library

Multi-languagesystems

Page 8: From Research to Startup:  Experiences in Interoperability

8

Object Identification

repository

Cobolsources

facts

types conceptlattice

factextraction

typeinference

item/featureselection concept

analysis

conceptrefinement

conceptvisualisation

Page 9: From Research to Startup:  Experiences in Interoperability

9

Object Identification

repository

Cobolsources

facts

types conceptlattice

factextraction

typeinference

item/featureselection concept

analysis

conceptrefinement

conceptvisualization

Tools used: SDF, jasfix, grok, MySQL, concept, dot, Tcl/Tk

Wired by perl/make Pragmatic, fine for research

Page 10: From Research to Startup:  Experiences in Interoperability

10

Object Identification

repository

Cobolsources

facts

types conceptlattice

factextraction

typeinference

item/featureselection concept

analysis

conceptrefinement

conceptvisualization

Cobol Grammar:• Reused & modified• Other tools out of sync

Page 11: From Research to Startup:  Experiences in Interoperability

11

Object Identification

repository

Cobolsources

facts

types conceptlattice

factextraction

typeinference

item/featureselection concept

analysis

conceptrefinement

conceptvisualization

ICSE99, IWPC2000

Page 12: From Research to Startup:  Experiences in Interoperability

12

Spinning Off Software Improvement Group (SIG):

Documentation Generation Program Transformation Strategic Consultancy

Mission: Help companies with their legacy problems Transfer of CWI reengineering technology

Employees: 2000, 2001, 2002: 4, 8, 16

Page 13: From Research to Startup:  Experiences in Interoperability

13

DocGen Analyze Cobol system and

redocument it using hypertext and graphs.

Operational characteristics: Processing 50.000.000 lines of code ASP: operate via Internet On-site installation No bugs please

ICSM 1999,WCRE 2000

Page 14: From Research to Startup:  Experiences in Interoperability

14

DocGen ArchitectureMainframe

Clients

SQL

Analyzer

Documentation Server

CobolPrograms

Documentation

PageRequest

DocGen

Page 15: From Research to Startup:  Experiences in Interoperability

15

Analysis InteroperabilityMainframe

Clients

SQL

Analyzer

Documentation Server

CobolPrograms

Documentation

PageRequest

DocGen

• Source + key properties• Island grammars• Use 3d party parser?

Page 16: From Research to Startup:  Experiences in Interoperability

16

Query/view InteroperabilityMainframe

Clients

SQL

Analyzer

Documentation Server

CobolPrograms

Documentation

PageRequest

DocGen

Metric toolsGraph visualization

Clustering tools

Page 17: From Research to Startup:  Experiences in Interoperability

17

The DocGen Data Model

callcommentscontrolflowcopycopyrecordcreated

sourceInfosourcesubsystemssummarieswords

entitiesflatfileInfoflatfileOpsflatFileRecord

sparameters

Evolve data model as we get along

Page 18: From Research to Startup:  Experiences in Interoperability

18

Data Model Conversion Customer request:

Reuse DocGen data for other tool set Extend DocGen with data from this tool set Exchange through XML

Planned approach: Describe source and target model Generate reader & visitor for source data Refine visitor to construct target data

Page 19: From Research to Startup:  Experiences in Interoperability

19

Presentation Describe structure of pages

Using a grammar JJForester generates Java classes +

visitors Composing a page:

Construct abstract structure Use visitor to emit HTML

(You want XML? Specialize visitor)

Page 20: From Research to Startup:  Experiences in Interoperability

20

Summary: Experience Report ToolBus-based cooperation Grammar-based data exchange Collect reference grammars Benefit from code generation DHAL data flow framework DocGen Cobol data model Open up tools with jdbc, http, JavaDoc

Page 21: From Research to Startup:  Experiences in Interoperability

21

Discussion (I) Systematic interoperability is not for

free: Opening up tools and adhering to

standards takes effort Standards may evolve What is the reward? Who gets the reward?

Start with bilateral cooperations

Page 22: From Research to Startup:  Experiences in Interoperability

22

Discussion (II) Encourage explicit schemas:

Collect and discuss the schemas we use Distribute schemas (Susan’s zoo) Sooner or later they may get reused, or

even refactored into a reference schema. Strengthen communication

Use on line forum a la wiki?(lightweight collaborative web discussion forum)