Title: Aristotle Research Group
1Aristotle Research Group
- Mary Jean Harrold
- Research in Program Analysis
- Based Software Engineering
- Georgia Tech
-
2Research Goal
- We investigate ways to improve the techniques and
tools used by software developers and
maintainers, allowing them to create high quality
software more efficiently
3Our Approach
Automated Techniques for Software Engineering
Tasks
Our research often follows a spiraling work flow,
each step giving new insight into the next
Experimentation
Enabling Technology
Implementation of Tools
4Our Approach
Automated Techniques for Software Engineering
Tasks
- We research techniques for use in situations such
as - When a program fails (produces incorrect output,
behaves unexpectedly, crashes, etc.), find the
cause or location of the failure (debugging,
fault localization) - When changes are made to a program, determine
which test cases need to be rerun (selective
regression testing) - When a programmer joins an existing project
where little documentation is available, extract
architecture and design of software (program
understanding)
Our research often follows a spiraling work flow,
each step giving new insight into the next
Experimentation
Enabling Technology
Implementation of Tools
5Our Approach
Automated Techniques for Software Engineering
Tasks
- We research techniques for use in situations such
as - When a program fails (produces incorrect output,
behaves unexpectedly, crashes, etc.), find the
cause or location of the failure (debugging,
fault localization) - When changes are made to a program, determine
which test cases need to be rerun (selective
regression testing) - When a programmer joins an existing project
where little documentation is available, extract
architecture and design of software (program
understanding)
Experimentation
Enabling Technology
Enabling Technology
Implementation of Tools
6Our Approach
Automated Techniques for Software Engineering
Tasks
Experimentation
Enabling Technology
Enabling Technology
Implementation of Tools
7Our Approach
Automated Techniques for Software Engineering
Tasks
Experimentation
Enabling Technology
Experimentation With Research Techniques
Implementation of Tools
8Our Approach
Automated Techniques for Software Engineering
Tasks
Experimentation
Enabling Technology
Experimentation With Research Techniques
Implementation of Tools
9Our Approach
Automated Techniques for Software Engineering
Tasks
Experimentation
Enabling Technology
Implementation of Tools
10Our Approach
Automated Techniques for Software Engineering
Tasks
Experimentation
Enabling Technology
Implementation of Tools
11Research Projects
- Some current research projects
- Determine, for evolving software, the subset of
tests that should be run on the changed version
(test suite selection, prioritization, and
reduction, augmentation, DejaVu, DejaVoo) - Determine possible flow of control, and assist
with understanding, testing, and maintenance
programs with exception-handling constructs
(exception analysis. ExPo) - Automatically discover program behaviors after or
during system execution (using machine learning)
(behavior modeling and classification, Gimbal) - Automatically identify, for programs that fail,
those statements that likely contain the fault
(fault-localization, debugging, Tarantula) - Monitor and analyze deployed software to improve
quality (Gamma) - Illuminate, using visualization techniques,
relations and phenomena in the software not
apparent with traditional inspection (software
visualization) - Analyze C and Java programs to facilitate
research prototypes and tools (Aristotle, JABA)
12Support, Activities
- Our research has been supported by
- Government agencies such as National Science
Foundation, NASA - Companies such as Boeing, IBM, Lucent, Microsoft,
Tata Consultancy Services - We present our research results in
- Journals such as IEEE Transactions on Software
Engineering, ACM Transactions on Software
Engineering and Methodology, Journal of Software
Testing, Verification, and Reliability - Conferences such as International Conference on
Software Engineering, ACM International Symposium
on Software Testing and Analysis, ACM Foundations
of Software Engineering, and IEEE International
Conference on Software Maintenance
13Students
- Our students actively participate by
- Developing new techniques and algorithms
- Implementing tools in a variety of languages
- Performing experimentation to verify their
techniques - Preparing research papers for conferences and
journals - Presenting papers at major conferences
- Participating in the preparation of research
proposals
14For More Information
See our web site at http//www.cc.gatech.edu/aris
totle