Skip to main content
Open Access Publications from the University of California

UC Irvine

UC Irvine Electronic Theses and Dissertations bannerUC Irvine

Validation and Verification of Modular Software Applications

Creative Commons 'BY' version 4.0 license

Modular software applications are developed based on a software design technique that emphasizes separating the program's functionality into independent, interchangeable components. Each component contains everything necessary to provide certain functionality. Building software systems using modules introduces many benefits, including improving software quality, easier maintainability, and better scalability, especially for large, complex, and long-running software systems. Although a software system's architecture is often conceptualized in terms of high-level constructs, e.g., software components, connectors, and interfaces, programming languages usually provide low-level constructs, e.g., classes, methods, and variables. To bridge this gap, many widely used programming languages, such as Java and C++, have recently incorporated the notion of module or component. The increasing support of modularization in the modern programming languages, although offering many benefits, introduces plenty of new challenges in all phases of software development and execution, including at build-time, module installation-time, and run-time. Hence, the need for effective validation and verification techniques has increased more than ever.

This dissertation proposes to advance validation and verification of modular applications through investigating the static and dynamic behavior of modular applications and introducing automatic validation, and verification techniques to (1) detect and repair architectural inconsistencies at both build- and run-time, and (2) test dynamic delivery failures at module installation-time.

All conducted experiments on real-world subject apps corroborate the effectiveness and efficiency of the proposed approaches and their ability to validate and verify the behavior of modular software applications at all different phases of their development and execution.

Main Content
For improved accessibility of PDF content, download the file to your device.
Current View