You are on page 1of 1

Know Before You Port: The Role of Program

Comprehension in Porting Scientific Software


1 2 2 3
Kostadin Damevski , David Shepherd , Nicholas Kraft , Lori Pollock
1
Virginia Commonwealth University
2
ABB Corporate Research
3
University of Delaware

Challenges in Porting Scientific Software Key Research Questions

Application API Library v.0.0.x A.x() 5 Methods


B.y() 3 Classes this method
C.z() 123 LOC computes...

API Library v.0.0.x+1 Example of Cost of API Call Graph of Natural Language
API Use Migration Application Code Summary
Relevant to API Use

I Scientific and engineering software often outlives the current generation of I How can examples of API use, for the purposes of comprehension, be
hardware, and in turn needs to be modified to execute on newer classes of extracted from libraries and other relevant code?
hardware architectures. [Carver et al.] I How can the cost and benefit of API migration be estimated
I Program comprehension is commonly the most time consuming task automatically?
during software maintenance. [Ko et al.] I What is the code relevant for comprehension and modification in a
I During a software maintenance task, the quality of program comprehension particular porting scenario?
impacts the quality of the result program change. [Robillard et al.] I What are relevant natural languages summaries of APIs and their use that
I Scientific software is often conservative in the use of external libraries, can aid rapid comprehension?
limiting the impact of software engineering tools that require long-term I Are existing natural language dictionaries appropriate for scientific and
buy in. engineering codes?
I Few software engineering tools are capable of executing on platforms and I Does code with very poor natural language content (in identifiers or
for languages relevant to scientific software. comments) lend itself to statistical natural language models?

Combined Textual and Structural Analysis of Software Artifacts for Program Comprehension in Porting

Application
Docs Source API Usage
Extract Source Examples
Code
Code Structure
Combined Application
Structural and Code that
Textual Models is Affected
Other of Code by API Use
Library API
Usage Extract Mappings
Examples Libraries Natural Language
Source Semantics of Code
Code
API-related
Model Analysis Natural
Porting Language
Cost / Summary
Benefit of
Test Commit
Analysis Relevant
Cases Logs
Code

INPUT DATA ANALYSIS OUTPUT

Relevant Prior Research and Engineering Work


References

I Source Code Structural Analysis (for C, C++, Java, C#) I [Carver et al.] Jeffrey C. Carver, Richard P. Kendall, Susan E. Squires, and Douglass E.
I SrcML http://www.srcml.org [U. of Akron, Kent State U.] Post. Software development environments for scientific and engineering software: A
I SrcML.NET https://github.com/abb-iss/SrcML.NET
series of case studies. 29th International Conference on Software Engineering (ICSE07),
I Constructs call graphs, def-use chains, and allows for easy querying of AST
pages 550-559. IEEE, 2007.
I Natural Language Analysis of Source Code
I [Ko et al.] Andrew J. Ko, Brad A. Myers, Michael J. Coblenz, Htet Htet Aung. An
I Software Word Usage Model (SWUM)
https://github.com/abb-iss/Swum.NET exploratory study of how developers seek, relate, and collect relevant information during
I Generates natural language semantic information from code software maintenance tasks. IEEE Transactions on Software Engineering 32(12):971-987
(2006).
I Existing Comprehension Tools
I Sando Feature Location (Code Search) https://sando.codeplex.com I [Robillard et al.] Martin P Robillard, Wesley Coelho, Gail C Murphy. How effective
I Visual Studio extension with over 15,000 downloads developers investigate source code: An exploratory study. IEEE Transactions on
I Prodet Call Graph Navigation and Exploration Tool Software Engineering 30(12):889-903 (2004).

damevski@acm.org

You might also like