1 / 30

Multi-Paradigm Design

This thesis explores multi-paradigm design as a uniform and formal basis for defining common programming paradigms and analyzing application and solution domains.

buddya
Download Presentation

Multi-Paradigm 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. Multi-Paradigm Design James O. Coplien Ph.D. Student, VUB 18 May 2000

  2. Thesis statement • Building on basic primitives of classic category theory and human cognition—commonality and variation—multi-paradigm design provides a uniform and formal basis for the definition of common programming paradigms, and a common basis for analysis of the application and solution domains, and the translation between them.

  3. Thesis Claims • Abstraction and Intentionality: First Principles of Abstraction • Meta-Design: Paradigm selection as a design activity • A formal, domain-based model for paradigm • Commonality Categories • Application Domain and Solution Domain Analyses • Multiple paradigms within a domain • Dependencies between domains: Limits to Modularity • Theory of Negative Variability: Generalizing cancellation • Regularization of Ad-Hoc Design Patterns

  4. The Purpose of Design • To solve a problem • Design for change and all else follows • Partitioning the Work • Domains that follow business structure • Shaping modular structure • Choose a paradigm according to a basis • Attentiveness to Aesthetics • Solution domain analysis

  5. Commonality and Variability Analysis • The basis of abstraction (classic model) • Families: commonalities and regularity in variabilities • Claim: Abstraction and Intentionality

  6. Commonality Analysis • The essence of abstraction • Commonalities define families from family members • We allow partitioning criteria to arise from the abstractions, not vice versa! • Many axes of commonality: • Behavior • Data structure • Name • Code structure • We define these as commonality categories • Claims: Meta-design

  7. Variability Analysis • Same dimensions as commonality • A commonality dimension + a variability dimension form a paradigm • Objects: common structure and behavior, variable structure and algorithm • Overloading: common semantics, variable interface and semantics • … • Claims: A basis for paradigm

  8. The place of paradigm • A way of organizing things • We organize by abstracting • Abstracting focuses on what is common • We treat variations separately

  9. A “Universal Paradigm” • Define a software family (by grouping according to commonalities) • Find the commonalities • Establish the parameters of variation

  10. OO As a Special Case • Arrange by commonalities • Collect similar objects into classes • Organize classes together using inheritance • Establishes a base class interface • Establish parameters of variation • Each family member has its own internal data structure • Each family member may implement a behavior with a different algorithm

  11. Domain Analysis • Traditional domain analysis: study of a subject area, the building of families • Frequently based on commonality and variability analysis • There are many domains: • Many application domains • Solution domain

  12. A problem: Negative Variation • In OO, inheritance with cancellation • BUT: it is more general • Template specialization: cancels structure • Argument defaulting and overriding • Many design patterns • Negative variation formalises these exceptions

  13. Solution Domain CV Table

  14. Negative Variability Table

  15. Most GOF patterns… aren’t...

  16. Patterns of Negative Variability

  17. TextBuffer Transformational Analysis TextBuffer: Common Structure and Algorithm Parameters of Variability Default / Technique Meaning Domain Binding Output Type The formatting of text lines is sensi- tive to the output medium Database, RCS, TTY, UNIX file Run UNIX File Different buffer types support different character sets Character Set ASCII, EBCDIC, FIELDATA Compile ASCII Working Set Management Different applications need to cache dif- ferent amounts of memory Whole file, whole page, LRU fixed Compile Whole file Debugging Code Debug in-house only, but keep tests in source code Debug, production None Compile

  18. TextBuffer Transformational Analysis TextBuffer: Common Structure and Algorithm Parameters of Variability Default / Technique Meaning Domain Binding Output Type Structure, Algorithm The formatting of text lines is sensi- tive to the output medium Database, RCS, TTY, UNIX file Run UNIX File Virtual Functions Different buffer types support different character sets Character Set Type ASCII, EBCDIC, FIELDATA Compile ASCII Templates Working Set Management Algorithm Different applications need to cache dif- ferent amounts of memory Whole file, whole page, LRU fixed Compile Whole file Inheritance Debugging Code Code Fragments Debug in-house only, but keep tests in source code Debug, production None #ifdef (from Negative variability Table) Compile

  19. Text Buffer Dependency Graph Character Set: Type Output Type: Structure and Algorithm Text Buffer: Common Structure And Algorithm Debugging Code: Fine Algorithm Working Set Management: Algorithm

  20. The File Domain Encryption: Character Set: Parametric Algorithm Output Media Debugging Record Type Code: Fine Structure and Algorithm Algorithm Buffer Type: Structure and Algorithm

  21. The unified design • Claim: domain dependencies Encryption: Algorithm Output Media Character Set: Type Debugging Code: Algorithmic Frags Working Set Text Buffer management: Debugging Common Structure Algorithm Code: Fine Algorithm and Algorithm

  22. Recap of Claims • Abstraction and Intentionality: The code is the design • Meta-Design: Doing objects honestly, or using other techniques when they apply • A formal, domain-based model for paradigm • Commonality Categories • Application Domain and Solution Domain Analyses • Multiple paradigms within a domain • Dependencies between domains: Limits to Modularity • Theory of Negative Variability: Generalizing cancellation • Regularization of Ad-Hoc Design Patterns

  23. Thanks! • David J. Weiss • Theo D’Hondt • Martine Devos • Debbie Lafferty • Carine Lucas • Tim Budd • The Committee

  24. Bijstelling: Symmetry and Patterns in Organizations James O. Coplien Ph.D. Student, VUB 25 April 2000

  25. Aposition • Pattern theory can be used as a formal basis for organizational models based on social network theory. In particular, current role-based models can be extended to build on the hypothesis that human organizational structures follow the same symmetries and patterns of symmetry-breaking observed in other biological populations, a phenomenon that has deeper roots in more general laws of natural systems in the domains of crystallography, astrophysics, mathematics, subatomic particle physics, and other domains.

  26. Two Architectures • The thesis is about architecture • Per Conway, architecture is about organization • Here we talk of software patterns… • … but there are organizational patterns, too [Kroeber]

  27. A curious pattern • Patterns in anthropology… • Patterns in other natural sciences... • Software organizational patterns... • Patterns as symmetry breaking… • Alexander’s theory of patterns based on geometry… • …it’s all related

  28. Aposition • Seek organizational formalisms based on symmetric relationships • Individials • Instrumental organizations • Establish common patterns • Tie to cultural invariants and breaking of those invariants in symmetric configurations • Seek drivers for symmetry-breaking

  29. Building Blocks • Organizational Patterns [Coplien et al.] • Group theory and symmetry theory • Prior art in ethnography and social network theory and research • Diadic psychology (family therapy, distance relationships literature, etc.)

More Related