Data Structures (600.226) Design Principles

Today...

Data Structures and Algorithms

Design Goals

Implementation Goals

Design Principles (Object-oriented): Abstraction

Encapsulation

Modularity

Design Techniques

API, ADT, Strong Typing

Inheritance

Polymorphism

Goals, Principles, Techniques: the Big Picture

I don’t want you to be scared, but...

Power Plant (test) failure (benign)

Hard Disk Microcode Bug (just expensive - for some)

The Therac-25 Failure (six accidents: deaths & injuries)

Therac-25 Problems

Therac-25 lessons