Mining Evolution Data of a Product Family Michael Fischer, Johann - - PowerPoint PPT Presentation

mining evolution data of a product family
SMART_READER_LITE
LIVE PREVIEW

Mining Evolution Data of a Product Family Michael Fischer, Johann - - PowerPoint PPT Presentation

Mining Evolution Data of a Product Family Michael Fischer, Johann Oberleitner, Jacek Ratzinger Vienna University of Technology Harald Gall University of Zurich software evolution & architecture lab MSR05 p. 1/10 Product Family


slide-1
SLIDE 1 software evolution & architecture lab

Mining Evolution Data of a Product Family

Michael Fischer, Johann Oberleitner, Jacek Ratzinger Vienna University of Technology Harald Gall University of Zurich

MSR’05 – p. 1/10

slide-2
SLIDE 2 software evolution & architecture lab

Product Family Evolution

◮ Objective: find relationships between variants of a product line ◮ Approach:

  • Use lexical search in change log messages
  • Retrieve change dependencies from RHDB
  • Visualize findings about change dependencies and information

flow between source code directories via Multidimensional Scaling (MDS) ◮ Case study:

  • Product variants: FreeBSD, NetBSD, OpenBSD (30.000 - 60.000

files)

  • Direct copies of CVS systems
  • Used keywords: freebsd, netbsd, linux

MSR’05 – p. 2/10

slide-3
SLIDE 3 software evolution & architecture lab

Process

✁ ✁ ✁ ✁ ✁ ✁ ✁ ✁ ✂ ✂ ✂ ✂ ✂ ✂ ✂ ✂ ✂ ✄ ✄ ✄ ✄ ✄ ✄ ✄ ✄ ✄ ☎ ☎ ☎ ☎ ☎ ☎ ☎ ☎ ☎ ☎ ☎ ☎ ✆ ✆ ✆ ✆ ✆ ✆ ✆ ✆ ✆ ✝ ✝ ✝ ✝ ✝ ✝ ✝ ✝ ✝ ✞ ✞ ✞ ✞ ✞ ✞ ✞ ✞ ✞ ✟ ✟ ✟ ✟ ✟ ✟ ✟ ✟ ✟ ✠ ✠ ✠ ✠ ✠ ✠ ✠ ✠ ✠ ✡ ✡ ✡ ✡ ✡ ✡ ✡ ✡ ✡ ☛ ☛ ☛ ☛ ☛ ☛ ☛ ☛ ☛ ☞ ☞ ☞ ☞ ☞ ☞ ☞ ☞ ☞ ✌ ✌ ✌ ✌ ✌ ✌ ✍ ✍ ✍ ✍ ✍ ✍ ✍ ✍ ✍ ✎ ✎ ✎ ✎ ✎ ✎ ✏ ✏ ✏ ✏ ✏ ✏ ✏ ✏ ✏ ✑ ✑ ✑ ✑ ✑ ✑ ✒ ✒ ✒ ✒ ✒ ✒ ✒ ✒ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✔ ✔ ✔ ✔ ✔ ✔ ✕ ✕ ✕ ✕ ✕ ✕ ✖ ✖ ✖ ✖ ✖ ✖ ✖ ✖ ✗ ✗ ✗ ✗ ✗ ✗ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✙ ✙ ✙ ✙ ✙ ✙ ✙ ✙ ✙ ✙ ✙ ✙ ✚ ✚ ✚ ✚ ✚ ✚ ✚ ✚ ✚ ✚ ✚ ✚ ✛ ✛ ✛ ✛ ✛ ✛ ✛ ✛ ✛ ✜ ✜ ✜ ✜ ✜ ✜ ✜ ✜ ✜ ✜ ✜ ✜ ✢ ✢ ✢ ✢ ✢ ✢ ✢ ✢ ✢ ✣ ✣ ✣ ✣ ✣ ✣ ✣ ✣ ✣ ✣ ✣ ✣ ✤ ✤ ✤ ✤ ✤ ✤ ✤ ✤ ✤ ✤ ✤ ✤ ✥ ✥ ✥ ✥ ✥ ✥ ✥ ✥ ✥ ✥ ✥ ✥ ✦ ✦ ✦ ✦ ✦ ✦ ✦ ✦ ✦ ✦ ✦ ✦ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ★ ★ ★ ★ ★ ★ ★ ★ ★ ✩ ✩ ✩ ✩ ✩ ✩ ✩ ✩ ✩ ✪ ✪ ✪ ✪ ✪ ✪ ✪ ✪ ✪ ✫ ✫ ✫ ✫ ✫ ✫ ✫ ✫ ✫ ✬ ✬ ✬ ✬ ✬ ✬ ✬ ✬ ✬ ✭ ✭ ✭ ✭ ✭ ✭ ✭ ✭ ✭ ✮ ✮ ✮ ✮ ✮ ✮ ✮ ✮ ✮ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✰ ✰ ✰ ✰ ✰ ✰ ✱ ✱ ✱ ✱ ✱ ✱ ✱ ✱ ✲ ✲ ✲ ✲ ✲ ✲ ✳ ✳ ✳ ✳ ✳ ✳ ✳ ✳ ✴ ✴ ✴ ✴ ✴ ✴ ✵ ✵ ✵ ✵ ✵ ✵ ✶ ✶ ✶ ✶ ✶ ✶ ✷ ✷ ✷ ✷ ✷ ✷ ✸ ✸ ✸ ✸ ✸ ✸ ✹ ✹ ✹ ✹ ✹ ✹ ✺ ✺ ✺ ✺ ✺ ✺ ✻ ✻ ✻ ✻ ✻ ✻ ✻ ✻ ✻ ✻ ✻ ✻ ✼ ✼ ✼ ✼ ✼ ✼ ✽ ✽ ✽ ✽ ✽ ✽ ✽ ✽ ✽ ✽ ✽ ✽ ✾ ✾ ✾ ✾ ✾ ✾ ✿ ✿ ✿ ✿ ✿ ✿ ✿ ✿ ✿ ✿ ✿ ✿ ❀ ❀ ❀ ❀ ❀ ❀ ❁ ❁ ❁ ❁ ❁ ❁ ❁ ❁ ❁ ❂ ❂ ❂ ❂ ❂ ❂ ❃ ❃ ❃ ❃ ❃ ❃ ❃ ❃ ❃ ❃ ❃ ❃ ❄ ❄ ❄ ❄ ❄ ❄ ❅ ❅ ❅ ❅ ❅ ❅ ❅ ❅ ❅ ❆ ❆ ❆ ❆ ❆ ❆ ❇ ❇ ❇ ❇ ❇ ❇ ❇ ❇ ❇ ❇ ❇ ❇ ❈ ❈ ❈ ❈ ❈ ❈ ❈ ❈ ❉ ❉ ❉ ❉ ❉ ❉ ❉ ❉ ❉ ❉ ❉ ❉ ❊ ❊ ❊ ❊ ❊ ❊ ❋ ❋ ❋ ❋ ❋ ❋ ❋ ❋ ❋ ❋ ❋ ❋
❍ ❍ ❍ ❍ ❍ ❍ ❍ ■ ■ ■ ■ ■ ■ ❏ ❏ ❏ ❏ ❏ ❏ ❏ ❏ ❑ ❑ ❑ ❑ ❑ ❑ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▼ ▼ ▼ ▼ ▼ ▼

