Data Abstraction

Complex Stack Character

DATA ABSTRACTION

"Ask not first what the system does: ask what it does it to!"
(Object-Oriented Software Construction by Bertrand Meyer, Prentice Hall)
Examples
Complex Numbers
Stack
Formal Specifications
Abstract comments
Concrete comments
Representation invariant

INFORMAL DEFINITIONS

ABSTRACT REPRESENTATION: ABSTRACT STRUCTURE, OPERATIONS ON THAT STRUCTURE
EXAMPLES: COMPLEX NUMBER, STACK
CONCRETE REPRESENTATION: CONCRETE STRUCTURE (STRUCTURE AS DEFINED IN PROGRAMMING LANGUAGE), OPERATIONS ON THAT STRUCTURE (EXAMPLES: COMPLEX NUMBER'S REAL AND IMAG STACK RECORD WITH DATA ARRAY AND TOP)
REPRESENTATION INVARIANT: CONCRETE REPRESENTATION OF DATA FOR MODULE

NOTATION

LIST
ABSTRACT DATA OBJECT
ORDER IMPLIED
FORMAT
<...>
- EXAMPLES
<> (EMPTY LIST)
<e1, e2, e3,...,en>
<ei, 1<=i<=n>
<f(j), 1<=j<=n such that f(i)<f(i+1) for 1<=i<j>
NOTE: THIS LAST EXAMPLE DEFINES A LIST ORDERED IN ASCENDING ORDER OF DATA AND SPECIFIES THAT THERE ARE NO DUPLICATE VALUES.
- ~ DENOTES CONCATENATION. FOR EXAMPLE, CONSIDER LISTS A AND B SUCH THAT A = <a,c,e> and B = <b,d>. THEN
A ~ B = <a,c,e,b,d>
B ~ A = <b,d,a,c,e>
SET
ABSTRACT DATA OBJECT
ORDER NOT IMPLIED, NO DUPLICATES
FORMAT
[...]
EXAMPLES
[] (EMPTY SET)
[E,F,A,V,C]
TEXT FILE
ORDERED TRIPLE
FORMAT
(A,B,C) FOR
A CHARACTER STRING ALREADY PROCESSED
B CHARACTER STRING TO BE PROCESSED
C FILE STATE (in READ; out WRITE, app APPEND, closed CLOSED)
EXAMPLES
(CONCATENATE/,in)
(THE CAT IS BL/,,out)
(THE CAT IS BL/,,app)
(THE CAT IS BL/,closed)

NOTE: When a file is closed, there is simply one string, not one which has been processed and one to be processed.

NOTE: / REPRESENTS END OF LINE.
COMMENTS
FORMAT
DATA OBJECT(S) := OUTPUT STATE OF DATA OBJECT
INPUT STATE OF OBJECT(S) --> ASSIGNMENT (i.e., PRECONDITION -->POSTCONDITION)
APOSTROPHE (') DENOTES ORIGINAL OR INPUT VALUE OF OBJECT
| DENOTES ALTERNATIVE (ELSE); IF THERE IS NO STATEMENT AFTER |, THEN THE COMMENT IS SAYING THAT NOTHING HAPPENS

WE WILL PROVIDE SEVERAL CLASSES FOR YOU TO TAKE A LOOK AT AND WE WANT YOU TO THINK WHAT'S GOING ON IN THOSE CLASSES AS FAR AS SYSTEM IS CONCERNED. THEN WE WOULD LIKE YOU TO TRY TO COMMENT THOSE CLASSES YOURSELF AND COMPARE IT TO OUR COMMENTS. SOMETIMES ITS MORE IMOPRTANT TO KNOW WHATS GOING ON IN THE SYSTEM, SINCE THAT WILL MAKE YOU UNDERSTAND THE PROGRAM BETTER.

ABSTRACT COMMENTS

DEAL WITH ABSTRACT DATA OBJECT
FOR USER OF MODULE

CONCRETE COMMENTS

DEAL WITH DATA STRUCTURE AS DEFINED IN PROGRAMMING LANGUAGE
FOR PROGRAMMER OF MODULE
MAY BE VERY CLOSE TO CODE

REPRESENTATION INVARIANT

"PREDICATE ON IMPLEMENTATION"
STATEMENT ABOUT CONCRETE DATA OBJECT WHICH IS TRUE FOR ALL OPERATIONS ON OBJECT
FOR STACK: 0 <= Top <= Max
PROCESS FOR DERIVING:
USING CONCRETE COMMENTS:
START WITH OPERATION WITH OUTPUT ONLY, IF POSSIBLE
WRITE CONCRETE REP OF OBJECT FOR THAT OPERATION
CONSIDER EACH OF OTHER OPERATIONS ONE AT A TIME; ALTER REPRESENTATION SO THAT IT REMAINS TRUE FOR ALL OPERATIONS.

EXAMPLES

COMPLEX NUMBER
STACK IMPLEMENTATION
CHARACTER IMPLEMENTATION
 

Back Home Up Next