University of Minnesota
Software Engineering Center

You are here

Contract discovery from black-box components

Date of Publication: 
November 2018
Associated Research Groups: 
Publication Files: 
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.
WASPI 2018 Proceedings of the 1st ACM SIGSOFT International Workshop on Automated Specification Inference
@inproceedings{Sharma:2018:CDB:3278177.3278179, author = {Sharma, Vaibhav and Byun, Taejoon and McCamant, Stephen and Rayadurgam, Sanjai and Heimdahl, Mats P. E.}, title = {Contract Discovery from Black-box Components}, booktitle = {Proceedings of the 1st ACM SIGSOFT International Workshop on Automated Specification Inference}, series = {WASPI 2018}, year = {2018}, isbn = {978-1-4503-6057-9}, location = {Lake Buena Vista, FL, USA}, pages = {5--8}, numpages = {4}, url = {}, doi = {10.1145/3278177.3278179}, acmid = {3278179}, publisher = {ACM}, address = {New York, NY, USA}, keywords = {binary analysis, contract discovery, symbolic execution}, }