SlideShare ist ein Scribd-Unternehmen logo
1 von 36
Preliminary Dissertation Proposal Exam Facilitating Maintenance and Evolution of Non-Functional Concerns (NFCs) in  Modern Enterprise Applications Myoungkyu Song   SW Innovations Lab, Dept. of Computer Science, Virginia Tech  Committee Members Dr. Eli Tilevich, Chair		Virginia Tech Dr. Stephen H. Edwards		Virginia Tech Dr. Dennis G. Kafura		Virginia Tech Dr. Barbara G. Ryder		Virginia Tech Dr. Kwangkeun Yi		Seoul National Univ., 			South Korea SW  I-Lab April, 28 2011, 2225@KWII
Background 2 Metadata Non-Functional Concerns Annotations @Table Confi- gure Security Testing C# Attributes [Author ( … Enterprise Application Fault Tolerance Persistence XML <column=…     <field=…/> Functional Concerns Intermediate Representation (Bytecode) Source Code Compiler
Business Logic NFC Example: Persistence +Metadata (XML) public class ManagerBean   extends javax.ejb.EntityBean { private Long orderId; private String status; public ManagerBean(){...} ... } <entity> <class name=“ManagerBean” table=“Manager”> <field name=“orderId” primary-key=“true”> <column name=“ORDERID”/> </field>  <field name=“status”> <column name=“STATUS”/> </field>  ... </entity> 3
Problem: Address maintenance and evolution challenges of implementing non-functional concerns (NFCs) declaratively Thesis statement:  Domain-specific languages can facilitate the maintenance and evolution of NFC implementations in modern enterprise applications Dissertation Objective 4
Background: Goal 1 5 ,[object Object],Metadata Non-Functional Concerns Annotation @Table Confi- gure Security Testing C# Attributes [Author ( … Enterprise Application Fault Tolerance Persistence XML <column=…     <field=…/> Functional Concerns Intermediate Representation (Bytecode) Source Code Compiler
Background: Goal 2 6 ,[object Object],Metadata Non-Functional Concerns Annotation @Table Confi- gure Security Testing C# Attributes [Author ( … Enterprise Application Fault Tolerance Persistence XML <column=…     <field=…/> Functional Concerns Intermediate Representation (Bytecode) Source Code Compiler
Background: Goal 3 7 ,[object Object],Metadata Non-Functional Concerns Annotation @Table Confi- gure Security Testing C# Attributes [Author ( … Enterprise Application Fault Tolerance Persistence XML <column=…     <field=…/> Functional Concerns Intermediate Representation (Bytecode) Source Code Compiler
Pattern-Based Structural Expressions (PBSE) A novel metadata language based on queries against the main program; easier to program, understand, maintain, and reuse. The Structural Enhancement Rule (SER) language A DSL for documenting bytecode enhancements; enables source-level prog. understanding and debugging tools Reusing NFCs Across Languages An approach to reusing NFCs across languages through automated metadata translation Contributions 8
[object Object]
Completed Work
Reusable Enterprise Metadata with Pattern-Based Structural Expressions (PBSE)
(Main research track paper at AOSD’10)
Enhancing Source-Level Programming Tools with An Awareness of Transparent Program Transformations
(Main research track paper & SW demo at OOPSLA’09)
Research PlanReusing NFCs Across Languages ,[object Object],Roadmap 9
Business Logic Limitation of Enterprise Metadata 10 + Metadata (Java 5 Annotation) publicclassManagerEJB  { public String getOrderId(){ 		return orderId; 	} public String getStatus(){ 		return status; 	} @Entity @Table(name="Manager")                @Id                @Column(name="orderId", primaryKey=true) 	@Column(name="status", primaryKey=false)
A PBSE Script Example 01  Metadata MyJPA<Package p> 02   Class c in p 03      Where (public *EJB) 04         c += @Table 05         @Table.name = (c.name =~ s/EJB$//)  06         Column<c>  07 08  Metadata Column<Class c> 09   Field f in c 10      Where (private * *) 11         Method m in c    12         Where((“get” + (f.name =~ s/^[a-z]/[A-Z]/)) == m.name) 13            m += @Column            @Column.name = f.name 15         Where(public * get*Id ()) 16            @Column.primKey = true 17            m += @Id             18  MyJPA <"package1"> 11
[object Object]
<[Package|Class|Method|Field|Parameter] val>
[Class|Method|Field|Parameter] iterator in parm
Where (pattern)
@Metadata
@Metadata.property
@Metadata.property =  val
val += @Metadata
~s / [^] old_val [$] / new_valPBSE Constructs 12
Programmable Use OO and declarative query programming Understandable Encode relationship between program constructs and their metadata Maintainable Express explicit structural information Reusable Leverage naming conventions of framework dependent code Pattern-Based Structural Expressions 13
[object Object]
Completed Work
Reusable Enterprise Metadata with Pattern-Based Structural Expressions (Main research track paper at AOSD’10) ,[object Object],(Main research track paper & SW demo at OOPSLA’09) ,[object Object],Reusing NFCs Across Languages ,[object Object],Roadmap 14
Example: Mortgage  Authorization Application public void displayMaxMortgageEligibility (mortgage.Bank$Display, double);   Code: ...    invokestatic   // jdoGetsalaryLevel;    aload_0    invokestatic   // jdoGetcreditLevel; ...    invokevirtual   // calcMaxMortgage ...    invokevirtual   // getMortgageField public void displayMaxMortgageEligibility     (Display display, double projectedIncrease) { ...   double maxMortgage = calcMaxMortgage(salaryLevel, creditLevel); ...   FrameField mortgageField =         display.getMortgageField();   mortgageField.setVal(maxMortgage); ... } ,[object Object]
 Hinder source-level Prog. tools.15
A SER Script Example 01 02 03 04 05 06 07 08 09 10 11 12 13 Program JDO Using SUPER_JDO_SER Begin EnhClass = OrgClass EnhClass.AddInterface (“javax.jdo.spi.PersistenceCapable”) Var PatternfieldP Begin modifiers= (“private” or “protected”) and not “static” End VarIterator fieldIter = OrgClass.Fields(fieldP) EnhClass.AddMethod(FieldSetReplacer(“jdoSet”, fieldIter)) EnhClass.AddMethod(FieldGetReplacer(“jdoGet”, fieldIter)) End 16
Managing Bytecode Enhancements ,[object Object]
Large scale program transformations
Add, change, remove classes, methods, and fields

Weitere ähnliche Inhalte

Andere mochten auch

Glen Junor Senior Thesis
Glen Junor Senior ThesisGlen Junor Senior Thesis
Glen Junor Senior ThesisGlen Junor
 
Analysis and Design of Lead Salt PbSe/PbSrSe Single Quantum Well In the Infra...
Analysis and Design of Lead Salt PbSe/PbSrSe Single Quantum Well In the Infra...Analysis and Design of Lead Salt PbSe/PbSrSe Single Quantum Well In the Infra...
Analysis and Design of Lead Salt PbSe/PbSrSe Single Quantum Well In the Infra...IJASCSE
 
INORG CHEM Cu-S 2nd paper Prashant
INORG CHEM Cu-S 2nd paper PrashantINORG CHEM Cu-S 2nd paper Prashant
INORG CHEM Cu-S 2nd paper PrashantPrashant Sharma
 
Influence of the annealing temperature on the optical and solid stateproperti...
Influence of the annealing temperature on the optical and solid stateproperti...Influence of the annealing temperature on the optical and solid stateproperti...
Influence of the annealing temperature on the optical and solid stateproperti...Alexander Decker
 
Nanoparticle assay
Nanoparticle assayNanoparticle assay
Nanoparticle assaymarblar
 
Characterisation of NanostructuredLead Selenide (PbSe) Thin Films for Solar D...
Characterisation of NanostructuredLead Selenide (PbSe) Thin Films for Solar D...Characterisation of NanostructuredLead Selenide (PbSe) Thin Films for Solar D...
Characterisation of NanostructuredLead Selenide (PbSe) Thin Films for Solar D...IOSR Journals
 
Semiconductor materials
Semiconductor materialsSemiconductor materials
Semiconductor materialssushil sirsat
 
Introduction to semiconductor materials
Introduction to semiconductor materialsIntroduction to semiconductor materials
Introduction to semiconductor materialsDr. Ghanshyam Singh
 

Andere mochten auch (12)

Glen Junor Senior Thesis
Glen Junor Senior ThesisGlen Junor Senior Thesis
Glen Junor Senior Thesis
 
Analysis and Design of Lead Salt PbSe/PbSrSe Single Quantum Well In the Infra...
Analysis and Design of Lead Salt PbSe/PbSrSe Single Quantum Well In the Infra...Analysis and Design of Lead Salt PbSe/PbSrSe Single Quantum Well In the Infra...
Analysis and Design of Lead Salt PbSe/PbSrSe Single Quantum Well In the Infra...
 
INORG CHEM Cu-S 2nd paper Prashant
INORG CHEM Cu-S 2nd paper PrashantINORG CHEM Cu-S 2nd paper Prashant
INORG CHEM Cu-S 2nd paper Prashant
 
Influence of the annealing temperature on the optical and solid stateproperti...
Influence of the annealing temperature on the optical and solid stateproperti...Influence of the annealing temperature on the optical and solid stateproperti...
Influence of the annealing temperature on the optical and solid stateproperti...
 
Nanoparticle assay
Nanoparticle assayNanoparticle assay
Nanoparticle assay
 
Characterisation of NanostructuredLead Selenide (PbSe) Thin Films for Solar D...
Characterisation of NanostructuredLead Selenide (PbSe) Thin Films for Solar D...Characterisation of NanostructuredLead Selenide (PbSe) Thin Films for Solar D...
Characterisation of NanostructuredLead Selenide (PbSe) Thin Films for Solar D...
 
Semiconductor fundamentals
Semiconductor fundamentalsSemiconductor fundamentals
Semiconductor fundamentals
 
Nanotechnology: Quantum Dots
Nanotechnology: Quantum DotsNanotechnology: Quantum Dots
Nanotechnology: Quantum Dots
 
Quantum dots
Quantum dotsQuantum dots
Quantum dots
 
Semiconductor materials
Semiconductor materialsSemiconductor materials
Semiconductor materials
 
Introduction to semiconductor materials
Introduction to semiconductor materialsIntroduction to semiconductor materials
Introduction to semiconductor materials
 
Quantum dots ppt
Quantum dots pptQuantum dots ppt
Quantum dots ppt
 

Ähnlich wie Mksong proposal-slide

The Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs PublicThe Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs PublicDavid Solivan
 
ACER-ASE2017-slides
ACER-ASE2017-slidesACER-ASE2017-slides
ACER-ASE2017-slidesMasud Rahman
 
Basha_ETL_Developer
Basha_ETL_DeveloperBasha_ETL_Developer
Basha_ETL_Developerbasha shaik
 
Asp.net Lab manual
Asp.net Lab manualAsp.net Lab manual
Asp.net Lab manualTamil Dhasan
 
Agile_goa_2013_clean_code_tdd
Agile_goa_2013_clean_code_tddAgile_goa_2013_clean_code_tdd
Agile_goa_2013_clean_code_tddSrinivasa GV
 
Evolutionary db development
Evolutionary db development Evolutionary db development
Evolutionary db development Open Party
 
Basha_ETL_Developer
Basha_ETL_DeveloperBasha_ETL_Developer
Basha_ETL_Developerbasha shaik
 
Jithin Eapen Curriculum- Vitae
Jithin Eapen Curriculum- VitaeJithin Eapen Curriculum- Vitae
Jithin Eapen Curriculum- VitaeJithin Eapen
 
revanth_talend_resume
revanth_talend_resumerevanth_talend_resume
revanth_talend_resumerevanth raja
 
Lessons learned teaching a groovy grails course
Lessons learned teaching a groovy grails courseLessons learned teaching a groovy grails course
Lessons learned teaching a groovy grails courseJacobAae
 
Datastage developer Resume
Datastage developer ResumeDatastage developer Resume
Datastage developer ResumeMallikarjuna P
 
CMPT470-usask-guest-lecture
CMPT470-usask-guest-lectureCMPT470-usask-guest-lecture
CMPT470-usask-guest-lectureMasud Rahman
 

Ähnlich wie Mksong proposal-slide (20)

The Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs PublicThe Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs Public
 
ACER-ASE2017-slides
ACER-ASE2017-slidesACER-ASE2017-slides
ACER-ASE2017-slides
 
Basha_ETL_Developer
Basha_ETL_DeveloperBasha_ETL_Developer
Basha_ETL_Developer
 
Asp.net Lab manual
Asp.net Lab manualAsp.net Lab manual
Asp.net Lab manual
 
Agile_goa_2013_clean_code_tdd
Agile_goa_2013_clean_code_tddAgile_goa_2013_clean_code_tdd
Agile_goa_2013_clean_code_tdd
 
Evolutionary db development
Evolutionary db development Evolutionary db development
Evolutionary db development
 
Sripriya Nair
Sripriya NairSripriya Nair
Sripriya Nair
 
Tarun_Medimi
Tarun_MedimiTarun_Medimi
Tarun_Medimi
 
Basha_ETL_Developer
Basha_ETL_DeveloperBasha_ETL_Developer
Basha_ETL_Developer
 
Resume_Ganesh_updated
Resume_Ganesh_updatedResume_Ganesh_updated
Resume_Ganesh_updated
 
Deb CV
Deb CV Deb CV
Deb CV
 
Jithin Eapen Curriculum- Vitae
Jithin Eapen Curriculum- VitaeJithin Eapen Curriculum- Vitae
Jithin Eapen Curriculum- Vitae
 
revanth_talend_resume
revanth_talend_resumerevanth_talend_resume
revanth_talend_resume
 
Nitin Paliwal
Nitin PaliwalNitin Paliwal
Nitin Paliwal
 
Lessons learned teaching a groovy grails course
Lessons learned teaching a groovy grails courseLessons learned teaching a groovy grails course
Lessons learned teaching a groovy grails course
 
Magesh_Babu_Resume
Magesh_Babu_ResumeMagesh_Babu_Resume
Magesh_Babu_Resume
 
Datastage developer Resume
Datastage developer ResumeDatastage developer Resume
Datastage developer Resume
 
CMPT470-usask-guest-lecture
CMPT470-usask-guest-lectureCMPT470-usask-guest-lecture
CMPT470-usask-guest-lecture
 
Lalith Thota
Lalith ThotaLalith Thota
Lalith Thota
 
Sreekanth Resume
Sreekanth  ResumeSreekanth  Resume
Sreekanth Resume
 

Mksong proposal-slide

  • 1. Preliminary Dissertation Proposal Exam Facilitating Maintenance and Evolution of Non-Functional Concerns (NFCs) in Modern Enterprise Applications Myoungkyu Song SW Innovations Lab, Dept. of Computer Science, Virginia Tech Committee Members Dr. Eli Tilevich, Chair Virginia Tech Dr. Stephen H. Edwards Virginia Tech Dr. Dennis G. Kafura Virginia Tech Dr. Barbara G. Ryder Virginia Tech Dr. Kwangkeun Yi Seoul National Univ., South Korea SW I-Lab April, 28 2011, 2225@KWII
  • 2. Background 2 Metadata Non-Functional Concerns Annotations @Table Confi- gure Security Testing C# Attributes [Author ( … Enterprise Application Fault Tolerance Persistence XML <column=… <field=…/> Functional Concerns Intermediate Representation (Bytecode) Source Code Compiler
  • 3. Business Logic NFC Example: Persistence +Metadata (XML) public class ManagerBean extends javax.ejb.EntityBean { private Long orderId; private String status; public ManagerBean(){...} ... } <entity> <class name=“ManagerBean” table=“Manager”> <field name=“orderId” primary-key=“true”> <column name=“ORDERID”/> </field> <field name=“status”> <column name=“STATUS”/> </field> ... </entity> 3
  • 4. Problem: Address maintenance and evolution challenges of implementing non-functional concerns (NFCs) declaratively Thesis statement: Domain-specific languages can facilitate the maintenance and evolution of NFC implementations in modern enterprise applications Dissertation Objective 4
  • 5.
  • 6.
  • 7.
  • 8. Pattern-Based Structural Expressions (PBSE) A novel metadata language based on queries against the main program; easier to program, understand, maintain, and reuse. The Structural Enhancement Rule (SER) language A DSL for documenting bytecode enhancements; enables source-level prog. understanding and debugging tools Reusing NFCs Across Languages An approach to reusing NFCs across languages through automated metadata translation Contributions 8
  • 9.
  • 11. Reusable Enterprise Metadata with Pattern-Based Structural Expressions (PBSE)
  • 12. (Main research track paper at AOSD’10)
  • 13. Enhancing Source-Level Programming Tools with An Awareness of Transparent Program Transformations
  • 14. (Main research track paper & SW demo at OOPSLA’09)
  • 15.
  • 16. Business Logic Limitation of Enterprise Metadata 10 + Metadata (Java 5 Annotation) publicclassManagerEJB { public String getOrderId(){ return orderId; } public String getStatus(){ return status; } @Entity @Table(name="Manager") @Id @Column(name="orderId", primaryKey=true) @Column(name="status", primaryKey=false)
  • 17. A PBSE Script Example 01 Metadata MyJPA<Package p> 02 Class c in p 03 Where (public *EJB) 04 c += @Table 05 @Table.name = (c.name =~ s/EJB$//) 06 Column<c> 07 08 Metadata Column<Class c> 09 Field f in c 10 Where (private * *) 11 Method m in c 12 Where((“get” + (f.name =~ s/^[a-z]/[A-Z]/)) == m.name) 13 m += @Column @Column.name = f.name 15 Where(public * get*Id ()) 16 @Column.primKey = true 17 m += @Id 18 MyJPA <"package1"> 11
  • 18.
  • 26. ~s / [^] old_val [$] / new_valPBSE Constructs 12
  • 27. Programmable Use OO and declarative query programming Understandable Encode relationship between program constructs and their metadata Maintainable Express explicit structural information Reusable Leverage naming conventions of framework dependent code Pattern-Based Structural Expressions 13
  • 28.
  • 30.
  • 31.
  • 32. Hinder source-level Prog. tools.15
  • 33. A SER Script Example 01 02 03 04 05 06 07 08 09 10 11 12 13 Program JDO Using SUPER_JDO_SER Begin EnhClass = OrgClass EnhClass.AddInterface (“javax.jdo.spi.PersistenceCapable”) Var PatternfieldP Begin modifiers= (“private” or “protected”) and not “static” End VarIterator fieldIter = OrgClass.Fields(fieldP) EnhClass.AddMethod(FieldSetReplacer(“jdoSet”, fieldIter)) EnhClass.AddMethod(FieldGetReplacer(“jdoGet”, fieldIter)) End 16
  • 34.
  • 35. Large scale program transformations
  • 36. Add, change, remove classes, methods, and fields
  • 37. Limited and well-defined method body changes
  • 38. Replace field accesses with getter/setter
  • 39. Replace method calls with wrappers17
  • 40.
  • 41. Poorly understood, not properly documented
  • 45. Domain Specific Language (DSL) for bytecode enhancements
  • 46. Helps express ,understand, and maintain enhancements18
  • 47.
  • 56. Leveraging SER for Maintenance SER Script SER Parser Enhanced Bytecode Source Code Enhancement Program Constructs Bytecode Processor Src. code Processor Original Source code Bytecode to Src. Map Symbol Table Original Source Code SER Interpreter Enhancement Information 20
  • 57. Symbolic Debugger for Enhanced Bytecode A standard debugger : JDB The newly added methods The skip instruction Our symbolic debugger The changed method The reverse instruction 21
  • 58.
  • 59. Metadata Non-Functional Concerns Annotation @Table Confi- gure Security Testing C# Attributes [Author ( … Enterprise Application Fault Tolerance Persistence XML <column=… <field=…/> Functional Concerns Intermediate Representation (Bytecode) Source Code Compiler Emerging languages(ELs) cross-compiled to mainstream languages(MLs) NFCs, such as security, testing, and persistence implemented in target MLs NFCs specified through metadata EL unable to access ML’s NFC implementations EL programmers waste development effort reimplementing NFCs A novel approach reusing NFC implementations across languages by automatically translating metadata Research Plan 23
  • 60.
  • 61. Step 2: PBSE Meta-metadata
  • 62. Step 3: Generative VisitorExecutable NFCs Functional Concerns 1st 1st 2nd 2nd nth nth
  • 63. Step 1:Metadata Translation Framework 25 Program in Source Language Metadata in Source Language <<tag>> Program Cross- Compile Metadata Cross- Compile Program in Target Language 1...n Metadata in Target Language 1...n <<tag>>
  • 64. MetaMetadata PBSEJavaToXML<PBSE pbse> Where(Class c inpbse) @Table ->"<class/>" @Table.name -> "<class name=" + c.name + "/>" @Table.class -> "<class table=" + c.table + "/>" Where (Field f in pbse) @Field -> "<field/>" @Field.name -> "<field name=" + f.name + "/>" @Column -> "<column/>" @Column.name -> "<column name=" + f.column + "/>" Step 2: PBSE meta-metadata 26 Mapping Mapping
  • 65. Step 3: Generative Visitor 27 <<interface>> PBSEVistitor + visit(PBSEElementPackage elem) + visit(PBSEElementClass elem) + visit(PBSEElementField elem) + visit(PBSEElementMethod elem) ... PBSEVisitorX10toJava PBSEVisitorJavatoXML PBSEVisitorJavatoAnnotation PBSEVisitorX10toCpp ... PBSEElementPackage <<interface>> PBSEElement + accept(PBSEVisitor visitor) PBSEElementClass ...
  • 66. Step 3: Generative Visitor 28 <jdo><package name=“packageName"> <class table="ClassName" name="ClassNameModel" ...> <field name=...> <column name=.../> </field> ... cont’d class PBSEVisitorJavaToXML extends PBSEVisitorAdaptor{ void visit(...){ ... if( elem.tagWith ("@Table")){ out.write( JavaToXML.translate ("@Table","<class/>")); } else if( elem.tagWith ("@Table.name")){ out.write( JavaToXML.translate ("@Table.name","<class table=${value}/>")); } else ...
  • 67.
  • 68. X10 cross-compiles to Java & C++
  • 70. Reuse NFCs of Testing: JUnit (Java Unit Testing Framework) & CppUnit (C++ Unit Testing Framework) Transparent Persistence: JDO (Java Data Objects) & ODB (ORM system for C++) Evaluation Plan 29
  • 71. Reusing UnitTest Framework 30 The class to be tested publicclass IntegrateTest { var parm : double; var expt : double; var integrate : Integrate; defthis(parm : double, expt : double) { this.parm = parm; this.expt = expt; } publicdef testComputeArea() { val result = integrate.computeArea(0, this.parm); TUnit.assertEquals(this.expt, result); } publicstatic def data() { val parm = new Array[double](0..1*0..2); parm(0, 0) = 2; parm(0, 1) = 6.000000262757339; ...}} publicclass Integrate { staticdef computeArea(left:double, right:double) { return recEval(left, (left*left + 1.0) * left, right, (right*right + 1.0) * right, 0); } staticdef recEval(l:double,.. r:double,..) { // .. finish { async{expr1 = recEval(c, fc, r, fr, ar); }; expr2 = recEval(l, fl, c, fc, al); } return expr1 + expr2; }} The method to be tested Parameterizing
  • 72. Reusing UnitTestFramework: PBSE Spec. 31 cont’d MetadataUnitTest<Package p> Class c in p Where(public class *Test) c += @RunWith @RunWith.value = "Parameterized" TestMethod<c> Metadata TestMethod<Class c> Method m in c Where (public def init ()) m += @Before Where (public def finish ()) m += @After Where (public def test* ()) m += @Test Where (public static def data ()) m += @Parameters UnitTest<“package1"> Parameterization
  • 73. Reusing Transparent Persistence 32 publicclass Fmm3d{ def getDirectEnergy() : Double{ val model = new FmmModel(); val directEnergy = finish (SumReducer()){ ateach (p1 in locallyEssentialTrees) { varthisPlaceEnergy : Double = 0.0; for ([x1,y1,z1] in lowestLevelBoxes.dist(here)){ val box1 = lowestLevelBoxes(x1,y1,z1) as FmmLeafBox; for ([atomIndex1] in 0..(box1.atoms.size()-1)){ for (p in uList){ for ([otherBoxAtomIndex] in 0..(boxAtoms.size-1)){ thisPlaceEnergy += atom1.charge * atom2Packed.charge / atom1.centre.distance(atom2Packed.centre); }}} model.setModelId(id(box1.x,box1.y,box1.z)); model.setEnergy(thisPlaceEnergy); //... TP.setFmmModelObj(model); Long Comput- ation Part Transparently Persistent
  • 74.
  • 75.
  • 76. Metadata programming takes increasingly large amounts of time and efforts
  • 77. Source code alone not sufficient to understand the enhanced NFC implementations at intermediate level in modern applications
  • 78. Cross-compiled source language inaccessible to the NFCs implemented by mainstream target onesSignificance 34 cont’d
  • 79.
  • 81. A novel metadata format that is easier to author, understand, reuse, and maintain than existing metadata formats
  • 83. A DSL documenting intermediate code enhancements that facilitates the understanding and debugging of NFC implementations
  • 85. Enable cross-compiled source language programs to reuse target language NFC implementationsSignificance 35
  • 86.
  • 87. Goal 3: will submit ICSE, ECOOP, OOPSLA , AOSD, or TOSEMWork Plan 36 Thank you