Extended Programming and Design: A Language and Toolset for Integrating Requirements, Architecture, Design and Implementation when Developing Complex Software Systems
Thesis
Thesis (M.S., Computer Science) -- University of Idaho, 2015 | Complex software systems are developed by engineers with diverse backgrounds using different software development methods such as traditional, formal, and agile. Increasing software complexity coupled with the lack of holistic system models, ineffective communication between engineers, and the lack of up-to-date system documentation increases the likelihood of faults and failures of system security and safety. This thesis, introduces EXMPLRAD: a language for specifying software project artifacts such as informal requirements, design and architectural descriptions, and source code. This thesis also present SyModEx2, an expert tool that analyzes EXMPLRAD specifications and verifies the absence of hidden dependencies between system components. A case study of applying these technique and associated toolset to the SEL4 micro-kernel's Interprocess Communication architecture is presented.