log in  |  register  |  feedback?  |  help  |  web accessibility
Logo
PhD Defense: Software-Defined Software
Moshe Katz
Monday, April 17, 2023, 2:00-4:00 pm Calendar
  • You are subscribed to this talk through .
  • You are watching this talk through .
  • You are subscribed to this talk. (unsubscribe, watch)
  • You are watching this talk. (unwatch, subscribe)
  • You are not subscribed to this talk. (watch, subscribe)
Abstract
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

 

 

 
 
Bio

Moshe Katz is a PhD student advised by Ashok Agrawala. He has been developing software since he was 12 years old, and participated in the first year of the Computer Science Department's "Passport" program for high school students. While an undergraduate student here in the Computer Science Department, classes such as CMSC330 and CMSC435, as well as long discussions with professors and IT staff compelled him to dive deeper into Computer Science topics, and specifically Software Engineering. His research focuses on how to help developers design and develop good software, and he works on applications for real-time communication, personal safety, and regulatory compliance in business settings.

This talk is organized by Tom Hurst