Recovery of Traceability Links and Behavior Models for Software Maintenance, Keynote, 2016...
-
Upload
hironori-washizaki -
Category
Software
-
view
497 -
download
0
Transcript of Recovery of Traceability Links and Behavior Models for Software Maintenance, Keynote, 2016...
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
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();
};
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