Design patterns present good solutions to frequently occurring problems in object-oriented software design. Thus their correct application in a system’s design may significantl...
A software system interacts with third-party libraries through various APIs. Using these library APIs often needs to follow certain usage patterns. Furthermore, ordering rules (sp...
To improve software productivity, when constructing new software systems, developers often reuse existing class libraries or frameworks by invoking their APIs. Those APIs, however...
Program specifications are important for many tasks during software design, development, and maintenance. Among these, temporal specifications are particularly useful. They expres...
Facts extracted from source code have been used to support a variety of software engineering activities, ranging from architectural understanding, through detection of design patt...