New Topics for Software Evolution Milo Radovanovi and

  • Slides: 15
Download presentation
New Topics for Software Evolution Miloš Radovanović and Zoran Budimac Supported by: Joint MSc

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

Current Course Structure o o o o Topic Topic 1: 2: 3: 4: 5:

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

Current Course Structure: The Focus o The course is focused on n Techniques for

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

A More Detailed Look o o o Topic 1: Software Evolution (Introductiory) n Motivation

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

A More Detailed Look o o Topic 4: Abstraction n Type 1: Abstraction as

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

Current State of Material o Topic 1: Software Evolution n o Topic 2: Program

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

Current and Future Goals o o o Complete “in progress” topics Because of their

Current and Future Goals o o o 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 n Seamlessy integrate with existing material, possibly allowing “optional topics” SE-O-01 – Software Evolution 7

New Material o Topic: Software Metrics n o Topic: Open Source Software Evolution n

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

Topic: Software Metrics o o Software metrics are (to be) referred to from almost

Topic: Software Metrics o o 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: n n n o 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 SE-O-01 – Software Evolution 9

Topic: Software Metrics o Contents: n n n n LOC Metrics Function Points Cyclomatic

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

Topic: Open Source Software Evolution o Suitable for an end discussion, as it challenges

Topic: Open Source Software Evolution o Suitable for an end discussion, as it challenges many established views, i. e. , Lehman’s Laws (the ones in bold): n n n n 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 SE-O-01 – Software Evolution 11

Topic: Open Source Software Evolution o Observations: n When Lehman’s laws were proposed o

Topic: Open Source Software Evolution o Observations: n When Lehman’s laws were proposed o o o n n 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 SE-O-01 – Software Evolution 12

Illustration: Change in OSS o o Wu (2006) analyzed 3 OSS, incl. Linux Evolution

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

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

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

Summary o o Software Evolution is a vibrant field, with regularly emerging new topics

Summary o o Software Evolution is a vibrant field, with regularly emerging new topics Besides OSS Evolution and Refactoring, other possible topics include: n n n o 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 SE-O-01 – Software Evolution 15