1. Department of Arts and Sciences, Georgia State University 2. Department of Electrical and Computer Engineering, Texas Tech University 3. Department.

Slides:



Advertisements
Similar presentations
The Chinese Room: Understanding and Correcting Machine Translation This work has been supported by NSF Grants IIS Solution: The Chinese Room Conclusions.
Advertisements

Introducing Formal Methods, Module 1, Version 1.1, Oct., Formal Specification and Analytical Verification L 5.
Yeu-Sheng Shiue, Ph.D. Christian Brothers University.
Case Tools Trisha Cummings. Our Definition of CASE  CASE is the use of computer-based support in the software development process.  A CASE tool is a.
Benjamin J. Deaver Advisor – Dr. LiGuo Huang Department of Computer Science and Engineering Southern Methodist University.
Introduction  Data movement is a major bottleneck in data-intensive high performance computing  We propose a Fusion Active Storage System (FASS) to address.
Explorations in Tag Suggestion and Query Expansion Jian Wang and Brian D. Davison Lehigh University, USA SSM 2008 (Workshop on Search in Social Media)
Exploring the Neighborhood with Dora to Expedite Software Maintenance Emily Hill, Lori Pollock, K. Vijay-Shanker University of Delaware.
Automated Analysis and Code Generation for Domain-Specific Models George Edwards Center for Systems and Software Engineering University of Southern California.
Chapter 1 The Systems Development Environment 1.1 Modern Systems Analysis and Design Third Edition.
TOOL TO DESIGN FOR CONSTRUCTION WORKER SAFETY An Article Written by Gambatese, Hinze and Haas 1997.
A Virtual Environment for Investigating Counter Measures for MITM Attacks on Home Area Networks Lionel Morgan 1, Sindhuri Juturu 2, Justin Talavera 3,
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Research Proposal Presentation, June 21, 2011: David South and Mary Shuman Integration of a Graphics-Based Programming Tool with Robotics to Stimulate.
Tools for Publishing Environmental Observations on the Internet Justin Berger, Undergraduate Researcher Jeff Horsburgh, Faculty Mentor David Tarboton,
A Critical Infrastructure Testbed for Cybersecurity Research and Education Ai Onda, Kalana Pothuvila, Joseph Urban, and Jordan Berg Abstract Awareness.
Systems Engineer An engineer who specializes in the implementation of production systems This material is based upon work supported by the National Science.
Improving Automatic Abbreviation Expansion within Source Code to Aid in Program Search Tools Zak Fry.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
Concordia University Department of Computer Science and Software Engineering Click to edit Master title style ADVANCED PROGRAMING PRACTICES API documentation.
Project Proposal: Academic Job Market and Application Tracker Website Project designed by: Cengiz Gunay Client: Cengiz Gunay Audience: PhD candidates and.
Tools make jobs easier to do -A computer is a tool used by many professions A computer can do many different jobs because they are programmable - Machine.
Introduction to High-Level Language Programming
Formal Methods 1. Software Engineering and Formal Methods  Every software engineering methodology is based on a recommended development process  proceeding.
Improved Goalie Strategy with the Aldebaran Nao humanoid Robots* *This research is supported by NSF Grant No. CNS Opinions, findings, conclusions,
Thesis Proposal Virtual Reality in Construction Cost Estimating By: Mandy Frazure Date: 5/12/04.
PROGRAMMING LANGUAGES The Study of Programming Languages.
Approach Overview Using Dorothy, an enhanced version of the Alice 2.0 source code, and a Scribbler robot, it is our aim to increase interest in computer.
Caribbean Association of Audit Committee Members Peta-Gaye Bartley 30 July 2013.
Abstract A software development life cycle can be divided into requirements elicitation, specification, design, implementation, testing, and maintenance.
Computational Methods to Vocalize Arabic Texts H. Safadi*, O. Al Dakkak** & N. Ghneim**
Abstract Plant phenotyping involves the assessment of plant traits such as growth, tolerance, resistance, and yield. The Texas Tech Phenotyping Project.
Engineering Design By Brian Nettleton This material is based upon work supported by the National Science Foundation under Grant No Any opinions,
Chapter 1 Introduction Dr. Frank Lee. 1.1 Why Study Compiler? To write more efficient code in a high-level language To provide solid foundation in parsing.
Outcome Based Evaluation for Digital Library Projects and Services
How to Tag a Corpus Using Stanford Tagger. Accuracy All tokens: 97.32% Unknown words: 90.79%
Computer Science Department of 16 October 2012 Creating a Progression of Writing, Speaking & Teaming Learning Outcomes.
CREATING A ZIGBEE HOME AREA NETWORK SIMULATOR FOR SMART GRID SECURITY RESEARCH Gabriel Garza, Samujjwal Bhandari, & Susan Urban Texas Tech University 2012.
Computer Aided Design By Brian Nettleton This material is based upon work supported by the National Science Foundation under Grant No Any opinions,
Dorothy Communication Dorothy Interface Robot Sensors Scribbler Robot(IPRE, 2010) Handler connection Background Dorothy, is a 3D/robotics programming environment.
Communication with Handler Approach Overview Alice 2.0 source code was modified to release event information to a robot handler component using sockets.
Programming and Languages
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
KUFA UNIVERSITY Department of Computer Science 09/12/2015.
Backwards Design STEP 1: Agree on the overarching science concept of the 5E sequence STEP 2: Design the Evaluate and decide what evidence students will.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Automatically detecting and describing high level actions within methods Presented by: Gayani Samaraweera.
Objective: Students will learn the formal essay writing format. Bellwork: What is so important about the thesis statement?
GUI For Computer Architecture May01-05 Team Members: Neil HansenCprE Ben JonesCprE Jon MathewsCprE Sergey SannikovCprE Clients/Advisors: Manimaran Govindarasu.
ELEE 4303 Digital II Introduction to Verilog. ELEE 4303 Digital II Learning Objectives Get familiar with background of HDLs Basic concepts of Verilog.
Researching Technology in South Dakota Classrooms Dr. Debra Schwietert TIE Presentation April 2010 Research Findings.
Concepts and Realization of a Diagram Editor Generator Based on Hypergraph Transformation Author: Mark Minas Presenter: Song Gu.
1 Asstt. Prof Navjot Kaur Computer Dept PRESENTED BY.
ING XBRL Proof of Concept July 19, ©2005 page 2. Utilizing XBRL  ING Objectives  Benefits  Goals  Proof of Concept Plan  Stat  USGAAP  Pain.
By: Jamie Morgan  A wiki is a web page or collection of web pages which you and your students can access to contribute or modify content without having.
Project Report Format for Final Year Engineering Students.
Chapter 1 The Systems Development Environment
David Shepherd, Zachary P. Fry, Emily Hill, Lori Pollock, and K
Chapter 1 The Systems Development Environment
Discussion and Conclusion
Adaptive Lessons for Pre-Class Preparation for a Flipped Classroom
Title of Poster Site Visit 2017 Introduction Results
Title of session For Event Plus Presenters 12/5/2018.
Preparing Conference Papers (1)
Adaptive Lessons for Pre-Class Preparation for a Flipped Classroom
Department of Computer Science Abdul Wali Khan University Mardan
Automated Analysis and Code Generation for Domain-Specific Models
Preparing Conference Papers (1)
Title of Poster Site Visit 2018 Introduction Results
This material is based upon work supported by the National Science Foundation under Grant #XXXXXX. Any opinions, findings, and conclusions or recommendations.
Presentation transcript:

