recovery of traceability links and behavior models for software maintenance, keynote, 2016...

17
Recovery of Traceability Links and Behavior Models for Software Maintenance Hiro - Hironori Washizaki Waseda University / National Institute of Informatics / SYSTEM INFORMATION CO.LTD. Twitter: @Hiro_Washi [email protected] http://www.washi.cs.waseda.ac.jp/ IC-TECS 2016, Dec 24, 2016

Upload: hironori-washizaki

Post on 16-Jan-2017

497 views

Category:

Software


0 download

TRANSCRIPT

Recovery of Traceability Links and Behavior Models for Software

Maintenance

Hiro - Hironori WashizakiWaseda University / National Institute of Informatics /

SYSTEM INFORMATION CO.LTD.

Twitter: @Hiro_Washi [email protected]

http://www.washi.cs.waseda.ac.jp/

IC-TECS 2016, Dec 24, 2016

• Prof., Head, Global Software Engineering Laboratory, WasedaUniversity

• Visiting Assoc. Prof., National Institute of Informatics

• Outside Director, SYSTEM INFORMATION CO.LTD.

• Convenor, ISO/IEC SC7/WG20• Chair, IEEE CS Japan Chapter• Chair, SEMAT Japan Chapter• PC-Chair, IEEE ICST’17• PC-Chair, IEEE CSEE&T’17

2

Hironori Washizaki

Software maintenance matters!

• 60–90% of total costs

• Often the only reliable information is embedded in source code…

3

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.

Reverse engineering for maintenance

4

Requirements

Design

Program

source

code

Tracingartifacts

1. Tracingartifacts

Reversingand detecting

problems

Analysis process to identify elements and create target’s representations in another or at a higher level of abstraction

Metamodel

3. Common framework and

taxonomy

2. Reversingand detecting

problems

2. Reversingand detecting

problems

5

Requirements

Design

Program

source

code

Tracingartifacts

1. Tracingartifacts

Log-based interactive recovery [CAiSE’15][IEICE’15]

Transitive recovery [ICSME’15]

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)

Ryosuke Tsuchiya, Hironori Washizaki, Yoshiaki Fukazawa, Tadahisa Kato, Masumi Kawakami and Kentaro Yoshimura, Recovering

Traceability Links between Requirements and Source Code using the Configuration Management Log,” IEICE Transactions on

Information and Systems, Vol.98-D, No.4, pp.852-862, 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

Metamodel

Facts of traceability links

• Relationships among software artifacts

• Key to ensure consistency among artifacts, but rarely established explicitly [Lucia’12]

6[Lucia’12] 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.cmemory.c

InitializationRequirement

基本試験basic.c

NGOK

Transitive recovery

7

Source code Design Test case

8

Requirements

Design

Program

source

code

2. Reversingmodel

Detectingproblems

2. Detectingproblems

Design 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)

Metamodel

9

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();

};

Duplicate order

10

Model Extraction and Verification

11

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(); };

12

Requirements

Design

Program

source

code

Metamodel

3. Common taxonomy and

vocabulary

Conceptual Framework and Taxonomy for

Program Metamodels [ICSME’16]

Hironori Washizaki, Yann-Gael Gueheneuc, Foutse Khomh, “A Taxonomy for Program Metamodels in Program Reverse

Engineering,” 32nd IEEE International Conference on Software Maintenance and Evolution (ICSME), 2016

Conceptual Framework and Taxonomy for Metamodels

13

MetadataStatement

MethodTransformation

・・・

PackageClass・・・

SchemaHistory・・・

Program translation

[HICSS’17]

Program visualization[VISSOFT’16]

J. Li, K. Sakamoto, H. Washizaki, et al., “Promotion of Educational Effectiveness by Translation-based Programming Language

Learning Using Java and Swift,” HICSS 2017

R. Ishizue, H. Washizaki, et al., “Metrics visualization technique based on the origins and function layers,” VISSOFT 2016

Model extraction[ASE’13][ASE’14]

Traceability links[ICSME’15][IEICE’15]Source code Design Test case

Conceptual Framework and Taxonomy (excerpt.)

14

Metasyntax

Grammar

Program

Meta language

Programmetamodel

Programmodel

Metasyntaxof schema

Exchangeformat

Model data

conforms

describes

can be mapped to

describes

can be mapped to

class C {

void m() {

...

}

<class/>

<name>C

</name>

...

C: Class

m: Method

Grammarware Modelware Dataware

conforms

15

Requirements

Design

Program

source

code

TracingartifactsTracingartifacts

Reversingand detecting

problems

Metamodel

Common taxonomy and

vocabulary

Reversingand detecting

problems

Framework and Taxonomy for Program Metamodels [ICSME’16]

Ajax model extraction and verification [ASE’13][ASE’14]

Traceability Links Recovery [CAiSE’15][IEICE’15][ICSME’15]

Trace in all directions

Trace ANY (‘16-’20)

16

Req.

ER, UML

SimulinkGoal models

SysML, UML

JavaScript

Java

C

Cloud

Reliable traceby transitive and

interactive recovery

Modularize and Reuse, change managementExtractionVerification

17

Mar 12-13 Tokyo (due Jan 13)

asianplop.org

Nov 14-16 Georgia (due Apr)

www.cseet2017.com

Mar 17 Nagoya (due Feb 11)

samuraicoding.info

Mar 13-17 Tokyo

aster.or.jp/conference/icst2017/

10th IEEE International Conference on Software Testing, Verification and Validation

IPSJ International AI Programming Contest

20176th

IEEE CSEE&T

30th Int’l Conf. Software

Engineering Education

and Training