Special Thanks to: - PowerPoint PPT Presentation

1 / 67
About This Presentation
Title:

Special Thanks to:

Description:

Title: PowerPoint Presentation Last modified by: Toshihiro Kamiya Created Date: 1/1/1601 12:00:00 AM Document presentation format: – PowerPoint PPT presentation

Number of Views:58
Avg rating:3.0/5.0
Slides: 68
Provided by: selIstOs3
Category:

less

Transcript and Presenter's Notes

Title: Special Thanks to:


1
???????????????????(?????????)
  • ?? ??
  • ????????????
  • Special Thanks to
  • ?? ??(Jaxa), ?? ??(????), ?? ??(????)

2
?????????
  • ???????????????????????????????????????????

3
???????????????
  • ??????????????????????
  • ????????????????
  • ??????????????????????????????????????????????
  • ????????????????????????????????(????)???????

4
?????
  • ?????????
  • ???????????????
  • ??????????????
  • ???????????
  • ??????????
  • ????????????CCFinder
  • Gemini
  • Aries
  • ????
  • ???????????
  • ?????????
  • DP (Dynamic Programming)
  • ???????
  • Simultaneous Editing, Linked Editing
  • Editing Process Patterns

??????????????
??????????????
5
??????????????
  • ??????(??????)
  • ???????
  • ????????
  • ?????????????????
  • ?????
  • ?????
  • ???
  • ????????????
  • ????????????????????????????????
  • (!??????????????)
  • (!????????????????????)

6
??????????????(??)
  • ??????(??????)
  • ??????????????????
  • ????????????????
  • ?????????????????????????
  • ??
  • ?????????????(???)?????
  • ?????????????
  • ?????????????????
  • ????????????????

7
??????????????
???
??????????
??????? ????? ????
???????? ??
??
?????? ????????
8
??????????
  • ??
  • ????????????????????????????????????????????????
  • Dup, Duploc, CloneDR, Balazinska
  • (!????)
  • (??) ??????????
  • ??????????????????????

9
??????????
  • ??????
  • ?????????????????
  • ???????????
  • (!??????????????????????????)
  • ?????????
  • ??????????????????????
  • (!????????????????????)

10
??????????????
  • Simultaneous Editing
  • ???????????????????????????????????????????
  • ???????????????????
  • ?????????????????????????????????(XVCL)
  • ??????

11
??????????
  • ??????????????????????????????????????????

12
?????
  • ?????????
  • ???????????????
  • ??????????????
  • ???????????
  • ??????????
  • ????????????CCFinder
  • Gemini
  • Aries
  • ????
  • ???????????
  • ?????????
  • DP (Dynamic Programming)
  • ???????
  • Simultaneous Editing, Linked Editing
  • Editing Process Patterns

??????????????
??????????????
13
??????????
  • ?????????? ? ??????????
  • ????????????CCFinder
  • ?????Gemini
  • ???????????????Aries

14
????????????CCFinder
  • ??????????????????????????????
  • ?????????????????????????
  • ????????????????????
  • ???C/C, Java, COBOL??????
  • ????????????????
  • ????????????????????

15
???????????
  • ???4???????????
  • (1) ????????????????????
  • (2) ??????????????????????????
  • (3) ??????????
  • (4) ?????????????????????
  • ????????????

16
??????
AFGAFG(JaObject obj) objname afg"
object obj AFGAFG() for(unsigned int
i 0 i lt children.size() i)
if(childreni ! NULL) delete
childreni for(unsigned int i 0 i lt
nodes.size() i) if(nodesi ! NULL)
delete nodesi
(1)?? (2)??? (3)???????? (4)??
17
??????(??)
????? ?????
(1)?? (2)??? (3)???????? (4)??
18
???????
???????????
(1)?? (2)??? (3)???????? (4)??
19
???? ????????
(1)?? (2)??? (3)???????? (4)??
20
???? ????????(??)
(1)?? (2)??? (3)???????? (4)??
21
????????????(??)
(1)?? (2)??? (3)???????? (4)??
22
???? ??
AFGAFG(JaObject obj) objname afg"
object obj AFGAFG() for(unsigned int
i 0 i lt children.size() i)
if(childreni ! NULL) delete
childreni for(unsigned int i 0 i lt
nodes.size() i) if(nodesi ! NULL)
delete nodesi
(1)?? (2)??? (3)???????? (4)??
23
????????
  • ????????????????????????
  • ???????
  • ???????????
  • ????????????
  • ????????????
  • ???
  • ??????????(suffix tree)?????????? O(nm)
  • ???????