ROOT src gnu sys arch i386 dev lib libc sbin usr_sbin share man usr_bin

FreeBSD OpenBSD NetBSD Visualization Consolidated DB RHDB RHDB RHDB RHDB Import Import Import

MSR’05 – p. 3/10

slide-4
SLIDE 4 software evolution & architecture lab

Common files

Variant Variant all modules src/ sys/ only FreeBSD NetBSD 3810 1333 FreeBSD OpenBSD 3839 1079 NetBSD OpenBSD 6969 6847

MSR’05 – p. 4/10

slide-5
SLIDE 5 software evolution & architecture lab

Information flow

◮ Information flow between variants of the BSD systems based on lexical search Variant Keyword all revisions revision > 1.1 FreeBSD netbsd 5131 3577

  • penbsd

2729 1353 linux 1791 1387 NetBSD freebsd 2852 2186

  • penbsd

2679 2224 linux 1547 1125 OpenBSD freebsd 2406 1933 netbsd 16802 7423 linux 775 463

MSR’05 – p. 5/10

slide-6
SLIDE 6 software evolution & architecture lab

Global view: OpenBSD

✁ ✁ ✁ ✁ ✁ ✂ ✂ ✂ ✂ ✂ ✂ ✂ ✂ ✄ ✄ ✄ ✄ ✄ ✄ ✄ ✄ ☎ ☎ ☎ ☎ ☎ ☎ ☎ ☎ ✆ ✆ ✆ ✆ ✆ ✆ ✆ ✆ ✝ ✝ ✝ ✝ ✝ ✝ ✝ ✝ ✞ ✞ ✞ ✞ ✞ ✞ ✟ ✟ ✟ ✟ ✟ ✟ ✟ ✟ ✠ ✠ ✠ ✠ ✠ ✠ ✡ ✡ ✡ ✡ ✡ ✡ ✡ ✡ ☛ ☛ ☛ ☛ ☛ ☛ ☞ ☞ ☞ ☞ ☞ ☞ ☞ ☞ ✌ ✌ ✌ ✌ ✌ ✌ ✌ ✌ ✍ ✍ ✍ ✍ ✍ ✍ ✍ ✍ ✎ ✎ ✎ ✎ ✎ ✎ ✏ ✏ ✏ ✏ ✏ ✏ ✏ ✏ ✏ ✏ ✏ ✏ ✑ ✑ ✑ ✑ ✑ ✑ ✑ ✑ ✑ ✑ ✑ ✑ ✒ ✒ ✒ ✒ ✒ ✒ ✒ ✒ ✒ ✒ ✒ ✒ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✕ ✕ ✕ ✕ ✕ ✕ ✕ ✕ ✖ ✖ ✖ ✖ ✖ ✖ ✖ ✖ ✖ ✗ ✗ ✗ ✗ ✗ ✗ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✙ ✙ ✙ ✙ ✙ ✙ ✚ ✚ ✚ ✚ ✚ ✚ ✚ ✚ ✛ ✛ ✛ ✛ ✛ ✛ ✛ ✛ ✜ ✜ ✜ ✜ ✜ ✜ ✜ ✜ ✢ ✢ ✢ ✢ ✢ ✢ ✣ ✣ ✣ ✣ ✣ ✣ ✣ ✣ ✤ ✤ ✤ ✤ ✤ ✤ ✥ ✥ ✥ ✥ ✥ ✥ ✥ ✥ ✥ ✥ ✥ ✥ ✦ ✦ ✦ ✦ ✦ ✦ ✦ ✦ ✦ ✦ ✦ ✦ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ★ ★ ★ ★ ★ ★ ★ ★ ★ ✩ ✩ ✩ ✩ ✩ ✩ ✩ ✩ ✩ ✩ ✩ ✩ ✪ ✪ ✪ ✪ ✪ ✪ ✪ ✪ ✪ ✫ ✫ ✫ ✫ ✫ ✫ ✫ ✫ ✫ ✫ ✫ ✫ ✬ ✬ ✬ ✬ ✬ ✬ ✬ ✬ ✭ ✭ ✭ ✭ ✭ ✭ ✭ ✭ ✭ ✭ ✭ ✭ ✮ ✮ ✮ ✮ ✮ ✮ ✮ ✮ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✰ ✰ ✰ ✰ ✰ ✰ ✱ ✱ ✱ ✱ ✱ ✱ ✱ ✱ ✱ ✱ ✱ ✱ ✲ ✲ ✲ ✲ ✲ ✲ ✲ ✲ ✲ ✳ ✳ ✳ ✳ ✳ ✳ ✳ ✳ ✳ ✳ ✳ ✳ ✴ ✴ ✴ ✴ ✴ ✴ ✴ ✴ ✴ ✴ ✴ ✴ ✵ ✵ ✵ ✵ ✵ ✵ ✵ ✵ ✵ ✵ ✵ ✵ ✶ ✶ ✶ ✶ ✶ ✶ ✶ ✶ ✶ ✷ ✷ ✷ ✷ ✷ ✷ ✷ ✷ ✷ ✸ ✸ ✸ ✸ ✸ ✸ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✹ ✺ ✺ ✺ ✺ ✺ ✺ ✻ ✻ ✻ ✻ ✻ ✻ ✻ ✻ ✻ ✼ ✼ ✼ ✼ ✼ ✼ ✽ ✽ ✽ ✽ ✽ ✽ ✽ ✽ ✽ ✾ ✾ ✾ ✾ ✾ ✾ ✿ ✿ ✿ ✿ ✿ ✿ ✿ ✿ ✿ ❀ ❀ ❀ ❀ ❀ ❀ ❁ ❁ ❁ ❁ ❁ ❁ ❁ ❁ ❁ ❂ ❂ ❂ ❂ ❂ ❂ ❃ ❃❄ ❄ ❅ ❅ ❅ ❅ ❅ ❅ ❆ ❆ ❆ ❆ ❆ ❆ ❇ ❇ ❇ ❇ ❇ ❇ ❈ ❈ ❈ ❈ ❈ ❈ ❉ ❉ ❉ ❉ ❉ ❉ ❉ ❉ ❊ ❊ ❊ ❊ ❊ ❊ ❊ ❊ ❋ ❋ ❋ ❋ ❋ ❋ ❋ ❋
❍ ❍ ❍ ❍ ❍ ❍ ❍ ❍ ❍ ❍ ❍ ■ ■ ■ ■ ■ ■ ■ ■ ❏ ❏ ❏ ❏ ❏ ❏ ❏ ❏ ❏ ❏ ❏ ❏ ❑ ❑ ❑ ❑ ❑ ❑ ❑ ❑ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▼ ▼ ▼ ▼ ▼ ▼ ◆ ◆ ◆ ◆ ◆ ◆ ❖ ❖ ❖ ❖ ❖ ❖ P P P P P P ◗ ◗ ◗ ◗ ◗ ◗ ❘ ❘ ❘ ❘ ❘ ❘ ❙ ❙ ❙ ❙ ❙ ❙ ❚ ❚ ❚ ❚ ❚ ❚ ❯ ❯ ❯ ❯ ❯ ❯ ❱ ❱ ❱ ❱ ❱ ❱ ❲ ❲ ❲ ❲ ❲ ❲ ❳ ❳ ❳ ❳ ❳ ❳ ❳ ❳ ❨ ❨ ❨ ❨ ❨ ❨ ❩ ❩ ❩ ❩ ❩ ❩ ❩ ❩ ❬ ❬ ❬ ❬ ❬ ❬ ❭ ❭ ❭ ❭ ❭ ❭ ❭ ❭ ❪ ❪ ❪ ❪ ❪ ❪ ❫ ❫ ❫ ❫ ❫ ❫ ❫ ❫ ❴ ❴ ❴ ❴ ❴ ❴ ❵ ❵ ❵ ❵ ❵ ❵ ❵ ❵ ❛ ❛ ❛ ❛ ❛ ❛ ❛ ❛ ❜ ❜ ❜ ❜ ❜ ❜ ❜ ❜ ❝ ❝ ❝ ❝ ❝ ❝ ❞ ❞ ❞ ❞ ❞ ❞ ❞ ❞ ❡ ❡ ❡ ❡ ❡ ❡ ❡ ❡ ❢ ❢ ❢ ❢ ❢ ❢ ❢ ❢ ❣ ❣ ❣ ❣ ❣ ❣ ❤ ❤ ❤ ❤ ❤ ❤ ❤ ❤ ✐ ✐ ✐ ✐ ✐ ✐ ❥ ❥ ❥ ❥ ❥ ❥ ❥ ❥ ❥ ❥ ❥ ❥ ❦ ❦ ❦ ❦ ❦ ❦ ❦ ❦ ❦ ❦ ❦ ❦ ❧ ❧ ❧ ❧ ❧ ❧ ❧ ❧ ❧ ❧ ❧ ❧ ♠ ♠ ♠ ♠ ♠ ♠ ♠ ♠ ♠ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ q q q q q q q q r r r r r r r r s s s s s s t t t t t t ✉ ✉ ✉ ✉ ✉ ✉ ✈ ✈ ✈ ✈ ✈ ✈ ✇ ✇ ✇ ✇ ✇ ✇ ① ① ① ① ① ① ② ② ② ② ② ② ③ ③ ③ ③ ③ ③ ④ ④ ④ ④ ④ ④ ⑤ ⑤ ⑤ ⑤ ⑤ ⑤ ⑥ ⑥ ⑥ ⑥ ⑥ ⑥ ⑦ ⑦ ⑦ ⑦ ⑦ ⑦ ⑦ ⑦ ⑦ ⑧ ⑧ ⑧ ⑧ ⑧ ⑧ ⑨ ⑨ ⑨ ⑨ ⑨ ⑨ ⑨ ⑨ ⑨ ⑨ ⑨ ⑨ ⑩ ⑩ ⑩ ⑩ ⑩ ⑩ ⑩ ⑩ ❶ ❶ ❶ ❶ ❶ ❶ ❶ ❶ ❶ ❶ ❶ ❶ ❷ ❷ ❷ ❷ ❷ ❷ ❸ ❸ ❸ ❸ ❸ ❸ ❸ ❸ ❸ ❸ ❸ ❸ ❹ ❹ ❹ ❹ ❹ ❹ ❺ ❺ ❺ ❺ ❺ ❺ ❺ ❺ ❻ ❻ ❻ ❻ ❻ ❻ ❼ ❼ ❼ ❼ ❼ ❼ ❼ ❼ ❽ ❽ ❽ ❽ ❽ ❽ ❽ ❽ ❾ ❾ ❾ ❾ ❾ ❾ ❾ ❾ ❿ ❿ ❿ ❿ ❿ ❿ ➀ ➀ ➀ ➀ ➀ ➀ ➁ ➁ ➁ ➁ ➁ ➁ ➂ ➂ ➂ ➂ ➂ ➂ ➃ ➃ ➃ ➃ ➃ ➃ ➄ ➄ ➄ ➄ ➄ ➄ ➅ ➅ ➅ ➅ ➅ ➅ ➆ ➆ ➆ ➆ ➆ ➆ ➆ ➆ ➇ ➇ ➇ ➇ ➇ ➇ ➇ ➇ ➈ ➈ ➈ ➈ ➈ ➈ ➈ ➈ ➉ ➉ ➉ ➉ ➉ ➉ ➊ ➊ ➊ ➊ ➊ ➊ ➊ ➊ ➊ ➊ ➊ ➊ ➋ ➋ ➋ ➋ ➋ ➋ ➋ ➋ ➌ ➌ ➌ ➌ ➌ ➌ ➌ ➌ ➌ ➌ ➌ ➌ ➍ ➍ ➍ ➍ ➍ ➍ ➍ ➍ ➎ ➎ ➎ ➎ ➎ ➎ ➎ ➎ ➎ ➎ ➎ ➎ ➏ ➏ ➏ ➏ ➏ ➏ ➐ ➐ ➐ ➐ ➐ ➐ ➐ ➐ ➐ ➑ ➑ ➑ ➑ ➑ ➑ ➒ ➒ ➒ ➒ ➒ ➒ ➒ ➒ ➒ ➓ ➓ ➓ ➓ ➓ ➓ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ → → → → → → ➣ ➣ ➣ ➣ ➣ ➣ ➣ ➣ ↔ ↔ ↔ ↔ ↔ ↔ ↕ ↕ ↕ ↕ ↕ ↕ ↕ ↕ ➙ ➙ ➙ ➙ ➙ ➙ ➛ ➛ ➛ ➛ ➛ ➛ ➛ ➛ ➜ ➜ ➜ ➜ ➜ ➜ ➝ ➝ ➝ ➝ ➝ ➝ ➝ ➝ ➞ ➞ ➞ ➞ ➞ ➞ ➟ ➟ ➟ ➟ ➟ ➟ ➠ ➠ ➠ ➠ ➠ ➠ ➡ ➡ ➡ ➡ ➡ ➡ ➢ ➢ ➢ ➢ ➢ ➢ ➤ ➤ ➤ ➤ ➤ ➤ ➥ ➥ ➥ ➥ ➥ ➥ ➦ ➦ ➦ ➦ ➦ ➦ ➦ ➦ ➦ ➦ ➦ ➦ ➧ ➧ ➧ ➧ ➧ ➧ ➧ ➧ ➨ ➨ ➨ ➨ ➨ ➨ ➨ ➨ ➨ ➨ ➨ ➨ ➩ ➩ ➩ ➩ ➩ ➩ ➩ ➩ ➫ ➫ ➫ ➫ ➫ ➫ ➫ ➫ ➫ ➫ ➫ ➫ ➭ ➭ ➭ ➭ ➭ ➭ ➯ ➯ ➯ ➯ ➯ ➯ ➯ ➯ ➲ ➲ ➲ ➲ ➲ ➲ ➳ ➳ ➳ ➳ ➳ ➳ ➳ ➳ ➵ ➵ ➵ ➵ ➵ ➵ ➵ ➵ ➸ ➸ ➸ ➸ ➸ ➸ ➸ ➸ ➺ ➺ ➺ ➺ ➺ ➺ ➻ ➻ ➼ ➼ ➽ ➽ ➽ ➽ ➽ ➽ ➽ ➽ ➽ ➽ ➽ ➽ ➾ ➾ ➾ ➾ ➾ ➾ ➾ ➾ ➾ ➾ ➾ ➾ ➚ ➚ ➚ ➚ ➚ ➚ ➚ ➚ ➚ ➚ ➚ ➚ ➪ ➪ ➪ ➪ ➪ ➪ ➪ ➪ ➪ ➶ ➶ ➶ ➶ ➶ ➶ ➶ ➶ ➶ ➶ ➶ ➶ ➹ ➹ ➹ ➹ ➹ ➹ ➹ ➹ ➹ ➘ ➘ ➘ ➘ ➘ ➘ ➘ ➘ ➘ ➘ ➘ ➘ ➴ ➴ ➴ ➴ ➴ ➴ ➴ ➴ ➴ ➷ ➷ ➷ ➷ ➷ ➷ ➷ ➷ ➷ ➷ ➷ ➷ ➬ ➬ ➬ ➬ ➬ ➬ ➬ ➬ ➬ ➮ ➮ ➮ ➮ ➮ ➮ ➮ ➮ ➮ ➮ ➮ ➮ ➱ ➱ ➱ ➱ ➱ ➱ ➱ ➱ ➱ ✃ ✃ ✃ ✃ ✃ ✃ ❐ ❐ ❐ ❐ ❐ ❐ ❒ ❒ ❒ ❒ ❒ ❒ ❮ ❮ ❮ ❮ ❮ ❮ ❰ ❰ ❰ ❰ ❰ ❰ ❰ ❰ Ï Ï Ï Ï Ï Ï Ð Ð Ð Ð Ð Ð Ð Ð Ñ Ñ Ñ Ñ Ñ Ñ Ò Ò Ò Ò Ò Ò Ò Ò Ó Ó Ó Ó Ó Ó Ó Ó Ô Ô Ô Ô Ô Ô Ô Ô Õ Õ Õ Õ Õ Õ Õ Õ Ö Ö Ö Ö Ö Ö Ö Ö × × × × × × Ø Ø Ø Ø Ø Ø Ø Ø Ù Ù Ù Ù Ù Ù Ú Ú Ú Ú Ú Ú Ú Ú Ú Ú Ú Ú Û Û Û Û Û Û Û Û Ü Ü Ü Ü Ü Ü Ü Ü Ü Ü Ü Ü Ý Ý Ý Ý Ý Ý Ý Ý Þ Þ Þ Þ Þ Þ Þ Þ Þ Þ Þ Þ ß ß ß ß ß ß à à à à à à à à á á á á á á á á â â â â â â â â ã ã ã ã ã ã ã ã ä ä ä ä ä ä ä ä å å å å å å æ æ æ æ æ æ æ æ æ æ æ æ ç ç ç ç ç ç ç ç ç ç ç ç è è è è è è è è è è è è é é é é é é é é é ê ê ê ê ê ê ê ê ê ê ê ê ë ë ë ë ë ë ë ë ë ì ì ì ì ì ì í í í í í í î î î î î î ï ï ï ï ï ï ð ð ð ð ð ð ñ ñ ñ ñ ñ ñ ò ò ò ò ò ò ò ò ò ó ó ó ó ó ó ó ó ó ô ô ô ô ô ô ô ô ô õ õ õ õ õ õ õ õ õ ö ö ö ö ö ö ö ö ö ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ø ø ø ø ø ø ø ø ø ø ø ø ù ù ù ù ù ù ù ù ù ú ú ú ú ú ú ú ú ú ú ú ú û û û û û û û û û û û û ü ü ü ü ü ü ü ü ü ü ü ü ý ý ý ý ý ý ý ý ý þ þ þ þ þ þ þ þ þ þ þ þ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ
✁ ✁ ✁ ✁ ✁ ✁ ✁ ✁ ✂ ✂ ✂ ✂ ✂ ✂ ✂ ✂ ✂ ✄ ✄ ✄ ✄ ✄ ✄ ☎ ☎ ☎ ☎ ☎ ☎ ☎ ☎ ☎ ✆ ✆ ✆ ✆ ✆ ✆ ✝ ✝ ✝ ✝ ✝ ✝ ✝ ✝ ✝ ✞ ✞ ✞ ✞ ✞ ✞ ✞ ✞ ✞ ✟ ✟ ✟ ✟ ✟ ✟ ✟ ✟ ✟ ✠ ✠ ✠ ✠ ✠ ✠ ✠ ✠ ✠ ✡ ✡ ✡ ✡ ✡ ✡ ☛ ☛ ☛ ☛ ☛ ☛ ☞ ☞ ☞ ☞ ☞ ☞ ✌ ✌ ✌ ✌ ✌ ✌ ✍ ✍ ✍ ✍ ✍ ✍ ✎ ✎ ✎ ✎ ✎ ✎ ✏ ✏ ✏ ✏ ✏ ✏ ✏ ✏ ✑ ✑ ✑ ✑ ✑ ✑ ✒ ✒ ✒ ✒ ✒ ✒ ✒ ✒ ✒ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✕ ✕ ✕ ✕ ✕ ✕ ✕ ✕ ✕ ✖ ✖ ✖ ✖ ✖ ✖ ✖ ✖ ✖ ✗ ✗ ✗ ✗ ✗ ✗ ✗ ✗ ✗ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✙ ✙ ✙ ✙ ✙ ✙ ✙ ✙ ✚ ✚ ✚ ✚ ✚ ✚ ✚ ✚ ✛ ✛ ✛ ✛ ✛ ✛ ✛ ✛ ✜ ✜ ✜ ✜ ✜ ✜ ✜ ✜ ✢ ✢ ✢ ✢ ✢ ✢ ✣ ✣ ✣ ✣ ✣ ✣ ✣ ✣ ✣ ✣ ✣ ✣ ✤ ✤ ✤ ✤ ✤ ✤ ✤ ✤ ✤ ✤ ✤ ✤ ✥ ✥ ✥ ✥ ✥ ✥ ✥ ✥ ✥ ✦ ✦ ✦ ✦ ✦ ✦ ✦ ✦ ✦ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ★ ★ ★ ★ ★ ★ ★ ★ ★ ✩ ✩ ✩ ✩ ✩ ✩ ✩ ✩ ✪ ✪ ✪ ✪ ✪ ✪ ✪ ✪ ✫ ✫ ✫ ✫ ✫ ✫ ✫ ✫ ✬ ✬ ✬ ✬ ✬ ✬ ✬ ✬ ✭ ✭ ✭ ✭ ✭ ✭ ✭ ✭ ✮ ✮ ✮ ✮ ✮ ✮ ✯ ✯ ✯ ✯ ✯ ✯ ✰ ✰ ✰ ✰ ✰ ✰ ✱ ✱ ✱ ✱ ✱ ✱ ✱ ✱ ✲ ✲ ✲ ✲ ✲ ✲ ✳ ✳ ✳ ✳ ✳ ✳ ✳ ✳ ✴ ✴ ✴ ✴ ✴ ✴

