from research to startup: experiences in interoperability
Post on 18-Mar-2016
24 Views
Preview:
DESCRIPTION
TRANSCRIPT
From Research to Startup: Experiences in Interoperability
Arie van DeursenLeon Moonen23 January 2001
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
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
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
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/
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
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
8
Object Identification
repository
Cobolsources
facts
types conceptlattice
factextraction
typeinference
item/featureselection concept
analysis
conceptrefinement
conceptvisualisation
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
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
11
Object Identification
repository
Cobolsources
facts
types conceptlattice
factextraction
typeinference
item/featureselection concept
analysis
conceptrefinement
conceptvisualization
ICSE99, IWPC2000
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
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
14
DocGen ArchitectureMainframe
Clients
SQL
Analyzer
Documentation Server
CobolPrograms
Documentation
PageRequest
DocGen
15
Analysis InteroperabilityMainframe
Clients
SQL
Analyzer
Documentation Server
CobolPrograms
Documentation
PageRequest
DocGen
• Source + key properties• Island grammars• Use 3d party parser?
16
Query/view InteroperabilityMainframe
Clients
SQL
Analyzer
Documentation Server
CobolPrograms
Documentation
PageRequest
DocGen
Metric toolsGraph visualization
Clustering tools
17
The DocGen Data Model
callcommentscontrolflowcopycopyrecordcreated
sourceInfosourcesubsystemssummarieswords
entitiesflatfileInfoflatfileOpsflatFileRecord
sparameters
Evolve data model as we get along
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
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)
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
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
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)
top related