PhD Defense: Software-Defined Software

Talk
Moshe Katz
Time: 
04.17.2023 14:00 to 16:00
Location: 

IRB 5137

Modern software systems are extremely complex, and this complexity makes them difficult to create, debug, maintain, update, and secure. Because software systems are an increasingly vital part of just about everything that goes on in the world today, it is imperative that we make it easier to develop and maintain them in order to prevent a breakdown of critical systems, whether due to developer error, cyberattack, failure to apply updates, or any other reason. While there are several existing software development frameworks that are commonly used to split a large application into components, these frameworks can be difficult for developers and administrators to implement, and do not provide detailed visibility into the application's state.We present a new software engineering paradigm which we call "Software-Defined Software" which can make it easier to work with such complex software systems. We break down complex systems into a set of components and define the methods by which these components communicate with each other and how the overall program state is maintained in a way that allows for significant improvements in the software creation, debugging, maintenance, updating, and security processes. Following the model of Software-Defined Networking, we separate the application into two layers, the *execution layer* in which the component code is executed, and the *monitoring/control layer* which manages the components and keeps track of the *decision functions* that determine when each component should be executed in response to changes in the application's state information. We discuss how Software-Defined Software can alternatively be implemented at multiple levels instead of one large central state store, allowing existing applications to adopt the benefits of the Software-Defined Software in a gradual process.We demonstrate two applications of the Software-Defined Software technique. Our first application is a model example of a large-scale online marketplace. For this application, we describe how a software development team would use our techniques to apply Software-Defined Software to an entire application. Our second application is a live production application that is currently used by thousands of customer users. For this application, we describe application of Software-Defined Software techniques to only a portion of the application using hierarchical decomposition. We also explain how our techniques allow for easier maintenance and expansion of this application in the future.We also discuss several methods of graph analysis to detect potential problems in the application's decision functions, using loop and cycle detection over directed graphs.Finally, we discuss several future applications which have great potential to benefit from the use of Software-Defined Software.

Examining Committee

Chair:

Dr. Ashok Agrawala

Dean's Representative:

Dr. Min Wu

Members:

Dr. Adam Porter

Dr. James Purtilo

Dr. Hanan Samet