1 / 11

Extending Interface Based Design

Extending Interface Based Design. Logical vs. Physical Design. Logical Design Essential vs. Inessential Coupling Interface as Type Design Patterns Physical Design Assemblies Versioning. Goals of Physical Design. Easier to test and change smaller units Faster unit tests

iona
Download Presentation

Extending Interface Based Design

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

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

More Related