Presentation is loading. Please wait.

Presentation is loading. Please wait.

Supported by: Joint MSc curriculum in software engineering European Union TEMPUS Project CD_JEP-18035-2003 Developing New Material for the Software Evolution.

Similar presentations


Presentation on theme: "Supported by: Joint MSc curriculum in software engineering European Union TEMPUS Project CD_JEP-18035-2003 Developing New Material for the Software Evolution."— Presentation transcript:

1 Supported by: Joint MSc curriculum in software engineering European Union TEMPUS Project CD_JEP-18035-2003 Developing New Material for the Software Evolution Module Miloš Radovanović and Zoran Budimac

2 SE-O-01 – Software Evolution 2 Software evolution  Attractive course (sexy name for software maintenance)  Theoretical foundation (temporal logic, transformation systems)  Supported by tools  Easily understandable goals (i.e., convert an assembler program to a higher-level equivalent)

3 SE-O-01 – Software Evolution 3 Old Structure of the Course  Topic 1: Rationales and taxonomies for Software Evolution  Topic 2: Evolution within development life cycles  Topic 3: Lehman's laws of evolution software aging D.L. Parnas Lehman's laws of software evolution  Topic 4: Program comprehension  Topic 5: Managerial aspects of software evolution  Topic 6: Refactoring object-oriented software  Topic 7: Aspect Oriented Software Evolution  Topic 8: Formal Transformations

4 SE-O-01 – Software Evolution 4 New Course Structure: Main Idea  Make the course more focused on Techniques for program comprehension and reverse engineering The approach using formal transformations, FermaT and FME tools  Practically, expand Topic 8: Formal Transformations

5 SE-O-01 – Software Evolution 5 New Course Structure  Topic 1: Software Evolution  Topic 2: Program Comprehension  Topic 3: Transformation Theory  Topic 4: Abstraction  Topic 5: Slicing  Topic 6: Wrapping  Topic 7: Assembler Migration

6 SE-O-01 – Software Evolution 6 A More Detailed Look  Topic 1: Software Evolution (Introductiory) Motivation Definitions, taxonomy Lehman's laws of evolution, Parnas briefly Lifecycles (software process)  Topic 2: Program Comprehension (Introductiory) Several simple illustrative examples Short introduction to techniques: abstraction, slicing Introduction to tools: FermaT, FME Motivatory introduction to software metrics Flowcharts  Topic 3: Transformation Theory Motivation: retargetting, porting, migration WSL language, semantics Weakest preconditions Denotational semantics Proving the correctness of program transformations

7 SE-O-01 – Software Evolution 7 A More Detailed Look  Topic 4: Abstraction Type 1: Abstraction as the opposite of refinement Type 2: Replacing program parts with higher level operations Type 3: Translation of data The use of software metrics Examples  Topic 5: Slicing Motivation: program comprehension, abstraction FermaT slicers: simple, syntactic, semantic Examples  Topic 6: Wrapping Java application project: wrapping compilers for SvetoVid  Topic 7: Assembler Migration Application project: a translator from a subset of x86 assembler to WSL

8 SE-O-01 – Software Evolution 8 Spring 2008, Novi Sad  Course was held in “supervised” mode Primary supervisor: Miloš Radovanović Secondary supervisor: Zoran Budimac  Chronology of activities: Reading assignments of introductory material (selected slides, book chapters) Homework programming and transformation tasks (Fermat & FME basics) Test Projects in one of the 7 topics. Two students could jointly do one project. Activities:  Creating slides  FermaT & FME examples  Programming case studies Final grade based on the test and quality of project

9 SE-O-01 – Software Evolution 9 Spring 2008, Novi Sad  Generally, students had three types of attitudes towards the course: Try to do just enough to pass Do the job correctly, but not much more Do more than asked  This was reflected in the final grade distribution (6=worst, 10=best): 10 – five students (three projects) 9 – two students (one project) 7 – two students (one project) Two students dropped out

10 SE-O-01 – Software Evolution 10 Results  Topic 1: Software Evolution Slides (not usable)  Topic 2: Program Comprehension Slides with examples (usable)  Topic 3: Transformation Theory Slides (usable)  Topic 4: Abstraction -  Topic 5: Slicing Slides with examples (usable)  Topic 6: Wrapping -  Topic 7: Assembler Migration Application project with seminar paper

11 SE-O-01 – Software Evolution 11 Assembler Migration Project  Translator from a subset of x86 assembler into WSL (action system)  Transformations applied on WSL programs to make them more structured  Example assembler programs: Greatest commond divisor (GCD) Array sum Factoriel

12 SE-O-01 – Software Evolution 12 GCD: Assembler Version.model small.code movax,12 movbx,8 compare: cmpax,bx jetheend jagreater subbx,ax jmpcompare greater: subax,bx jmpcompare theend: nop end

13 SE-O-01 – Software Evolution 13 GCD: Translated to WSL ACTIONS A_S_start: A_S_start == ax := 12; bx := 8; CALL compare END compare == IF ax = bx THEN flag_z := 1 ELSE flag_z := 0 FI; IF ax < bx THEN flag_c := 1 ELSE flag_c := 0 FI; IF flag_z = 1 THEN CALL theend FI; IF flag_z = 0 AND flag_c = 0 THEN CALL greater FI; IF bx = ax THEN flag_z := 1 ELSE flag_z := 0 FI; IF bx < ax THEN flag_c := 1 ELSE flag_c := 0 FI; bx := bx - ax; CALL compare; CALL greater END greater == IF ax = bx THEN flag_z := 1 ELSE flag_z := 0 FI; IF ax < bx THEN flag_c := 1 ELSE flag_c := 0 FI; ax := ax - bx; CALL compare; CALL theend END kraj == SKIP; END ENDACTIONS

14 SE-O-01 – Software Evolution 14 GCD: After FermaT Transformations ax := 12; bx := 8; fl_flag1 := 0; WHILE fl_flag1 = 0 DO IF ax > bx THEN ELSIF ax >= bx THEN {ax = bx}; fl_flag1 := 1 ELSE FI OD

15 SE-O-01 – Software Evolution 15 Examples Before and After Transformations GCDArray sumFactoriel MetricBeforeAfterDiff (%)BeforeAfterDiff (%)BeforeAfterDiff (%) McCabe1011+1067+161215+25 Statements5241-225542-249977-23 CFDF8248-428044-4512882-36 Nodes302218-18300213-29504395-22 Structure450291-36483337-31787548-31

16 SE-O-01 – Software Evolution 16 To Do  Make slides Topic 4: Abstraction Topic 6: Wrapping  Fix slides Topic 1: Software Evolution  Enhance assembler migration project (make it usable for teaching)  More coursework  Exchange material with De Montfort University: Martin Ward, Hongji Yang, Hussein Zedan


Download ppt "Supported by: Joint MSc curriculum in software engineering European Union TEMPUS Project CD_JEP-18035-2003 Developing New Material for the Software Evolution."

Similar presentations


Ads by Google