CSE584: Software Engineering Lecture 2 (October 6, 1998)

10/6/98


Click here to start


Table of Contents

CSE584: Software Engineering Lecture 2 (October 6, 1998)

Design

Outline

Very High-Level View

Complexity

Continuous & iterative

Multiple design choices

What criteria?

1. Managing complexity

Divide and conquer

Composition

Benefits of decomposition

Which decomposition?

Structure

So what happens?

Conceptual integrity

2. Accommodating change

Anticipating change

Rationalism vs. empiricism

Examples

Brooks’ view

Properties of design

Cohesion

Coupling

Unnecessary coupling hurts

It’s easy to...

Complexity

Correctness

Correspondence

Functional decomposition

Question

Physical structure

Information hiding

Basics of information hiding

Anticipated changes

Claim

Other anticipated changes?

Central premise I

The A-7 Project

Central premise II

Central premise III

Central premise IV

Central premise V

Information hiding reprise

Information Hiding and OO

Layering [Parnas 79]

The uses relation

uses vs. invokes

Parnas’ observation

Criteria for uses(A,B)

Layering in THE

Modules and layers interact?

Language support

Implicit invocation

II mechanisms

Not just indirection

Mediators

Experience

PPT Slide

PPT Slide

PPT Slide

Example

ADT design

Hardwiring

Mediators

Change: lazy equivalence

ADT design

Hardwired design

Mediator: with lazy update

Another change: size of S1

ADT design

Mediators

Assessment

Design I wrap-up

Next week

Author: CSE

Email: notkin@cs.washington.edu

Other information:
CSE 584, Lecture 2

Download presentation source