Abstraction and design

2/16/99


Click here to start


Table of Contents

Abstraction and design

The ideas in this lecture

Summary of last week

What are the key abstractions?

How might we describe a design?

Machine-readable descriptions

The Token class

The Line class

The reformat function

Is such a description a design?

Machine-checkable descriptions in ML

The TOKEN signature

The LINE signature

Using the design-level description

The Reformat functor in full detail

How else might we describe our design?

Even such a minimal design is useful

What else might we say about the design?

What does an arrow mean?

So we might label the arrows also

Complementary tools

A larger design example

Desirable properties for a printing system

A very high level design

Is this a good design?

Why is it a good design?

What details might we fill in?

How might we handle printer contention?

Our revised design

Properties of this design

Whence the administrative difficulties?

Making the design more practical

Our revised revised design

What might we do next?

Use cases

Example of a use case

Use case diagram

What can we learn from this example?

Finding a performance problem

A user-centric view of the system

How might we solve this problem?

The moral of the story

Homework (due Monday)

Examples of usual use cases

Examples of unusual use cases

What to hand in

Author: Andrew Koenig

Email: ark@research.att.com

Home Page: http://www.research.att.com/info/ark