1 / 33

Reuse Technologies & Niches

Reuse Technologies & Niches. Ted J. Biggerstaff. The scaling plane. Large, high payoff. Vertical (Programming leverage). Reuse Payoff. Small, low payoff. Feature variability. One-size fits all. Customized. Horizontal (Optimality of fit). Reuse Technologies. Concrete components

lalasa
Download Presentation

Reuse Technologies & Niches

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. Reuse Technologies & Niches Ted J. Biggerstaff

  2. The scaling plane Large, high payoff Vertical (Programming leverage) Reuse Payoff Small, low payoff Feature variability One-size fits all Customized Horizontal (Optimality of fit)

  3. Reuse Technologies • Concrete components • e.g., Functions, OOP, Frameworks, DCOM, …

  4. Concrete Components • Small components don’t work well • Assembly work per unit payoff is low • Small components specialized niches OK • Overhead masked by human response (e.g., UI) • Standards or domain narrowness mitigate • Big components work well • Programs or subsystems • High programming leverage • Payoff dominates overhead costs

  5. Example: UI Controls

  6. Niches in the scaling plane Subsystem Level Components Vertical (Programming leverage) Conventional Components Horizontal (Optimality of fit)

  7. Essence of The Technology ClassElementsOperations Concrete Reuse PL Struct. Hand Assem.

  8. Reuse Technologies • Concrete components • e.g., Functions, OOP, Frameworks, DCOM, … • Compositionally Derived Components • e.g., Templates, GenVoca, …

  9. Element Class Container Class Deque Synchronized deque Container Doubly linked list Managed linked list List elements from heap Transient elements GenVoca derives a container Type Equation deque_usm = deq_sync [ deque2c [ dlist [ avail [ heap [ transient ]]]]]; Refinements deq-sync deque2c dlist avail heap transient

  10. Compositional Derivation • Example domain: Data structures • Benefits: • Improve reuse by raising level of abstraction • Combinatorial amplification of library (horz.) • Generation is fast • Shortcomings: • Level of abstraction still low • Large grain components mitigate horz. scaling • Dependencies limit extensibility • Inter-component optimization difficult

  11. Essence of The Technology ClassElementsOperations Concrete Reuse PL Struct. Hand Assem. Composition Abstract PL Inlining

  12. Niches in the scaling plane Subsystem Level Components Vertical (Programming leverage) Derived Components Conventional Components Horizontal (Optimality of fit)

  13. Reuse Technologies • Concrete components • e.g., Functions, OOP, Frameworks, DCOM, … • Compositionally Derived Components • e.g., Templates, GenVoca, … • Pattern-directed transformation systems • e.g., Draco, CAPE, IP, DMS, ...

  14. Draco Domains

  15. Data Base Relational Algebra Index Tuple Abstract Data Types C Code Refinements Component: Insert(Value V, Container C) {Refinement: Stack Condition: LIFO(C) Code: {Push(V,C)}} {Refinement: Sorted Container Condition: SortedOn(C, Value) Assertion: SortedOn(C, Value) Code: {Merge(V,C)}} ...}

  16. Domain to self: Join(?Relation1, Empty_Relation, ?Attribute) =>Empty_Relation Select(?Relation1,TRUE_expression) =>Relation1 Select(?Relation1,FALSE_expression) => Empty_Relation Data Base Relational Algebra Index Tuple Abstract Data Types C Code Optimizing Transforms

  17. Pattern-Directed Transformations • Example domain: communications protocols • Benefits: • Fine grain rules allow great horizontal scaling • Mapping between language objects • Powerful in-domain optimizations • Shortcomings: • Cross domain optimizations (interweavings) can explode search space

  18. Essence of The Technology ClassElementsOperations Concrete Reuse PL Struct. Hand Assem. Composition Abstract PL Inlining PD Generator DSL Struct. PD Xforms

  19. Subsystem Level Components Pattern Directed Derived Components Conventional Components Niches in the scaling plane Vertical (Programming leverage) Horizontal (Optimality of fit)

  20. Reuse Technologies • Concrete components • e.g., Functions, OOP, Frameworks, DCOM, … • Compositionally Derived Components • e.g., Templates, GenVoca, … • Pattern-directed transformation systems • e.g., Draco, CAPE, IP, DMS, ... • Reorganizing generator systems • AO generator, AOP, ...

  21. Problem: Antagonistic Goals • High level operators and operands provide programming leverage & variations • E.g., (image  neighborhood) convolution • But fracture and de-localize code pieces • b=((a  s)2 + (a  s’)2 )1/2 • Needed optimizations: code sharing, re-org. & re-weaving • Conventional Optimization approaches induce large search spaces

  22. Schema language foundation Pattern-driven & tag-driven transforms Organized by inheritance type and by stage Tags capture non-pattern-driven knowledge Tags act like AST-localized interrupts for performing optimizations TD’s are large-grain programmatic transforms Specialists: Partial evaluator & inference engine No explicit loops Performancewith small search spaces AOG Features

  23. Reorganizing Generators • Benefits: • Inter-component optimizations (reweavings) • Small search space = reasonably fast • Shortcomings: • Technology immature • Unclear how far it can be pushed

  24. Essence of The Technology ClassElementsOperations Concrete Reuse PL Struct. Hand Assem. Composition Abstract PL Inlining PD Generator DSL Struct. PD Xforms Reorg Generator Tagged DSL PDX & TDX

  25. Niches in the scaling plane Reorganizing Subsystem Level Components Vertical (Programming leverage) Pattern Directed Derived Components Conventional Components Horizontal (Optimality of fit)

  26. Reuse Technologies • Concrete components • e.g., Functions, OOP, Frameworks, DCOM, … • Compositionally Derived Components • e.g., Templates, GenVoca, … • Pattern-directed transformation systems • e.g., Draco, CAPE, IP, DMS, ... • Reorganizing generator systems • AO generator, AOP, ... • Inference-driven generator systems • Kids, Synapse, ...

  27. Inference-Based Generators • Paradigm: Schema + rules of inference • Example: Divide-and-conquer schema • Broad framework for solution • User specification: Formal specification (e.g., predicate calculus)

  28. Inference-Based Generators • Example: Kids generator • Benefits: • Highest levels of horizontal scaling • Shortcomings: • Formal specifications require ultra-stable application • Requires well-understood domain with deep theory • Immaturity and narrow => low vertical scaling

  29. Essence of The Technology ClassElementsOperations Concrete Reuse PL Struct. Hand Assem. Composition Abstract PL Inlining PD Generator DSL Struct. PD Xforms Reorg Generator Tagged DSL PDX & TDX Infer Generator DSL+Logic Inference

  30. Reorganizing Subsystem Level Components Pattern Directed Derived Components Inference Based Conventional Components Niches in the scaling plane Vertical (Programming leverage) Horizontal (Optimality of fit)

  31. Reuse Technologies • Concrete components • Limited islands of successful reuse • Compositionally Derived Components • More horizontal scaling but no inter-part reweaving • Pattern-directed transformation systems • Extends both but big search space for reweaving • Reorganizing generator systems • Reweavings gain horiz. scaling but immature • Inference-driven generator systems • Greatest horiz. scaling but formality limits use

  32. References • Biggerstaff, A Perspective of Generative Reuse, Annals of Software Eng., 1998 • Biggerstaff, Fixing Some Transformation Problems, Proc. Of Automated Software Engineering, 1999. • Batory et al, Scalable Software Libraries, Foundations of SE, 1993 • Neighbors, Draco: A Method for Engineering Reusable Software Systems, in Software Reusability, 1989.

  33. The End

More Related