Download presentation
Presentation is loading. Please wait.
Published byWilliam Rogers Modified over 9 years ago
1
MARTIN P. ROBILLARD, McGill University, Canada ACM Transactions on Software Engineering and Methodology (TOSEM), vol. 17, no. 4, August 2008 Presented by Celal Ziftci, University of California San Diego CSE-294@UCSD-Spring’10 May 21 2010
2
Part of this presentation explains the journal paper as it stands, however I have added model-driven-development as a motivation and suggestions to make use of the paper’s approach in a model-driven-development context.
3
Motivation ◦ w.r.t. MDD ◦ Example Approach ◦ Heuristics ◦ Definitions ◦ Sample run on our example ◦ Case-study results Why do we care?
4
Hopefully, a system has proper models that represent it in a true sense for round-trip engineering ◦ We can associate models to code ◦ We can associate code to models But reality is not always so in many real-life projects… ◦ Many legacy systems have code, but no models If MDD was used up-start, this would not happen, but here we are now… So, what do we do, if we need to make changes to/understand the system ◦ Fixing a bug ◦ Adding new functionality ◦ New programmer in the team
5
Big systems have so many lines of code ◦ Software running in a car 10 million lines of code 10 ECUs communicating with each other For our use-case, let us pick a simplified car ◦ Our focus: Understanding acceleration & braking
9
Note that, in our case, we start from source code… We would like to explore parts of code that lead to the part we are interested in step-by-step: in waves Can’t we do this in tools like Eclipse IDE already? ◦ Yes and No… ◦ Yes: Eclipse can show all code paths leading to a method/field ◦ No: No ranking in the relevancy of results No extra custom dependencies (for eg. who writes to a field?)
10
Adapted from [1]
11
Specificity Reinforcement 6 is more specific 2 is more specific 6 is reinforced 2 is reinforced [1]
13
Consider a specific relation: called-by called-by called-by T = called
14
A: S forward ={c,d,e} ◦ c: S backward ={A} ◦ d: S backward ={A} ◦ e: S backward ={A, B, f} B: S forward ={e} ◦ e: S backward ={A, B, f} degree c = 0.76 * 0.75 = 0.57 degree d = 0.76 * 0.75 = 0.57 degree e = max(0.69 * 0.75, 0.9 * 0.25) = 0.52 [1]
15
We did the sample run for called-by dependency. Same calculations done for other dependencies as well (for eg accessed-by for fields) All the suggestion sets are combined using fuzzy sets (similar to what we did in our example)
16
And more similar results… [1]
17
This tool (and other similar ones) makes it easier to follow the approach effective developers were observed to follow [2]. ◦ As the developer uses this tool in waves, the tool can record which elements were chosen to be worthy of interest and further investigation. ◦ Then, the tool can generate models out of the relationships between those elements automatically ◦ The developer already investigated and marked what is relevant, and the tool saves him from the burden of creating a model that explains what he did already. Using this approach, we can do round-trip engineering. ◦ Even if we go the forward direction (models to code), we can use this approach to check if what we believe to exist in code is the reality
18
Thank you! Now any further questions?
19
[1] Robillard, M. P. 2008. Topology analysis of software dependencies. ACM Trans. Softw. Eng. Methodol. 17, 4 (Aug. 2008), 1-36. DOI=http://doi.acm.org/10.1145/13487689. 13487691 [2] Robillard,M. P.,Coelho,W., Andmurphy,G. C. 2004. How effective developers investigate sourcecode: An exploratory study. IEEE Trans. Softw. Engin. 30, 12, 889–903.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.