Sharma, VaibhavByun, TaejoonMcCamant, StephenRayadurgam, SanjaiHeimdahl, Mats2020-12-102020-12-102018WASPI 2018 Proceedings of the 1st ACM SIGSOFT International Workshop on Automated Specification Inferencehttps://hdl.handle.net/11299/217453Associated research group: Critical Systems Research GroupComplex 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.Contract discovery from black-box componentsReport