swe 4743 abstract data types richard gesick. swe 4743 2-14 abstraction classification,...

14
SWE 4743 Abstract Data Types Richard Gesick

Upload: carmel-lamb

Post on 23-Dec-2015

222 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SWE 4743 Abstract Data Types Richard Gesick. SWE 4743 2-14 Abstraction Classification, generalization, and aggregation are the basic ways we have of structuring

SWE 4743

Abstract Data Types

Richard Gesick

Page 2: SWE 4743 Abstract Data Types Richard Gesick. SWE 4743 2-14 Abstraction Classification, generalization, and aggregation are the basic ways we have of structuring

SWE 4743 2-14

Abstraction• Classification, generalization, and

aggregation are the basic ways we have of structuring information. When they are repeatedly applied to objects, hierarchies of new objects are formed.

Page 3: SWE 4743 Abstract Data Types Richard Gesick. SWE 4743 2-14 Abstraction Classification, generalization, and aggregation are the basic ways we have of structuring

SWE 4743 3-14

ADT• The idea of an ADT is to separate the notions

of specification (what kind of thing we're working with and what operations can be performed on it) and implementation (how the thing and its operations are actually implemented).

Page 4: SWE 4743 Abstract Data Types Richard Gesick. SWE 4743 2-14 Abstraction Classification, generalization, and aggregation are the basic ways we have of structuring

SWE 4743 4-14

Specification of ADT• A description of the elements that

compose the data type• A description of the relationships

between the individual components in the data type

• A description of the operations we wish to perform on the components of the data type

Page 5: SWE 4743 Abstract Data Types Richard Gesick. SWE 4743 2-14 Abstraction Classification, generalization, and aggregation are the basic ways we have of structuring

SWE 4743 5-14

Abstract Data Types• An abstract data type (ADT) is a model of a data

structure that specifies:– the characteristics of the collection of data– the operations that can be performed on the

collection• It’s abstract because it doesn’t specify how the ADT

will be implemented.• A given ADT can have multiple implementations

Page 6: SWE 4743 Abstract Data Types Richard Gesick. SWE 4743 2-14 Abstraction Classification, generalization, and aggregation are the basic ways we have of structuring

SWE 4743 6-14

Benefits of using ADTs• Code is easier to understand (e.g., it is

easier to see "high-level" steps being performed, not obscured by low-level code).

• Implementations of ADTs can be changed (e.g., for efficiency) without requiring changes to the program that uses the ADTs.

• ADTs can be reused in future programs.

Page 7: SWE 4743 Abstract Data Types Richard Gesick. SWE 4743 2-14 Abstraction Classification, generalization, and aggregation are the basic ways we have of structuring

SWE 4743 7-14

Levels of Abstraction in Specifying data

Page 8: SWE 4743 Abstract Data Types Richard Gesick. SWE 4743 2-14 Abstraction Classification, generalization, and aggregation are the basic ways we have of structuring

SWE 4743 8-14

Preconditions, postconditions, and invariants

• preconditions, that specify when an operation may be executed;

• postconditions, that relate the states of the ADT before and after the execution of each operation; and

• invariants, that specify properties of the ADT that are not changed by the operations.

Page 9: SWE 4743 Abstract Data Types Richard Gesick. SWE 4743 2-14 Abstraction Classification, generalization, and aggregation are the basic ways we have of structuring

SWE 4743 9-14

Consider an Array ADT• What are the pre and post conditions for

the following operations?• Construct• Destroy• Retrieve• Assign

Page 10: SWE 4743 Abstract Data Types Richard Gesick. SWE 4743 2-14 Abstraction Classification, generalization, and aggregation are the basic ways we have of structuring

SWE 4743 10-14

Construct• Precondition: An uninitialized Array

object• PostCondition: The array object has

been allocated sufficient storage to store its associated data items although no specific values have been stored in the array

Page 11: SWE 4743 Abstract Data Types Richard Gesick. SWE 4743 2-14 Abstraction Classification, generalization, and aggregation are the basic ways we have of structuring

SWE 4743 11-14

Destroy• Precondition: An Array object has been

previously allocated• PostCondition: All storage allocated for

the array object is deallocated

Page 12: SWE 4743 Abstract Data Types Richard Gesick. SWE 4743 2-14 Abstraction Classification, generalization, and aggregation are the basic ways we have of structuring

SWE 4743 12-14

Retrieve• Preconditions:

– An Array object has been previously created;

– i is a valid index

• PostCondition: The value associated with the index i in the array object is returned

Page 13: SWE 4743 Abstract Data Types Richard Gesick. SWE 4743 2-14 Abstraction Classification, generalization, and aggregation are the basic ways we have of structuring

SWE 4743 13-14

Assign• Preconditions:

– An Array object has been previously created;

– i is a valid index– val is a specified value for an array datum

• PostCondition: The Array object has val associated with index i. val is stored at index i in the array

Page 14: SWE 4743 Abstract Data Types Richard Gesick. SWE 4743 2-14 Abstraction Classification, generalization, and aggregation are the basic ways we have of structuring

SWE 4743 14-14

Array ADT specifications• Description of Elements: the only restriction is

that all the elements are of the same data type

• Relationships between individual components: specified as position determined by index

• Operations: Specified with a set of pre and post conditions