24
3??OS????????
25
??????????
  • CCFinder??????????????
  • CCFinder????????????????????????
  • ??????????????????????????????????????????????????
    ??
  • ???????????????!

????????????gnuplot???????
26
????????????Gemini
  • GUI??????????
  • ????????????
  • ??????????????
  • ?????????????????????
  • ????????????????????????
  • ?????????(???????????)?????

27
??????????????????????
  • ?????????????(????????????????)?????????
  • ??
  • RAD ??????????????)????????????????????????
  • ? RAD?????????????????????????????????
  • ???
  • LEN ??????????????????????(?????)
  • LNR ????????????????????????????????(????)
  • ? LNR/LEN???????????????????????
  • POP ?????????????????????
  • DFL ??????????????????????????????????

?????????? ????????
28
RAD?????????????
JDK 1.5.0.01 RAD9
29
LNR/LEN?????????????
  • LNR(/LEN)?com.sun.org.apache.xerces.internal.impl.
    xpath.regex.RegularExpression?2??????
  • private int matchString(Context con, Op op, int
    offset, int dx, int opts)?
  • private int matchCharacterIterator(Context con,
    Op op, int offset, int dx, int opts)
  • ?400?(1500????)

30
LNR/LEN?????????????
  • LNR(/LEN)?
  • com.sun.org.apache.xerces.internal.util.EncodingMa
    p??????????????
  • ?430?(LEN?2000, LNR lt 10)

31
????
  • ????????????????????????

32
?????????????????????????
  • ???????????????????

33
??????????????????????????
34
??????????????
  • (1)(???????)??????????
  • (2)???????
  • (3)?????????????????????

35
?????????????????????
  • ???
  • ???????X ABCDCDEFBCDG
  • ???????Y ABCEFBCDEBCD

36
???????????
37
??????
38
????????????????????
  • ???????????????????????????????????????

39
??????????????
  • Gemini???????????????????????????
  • ?????????????????????????????
  • ?????????????
  • ?????????????????????????????????????

40
???????????????Aries??????
  • ?????????????????????????????.
  • ??????? ??????????????
  • ????????? ???????????????
  • ??????????????????????,???????????????????????????
    ???.

41
???????????????????
?????????
?????????
void methodA(int i) methodZ() System.out.pri
ntln(name name) System.out.println(amount
i) void methodB(int i) methodY() Sys
tem.out.println(name name) System.out.print
ln(amount i)
void methodA(int i) methodZ() methodC(i) v
oid methodB(int i) methodY() methodC(i) vo
id methodC(int i) System.out.println(name
name) System.out.println(amount i)
42
?????????????????????
?????????
?????????
Employee
Employee
getName()
Engineer
Salesman
Engineer
Salesman
getName()
getName()
43
?????????????????????????(1/2)
  • ???2?????????
  • ?????? ????????????????,???????????(??,??)?
  • ??????????? ?????????????????????????????????
  • ??????????????????

44
?????RVK(S),RVN(S)
45
?????DCH(S)
46
???Aries
  • ???? Java
  • ????????????????????????CCFinder???
  • ???????? Java
  • ??,?????????????????????????????????JavaCC??????
  • ????JDK1.4???VM????????
  • ???
  • ??? ?15000?
  • GUI? ?8000?
  • ????GUI????????,?????????????????????

47
????????
??????????
??????????????????
48
????????????
?????????
???????
49
??????
  • Ant (version 1.6.0)
  • ??
  • ???????? 627?
  • ??? ?18??
  • ?????????????30?
  • 151????????????
  • ????
  • FreeBSD 4.9
  • CPU Xeon2.8G2
  • ??? 4GB

