Site-wide links

Computing & Information Sciences

Discovering new, innovative methods and research opportunities in solving complex present-day and future computing challenges.

Refactoring, as coined by William Obdyke in 1992, is the art of optimizing the syntactic design of a software system without altering its external behavior. Refactoring was also cataloged by Martin Fowler as a response to the existence of design defects that negatively impact... READ MORE
The widespread adoption of mobile devices, coupled with the ease of developing mobile-based applications (apps) has created a lucrative and competitive environment for app developers. Solely focusing on app functionality and time-to-market is not enough for developers to ensure the success of their app.... READ MORE
Bug localization is one of the most important stages of the bug fixing process. Bad practices make the debugging a tedious task. Investigating bugs can contribute up to a large portion of the aggregate cost for a software project. An automated strategy that can... READ MORE
The proliferation of autonomous Wireless Sensor Networks (WSN) has spawned research seeking power efficient communications to improve the lifetime of sensor motes. WSNs are characterized by their power limitations, wireless transceivers, and the converge-cast communications techniques. WSN motes use low-power, lossy radio systems deployed... READ MORE
Software refactoring is one of the most critical aspects of software maintenance. It improves the quality of the software, reduces potential occurrence of bugs and keeps the code easier to maintain, extend and read. The process of refactoring supports and enables the developers to... READ MORE
Plug-and-play architectures enhance systems’ extensibility by providing a framework that enables additional functionalities to be added or removed from the system at their runtime. Such frameworks are often implemented through a set of well-defined interfaces that form the extension points for the pluggable functionalities.... READ MORE
When a software development team becomes aware of a vulnerability, it generally only knows that the last version of that software product is vulnerable. However, today most software products have more than one version being actively used at a time. Garnering information on which... READ MORE