Complex computer-controlled systems are commonly constructed in a middle-out fashion where existing subsystems and available components have a significant influence on system architecture and drive design decisions. During system design, the architect must verify that the components, put together as specified in the architecture, will achieve the desired system behavior. This typically leads to further design modifications or adjustments to requirements triggering another iteration of the design-verify cycle. For software components that are acquired from third-parties, often the only definitive source of information about the component's system-relevant behavior – its contract – is its object code. We posit that existing static and dynamic analysis techniques can be used to discover contracts that can help the system designer and specifically discuss how symbolic execution of object code may be particularly well-suited for this purpose.
Fri 9 NovDisplayed time zone: Guadalajara, Mexico City, Monterrey change
10:30 - 12:00
|Towards Combining Usage Mining and Implementation Analysis to Infer API Preconditions
|Contract Discovery from Black-Box Components
|Automated Generation of Creative Software Requirements: A Data-Driven Approach