Presentation is loading. Please wait.

Presentation is loading. Please wait.

Extending Interface Based Design

Similar presentations


Presentation on theme: "Extending Interface Based Design"— Presentation transcript:

1 Extending Interface Based Design

2 Logical vs. Physical Design
Logical Design Essential vs. Inessential Coupling Interface as Type Design Patterns Physical Design Assemblies Versioning

3 Goals of Physical Design
Easier to test and change smaller units Faster unit tests Easier parallel development Easier change management

4 Assembly Partitioning Concepts
Look for application fault lines Treat Interfaces as fundamental types Design Patterns indicate application partitions

5 Interfaces as Fundamental Types
Interfaces are behavior, not implementation Treat as fundamental types Place in separate assemblies Put implementation in separate assemblies

6 Patterns Drive Partitions
Code that implements the pattern Code that uses the pattern Code the pattern isolates Indicate possible assembly partitioning

7 Example: Factory Pattern
Application CustomerManagerFactory CustomerManager

8 Assemblies As Components
Independent evolution Versioning Testing Goal is partitioning Reuse is possibly emergent

9 Design For Testability
Test smaller units of functionality Faster unit tests Minimize test dependencies Partitioning for testability

10 Physical Design Challenges
Assembly Management Reduced Encapsulation Performance Problems Probability of Change

11 Summary Partition based on: Fundamental Types Patterns
Test Dependencies


Download ppt "Extending Interface Based Design"

Similar presentations


Ads by Google