50
????Ant(???????)
  • ????????????????????????????????3?
  • ???????????
  • ????????????????????????????????????
  • ????????1???????????
  • ?????????DCH????1???????.
  • ??????????????????????1??????????
  • ?????????RVK????2???????.
  • 151?????32??????

51
????Ant(???????)
  • 32??????????

if (name null) if (other.name !
null) return false        
else if (!name.equals(other.name))
return false
if (!isChecked()) // make sure we don't
have a circular reference here        Stack stk
new Stack()        stk.push(this)        die
OnCircularReference(stk, getProject()) 
?? ?
???? 3?
??????????????? 18?
???????????????? 7?
??? 4?
52
?????
  • ?????????
  • ???????????????
  • ??????????????
  • ???????????
  • ??????????
  • ????????????CCFinder
  • Gemini
  • Aries
  • ????
  • ???????????
  • ?????????
  • DP (Dynamic Programming)
  • ???????
  • Simultaneous Editing, Linked Editing
  • Editing Process Patterns

??????????????
??????????????
53
??????????????
?? ??, ?????????????????????????????????,
????????? Vol. 87, No. 9, pp. 791-797 (2004-9).
54
??????????
  • (??1)???????????????????????????????????????????
  • (!????????????????????)
  • (??2)???????????????????????????????????????????
  • (!???????????????????????????????)
  • (??3)2????????????????????????????????????????????
    ????
  • (!?????????????????????)

55
???? CloneDR
  • ?????????????? CloneDR
  • AST???????
  • ?????????????
  • ??
  • ?????????????????????
  • ?????O(n2) nAST?????

I.D. Baxter, A. Yahin, L. Moura, M. SantAnna,
and L. Bier, Clone Detection Using Abstract
Syntax Trees, Proc. IEEE International
Conference on Software Maintenance (ICSM) 98,
pp. 368-377, Bethesda, Maryland, Nov. 1998.
56
CloneDR????????????????
  • (1) ?????????????AST???
  • (2) ?????????????????
  • AST??????????????
  • ???????????????????
  • (3) ?????????????????????????
  • ???????????????????????????????????
  • ???????????????????

void f() x 0 a 1 b 2 c
3 w 4 void g() y 2 a
1 b 2 c 3 i 5
57
CloneDR(??)
58
???? Balazinska
  • ????????????
  • DP???????
  • ????????
  • (1)????????????????????????????????????????????
  • (2)???????????DP??????????????????????????????

M. Balazinska, E. Merlo, M. Dagenais, B. Lagüe,
and K.A. Kontogiannis, Measuring Clone Based
Reengineering Opportunities, Proc. 6th IEEE
Intl Symposium on Software Metrics (METRICS
99), pp. 292-303, Boca Raton, Florida, Nov. 1999.
59
???????
  • ???????????????????????????????
  • ????????????????
  • ??????????
  • ????????
  • McCabe??????????
  • Balazinska????????????????1??????????????????????
    ?????
  • (!???????????????????)
  • (!??????????????????????????????????)

60
?????(Dynamic Programming)
  • Diff???????
  • ?????2??????edit distance?????
  • ????????????????????
  • ?????O(mn) (m, n length of sequences)

61
Linked Editing
  • (1)????????????
  • (2)???????????????????????????????
  • (3)??????????????????????????????????
  • (4)??????????????????????????

