Design for Ease in Contraction and Extension - PowerPoint PPT Presentation

About This Presentation
Title:

Design for Ease in Contraction and Extension

Description:

none – PowerPoint PPT presentation

Number of Views:17
Avg rating:3.0/5.0
Slides: 10
Provided by: Micro2
Learn more at: http://www.cse.msu.edu
Category:

less

Transcript and Presenter's Notes

Title: Design for Ease in Contraction and Extension


1
Design for Ease in Contraction and Extension
  • CSE870 Discussion
  • April 16, 2003

2
Key Ideas
  • Design for change
  • Maintainability
  • Identified characteristics of non-adaptable
    programs
  • Undesirable properties
  • Distributing related information over numerous
    programs
  • Chaining of data transformations
  • Designing multi-function components
  • Circular-uses
  • Subset
  • Smallest useful collection of functions
  • High cohesion among the functions

3
Key Ideas (contd)
  • Uses hierarchy
  • Degree in which one program uses other programs
  • Levels
  • 0 programs that do NOT use any other programs
  • Single-purpose programs
  • I programs that use at least one program at
    (I-1) level, not above I-1.
  • Multi-purpose
  • Virtual Machines
  • SW abstraction/instructions for instructions
    provided by the HW.
  • May have several layers of abstractions that can
    be customized for specific applications

4
Key Ideas (contd)
  • General vs Specific
  • General
  • SW could work without modification
  • Not as much concern for designing for flexibility
  • Run-time costs customization can be expensive
  • Specific
  • Solution to specific problem
  • SW footprint can be reduced because it does not
    contain extraneous functionality
  • Program can be more efficient
  • Narrow focus of program

5
Key Ideas (contd)
  • Flexible design
  • Takes specific approach
  • Provide general services with WELL-DEFINED
    interfaces
  • Have specific implementations for these services
    that are kept secret
  • Information Hiding
  • Implementation details of modules (or functions
    within modules)

6
Comparison to Program Families
  • Extension/Contraction paper gives specific
    techniques for how to build program families

7
Impact on Modern Technology
  • Frameworks
  • Possible relationship to Graybox (have ability to
    extend) while adhering closely to superclass
    interfaces

8
Impact on Modern Tech (contd)
  • Design Patterns
  • Iterator (operations can be independent of data
    type)
  • Model View Controller
  • Bridge decouples the abstract services from its
    implementation
  • Strategy pattern
  • Add strategies
  • Decouple interface for a strategys purpose from
    specific algorithm.
  • Factory Pattern
  • Composes the abstract components that can then be
    realized by concrete components
  • Chain of responsibility
  • Each unit should have minimal functionality that
    can then be extended to provide additional
    capabilities.

9
Impact on Modern Day Tech (contd)
  • Distinguishes specification from implementation
  • Specification
  • Implementation
  • Later clarified by Lamport, Lynch, Abadi
  • Potential impact on Aspect-Oriented Programming
  • Advocate collection of like-purpose
    functionalities into single module
  • Interdependence with compiler (def-use) and
    Russell and Whiteheads mathematical formulation
    for set theory (early 19XXs)
Write a Comment
User Comments (0)
About PowerShow.com