Agile Techniques for Developing and Evaluating Large-scale Component-based Distributed Real-time and Embedded Systems
Hill, James H
Agile techniques are a promising approach to facilitate the development of large-scale component-based distributed real-time and embedded (DRE) systems. Conventional agile techniques help ensure functional concerns of such systems continuously throughout the software lifecycle. Ensuring quality-of-service (QoS) concerns of large-scale component-based DRE systems using conventional agile techniques, however, is hard due in large part to an observed gap between agile development and component-based software engineering (CBSE) caused by the serialized-phasing development problem. This dissertation presents novel techniques in the form of algorithms, analytics, patterns, and tools to bridge the gap between agile development and CBSE for large-scale DRE systems to overcome the serialized-phasing development problem. Furthermore, this dissertation shows how our techniques can facilitate evaluation of QoS concerns continuously throughout the software lifecycle. The techniques discussed in this dissertation have been validated the context of representative large-scale component-based DRE systems from production projects in several mission-critical domains.