The expansion of our reliance on software in many aspects of modern society
has coincided with a number of incidents in aeronautics, astronautics,
transportation, medical devices, energy generation, banking and finance.
Failures caused by software have introduced more than just inconvenience,
but significant property damage, monetary loss, or even fatalities.
Therefore, it is of utmost importance that software systems achieve
their expected level of quality. As systems grow in complexity, building
software free of failure becomes more and more difficult. Some of the
most challenging and promising research topics include self management
and adaptation at run time, responding to changing user needs and
environments, faults, and vulnerabilities. It is critical for researchers and
practitioners to understand how these challenges can be addressed to
produce high quality software more effectively and efficiently. Control
theoretic approaches described in this book represent state-of-the-art
techniques that provide some of the answers to these challenges.
Specialized books on the topic of Software Quality typically emphasize
improvements in various phases of the software development lifecycle,
ranging from requirements, architecture, design, implementation, testing,
debugging, maintenance, etc. The concept of control theory has been
introduced into software engineering recently to analyze online evolution
and adaptation of software behavior, to meet old and new functional and
non-functional objectives in the presence of changes in the environment,
disturbances, faults, or expanded requirements. Due to the novelty of this
subject, books on software engineering or control theory have not covered
it with a sufficient level of detail.
This book focuses on the topic of improving software quality using adaptive control approaches. As software systems grow in complexity, some of the central challenges include their ability to self-manage and adapt at run time, responding to changing user needs and environments, faults, and vulnerabilities. Control theory approaches presented in the book provide some of the answers to these challenges.
The book weaves together diverse research topics (such as requirements engineering, software development processes, pervasive and autonomic computing, service-oriented architectures, on-line adaptation of software behavior, testing and QoS control) into a coherent whole.
Written by world-renowned experts, this book is truly a noteworthy and authoritative reference for students, researchers and practitioners to better understand how the adaptive control approach can be applied to improve the quality of software systems. Book chapters also outline future theoretical and experimental challenges for researchers in this area.