SlideShare une entreprise Scribd logo
1  sur  28
Télécharger pour lire hors ligne
Software Maintenance Support by
Extracting Links and Models
Hiro - Hironori Washizaki
Waseda University
Twitter: @Hiro_Washi washizaki@waseda.jp
http://www.washi.cs.waseda.ac.jp/
Thanks to: Ryosuke, Kazuki, Yuta and other collaborators!
Latece Seminar, Nov 11, 2015 @ UQAM, Montreal
• Assoc. Prof., Head, Global
Software Engineering
Laboratory, Waseda University
• Visiting Assoc. Prof., National
Institute of Informatics
• Visiting Prof., Ecole
Polytechnique de Montreal
• Convenor, ISO/IEC SC7/WG20
• Chair, IEEE CS Japan Chapter
• Chair, SEMAT Japan Chapter 2
Hironori Washizaki
Waseda University
Global Software Engineering Lab.
• SE research in global
development era
– Analysis and reuse
– Quality assurance
– Agile and patterns
– SE education
• 5 professors
• 15+ partners
• 25 students (5 from
China, Indonesia,
Afganistan) 3
Software maintenance matters!
60–90% of total costs
4
B. Lientz and E. Swanson, Software Maintenance Management. Reading, Ma.: Addison-Wesley, 1980.
J. Conejero, E. Figueiredo, A. Garcia, J. Hernández and E. Jurado, "On the Relationship of Concern
Metrics and Requirements Maintainability,” Information and Software Technology, vol.54, no.2, 2012.
How can we support?
5
Requirements
Design
Program
source
code
How can we support?
6
Requirements
Design
Program
source
code
Tracing
artifacts
Tracing
artifacts
Log-based interactive recovery [CAiSE’15]
Transitive recovery [ICSME’15 ERA]
Ryosuke Tsuchiya, Hironori Washizaki, Yoshiaki Fukazawa, Keishi Oshima, and Ryota Mibe,“Interactive Recovery of Requirements
Traceability Links Using User Feedback and Configuration Management Logs,” 27th International Conference on Advanced
Information Systems Engineering (CAiSE 2015)
Kazuki Nishikawa, Hironori Washizaki, Yoshiaki Fukazawa, Keishi Ohshima, Ryota Mibe, “Recovering Transitive Traceability Links
among Software Artifacts,” 31st IEEE International Conference on Software Maintenance and Evolution (ICSME 2015), ERA Track
Traceability links?
• Relationships among software artifacts
• Key to ensure consistency among artifacts [Antoniol‘00]
7G. Antoniol, B. Caprile, A. Potrich and P. Tonella, "Design-Code Traceability for Object-Oriented Systems," Annals of
Software Engineering, vol. 9, no. 1-4, pp. 35-58, 2000
Requirement
Source code
Run
automated
test
Run basic
test
Add
tests
Automate.c X
Basic.c X
TestDB.c X
TestRun.c X X
Facts of traceability links
• Rarely established explicitly [Lucia’12]
• Most of existing recovery techniques employing
Information Retrieval (IR) approaches such as TF/IDF
and Vector Space Model (VSM)
8
A. De Lucia, et al., "Information Retrieval Methods for Automated Traceability Recovery," in Software and Systems
Traceability, 1st ed., J. Cleland-Huang, O. Gotel and A. Zisman, Ed. New York: Springer, p. 71-98, 2012.
Automated test
Automated.c
MyMem.c
Initialization
Requirement
基本テスト
Basic.c
NGOK
Interactive recovery utilizing call relationships
Rank Requirement Code file Score Recommended Correct
1 Recover link
2 Recover link
3 Recover link
・・・ ・・・
9
Recover link
・・・
LinkPresenter.java
・・・
LinkRecover.java
ScoreCalc.java
・・・
Call
Ryosuke Tsuchiya, Hironori Washizaki, Yoshiaki Fukazawa, Keishi Oshima, and Ryota Mibe,“Interactive Recovery of Requirements
Traceability Links Using User Feedback and Configuration Management Logs,” 27th International Conference on Advanced
Information Systems Engineering (CAiSE 2015)
Interactive recovery utilizing call relationships
Rank Requirement Code file Score Recommended Correct
1 Recover link LinkRecover.java 0.98 not yet
2 Recover link LinkPresenter.java 0.65 not yet
3 Recover link ScoreCalc.java 0.30 not yet
・・・ ・・・ ・・・ ・・・
10
Recover link
・・・
LinkPresenter.java
・・・
LinkRecover.java
ScoreCalc.java
・・・
☑
Call
☑
Ryosuke Tsuchiya, Hironori Washizaki, Yoshiaki Fukazawa, Keishi Oshima, and Ryota Mibe,“Interactive Recovery of Requirements
Traceability Links Using User Feedback and Configuration Management Logs,” 27th International Conference on Advanced
Information Systems Engineering (CAiSE 2015)
Interactive recovery utilizing call relationships
Rank Requirement Code file Score Recommended Correct
1 Recover link LinkRecover.java 0.98 not yet
2 Recover link ScoreCalc.java 0.30 Recommended
3 Recover link LinkPresenter.java 0.65 not yet
・・・ ・・・ ・・・ ・・・
11
Recover link
・・・
LinkPresenter.java
・・・
LinkRecover.java
ScoreCalc.java
・・・
☑
Call
☑
Ryosuke Tsuchiya, Hironori Washizaki, Yoshiaki Fukazawa, Keishi Oshima, and Ryota Mibe,“Interactive Recovery of Requirements
Traceability Links Using User Feedback and Configuration Management Logs,” 27th International Conference on Advanced
Information Systems Engineering (CAiSE 2015)
Automated test
Log-based recovery
12
Automated test
automate・・
・・XML・・・
・test・・・・・・
Requirement
automate
XML
test
automate
XML
Keywords
High
TF-IDF value
Proper noun
Filtered
by experts
automate
XML
Revision: 137
Author: anilsaharan
Date: 2011/8/20 9:35:13
Message:
Changes for fixing XML tag issue
----
Modified : /trunk/CUnit/Sources/Tool/Process.c
Process.c
・・・
Ryosuke Tsuchiya, Hironori Washizaki, Yoshiaki Fukazawa, Keishi Oshima, and Ryota Mibe,“Interactive Recovery of Requirements
Traceability Links Using User Feedback and Configuration Management Logs,” 27th International Conference on Advanced
Information Systems Engineering (CAiSE 2015)
Experiment: Japanese enterprise system
• 80,000 LOC, 192 requirements, 694 Java code files,
7090 revisions in Subversion
• 726 known links as correct answer
13
Ryosuke Tsuchiya, Hironori Washizaki, Yoshiaki Fukazawa, Keishi Oshima, and Ryota Mibe,“Interactive Recovery of Requirements
Traceability Links Using User Feedback and Configuration Management Logs,” 27th International Conference on Advanced
Information Systems Engineering (CAiSE 2015)
Transitive recovery
14
Code Design Test Score
C1 Da Tx 0.16
C1 Da Ty 0.14
C1 Db Tx 0.03
• Vector Space Model (VSM) for basic recovery
Source code Design Test case
Code Design Similarity
C1 Da 0.4
C2 Db 0.3
Design Test Similarity
Da Tx 0.40
Da Ty 0.35
Db Tx 0.10
Kazuki Nishikawa, Hironori Washizaki, Yoshiaki Fukazawa, Keishi Ohshima, Ryota Mibe, “Recovering Transitive Traceability Links
among Software Artifacts,” 31st IEEE International Conference on Software Maintenance and Evolution (ICSME 2015), ERA Track
Experiment: EasyClinic
• Target link: 47 Java code ⇔ 63 test docs
• Supportive artifacts: 20 design docs or 30 use cases
• Effectiveness varies with supportive artifacts
15Kazuki Nishikawa, Hironori Washizaki, Yoshiaki Fukazawa, Keishi Ohshima, Ryota Mibe, “Recovering Transitive Traceability Links
among Software Artifacts,” 31st IEEE International Conference on Software Maintenance and Evolution (ICSME 2015), ERA Track
How can we support?
16
Requirements
Design
Program
source
code
Yuta Maezawa, Kazuki Nishiura, Hironori Washizaki, Shinichi Honiden, “Validating Ajax Applications Using a Delay-Based Mutation
Technique,” 29th IEEE/ACM International Conference on Automated Software Engineering (ASE 2014)
Yuta Maezawa, Hironori Washizaki, Yoshinori Tanabe and Shinichi Honiden, “Automated Verification of Pattern-based Interaction
Invariants in Ajax Applications,” 28th IEEE/ACM International Conference on Automated Software Engineering (ASE2013)
How can we support?
17
Requirements
Design
Program
source
code
Reversing
model
Detecting
problems
Detecting
problems
Ajax model extraction and verification
[ASE’13][ASE’14]
Yuta Maezawa, Kazuki Nishiura, Hironori Washizaki, Shinichi Honiden, “Validating Ajax Applications Using a Delay-Based Mutation
Technique,” 29th IEEE/ACM International Conference on Automated Software Engineering (ASE 2014)
Yuta Maezawa, Hironori Washizaki, Yoshinori Tanabe and Shinichi Honiden, “Automated Verification of Pattern-based Interaction
Invariants in Ajax Applications,” 28th IEEE/ACM International Conference on Automated Software Engineering (ASE2013)
18
window.onload = setEventHandler;
function setEventHandler() {
$(“reg_type”).onchange = calcPrice;
・・・
$(“reg_addcart”).onclick = addCart;
};
function calcPrice() { ・・・ };
function addCart() {
if(isValidInput()) {
reqRunTrans();
} else {
alert(“Invalid user inputs”);
}
};
function reqRunTrans() {
new Ajax.Request(“runTrans.php”, {
method: “GET”, parameters: getParams(),
onSuccess: succeeded });
};
function succeeded() { disableAll();
jumpToConfirm();
};Yuta Maezawa, Hironori Washizaki, Yoshinori Tanabe and Shinichi Honiden, “Automated Verification of Pattern-based Interaction
Invariants in Ajax Applications,” 28th IEEE/ACM International Conference on Automated Software Engineering (ASE2013)
19
Extracted finite state machine
Yuta Maezawa, Hironori Washizaki, Yoshinori Tanabe and Shinichi Honiden, “Automated Verification of Pattern-based Interaction
Invariants in Ajax Applications,” 28th IEEE/ACM International Conference on Automated Software Engineering (ASE2013)
• #70 programming and usability patterns
• Potential faults: might not be revealed by testing
Ajax (Asynchronous JavaScript + XML)
Design Patterns [Mahamoff’06]
20
[Mahamoff’06] M. Mahamoff, “Ajax Design Patterns”, O’Reilly Media Inc., 2006.
E.g. User Action
“Prevent multiple
calls of specific user
event handler”
Yuta Maezawa, Hironori Washizaki, Yoshinori Tanabe and Shinichi Honiden, “Automated Verification of Pattern-based Interaction
Invariants in Ajax Applications,” 28th IEEE/ACM International Conference on Automated Software Engineering (ASE2013)
Duplicate
order
21
Verifying invariants of specified pattern
Yuta Maezawa, Hironori Washizaki, Yoshinori Tanabe and Shinichi Honiden, “Automated Verification of Pattern-based Interaction
Invariants in Ajax Applications,” 28th IEEE/ACM International Conference on Automated Software Engineering (ASE2013)
22
window.onload = setEventHandler;
function setEventHandler() {
$(“reg_type”).onchange = calcPrice;
・・・
$(“reg_addcart”).onclick = addCart;
};
function calcPrice() { ・・・ };
function addCart() {
if(isValidInput()) {
$(“addCart”).disabled = true;
reqRunTrans();
} else {
alert(“Invalid user inputs”);
$(“addCart”).disabled = false;
}
};
function reqRunTrans() {
new Ajax.Request(“runTrans.php”, {
method: “GET”, parameters: getParams(),
onSuccess: succeeded }); };
function succeeded() { disableAll();
jumpToConfirm(); };Yuta Maezawa, Hironori Washizaki, Yoshinori Tanabe and Shinichi Honiden, “Automated Verification of Pattern-based Interaction
Invariants in Ajax Applications,” 28th IEEE/ACM International Conference on Automated Software Engineering (ASE2013)
• Developers are concerned with interactions[Duhl’03]
• Interaction = event + callback
• Rules are necessary for distinguishing interaction-
related code fragments
Interaction-based state machine extraction
23
………………………………
………………………………
………………………………
………………………………
…………………………….…
………………………………
……………………………
function addCart() {…
………………………………
……………………..……
………………………………………
………………………………………
$(“addcart”).disabled=true;
………………………………………
………………………………………
……………………………………
…………
…………
…………
………………………………
………………………..……
………………………………
………………………………
………………………………
………………………………
………………………………
………………………………
………………………………
………………………………
…………………………
……………………………………………
……………………………………………
function setEventHandler() {
$(“addcart”).onclick=addCart;
……………………………………………
……………………………………………
……………………………………………
……………………………………………
……………………………………………
onclick
setEventHandler
ev
addCart
…disabled…
[c]
[!c]
[Duhl’03] J.Duhl, “White Paper: Rich Internet Applications”, IDC Technical Report’ 03.
Yuta Maezawa, Hironori Washizaki, Yoshinori Tanabe and Shinichi Honiden, “Automated Verification of Pattern-based Interaction
Invariants in Ajax Applications,” 28th IEEE/ACM International Conference on Automated Software Engineering (ASE2013)
Verification on Promela with LTL
24
Self interaction
User Server
active proctype
App () {…}
App model
active proctype
Interaction () {…}
Interaction model Faulty execution paths
Verification formulas (LTL)
Pattern Negative property
User Action <>(App_state == PreventFunc
&& App_event == UserEvent )
Yuta Maezawa, Hironori Washizaki, Yoshinori Tanabe and Shinichi Honiden, “Automated Verification of Pattern-based Interaction
Invariants in Ajax Applications,” 28th IEEE/ACM International Conference on Automated Software Engineering (ASE2013)
• Problem: Potential faults might not cause actual errors
• Assumption: Unexpected network latency make
potential faults executable.
• Solution: Delay-based mutation and testing
Delay-based mutation
25
<button onclick=“handleClick()” />
・・・
<script src=“handleClick.js” />
new DelayedRequest(3000).applyFunction(
$.get ,
“myscript.php”,
{ name: “ABC” }, function(data) {
alert(“Response is ” + data); }
);
Synchronous delay Asynchronous delay
Original code
S1
S2
S3
Late
response
reveals!
Assumes
immediate
response
Yuta Maezawa, Kazuki Nishiura, Hironori Washizaki, Shinichi Honiden, “Validating Ajax Applications Using a Delay-Based Mutation
Technique,” 29th IEEE/ACM International Conference on Automated Software Engineering (ASE 2014)
Case Study: industrial services
26
Subject
JS
[LOC]
#States #Trans.
#Invariants
verified
#Potential
faults
#Delay-
Dependent
faults
2020
Marketing
2,468 15 547 4 1 1
ECD China 880 32 508 3 2 1
Easy
Serviced
Apartments
3,523 34 602 3 1 1
Undefined
function call
Login failed
with correct
username and
password
Yuta Maezawa, Kazuki Nishiura, Hironori Washizaki, Shinichi Honiden, “Validating Ajax Applications Using a Delay-Based Mutation
Technique,” 29th IEEE/ACM International Conference on Automated Software Engineering (ASE 2014)
Summary
27
Reversing
model
Tracing
artifacts
Detecting
problems
Detecting
problems
Tracing
artifacts
Log-based interactive recovery [CAiSE’15]
Transitive recovery [ICSME’15 ERA]
Ajax model extraction and verification [ASE’13]
Ajax delay-based mutation [ASE’14]
28
Feb 24-26 (due Dec 4)
asianplop.org
Mar 15 (due Dec)(TBD)
ppap.soccerlab.polymtl.ca
Mar 11 (due Jan 8)
samuraicoding.info
Mar 13-18 (due Sep 2016)
aster.or.jp/conference/icst2017/
10th IEEE International Conference on
Software Testing, Verification and Validation
IPSJ International AI Programming Contest

Contenu connexe

En vedette

Software Maintenance Support by Extracting Links and Models (revised)
Software Maintenance Support by Extracting Links and Models (revised)Software Maintenance Support by Extracting Links and Models (revised)
Software Maintenance Support by Extracting Links and Models (revised)
Hironori Washizaki
 
ICST2015勉強会 ICST2017に向けて
ICST2015勉強会 ICST2017に向けてICST2015勉強会 ICST2017に向けて
ICST2015勉強会 ICST2017に向けて
Hironori Washizaki
 

En vedette (14)

品質管理について
品質管理について品質管理について
品質管理について
 
Software Maintenance Support by Extracting Links and Models (revised)
Software Maintenance Support by Extracting Links and Models (revised)Software Maintenance Support by Extracting Links and Models (revised)
Software Maintenance Support by Extracting Links and Models (revised)
 
Sematj 1st-study meeting
Sematj 1st-study meetingSematj 1st-study meeting
Sematj 1st-study meeting
 
ICST2015勉強会 ICST2017に向けて
ICST2015勉強会 ICST2017に向けてICST2015勉強会 ICST2017に向けて
ICST2015勉強会 ICST2017に向けて
 
鷲崎 愛媛大学講演-プロジェクト型演習2014年12月15日
鷲崎 愛媛大学講演-プロジェクト型演習2014年12月15日鷲崎 愛媛大学講演-プロジェクト型演習2014年12月15日
鷲崎 愛媛大学講演-プロジェクト型演習2014年12月15日
 
Recovery of Traceability Links and Behavior Models for Software Maintenance,...
Recovery of Traceability Links and Behavior Models for Software Maintenance,...Recovery of Traceability Links and Behavior Models for Software Maintenance,...
Recovery of Traceability Links and Behavior Models for Software Maintenance,...
 
A Taxonomy for Program Metamodels in Program Reverse Engineering
A Taxonomy for Program Metamodels in Program Reverse EngineeringA Taxonomy for Program Metamodels in Program Reverse Engineering
A Taxonomy for Program Metamodels in Program Reverse Engineering
 
アジャイル品質セミナー・アジャイル開発イテレーション・学習
アジャイル品質セミナー・アジャイル開発イテレーション・学習アジャイル品質セミナー・アジャイル開発イテレーション・学習
アジャイル品質セミナー・アジャイル開発イテレーション・学習
 
Pattern mining-scrum gatheringtokyo20130115
Pattern mining-scrum gatheringtokyo20130115Pattern mining-scrum gatheringtokyo20130115
Pattern mining-scrum gatheringtokyo20130115
 
SQiP2015-研究のデザイン入門
SQiP2015-研究のデザイン入門SQiP2015-研究のデザイン入門
SQiP2015-研究のデザイン入門
 
ソフトウェアエンジニアリングの全体とIoT時代のモデリングおよび関連する品質
ソフトウェアエンジニアリングの全体とIoT時代のモデリングおよび関連する品質ソフトウェアエンジニアリングの全体とIoT時代のモデリングおよび関連する品質
ソフトウェアエンジニアリングの全体とIoT時代のモデリングおよび関連する品質
 
XP祭り2015 - 国際会議Agile2015参加報告(鷲崎)
XP祭り2015 - 国際会議Agile2015参加報告(鷲崎)XP祭り2015 - 国際会議Agile2015参加報告(鷲崎)
XP祭り2015 - 国際会議Agile2015参加報告(鷲崎)
 
Pythonを含む多くのプログラミング言語を扱う処理フレームワークとパターン、鷲崎弘宜、PyConJP 2016 招待講演
Pythonを含む多くのプログラミング言語を扱う処理フレームワークとパターン、鷲崎弘宜、PyConJP 2016 招待講演Pythonを含む多くのプログラミング言語を扱う処理フレームワークとパターン、鷲崎弘宜、PyConJP 2016 招待講演
Pythonを含む多くのプログラミング言語を扱う処理フレームワークとパターン、鷲崎弘宜、PyConJP 2016 招待講演
 
正統なソフトウェア品質エンジニアであるためにSQiP研究会に入るべき7つの理由
正統なソフトウェア品質エンジニアであるためにSQiP研究会に入るべき7つの理由正統なソフトウェア品質エンジニアであるためにSQiP研究会に入るべき7つの理由
正統なソフトウェア品質エンジニアであるためにSQiP研究会に入るべき7つの理由
 

Similaire à Software Maintenance Support by Extracting Links and Models

Proto Spiral.ppt Proto Spiral.ppt Proto Spiral.ppt Proto Spiral.ppt
Proto Spiral.ppt Proto Spiral.ppt Proto Spiral.ppt Proto Spiral.pptProto Spiral.ppt Proto Spiral.ppt Proto Spiral.ppt Proto Spiral.ppt
Proto Spiral.ppt Proto Spiral.ppt Proto Spiral.ppt Proto Spiral.ppt
AnirbanBhar3
 

Similaire à Software Maintenance Support by Extracting Links and Models (20)

Waseda Super Global University Program and Collaboration in Software Patterns
Waseda Super Global University Program and Collaboration in Software PatternsWaseda Super Global University Program and Collaboration in Software Patterns
Waseda Super Global University Program and Collaboration in Software Patterns
 
Intelligent Software Engineering: Synergy between AI and Software Engineering...
Intelligent Software Engineering: Synergy between AI and Software Engineering...Intelligent Software Engineering: Synergy between AI and Software Engineering...
Intelligent Software Engineering: Synergy between AI and Software Engineering...
 
SETTA'18 Keynote: Intelligent Software Engineering: Synergy between AI and So...
SETTA'18 Keynote: Intelligent Software Engineering: Synergy between AI and So...SETTA'18 Keynote: Intelligent Software Engineering: Synergy between AI and So...
SETTA'18 Keynote: Intelligent Software Engineering: Synergy between AI and So...
 
IRJET- Review on Intelligent System for College
IRJET- Review on Intelligent System for CollegeIRJET- Review on Intelligent System for College
IRJET- Review on Intelligent System for College
 
IRJET- Review on Intelligent System for College
IRJET- Review on Intelligent System for CollegeIRJET- Review on Intelligent System for College
IRJET- Review on Intelligent System for College
 
Summarization Techniques for Code, Change, Testing and User Feedback
Summarization Techniques for Code, Change, Testing and User FeedbackSummarization Techniques for Code, Change, Testing and User Feedback
Summarization Techniques for Code, Change, Testing and User Feedback
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
Intelligent Software Engineering: Synergy between AI and Software Engineering
Intelligent Software Engineering: Synergy between AI and Software EngineeringIntelligent Software Engineering: Synergy between AI and Software Engineering
Intelligent Software Engineering: Synergy between AI and Software Engineering
 
IEEE Computer Society’s Strategic Activities and Products including SWEBOK Guide
IEEE Computer Society’s Strategic Activities and Products including SWEBOK GuideIEEE Computer Society’s Strategic Activities and Products including SWEBOK Guide
IEEE Computer Society’s Strategic Activities and Products including SWEBOK Guide
 
Proto Spiral.ppt Proto Spiral.ppt Proto Spiral.ppt Proto Spiral.ppt
Proto Spiral.ppt Proto Spiral.ppt Proto Spiral.ppt Proto Spiral.pptProto Spiral.ppt Proto Spiral.ppt Proto Spiral.ppt Proto Spiral.ppt
Proto Spiral.ppt Proto Spiral.ppt Proto Spiral.ppt Proto Spiral.ppt
 
Software Analytics: Towards Software Mining that Matters (2014)
Software Analytics:Towards Software Mining that Matters (2014)Software Analytics:Towards Software Mining that Matters (2014)
Software Analytics: Towards Software Mining that Matters (2014)
 
Arabidopsis Information Portal: A Community-Extensible Platform for Open Data
Arabidopsis Information Portal: A Community-Extensible Platform for Open DataArabidopsis Information Portal: A Community-Extensible Platform for Open Data
Arabidopsis Information Portal: A Community-Extensible Platform for Open Data
 
research Paper face recognition attendance system
research Paper face recognition attendance systemresearch Paper face recognition attendance system
research Paper face recognition attendance system
 
Focap
FocapFocap
Focap
 
Se research update
Se research updateSe research update
Se research update
 
akash_cv
akash_cvakash_cv
akash_cv
 
Security Patterns: Research Direction, Metamodel, Application and Verification
Security Patterns: Research Direction, Metamodel, Application and VerificationSecurity Patterns: Research Direction, Metamodel, Application and Verification
Security Patterns: Research Direction, Metamodel, Application and Verification
 
React based fullstack edtech web application
React based fullstack edtech web applicationReact based fullstack edtech web application
React based fullstack edtech web application
 
Software Mining and Software Datasets
Software Mining and Software DatasetsSoftware Mining and Software Datasets
Software Mining and Software Datasets
 
QuTrack: Model Life Cycle Management for AI and ML models using a Blockchain ...
QuTrack: Model Life Cycle Management for AI and ML models using a Blockchain ...QuTrack: Model Life Cycle Management for AI and ML models using a Blockchain ...
QuTrack: Model Life Cycle Management for AI and ML models using a Blockchain ...
 

Plus de Hironori Washizaki

Plus de Hironori Washizaki (20)

IEEE Computer Society 2024 Technology Predictions Update
IEEE Computer Society 2024 Technology Predictions UpdateIEEE Computer Society 2024 Technology Predictions Update
IEEE Computer Society 2024 Technology Predictions Update
 
鷲崎弘宜, "国際規格ISO/IEC 24773とその意義", 情報処理学会 第86回全国大会
鷲崎弘宜, "国際規格ISO/IEC 24773とその意義", 情報処理学会 第86回全国大会鷲崎弘宜, "国際規格ISO/IEC 24773とその意義", 情報処理学会 第86回全国大会
鷲崎弘宜, "国際規格ISO/IEC 24773とその意義", 情報処理学会 第86回全国大会
 
TISO/IEC JTC1におけるソフトウェア工学知識体系、技術者認証および品質の標準化と研究・教育他への活用
TISO/IEC JTC1におけるソフトウェア工学知識体系、技術者認証および品質の標準化と研究・教育他への活用TISO/IEC JTC1におけるソフトウェア工学知識体系、技術者認証および品質の標準化と研究・教育他への活用
TISO/IEC JTC1におけるソフトウェア工学知識体系、技術者認証および品質の標準化と研究・教育他への活用
 
アジャイル品質のパターンとメトリクス Agile Quality Patterns and Metrics (QA2AQ) 20240225
アジャイル品質のパターンとメトリクス Agile Quality Patterns and Metrics (QA2AQ) 20240225アジャイル品質のパターンとメトリクス Agile Quality Patterns and Metrics (QA2AQ) 20240225
アジャイル品質のパターンとメトリクス Agile Quality Patterns and Metrics (QA2AQ) 20240225
 
Joseph Yoder : Being Agile about Architecture
Joseph Yoder : Being Agile about ArchitectureJoseph Yoder : Being Agile about Architecture
Joseph Yoder : Being Agile about Architecture
 
世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート
世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート
世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート
 
SWEBOK Guide Evolution and Its Emerging Areas including Machine Learning Patt...
SWEBOK Guide Evolution and Its Emerging Areas including Machine Learning Patt...SWEBOK Guide Evolution and Its Emerging Areas including Machine Learning Patt...
SWEBOK Guide Evolution and Its Emerging Areas including Machine Learning Patt...
 
デジタルトランスフォーメーション(DX)におけるソフトウェアの側面とダイバーシティ・インクルーシブに関する研究実践動向
デジタルトランスフォーメーション(DX)におけるソフトウェアの側面とダイバーシティ・インクルーシブに関する研究実践動向デジタルトランスフォーメーション(DX)におけるソフトウェアの側面とダイバーシティ・インクルーシブに関する研究実践動向
デジタルトランスフォーメーション(DX)におけるソフトウェアの側面とダイバーシティ・インクルーシブに関する研究実践動向
 
SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~
SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~
SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~
 
人生100年・60年カリキュラム時代のDX人材育成: スマートエスイー 2021年度成果および2022年度募集
人生100年・60年カリキュラム時代のDX人材育成: スマートエスイー 2021年度成果および2022年度募集人生100年・60年カリキュラム時代のDX人材育成: スマートエスイー 2021年度成果および2022年度募集
人生100年・60年カリキュラム時代のDX人材育成: スマートエスイー 2021年度成果および2022年度募集
 
スマートエスイーコンソーシアムの概要と2021年度成果紹介
スマートエスイーコンソーシアムの概要と2021年度成果紹介スマートエスイーコンソーシアムの概要と2021年度成果紹介
スマートエスイーコンソーシアムの概要と2021年度成果紹介
 
DXの推進において企業内に求められる人材やデジタル人材の育て方
DXの推進において企業内に求められる人材やデジタル人材の育て方DXの推進において企業内に求められる人材やデジタル人材の育て方
DXの推進において企業内に求められる人材やデジタル人材の育て方
 
対応性のある運用のパターン
対応性のある運用のパターン対応性のある運用のパターン
対応性のある運用のパターン
 
モデル訓練のパターン
モデル訓練のパターンモデル訓練のパターン
モデル訓練のパターン
 
パターンのつながりとAI活用成熟度
パターンのつながりとAI活用成熟度パターンのつながりとAI活用成熟度
パターンのつながりとAI活用成熟度
 
データ表現のパターン
データ表現のパターンデータ表現のパターン
データ表現のパターン
 
機械学習デザインパターンの必要性と機械学習ライフサイクル
機械学習デザインパターンの必要性と機械学習ライフサイクル機械学習デザインパターンの必要性と機械学習ライフサイクル
機械学習デザインパターンの必要性と機械学習ライフサイクル
 
青山幹雄先生を偲んで(開拓、理論、実践、コミュニティ&国際)
青山幹雄先生を偲んで(開拓、理論、実践、コミュニティ&国際)青山幹雄先生を偲んで(開拓、理論、実践、コミュニティ&国際)
青山幹雄先生を偲んで(開拓、理論、実践、コミュニティ&国際)
 
Software Engineering Patterns for Machine Learning Applications
Software Engineering Patterns for Machine Learning ApplicationsSoftware Engineering Patterns for Machine Learning Applications
Software Engineering Patterns for Machine Learning Applications
 
機械学習デザインパターンおよび機械学習システムの品質保証の取り組み
機械学習デザインパターンおよび機械学習システムの品質保証の取り組み機械学習デザインパターンおよび機械学習システムの品質保証の取り組み
機械学習デザインパターンおよび機械学習システムの品質保証の取り組み
 

Dernier

Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
chiefasafspells
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
masabamasaba
 

Dernier (20)

%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 

Software Maintenance Support by Extracting Links and Models

  • 1. Software Maintenance Support by Extracting Links and Models Hiro - Hironori Washizaki Waseda University Twitter: @Hiro_Washi washizaki@waseda.jp http://www.washi.cs.waseda.ac.jp/ Thanks to: Ryosuke, Kazuki, Yuta and other collaborators! Latece Seminar, Nov 11, 2015 @ UQAM, Montreal
  • 2. • Assoc. Prof., Head, Global Software Engineering Laboratory, Waseda University • Visiting Assoc. Prof., National Institute of Informatics • Visiting Prof., Ecole Polytechnique de Montreal • Convenor, ISO/IEC SC7/WG20 • Chair, IEEE CS Japan Chapter • Chair, SEMAT Japan Chapter 2 Hironori Washizaki
  • 3. Waseda University Global Software Engineering Lab. • SE research in global development era – Analysis and reuse – Quality assurance – Agile and patterns – SE education • 5 professors • 15+ partners • 25 students (5 from China, Indonesia, Afganistan) 3
  • 4. Software maintenance matters! 60–90% of total costs 4 B. Lientz and E. Swanson, Software Maintenance Management. Reading, Ma.: Addison-Wesley, 1980. J. Conejero, E. Figueiredo, A. Garcia, J. Hernández and E. Jurado, "On the Relationship of Concern Metrics and Requirements Maintainability,” Information and Software Technology, vol.54, no.2, 2012.
  • 5. How can we support? 5 Requirements Design Program source code
  • 6. How can we support? 6 Requirements Design Program source code Tracing artifacts Tracing artifacts Log-based interactive recovery [CAiSE’15] Transitive recovery [ICSME’15 ERA] Ryosuke Tsuchiya, Hironori Washizaki, Yoshiaki Fukazawa, Keishi Oshima, and Ryota Mibe,“Interactive Recovery of Requirements Traceability Links Using User Feedback and Configuration Management Logs,” 27th International Conference on Advanced Information Systems Engineering (CAiSE 2015) Kazuki Nishikawa, Hironori Washizaki, Yoshiaki Fukazawa, Keishi Ohshima, Ryota Mibe, “Recovering Transitive Traceability Links among Software Artifacts,” 31st IEEE International Conference on Software Maintenance and Evolution (ICSME 2015), ERA Track
  • 7. Traceability links? • Relationships among software artifacts • Key to ensure consistency among artifacts [Antoniol‘00] 7G. Antoniol, B. Caprile, A. Potrich and P. Tonella, "Design-Code Traceability for Object-Oriented Systems," Annals of Software Engineering, vol. 9, no. 1-4, pp. 35-58, 2000 Requirement Source code Run automated test Run basic test Add tests Automate.c X Basic.c X TestDB.c X TestRun.c X X
  • 8. Facts of traceability links • Rarely established explicitly [Lucia’12] • Most of existing recovery techniques employing Information Retrieval (IR) approaches such as TF/IDF and Vector Space Model (VSM) 8 A. De Lucia, et al., "Information Retrieval Methods for Automated Traceability Recovery," in Software and Systems Traceability, 1st ed., J. Cleland-Huang, O. Gotel and A. Zisman, Ed. New York: Springer, p. 71-98, 2012. Automated test Automated.c MyMem.c Initialization Requirement 基本テスト Basic.c NGOK
  • 9. Interactive recovery utilizing call relationships Rank Requirement Code file Score Recommended Correct 1 Recover link 2 Recover link 3 Recover link ・・・ ・・・ 9 Recover link ・・・ LinkPresenter.java ・・・ LinkRecover.java ScoreCalc.java ・・・ Call Ryosuke Tsuchiya, Hironori Washizaki, Yoshiaki Fukazawa, Keishi Oshima, and Ryota Mibe,“Interactive Recovery of Requirements Traceability Links Using User Feedback and Configuration Management Logs,” 27th International Conference on Advanced Information Systems Engineering (CAiSE 2015)
  • 10. Interactive recovery utilizing call relationships Rank Requirement Code file Score Recommended Correct 1 Recover link LinkRecover.java 0.98 not yet 2 Recover link LinkPresenter.java 0.65 not yet 3 Recover link ScoreCalc.java 0.30 not yet ・・・ ・・・ ・・・ ・・・ 10 Recover link ・・・ LinkPresenter.java ・・・ LinkRecover.java ScoreCalc.java ・・・ ☑ Call ☑ Ryosuke Tsuchiya, Hironori Washizaki, Yoshiaki Fukazawa, Keishi Oshima, and Ryota Mibe,“Interactive Recovery of Requirements Traceability Links Using User Feedback and Configuration Management Logs,” 27th International Conference on Advanced Information Systems Engineering (CAiSE 2015)
  • 11. Interactive recovery utilizing call relationships Rank Requirement Code file Score Recommended Correct 1 Recover link LinkRecover.java 0.98 not yet 2 Recover link ScoreCalc.java 0.30 Recommended 3 Recover link LinkPresenter.java 0.65 not yet ・・・ ・・・ ・・・ ・・・ 11 Recover link ・・・ LinkPresenter.java ・・・ LinkRecover.java ScoreCalc.java ・・・ ☑ Call ☑ Ryosuke Tsuchiya, Hironori Washizaki, Yoshiaki Fukazawa, Keishi Oshima, and Ryota Mibe,“Interactive Recovery of Requirements Traceability Links Using User Feedback and Configuration Management Logs,” 27th International Conference on Advanced Information Systems Engineering (CAiSE 2015)
  • 12. Automated test Log-based recovery 12 Automated test automate・・ ・・XML・・・ ・test・・・・・・ Requirement automate XML test automate XML Keywords High TF-IDF value Proper noun Filtered by experts automate XML Revision: 137 Author: anilsaharan Date: 2011/8/20 9:35:13 Message: Changes for fixing XML tag issue ---- Modified : /trunk/CUnit/Sources/Tool/Process.c Process.c ・・・ Ryosuke Tsuchiya, Hironori Washizaki, Yoshiaki Fukazawa, Keishi Oshima, and Ryota Mibe,“Interactive Recovery of Requirements Traceability Links Using User Feedback and Configuration Management Logs,” 27th International Conference on Advanced Information Systems Engineering (CAiSE 2015)
  • 13. Experiment: Japanese enterprise system • 80,000 LOC, 192 requirements, 694 Java code files, 7090 revisions in Subversion • 726 known links as correct answer 13 Ryosuke Tsuchiya, Hironori Washizaki, Yoshiaki Fukazawa, Keishi Oshima, and Ryota Mibe,“Interactive Recovery of Requirements Traceability Links Using User Feedback and Configuration Management Logs,” 27th International Conference on Advanced Information Systems Engineering (CAiSE 2015)
  • 14. Transitive recovery 14 Code Design Test Score C1 Da Tx 0.16 C1 Da Ty 0.14 C1 Db Tx 0.03 • Vector Space Model (VSM) for basic recovery Source code Design Test case Code Design Similarity C1 Da 0.4 C2 Db 0.3 Design Test Similarity Da Tx 0.40 Da Ty 0.35 Db Tx 0.10 Kazuki Nishikawa, Hironori Washizaki, Yoshiaki Fukazawa, Keishi Ohshima, Ryota Mibe, “Recovering Transitive Traceability Links among Software Artifacts,” 31st IEEE International Conference on Software Maintenance and Evolution (ICSME 2015), ERA Track
  • 15. Experiment: EasyClinic • Target link: 47 Java code ⇔ 63 test docs • Supportive artifacts: 20 design docs or 30 use cases • Effectiveness varies with supportive artifacts 15Kazuki Nishikawa, Hironori Washizaki, Yoshiaki Fukazawa, Keishi Ohshima, Ryota Mibe, “Recovering Transitive Traceability Links among Software Artifacts,” 31st IEEE International Conference on Software Maintenance and Evolution (ICSME 2015), ERA Track
  • 16. How can we support? 16 Requirements Design Program source code Yuta Maezawa, Kazuki Nishiura, Hironori Washizaki, Shinichi Honiden, “Validating Ajax Applications Using a Delay-Based Mutation Technique,” 29th IEEE/ACM International Conference on Automated Software Engineering (ASE 2014) Yuta Maezawa, Hironori Washizaki, Yoshinori Tanabe and Shinichi Honiden, “Automated Verification of Pattern-based Interaction Invariants in Ajax Applications,” 28th IEEE/ACM International Conference on Automated Software Engineering (ASE2013)
  • 17. How can we support? 17 Requirements Design Program source code Reversing model Detecting problems Detecting problems Ajax model extraction and verification [ASE’13][ASE’14] Yuta Maezawa, Kazuki Nishiura, Hironori Washizaki, Shinichi Honiden, “Validating Ajax Applications Using a Delay-Based Mutation Technique,” 29th IEEE/ACM International Conference on Automated Software Engineering (ASE 2014) Yuta Maezawa, Hironori Washizaki, Yoshinori Tanabe and Shinichi Honiden, “Automated Verification of Pattern-based Interaction Invariants in Ajax Applications,” 28th IEEE/ACM International Conference on Automated Software Engineering (ASE2013)
  • 18. 18 window.onload = setEventHandler; function setEventHandler() { $(“reg_type”).onchange = calcPrice; ・・・ $(“reg_addcart”).onclick = addCart; }; function calcPrice() { ・・・ }; function addCart() { if(isValidInput()) { reqRunTrans(); } else { alert(“Invalid user inputs”); } }; function reqRunTrans() { new Ajax.Request(“runTrans.php”, { method: “GET”, parameters: getParams(), onSuccess: succeeded }); }; function succeeded() { disableAll(); jumpToConfirm(); };Yuta Maezawa, Hironori Washizaki, Yoshinori Tanabe and Shinichi Honiden, “Automated Verification of Pattern-based Interaction Invariants in Ajax Applications,” 28th IEEE/ACM International Conference on Automated Software Engineering (ASE2013)
  • 19. 19 Extracted finite state machine Yuta Maezawa, Hironori Washizaki, Yoshinori Tanabe and Shinichi Honiden, “Automated Verification of Pattern-based Interaction Invariants in Ajax Applications,” 28th IEEE/ACM International Conference on Automated Software Engineering (ASE2013)
  • 20. • #70 programming and usability patterns • Potential faults: might not be revealed by testing Ajax (Asynchronous JavaScript + XML) Design Patterns [Mahamoff’06] 20 [Mahamoff’06] M. Mahamoff, “Ajax Design Patterns”, O’Reilly Media Inc., 2006. E.g. User Action “Prevent multiple calls of specific user event handler” Yuta Maezawa, Hironori Washizaki, Yoshinori Tanabe and Shinichi Honiden, “Automated Verification of Pattern-based Interaction Invariants in Ajax Applications,” 28th IEEE/ACM International Conference on Automated Software Engineering (ASE2013)
  • 21. Duplicate order 21 Verifying invariants of specified pattern Yuta Maezawa, Hironori Washizaki, Yoshinori Tanabe and Shinichi Honiden, “Automated Verification of Pattern-based Interaction Invariants in Ajax Applications,” 28th IEEE/ACM International Conference on Automated Software Engineering (ASE2013)
  • 22. 22 window.onload = setEventHandler; function setEventHandler() { $(“reg_type”).onchange = calcPrice; ・・・ $(“reg_addcart”).onclick = addCart; }; function calcPrice() { ・・・ }; function addCart() { if(isValidInput()) { $(“addCart”).disabled = true; reqRunTrans(); } else { alert(“Invalid user inputs”); $(“addCart”).disabled = false; } }; function reqRunTrans() { new Ajax.Request(“runTrans.php”, { method: “GET”, parameters: getParams(), onSuccess: succeeded }); }; function succeeded() { disableAll(); jumpToConfirm(); };Yuta Maezawa, Hironori Washizaki, Yoshinori Tanabe and Shinichi Honiden, “Automated Verification of Pattern-based Interaction Invariants in Ajax Applications,” 28th IEEE/ACM International Conference on Automated Software Engineering (ASE2013)
  • 23. • Developers are concerned with interactions[Duhl’03] • Interaction = event + callback • Rules are necessary for distinguishing interaction- related code fragments Interaction-based state machine extraction 23 ……………………………… ……………………………… ……………………………… ……………………………… …………………………….… ……………………………… …………………………… function addCart() {… ……………………………… ……………………..…… ……………………………………… ……………………………………… $(“addcart”).disabled=true; ……………………………………… ……………………………………… …………………………………… ………… ………… ………… ……………………………… ………………………..…… ……………………………… ……………………………… ……………………………… ……………………………… ……………………………… ……………………………… ……………………………… ……………………………… ………………………… …………………………………………… …………………………………………… function setEventHandler() { $(“addcart”).onclick=addCart; …………………………………………… …………………………………………… …………………………………………… …………………………………………… …………………………………………… onclick setEventHandler ev addCart …disabled… [c] [!c] [Duhl’03] J.Duhl, “White Paper: Rich Internet Applications”, IDC Technical Report’ 03. Yuta Maezawa, Hironori Washizaki, Yoshinori Tanabe and Shinichi Honiden, “Automated Verification of Pattern-based Interaction Invariants in Ajax Applications,” 28th IEEE/ACM International Conference on Automated Software Engineering (ASE2013)
  • 24. Verification on Promela with LTL 24 Self interaction User Server active proctype App () {…} App model active proctype Interaction () {…} Interaction model Faulty execution paths Verification formulas (LTL) Pattern Negative property User Action <>(App_state == PreventFunc && App_event == UserEvent ) Yuta Maezawa, Hironori Washizaki, Yoshinori Tanabe and Shinichi Honiden, “Automated Verification of Pattern-based Interaction Invariants in Ajax Applications,” 28th IEEE/ACM International Conference on Automated Software Engineering (ASE2013)
  • 25. • Problem: Potential faults might not cause actual errors • Assumption: Unexpected network latency make potential faults executable. • Solution: Delay-based mutation and testing Delay-based mutation 25 <button onclick=“handleClick()” /> ・・・ <script src=“handleClick.js” /> new DelayedRequest(3000).applyFunction( $.get , “myscript.php”, { name: “ABC” }, function(data) { alert(“Response is ” + data); } ); Synchronous delay Asynchronous delay Original code S1 S2 S3 Late response reveals! Assumes immediate response Yuta Maezawa, Kazuki Nishiura, Hironori Washizaki, Shinichi Honiden, “Validating Ajax Applications Using a Delay-Based Mutation Technique,” 29th IEEE/ACM International Conference on Automated Software Engineering (ASE 2014)
  • 26. Case Study: industrial services 26 Subject JS [LOC] #States #Trans. #Invariants verified #Potential faults #Delay- Dependent faults 2020 Marketing 2,468 15 547 4 1 1 ECD China 880 32 508 3 2 1 Easy Serviced Apartments 3,523 34 602 3 1 1 Undefined function call Login failed with correct username and password Yuta Maezawa, Kazuki Nishiura, Hironori Washizaki, Shinichi Honiden, “Validating Ajax Applications Using a Delay-Based Mutation Technique,” 29th IEEE/ACM International Conference on Automated Software Engineering (ASE 2014)
  • 27. Summary 27 Reversing model Tracing artifacts Detecting problems Detecting problems Tracing artifacts Log-based interactive recovery [CAiSE’15] Transitive recovery [ICSME’15 ERA] Ajax model extraction and verification [ASE’13] Ajax delay-based mutation [ASE’14]
  • 28. 28 Feb 24-26 (due Dec 4) asianplop.org Mar 15 (due Dec)(TBD) ppap.soccerlab.polymtl.ca Mar 11 (due Jan 8) samuraicoding.info Mar 13-18 (due Sep 2016) aster.or.jp/conference/icst2017/ 10th IEEE International Conference on Software Testing, Verification and Validation IPSJ International AI Programming Contest