Home > Events > Oral Candidacy - Ameer Armaly

Oral Candidacy - Ameer Armaly

Start: 5/2/2017 at 1:00AM
End: 5/2/2017 at 3:00PM
Location: 100 Stinson Remick
Attendees: Faculty and students are welcome to attend the presentation portion of the defense.
Add to calendar:
iCal vCal

Ameer Armaly

Oral Candidacy

May 2, 2017         1:00 pm           100 Stinson Remick

Adviser:  Dr. Collin McMillan

Committee Members:

Dr. Ron Metoyer        Dr. Andreas Stefik        Dr. Chaoli Wang


"Complexity Reduction in Feature Analysis"


Features are aspects of a program that are defined by the requirements and implemented in the code. Correctly estimating the time and effort required to implement or extend a feature avoids cost overruns. Cost estimation tools use feature location algorithms to map requirements to the code that implements them.  The literature describes numerous feature location algorithms, but not all are useable in industrial environments. Some algorithms are very complex, imposing training costs and impeding communication. Other algorithms require complex tuning for best results. Still others require hardware support. This level of complexity is discouraged in an industrial environment, where the resource allocations stemming from a feature location algorithm must be justified. Instead, industry requires a balance between complexity and performance rather than performance at any cost.

Once found, features can be reused in other programs to save the cost of reimplementation. The problem with feature reuse is that it requires the programmer to comprehend and copy the dependencies of a feature. Previous work has shown that reusing a single statement requires the programmer to comprehend and copy 30-60% of the original program. In many cases feature reuse is deemed too complex to be practical.

The code comprehension process itself contains a great deal of complexity, especially for blind programmers. Blind programmers use a screen reader to read code; the screen reader speaks the contents of the screen aloud. Blind programmers cannot skip to the most important code areas in the way sighted programmers can and must read code sequentially one line at a time. Very little work has been done on the precise difference between the ways blind and sighted programmers read code.

In this talk, I describe my work thus far on reducing complexity in feature analysis. I present my research in designing a feature location component for use in a cost estimation system for the United States Navy. I also present Flashback, a library for drastically simplifying feature reuse through record and replay technology previously used for debugging and security. Finally, I investigate possible differences between blind and sighted programmers, and present an interface to allow blind programmers to skim code much like sighted programmers.