Charles P. Shelton

Learn More
In order to have a software architecture design method that achieves quality attribute requirements several aspects of the method must be in place. First there must be some way to specify quality attribute requirements so that it can be determined whether the designed architecture can achieve them. Secondly, there must be some way for modularising the(More)
Software design activities require rich communication channels where developers can exchange information in multiple ways. It is well established that geographic distribution impacts negatively on the effectiveness of design meetings. In this paper, we present a tool for supporting virtual software design meetings. The features of the tool address four(More)
ArchE (Architecture Expert) is an rule based system that contains a model of modifiability. The model plus modifiability scenarios that characterize expected change enable ArchE to collaborate with an architect to produce a design of the architecture that supports the expected change. ArchE has been used with real requirements from a manufacturer. This(More)
Including semantic information in models helps to expose modeling errors early in the design process, engage a designer in a deeper understanding of the model, and standardize concepts and terminology across a development team. It is impractical, however, for model builders to manually annotate every modeling element with semantic properties. This paper(More)
This paper discusses the results of an application of a formally based verification technique, called Instrumentation-Based Verification (IBV), to a production automotive lighting controller. The goal of the study is to assess, from both a tools as well as a methodological perspective, the performance of IBV in an industrial setting. The insights obtained(More)
In embedded software, there are many reasons to include concepts from the problem domain during design. Not only does doing so make the software more comprehensible to those with domain understanding, it also becomes possible to check that the software conforms to correctness criteria expressed in the domain of interest. Here we present a unified framework(More)
We present a framework that will enable scalable analysis and design of graceful degradation in distributed embedded systems. We define graceful degradation in terms of utility. A system that gracefully degrades suffers a proportional loss of system utility as individual software and hardware components fail. However, explicitly designing a system to(More)