ROOT src gnu usr_bin binutils include etc sys arch mvme88k i386 isa pcvt include pc532 wgrisc alpha arc amiga amiga atari mac68k macppc vax mvmeppc kbus m68k hp300 sparc64 arm32 powerpc sparc hppa sun3 pmax mvme68k dev pci lib compat miscfs ufs netinet isofs libexec bin games lib libc arch sbin distrib sets lists notes sparc usr_sbin share man man4 usr_bin

MSR’05 – p. 6/10

slide-7
SLIDE 7 software evolution & architecture lab

Abstracted view: OpenBSD

✁ ✁ ✁ ✁ ✁ ✁ ✁ ✂ ✂ ✂ ✂ ✂ ✂ ✂ ✂ ✂ ✂ ✂ ✂ ✄ ✄ ✄ ✄ ✄ ✄ ☎ ☎ ☎ ☎ ☎ ☎ ☎ ☎ ☎ ✆ ✆ ✆ ✆ ✆ ✆ ✝ ✝ ✝ ✝ ✝ ✝ ✝ ✝ ✝ ✞ ✞ ✞ ✞ ✞ ✞ ✞ ✞ ✞ ✟ ✟ ✟ ✟ ✟ ✟ ✟ ✟ ✟ ✠ ✠ ✠ ✠ ✠ ✠ ✠ ✠ ✠ ✡ ✡ ✡ ✡ ✡ ✡ ✡ ✡ ✡ ☛ ☛ ☛ ☛ ☛ ☛ ☛ ☛ ☛ ☞ ☞ ☞ ☞ ☞ ☞ ✌ ✌ ✌ ✌ ✌ ✌ ✍ ✍ ✍ ✍ ✍ ✍ ✎ ✎ ✎ ✎ ✎ ✎ ✏ ✏ ✏ ✏ ✏ ✏ ✑ ✑ ✑ ✑ ✑ ✑ ✒ ✒ ✒ ✒ ✒ ✒ ✒ ✒ ✓ ✓ ✓ ✓ ✓ ✓ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✕ ✕ ✕ ✕ ✕ ✕ ✖ ✖ ✖ ✖ ✖ ✖ ✖ ✖ ✗ ✗ ✗ ✗ ✗ ✗ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✘ ✙ ✙ ✙ ✙ ✙ ✙ ✙ ✙ ✙ ✙ ✙ ✙ ✚ ✚ ✚ ✚ ✚ ✚ ✚ ✚ ✚ ✚ ✚ ✚ ✛ ✛ ✛ ✛ ✛ ✛ ✛ ✛ ✛ ✜ ✜ ✜ ✜ ✜ ✜ ✜ ✜ ✜ ✜ ✜ ✜ ✢ ✢ ✢ ✢ ✢ ✢ ✢ ✢ ✢ ✣ ✣ ✣ ✣ ✣ ✣ ✣ ✣ ✣ ✣ ✣ ✣ ✤ ✤ ✤ ✤ ✤ ✤ ✤ ✤ ✤ ✤ ✤ ✤ ✥ ✥ ✥ ✥ ✥ ✥ ✥ ✥ ✥ ✥ ✥ ✥ ✦ ✦ ✦ ✦ ✦ ✦ ✦ ✦ ✦ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ★ ★ ★ ★ ★ ★ ★ ★ ★ ✩ ✩ ✩ ✩ ✩ ✩ ✩ ✩ ✩ ✪ ✪ ✪ ✪ ✪ ✪ ✪ ✪ ✪ ✫ ✫ ✫ ✫ ✫ ✫ ✫ ✫ ✫ ✬ ✬ ✬ ✬ ✬ ✬ ✬ ✬ ✬ ✭ ✭ ✭ ✭ ✭ ✭ ✭ ✭ ✭ ✮ ✮ ✮ ✮ ✮ ✮ ✮ ✮ ✮ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✯ ✰ ✰ ✰ ✰ ✰ ✰ ✰ ✰ ✱ ✱ ✱ ✱ ✱ ✱ ✱ ✱ ✲ ✲ ✲ ✲ ✲ ✲ ✳ ✳ ✳ ✳ ✳ ✳ ✳ ✳ ✴ ✴ ✴ ✴ ✴ ✴ ✵ ✵ ✵ ✵ ✵ ✵ ✶ ✶ ✶ ✶ ✶ ✶ ✷ ✷ ✷ ✷ ✷ ✷ ✸ ✸ ✸ ✸ ✸ ✸ ✹ ✹ ✹ ✹ ✹ ✹ ✺ ✺ ✺ ✺ ✺ ✺ ✻ ✻ ✻ ✻ ✻ ✻ ✻ ✻ ✻ ✻ ✻ ✻ ✼ ✼ ✼ ✼ ✼ ✼ ✼ ✼ ✼ ✽ ✽ ✽ ✽ ✽ ✽ ✽ ✽ ✽ ✽ ✽ ✽ ✾ ✾ ✾ ✾ ✾ ✾ ✾ ✾ ✾ ✾ ✾ ✾ ✿ ✿ ✿ ✿ ✿ ✿ ✿ ✿ ✿ ✿ ✿ ✿ ❀ ❀ ❀ ❀ ❀ ❀ ❀ ❀ ❀ ❁ ❁ ❁ ❁ ❁ ❁ ❁ ❁ ❁ ❂ ❂ ❂ ❂ ❂ ❂ ❃ ❃ ❃ ❃ ❃ ❃ ❃ ❃ ❃ ❃ ❃ ❃ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❄ ❅ ❅ ❅ ❅ ❅ ❅ ❅ ❅ ❅ ❅ ❅ ❅ ❆ ❆ ❆ ❆ ❆ ❆ ❇ ❇ ❇ ❇ ❇ ❇ ❇ ❇ ❇ ❇ ❇ ❇ ❈ ❈ ❈ ❈ ❈ ❈ ❈ ❈ ❈ ❉ ❉ ❉ ❉ ❉ ❉ ❉ ❉ ❉ ❉ ❉ ❉ ❊ ❊ ❊ ❊ ❊ ❊ ❊ ❊ ❊ ❋ ❋ ❋ ❋ ❋ ❋ ❋ ❋ ❋ ❋ ❋ ❋
❍ ❍ ❍ ❍ ❍ ❍ ❍ ■ ■ ■ ■ ■ ■ ■ ■ ❏ ❏ ❏ ❏ ❏ ❏ ❏ ❏ ❑ ❑ ❑ ❑ ❑ ❑ ❑ ❑ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▼ ▼ ▼ ▼ ▼ ▼

