MultiParadigm Design James O Coplien Ph D Student

  • Slides: 30
Download presentation
Multi-Paradigm Design James O. Coplien Ph. D. Student, VUB 18 May 2000

Multi-Paradigm Design James O. Coplien Ph. D. Student, VUB 18 May 2000

Thesis statement z. Building on basic primitives of classic category theory and human cognition—commonality

Thesis statement z. 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.

Thesis Claims z Abstraction and Intentionality: First Principles of Abstraction z Meta-Design: Paradigm selection

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

The Purpose of Design z. To solve a problem y. Design for change and

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

Commonality and Variability Analysis z. The basis of abstraction (classic model) z. Families: commonalities

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

Commonality Analysis z The essence of abstraction z Commonalities define families from family members

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

Variability Analysis z. Same dimensions as commonality z. A commonality dimension + a variability

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

The place of paradigm z. A way of organizing things z. We organize by

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

A “Universal Paradigm” z. Define a software family (by grouping according to commonalities) z.

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

OO As a Special Case z. Arrange by commonalities y. Collect similar objects into

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

Domain Analysis z. Traditional domain analysis: study of a subject area, the building of

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

A problem: Negative Variation z. In OO, inheritance with cancellation z. BUT: it is

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

Solution Domain CV Table

Solution Domain CV Table

Negative Variability Table

Negative Variability Table

Most GOF patterns… aren’t. . .

Most GOF patterns… aren’t. . .

Patterns of Negative Variability

Patterns of Negative Variability

Text. Buffer Transformational Analysis Text. Buffer: Common Structure and Algorithm Parameters of Variability Output

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

Text. Buffer Transformational Analysis Text. Buffer: Common Structure and Algorithm Parameters of Variability Output

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

Text Buffer Dependency Graph Output Type: Structure and Algorithm Character Set: Type Text Buffer:

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

The File Domain Character Set: Parametric Encryption: Algorithm Output Media Debugging Code: Fine Algorithm

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

The unified design *Claim: domain dependencies Encryption: Algorithm Output Media Character Set: Type Debugging

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

Recap of Claims z Abstraction and Intentionality: The code is the design z Meta-Design:

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

Thanks! z. David J. Weiss z. Theo D’Hondt z. Martine Devos z. Debbie Lafferty

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

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

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

Aposition z Pattern theory can be used as a formal basis for organizational models

Aposition z 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.

Two Architectures z. The thesis is about architecture z. Per Conway, architecture is about

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

A curious pattern z. Patterns in anthropology… z. Patterns in other natural sciences. .

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

Aposition z. Seek organizational formalisms based on symmetric relationships y. Individials y. Instrumental organizations

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

Building Blocks z. Organizational Patterns [Coplien et al. ] z. Group theory and symmetry

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