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 New Topics for Software Evolution Miloš Radovanović.

Similar presentations


Presentation on theme: "Supported by: Joint MSc curriculum in software engineering European Union TEMPUS Project CD_JEP-18035-2003 New Topics for Software Evolution Miloš Radovanović."— Presentation transcript:

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

2 SE-O-01 – Software Evolution 2 Current 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

3 SE-O-01 – Software Evolution 3 Current Course Structure: The Focus  The course is focused on Techniques for  Program comprehension  Reengineering Particularly the reverse engineering step The approach using formal transformations, FermaT and FME tools

4 SE-O-01 – Software Evolution 4 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

5 SE-O-01 – Software Evolution 5 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

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

7 SE-O-01 – Software Evolution 7 Current and Future Goals  Complete “in progress” topics  Because of their importance, devote a separate topic to software metrics  Extend material with topics not strictly related to reverse engineering or formal methods, but still relevant to software evolution Seamlessy integrate with existing material, possibly allowing “optional topics”

8 SE-O-01 – Software Evolution 8 New Material  Topic: Software Metrics Slides with examples (usable)  Topic: Open Source Software Evolution Slides (usable)  Topic: Refactoring Slides with examples (in progress)

9 SE-O-01 – Software Evolution 9 Topic: Software Metrics  Software metrics are (to be) referred to from almost all other topics, thus we felt they deserve a topic on their own  Important for topics: Program Comprehension Abstraction Slicing Assembler Mirgation Open Source Software Evolution Refactoring  Current slides are usable, but may be changed as the needs of other topics dictate

10 SE-O-01 – Software Evolution 10 Topic: Software Metrics  Contents: LOC Metrics Function Points Cyclomatic Complexity Information Flow Halstead’s Metrics OO Metrics (CK & MOOD) Software Package Metrics

11 SE-O-01 – Software Evolution 11 Topic: Open Source Software Evolution  Suitable for an end discussion, as it challenges many established views, i.e., Lehman’s Laws (the ones in bold): Law 1: Continuing change Law 2: Increasing complexity Law 3: Self regulation Law 4: Conservation of organizational stability (invariant work rate) Law 5: Conservation of familiarity Law 6: Continuing growth Law 7: Declining quality Law 8: Feedback system

12 SE-O-01 – Software Evolution 12 Topic: Open Source Software Evolution  Observations: When Lehman’s laws were proposed  Most of the systems were developed in-house by a dedicated group of engineers  Hierarchical management control  Waterfall-like process Laws are difficult to test empirically, since they are informal statements Growth patterns of OSS less regular than those of proprietary systems OSS evolutionary trends more difficult to predict Discontinuity in OSS evolution

13 SE-O-01 – Software Evolution 13 Illustration: Change in OSS  Wu (2006) analyzed 3 OSS, incl. Linux  Evolution spectrograph visualization technique x-axis: time y-axis: files ordered by creation date Horizontal lines follow a property (e.g. no. of dependencies)  Property change – darker color Emergent vertical lines indicate major changes in the system  Change in OSS is segmented

14 SE-O-01 – Software Evolution 14 Outgoing dependency change

15 SE-O-01 – Software Evolution 15 Summary  Software Evolution is a vibrant field, with regularly emerging new topics  Besides OSS Evolution and Refactoring, other possible topics include: Clone detection Fault detection Architecture evolution Managerial aspects …  We will focus our efforts on topics which enable active participation of students, and provide usable practical knowledge


Download ppt "Supported by: Joint MSc curriculum in software engineering European Union TEMPUS Project CD_JEP-18035-2003 New Topics for Software Evolution Miloš Radovanović."

Similar presentations


Ads by Google