CSE584: Software Engineering Lecture 4: Design (A)

1/23/01


Click here to start


Table of Contents

CSE584: Software Engineering Lecture 4: Design (A)

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?

Ubiquitous computing domain

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 (Dijkstra’s layered OS)

Modules and layers interact?

Language support

Implicit invocation

Old II mechanisms

New II mechanisms: or extensive uses of them

Objective

Not just indirection

Mediators

Experience

PPT Slide

PPT Slide

PPT Slide

Example from paper

Mediator issues

Mediator: with lazy update

Mediators: lazy and count

Assessment

Design I wrap-up

Next week

Author: David Notkin

Email: notkin@cs.washington.edu

Home Page: http://www.cs.washington.edu/education/courses/584/01wi/

Download presentation source