This document discusses software language evolution and coupled heterogeneous evolution. It presents a generic architecture for specifying data model evolutions using a domain-specific transformation language. This includes basic transformations, a positioning language, and syntax for specifying model evolutions. The architecture generates interpreters for automatic migration between heterogeneous models. The work focuses on evolution across multiple domains and software languages.
HSC INFORMATION TECHNOLOGY CHAPTER 3 ADVANCED JAVASCRIPT
Software Language Evolution
1. Sander Vermolen
Eelco Visser
Software
Language
Evolution
This research was supported by NWO/JACQUARD project
638.001.610, MoDSE: ModelDriven Software Evolution.
9. User User
name :: varchar name :: varchar
email :: tinytext email :: tinytext
Page Page
title :: varchar title :: varchar
content :: text
author User
Revision
page Page
revisionText :: text
author User
10. User User
name bob name bob
email b.johnson@... email b.johnson@...
Page 1 Page 1
title "The first page" title "The first page"
content "Hello world"
author bob
Revision 1
page {page 1}
revisionText "Hello world"
author bob
15. 8 Basic Transformations
add or remove entity add or remove property
change name of entity change name of property
change type of set change type of property
16. add
Revision
page Page
author User
add
revisionText :: text
17.
18. Revision
revisionText :: text
at Entity Revision / Property page
add revisionText :: text
19. Revision
revisionText :: text
at Entity Revision / Property page
add revisionText :: text
from page.content
20. at Entity Page
add Revision
;
at Entity Revision / Property page
add revisionText :: text
from page.content
21. Evolving
Data Models
8 Basic transformations
Syntax for the transformations
Positioning language
Specify data model evolutions