Brian Dougherty

Learn More
Software Product-lines (SPLs) are software architectures that use modular software components that can be reconfigured into different variants for different requirements sets. Feature modeling is a common method used to capture the configuration rules for an SPL architecture. A key challenge developers face when maintaining an SPL is determining how to(More)
Cloud computing can reduce power consumption by using virtualized computational resources to provision an application’s computational resources on-demand. Autoscaling is an important cloud computing technique that dynamically allocates computational resources to applications to match their current loads precisely, thereby removing resources that would(More)
Traffic accidents are one of the leading causes of fatalities in the US. An important indicator of survival rates after an accident is the time between the accident and when emergency medical personnel are dispatched to the scene. Eliminating the time between when an accident occurs and when first responders are dispatched to the scene decreases mortality(More)
The increasing complexity and cost of softwareintensive systems has led developers to seek ways of reusing software components across development projects. One approach to increasing software reusability is to develop a Software Product-line (SPL), which is a software architecture that can be reconfigured and reused across projects. Rather than developing(More)
The powerful processors and variety of sensors in new and planned mobile Internet devices, such as Apple’s iPhone and Android-based smartphones, can be leveraged to build cyber-physical applications that collect sensor data from the real world and communicate it back to Internet services for processing and aggregation. This article presents key R&D(More)
Accident detection systems help reduce fatalities stemming from car accidents by decreasing the response time of emergency responders. Smartphones and their onboard sensors (such as GPS receivers and accelerometers) are promising platforms for constructing such systems. This paper provides three contributions to the study of using smartphone-based accident(More)
Software product-lines (SPLs) are software platforms that can be readily reconfigured for different project requirements. A key part of an SPL is a model that captures the rules for reconfiguring the software. SPLs commonly use feature models to capture SPL configuration rules. Each SPL configuration is represented as a selection of features from the(More)
The increasing complexity and cost of software-intensive systems has led developers to seek ways of reusing software components across development projects. One approach to increasing software reusability is to develop a Software Product-line (SPL), which is a software architecture that can be reconfigured and reused across projects. Rather than developing(More)
Distributed real-time and embedded (DRE) systems can be composed of hundreds of software components running across tens or hundreds of networked processors that are physically separated from one another. A key concern in DRE systems is determining the spatial deployment topology, which is how the software components map to the underlying hardware(More)
The increasing complexity and cost of software-intensive systems has led developers to seek ways of increasing software reusability. One software reuse approach is to develop a Software Product-line (SPL), which is a reconfigurable software architecture that can be reused across projects. Creating configurations of the SPL that meets arbitrary re-