Software

design

decomposition

Functional

domain

volatility based

1) identify volatilities

2) volatility list

2) components to encapsulate volatilities

principles to design

CCP

CRP

acyclic dependency P

stable dependency P

layers

Engines

resource access

Manager

utilities

validating design architecture

communication diagram

system sequence diagram

Components

what makes a good component??

Infor leakage

shallow/deep implementations

abstractions