1. Department of Arts and Sciences, Georgia State University 2. Department of Electrical and Computer Engineering, Texas Tech University 3. Department of Industrial Engineering, Texas Tech University Gabriella Cruz (1), Justin Talavera (2), Joseph Urban (3) Automatic Source Code Specification Texas Tech University 2014 NSF Research Experiences for Undergraduates Site Project Agile development allows developers to have flexibility when changing code in between developments. Though an agile approach anticipates change, much time can be spent on understanding the last development and examining the code in depth to know what parts need to be changed. An amount of time is also spent in the maintenance phase when later developers need to understand the functionality of the program. In many cases, developers spend more time reading and understanding code when compared to the amount of time they spend writing the code. The imbalance of time spent, reading and writing code is due to the lack of a specification or summary of the source code in an easy to read format and language. Most developers ignore the step of writing a specification because of time constraints or other unknown factors. In order to be able to have a specification for future programmers to understand, developers need a tool that automatically generates a specification when source code is written. This will allow the developer to have a fully understandable specification without having to spend more time. This project focused on a tool that automatically creates specifications in between developments. The tool not only saves time so that developers do not have to manually write specifications, but it also decreases ambiguity between developments and future developers. Abstract Related Work Created a source code process to complete the automatic specification Created a Java splitter to split words based on capital letters, numbers, underscores, periods, and spaces for the preprocessing phase Created a part of speech tagger to tag split words This project focused on a tool that assists in writing the specification of source code. The tool not only saves time between developments, but it also allows future developers more insight and knowledge of what the source code holds. The main methods used to create the tool are: the Software Word Usage Model [4] and POS tagging to identify the linguistic properties of component words from the source code, along with camel case splitting, and variable lexicalization. Results & Summary References Future Work [1] L. Moreno, J. Aponte, G. Sridhara, A. Marcus, L. Pollock, and K. Vijay- Shanker, "Automatic Generation of Natural Language Summaries for Java Classes," in 21 st International Conference on Program Comprehension (ICPC), San Francisco, CA, USA, 2013, pp [2] J. Fowkes, R. Ranca, M. Allamanis, M. Lapata, and C. Sutton. "Autofolding for Source Code Summarization." CoRR, arXiv: v1, pp. 1-12, [3] S. Haiduc, J. Aponte, and A. Marcus, "Supporting Program Comprehension with Source Code Summarization," in 32nd ACM/IEEE International Conference on Software Engineering – NIER track, Capetown, South Aftrica, 2010, pp [4] G. Sridhara, E. Hill, D. Muppaneni, L. Pollock, and K. Vijay-Shanker, “Towards Automatically Generating Summary Comments for Java Methods,” in IEEE/ACM International Conference on Automated Software Engineering (ASE), New York, NY, USA, 2010, pp [5] E. Leonard, and C. Heitmeyer, "Automatic Program Generation from Formal Specifications using APTS," in Automatic Program Development, Netherlands: Springer, 2008, pp [6] “Characteristics of Agile Methodology in Software Development,” Available: development/, August 11, 2013 [July 14, 2014]. * DISCLAIMER: This material is based upon work supported by the National Science Foundation and the Department of Defense under Grant No. CNS An opinions, findings, and conclusions or recommendation expressed in this material are those of the authors and do not necessarily reflect the views of the National Science Foundation or the Department of Defense. Automatic source code summarization [3]: A tool that automatically creates a list of key-words from the original source code. Automatic autofolding [2]: A tool that automatically folds or hides code that is irrelevant to the understanding of the program. Automatic generation of summary comments for Java methods and classes [4, 1]: A tool that automatically creates summary comments within source code for Java methods and classes. Automatic program generation from formal specification using APTS [5]: A tool that automatically creates source code from a written APTS specification. Methods Having an automatic specification between developments allows for flexibility and easy understanding when changing past developments. Time is spread out evenly between each phase because the specification is automatically created for the previous development [6]. The specification should be automatically created while the source code is being written. The tool should be efficient and allow the program to have a complete and correct specification when the source code is finished. The tool should give a full and understandable specification in natural language. The tool should allow end users to have easy access to the specification and allow the end user to make changes that can be seen by the developer. The tool should use manually written comments from the developer to aid in the understanding of the specification. The tool should work real-time with the source code and should automatically generate a new specification while the source code is edited. The specification should be concise and significantly shorter than the source code. The finished specification should be easily modified. Objectives Source Code Preprocessing Splitting of identifiers Abbreviation expanding POS Tagging & SWUM Statement Selection Omitting non-relevant information Identifying relevant information Translating Chosen Statements Variable lexicalization Translating selected statements into natural language Combining Information Combining natural language translating Creating an abstractive specification Completed Specification Source Code Process The source code process chart outlines the process source code would follow in order to have an automatic specification. The source code begins in the preprocessing phase, where the code is split into components to be analyzed. Next, abbreviations are automatically expanded. Then, linguistic elements of the component words are identified using the Software Word Usage Model [4] and part of speech tagging. The statement selection phase uses guidelines to omit and identify what statements are needed in the specification. A few of the statements that are included are: ending statements, void-return statements, same-action statements, data-facilitating statements, and controlling statements, with some exceptions. The next phase includes variable lexicalization, then translating the selected statements into natural language. After the statements are translated, they are combined to create a summary of the code [4]. Then the summary is created into a specification with abstractive information that is not included in the original source code. Further approaches and methods will be evaluated to create an automatic specification. The automatic source code specification tool will be prepared for real-world use. The automatic specification will be tested for quality and efficiency.