A computer processor determines the backward compatibility of a software component. The processor identifies one or more programming interfaces that are exposed by a first version of a software component by: converting attributes of exposed programming interfaces into corresponding operations such that attributes of the exposed programming interfaces are converted into corresponding operations such that a flag is added to a converted attribute indicating whether the attribute is an optional or mandatory attribute. The processor determines a backward compatibility of the first version of the software component by comparing the operations of the first version of the software component to one or more operations of a second version of the software component.