Download presentation
Presentation is loading. Please wait.
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
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.