Hironori Washizaki, "Waseda Super Global University Program and Collaboration in Software Patterns", Invited talk at AsianPLoP 2016: 5th Asian Conference on Pattern Languages of Programs, February 24, 2016, Taipei, Taiwan
Waseda Super Global University Program and Collaboration in Software Patterns
1. 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
2. Agenda
• Waseda Super Global University Program and
Research Collaboration in Software Patterns
• Program Reverse Engineering Metamodel and
Patterns
• Pattern-based Ajax Program Verification
2
3. 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”
5. 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
6. 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
7. Agenda
• Waseda Super Global University Program and
Research Collaboration in SE/Patterns
• Program Reverse Engineering Metamodel and
Patterns
• Pattern-based Ajax Program Verification
7
8. Agenda
• Waseda Super Global University Program and
Research Collaboration in SE/Patterns
• Program Reverse Engineering Metamodel and
Patterns
• Pattern-based Ajax Program Verification
12
9. 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();
};
10. 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)
11. • #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
12. 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)
13. 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(); };
14. 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)
15. • Waseda SGU seeks collaboration opportunities!
• Patterns go multi-disciplinary!
Conclusion, and future!
19
Community
Patterns and
Pattern
Languages
Software (and Systems)
Engineering
Architecture
16. • Assoc. Prof., Head, Global
Software Engineering
Laboratory, Waseda University
• Visiting Assoc. Prof., National
Institute of Informatics
• Chair, IEEE CS Japan
• Chair, SEMAT Japan Chapter
• Convenor, ISO/IEC/SC7/WG20
25
我叫鷲崎弘宜。
“Hiro”nori Washizaki
ウォー ジアオ ジゥ チー ホン イー