waseda super global university program and collaboration in software patterns
Post on 16-Jan-2017
1.889 Views
Preview:
TRANSCRIPT
Waseda Super Global University Program and Collaboration in
Software Patterns
Hiro - Hironori Washizaki Waseda University / National Institute of Informatics
Twitter: @Hiro_Washi washizaki@waseda.jp
http://www.washi.cs.waseda.ac.jp/
AsianPLoP 2016 @ Taipei Tech. Feb 24, 2016
Agenda
• Waseda Super Global University Program and Research Collaboration in Software Patterns
• Program Reverse Engineering Metamodel and Patterns
• Pattern-based Ajax Program Verification
2
Waseda U. Super Global University (SGU) ‘15-’25
3
• 6 Units including “ICT and Robotics”
• Joint research, academic exchange, Ph.D. joint supervision
Network example of the Unit “ICT and Robotics”
Patterns go multi-disciplinary
4
Community, xPLoP
Patterns and
Pattern Languages
Ajax Cloud
Security & Privacy
Software (and Systems)
Engineering
Reverse Engi-
neering
5
Often the only reliable information is embedded in source code…
G. Canfora, et al., "Reverse Engineering and Design Recovery: A Taxonomy", Communications of the ACM, 54(4), 2011.
The International Obfuscated C Code Contest (IOCCC) 2014, 2011
Reverse engineering for maintenance
6
Requirements
Design
Program
source
code
Reverse and detect problems
Analysis process to identify elements and create target’s representations in another or at a higher level of abstraction
Tool and knowledge base
Metamodel and patterns
Agenda
• Waseda Super Global University Program and Research Collaboration in SE/Patterns
• Program Reverse Engineering Metamodel and Patterns
• Pattern-based Ajax Program Verification
7
Agenda
• Waseda Super Global University Program and Research Collaboration in SE/Patterns
• Program Reverse Engineering Metamodel and Patterns
• Pattern-based Ajax Program Verification
12
13
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();
};
14
Extracted finite state machine
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)
• #70 programming and usability patterns
• Potential faults: might not be revealed by testing
Ajax (Asynchronous JavaScript + XML) Design Patterns [Mahamoff’06]
15 [Mahamoff’06] M. Mahamoff, “Ajax Design Patterns”, O’Reilly Media Inc., 2006.
(i) Page load (ii) Option select
(iii) Add to cart
E.g. User Action “Prevent multiple
calls of specific user event handler”
Duplicate order
Duplicate order
16
Verifying invariants of specified pattern
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
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(); };
Interaction-based model extraction and verification
18
Self interaction
User
interaction
Server
interaction
active proctype App () {…}
App model
active proctype Interaction () {…}
Interaction model Faulty execution paths
Verification formulas
Pattern Negative property
User Action <>(App_state == PreventFunc && App_event == UserEvent )
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)
• Waseda SGU seeks collaboration opportunities!
• Patterns go multi-disciplinary!
Conclusion, and future!
19
Community
Patterns and Pattern
Languages
Software (and Systems)
Engineering
Architecture
top related