Download presentation
Presentation is loading. Please wait.
Published byΑμύντα Φωτόπουλος Modified over 6 years ago
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 (cont’d) Uses hierarchy: Virtual Machines:
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 (cont’d) General vs Specific General: Specific:
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 (cont’d) Flexible design: Information Hiding:
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 (cont’d)
Design Patterns: Iterator (operations can be indep of data type) Model View Controller Bridge: decouples the abstract services from its implementation Strategy pattern: Add strategies Decouple interface for a strategy’s purpose from the 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 (cont’d)
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 Whitehead’s mathematical formulation for set theory (early 19XX’s)
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.