Michael Toomim, Andrew Begel, Susan L. Graham,
Managing Duplicated Code with Linked Editing,
Proc. IEEE Symposium on Visual Languages and
Human-Centric Computing (VL/HCC'04) pp. 173-180
62
Editing Process Patterns
  • ???????????????????????
  • Support for Programmer Observation
  • Support for CP Programming
  • Support for Program Understanding
  • Support for Programming by Demonstration
  • Miryung Kim, Vibha Sazawal, and David Notkin,
    Supporting Uses of Editing Process Patterns,
    Workshop on Behavior Based User Interface
    Customization,Intelligent User Interface, Jan
    13-16, 2004

63
(No Transcript)
64
  • 1 S.F. Altschul, W. Gish, W. Miller, E. Myers,
    D. Lipman, Basic Local Alignment Tool, Journal
    of Molecular Biology, 215, pp. 403-410, (1990).
  • 2 A. Aiken, A System for Detecting Software
    Plagiarism (Moss Homepage), http//www.cs.berkele
    y.edu/aiken/moss.html Last visited 1st Feb.
    2003.
  • 3 B. S. Baker, A Program for Identifying
    Duplicated Code, Computing Science and
    Statistics, 2449-57, 1992.
  • 4 B. S. Baker, On Finding Duplication and
    Near-Duplication in Large Software Systems,
    Proc. IEEE Working Conf. on Reverse Engineering,
    pp. 86-95, July 1995.
  • 5 B. S. Baker, Parameterized Duplication in
    Strings Algorithms and an Application to
    Software Maintenance, SIAM Journal on Computing,
    26(5)1343-1362, 1997.
  • 6 M. Balazinska, E. Merlo, M. Dagenais, B.
    Lagüe, and K.A. Kontogiannis, Measuring Clone
    Based Reengineering Opportunities, Proc. 6th
    IEEE Intl Symposium on Software Metrics (METRICS
    99), pp. 292-303, Boca Raton, Florida, Nov.
    1999.
  • 7 M. Balazinska, E. Merlo, M. Dagenais, B.
    Lagüe, and K.A. Kontogiannis, Partial Redesign
    of Java Software Systems Based on Clone
    Analysis, Proc. 6th IEEE Working Conference on
    Reverse Engineering (WCRE 99), pp. 326-336,
    Atlanta, Georgia, Oct. 1999.
  • 8 I.D. Baxter, A. Yahin, L. Moura, M.
    SantAnna, and L. Bier, Clone Detection Using
    Abstract Syntax Trees, Proc. IEEE International
    Conference on Software Maintenance (ICSM) 98,
    pp. 368-377, Bethesda, Maryland, Nov. 1998.
  • 9 K.W., Church, and J.I. Helfman, Dotplot A
    Program for Exploring Self-Similarity in Millions
    of Lines of Text and Code, Journal of
    Computational and Graphical Statistics, V2, N2,
    pp. 153-174 (1993).
  • 10 James O. Coplien, Multi-Paradigm Design for
    C, Pearson Education (2001). ?????O????(?),
    ?? ??, ?? ??, ??? ??(?), ????????????,
    ???????????? (2001).
  • 11 Elizabeth Burd, John Bailey, Evaluating
    Clone Detection Tools for Use during Preventative
    Maintenance, Proc. 2nd IEEE International
    Workshop on Source Code Analysis and Manipulation
    (SCAM) 2002, pp. 36-43. Montreal, Canada, Oct.
    2002.
  • 12 S. Ducasse, M. Rieger, and S. Demeyer, A
    Language Independent Approach for Detecting
    Duplicated Code, Proc. IEEE International
    Conference on Software Maintenance (ICSM) 99,
    pp. 109-118. Oxford, England. Aug. 1999.
  • 13 M. Fowler, Refactoring improving the design
    of existing code, Addison Wesley, 1999.
  • 14 FreeBSD. http//www.freebsd.org/.
  • 15 D. Gusfield, Algorithms on Strings, Trees,
    and Sequences, pp. 89-180. Cambridge University
    Press, 1997.
  • 16 T. Imai, Y. Kataoka, and T. Fukaya,
    Evaluating Software Maintenance Cost Using
    Functional Redundancy Metrics, Proc. 26th
    International Computer Software and Applications
    Conference (Compsac 2002), pp.299-306, 2002.
  • 17 J.H. Johnson, Identifying Redundancy in
    Source Code Using Fingerprints, Proc. IBM Centre
    for Advanced Studies Conference (CAS CON) 93,
    pp. 171-183, Toronto, Ontario. Oct. 1993.
  • 18 J.H. Johnson, Substring Matching for Clone
    Detection and Change Tracking, Proc. IEEE Intl
    Conf. on Software Maintenance (ICSM) 94, pp.
    120-126. Victoria, British Columbia, Canada. Sep.
    1994.

65
19 J.H. Johnson, Using Textual Redundancy to
Understand Change, Proc. IBM Centre for Advanced
Studies Conference (CASCON) '95, pp. 34-40, Nov.
1999. 20 T. Kamiya, S. Kusumoto, and K. Inoue,
CCFinder A Multi-Linguistic Token-Based Code
Clone Detection System for Large Scale Source
Code, IEEE Transactions on Software Engineering,
vol. 28, no. 7, pp. 654-670, (2002-7). 21 ?? ?
(?), ??????????, ???? (1997). 22 R. Komondoor
and S. Horwitz, Using Slicing to Identify
Duplication in Source Code, Proc. of the 8th
International Symposium on Static Analysis(SAS),
LNCS 2126, pp. 40-56, Springer (2001). 23 K.A.
Kontogiannis, R. De Mori, E. Merlo, M. Galler,
and M. Bernstein, Pattern Matching Techniques
for Clone Detection and Concept Detection,
Journal of Automated Software Engineering Kluwer
Academic Publishers, vol. 3, pp. 770-108,
1996. 24 Jens Krinke, Identifying Similar Code
with Program Dependence Graphs, Proc. of the 8th
Working Conference on Reverse Engineering,
2001. 25 B. Laguë, E.M. Merlo, J. Mayrand, and
J. Hudepohl, Assessing the Benefits of
Incorporating Function Clone Detection in a
Development Process, Proc. IEEE Intl Conf. on
Software Maintenance (ICSM) 97, pp. 314-321,
Bari, Italy. Oct. 1997. 26 Linux Online.
http//www.linux.org/. 27 A. Marcus, and J.I.,
Maletic, Identification of High-Level Concept
Clones in Source Code, Proc. Automated Software
Engineering (ASE'01), San Diego, pp. 107-114,
Nov. 2001, 28 J. Mayrand, C. Leblanc, and E.
M. Merlo, Experiment on the Automatic Detection
of Function Clones in a Software System Using
Metrics, Proc. IEEE Intl Conference on Software
Maintenance (ICSM) 96, pp. 244-253, Monterey,
California, Nov. 1996. 29 ?? ??, ?? ??, ?? ??,
?? ??, ???????????????????????????, ?????????,
vol. 44, No. 8, pp. 2178-2188 (2003-8). 30
NetBSD Project. http//www.netbsd.org/. 31 ??
??, COBOL?? ???, ??? (1986). 32 L. Prechelt, G.
Malpohl, M. Philippsen, JPlag Finding
Plagiarisms Among a Set of Programs, Technical
Report, University of Karlsruhe, Department of
Informatics, 2000. 33 ?? ?, ???????????????????
??, ??????????? ?7?????????????????????????????(S
PA 2004), pp. 1-8, (2004-3). 34 Will Tracz,
Confessions of a Used Program Salesman ---
Institutionalizing Software Reuse ---, Pearson
Education (1995). W. ???? (?), ?? ??, ? ??, ?? ??
(?), ???????????? --- ????????????????? ---,
???????????? (2001). 35 ?? ??, ?? ?, ?? ??, ??
??, ??????????????????????SMMT, ???????????,
vol. J85-D-I, no. 6, pp. 503-511. (2002-6). 36
?? ??, ?? ??, ?? ??, ?? ??, ?????????????????????
?, ??????????? D-I, Vol. J86-D-I, No. 12, pp.
863-871 (2003-12).
66
????????????????
???
??????????
Code Decay???
???????? ??
?????? ????????
????
67
(??)?????????????????????
  • ????????????
  • ????????????????????????????1
  • ???????????????????6
  • ???????
  • ?????????????????
  • ???????(???)????
  • ??????????????????
  • ????????????
  • ????????????????
Write a Comment
User Comments (0)
About PowerShow.com