InterfaceExtraction

InterfaceExtraction - 272: Software Engineering Fall 2008...

Info iconThis preview shows pages 1–8. Sign up to view the full content.

View Full Document Right Arrow Icon
272: Software Engineering Fall 2008 Instructor: Tevfik Bultan Lecture 15: Interface Extraction
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Software Interfaces Here are some basic questions about software interfaces How to specify software interfaces? How to check conformance to software interfaces? How to extract software interfaces from existing software? How to compose software interfaces? Today we will talk about some research that addresses these questions
Background image of page 2
Software Interfaces In this lecture we will talk about interface extraction for software components Interface of a software component should answer the following question What is the correct way to interact with this component? Equivalently, what are the constraints imposed on other components that wish to interact with this component? Interface descriptions in common programming languages are not very informative Typically, an interface of a component would be a set of procedures with their names and with the argument and return types
Background image of page 3

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Software Interfaces Let’s think about an object oriented programming language You interact with an object by sending it a message (which means calling a method of that object) What do you need to know to call a method? The name of the method and the types of its arguments What are the constraints on interacting with an object You need a reference to the object You have to have access (public, protected, private) to the method that you are calling One may want to express other kinds of constraints on software interfaces It is common to have constraints on the order a component’s methods can be called For example: a call to the consume method is allowed only after a call to the produce method How can we specify software interfaces that can express such constraints?
Background image of page 4
Software Interfaces Note that object oriented programming languages enforce one simple constraint about the order of method executions: The constructor of the object must be executed before any other method can be executed This rule is very static: it is true for every object of every class in every execution We want to express restrictions on the order of the method executions We want a flexible and general way of specifying such constraints
Background image of page 5

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Software Interfaces First, I will talk about the following paper ``Automatic Extraction of Object-Oriented Component Interfaces,'' J. Whaley, M. C. Martin and M. S. Lam Proceedings of the International Symposium on Software Testing and Analysis, July 2002. The following slides are based on the above paper and the slides from Whaley’s webpage
Background image of page 6
Automatic Interface Extraction The basic idea is to extract the interface from the software automatically Interface is not written as a separate specification There is no possibility of inconsistency between the interface specification and the code since the interface specification is extracted from the code The extracted interface can be used for dynamic or static analysis of the software It can be helpful as a reverse engineering tool
Background image of page 7

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Image of page 8
This is the end of the preview. Sign up to access the rest of the document.

Page1 / 58

InterfaceExtraction - 272: Software Engineering Fall 2008...

This preview shows document pages 1 - 8. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online