ROOT src gnu sys arch i386 dev lib libc sbin usr_sbin share man usr_bin

MSR’05 – p. 7/10

slide-8
SLIDE 8 software evolution & architecture lab

Referenced files: OpenBSD

◮ Topmost referenced files with one of the given keywords in the change logs of OpenBSD Keyword Count Path freebsd 59 src/sys/dev/pci/files.pci . 52 src/sys/dev/pci/pciide.c . 52 src/sys/dev/pci/pcidevs netbsd 45 src/sys/arch/i386/i386/machdep.c . 43 src/sys/dev/pci/pciide.c . 39 src/sys/conf/files linux 14 src/sys/compat/linux/linux_socket.c . 14 src/sys/compat/linux/syscalls.master . 5 src/sys/dev/ic/if_wireg.h

MSR’05 – p. 8/10

slide-9
SLIDE 9 software evolution & architecture lab

Detailed change analysis

◮ Change in FreeBSD file ufs_quota.c < sleep((caddr_t)dq, PINOD+2);

  • > (void) tsleep((caddr_t)dq, PINOD+2, "dqsync", 0);

◮ Change in NetBSD file ufs_quota.c (six years later) ◮ Change in OpenBSD file ufs_quota.c (eight years later) < sleep((caddr_t)dq, PINOD+2);

  • > (void) tsleep(dq, PINOD+2, "dqsync", 0);

MSR’05 – p. 9/10

slide-10
SLIDE 10 software evolution & architecture lab

Conclusions & Possible Extension

◮ Lexical search indicates increasing information flow between product variants ◮ Recovered high level view indicates high coupling and wide spread of “alien” source code ◮ Text mining in modification reports

  • Vector space search (latent semantic indexing)

◮ Code clone detection

  • Clone detection in source code
  • Track clone propagation through version history
  • Clustering
  • Measuring Similarity of Large Software Systems Based on

Source Code Correspondence [Yamamoto et al.]

  • CCFinder [Kamiya et al.]

MSR’05 – p. 10/10