waseda super global university program and collaboration in software patterns

16
Waseda Super Global University Program and Collaboration in Software Patterns Hiro - Hironori Washizaki Waseda University / National Institute of Informatics Twitter: @Hiro_Washi [email protected] http://www.washi.cs.waseda.ac.jp/ AsianPLoP 2016 @ Taipei Tech. Feb 24, 2016

Upload: hironori-washizaki

Post on 16-Jan-2017

1.888 views

Category:

Software


0 download

TRANSCRIPT

Waseda Super Global University Program and Collaboration in

Software Patterns

Hiro - Hironori Washizaki Waseda University / National Institute of Informatics

Twitter: @Hiro_Washi [email protected]

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

• 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

ウォー ジアオ ジゥ チー ホン イー