Presentation is loading. Please wait.

Presentation is loading. Please wait.

V. Vranić — AspectJ Paradigm Model — GCSE 2001 AspectJ Paradigm Model A Basis for Multi-Paradigm Design for AspectJ Valentino Vranić

Similar presentations


Presentation on theme: "V. Vranić — AspectJ Paradigm Model — GCSE 2001 AspectJ Paradigm Model A Basis for Multi-Paradigm Design for AspectJ Valentino Vranić"— Presentation transcript:

1 V. Vranić — AspectJ Paradigm Model — GCSE 2001 AspectJ Paradigm Model A Basis for Multi-Paradigm Design for AspectJ Valentino Vranić vranic@elf.stuba.sk Department of Computer Science and Engineering Faculty of Electrical Engineering and Information Technology Slovak University of Technology in Bratislava

2 V. Vranić — AspectJ Paradigm Model — GCSE 2001 1 Presentation Overview Multi-paradigm design Feature modeling Multi-paradigm design with feature modeling AspectJ paradigm model Transformational analysis An example: Text editing buffers Conclusions

3 V. Vranić — AspectJ Paradigm Model — GCSE 2001 2 Multi-Paradigm Design (MPD) MPD for C++ (J. O. Coplien) Programming paradigms: –Large-scale paradigms –Small-scale paradigms Scope, commonality, variability, and relationship (SCVR) analysis Transformational analysis

4 V. Vranić — AspectJ Paradigm Model — GCSE 2001 3 Family table (from solution domain SCVR analysis) Transformational Analysis in MPD Parameters of VariationMeaningDomainBindingDefault BindingCommonalityVariabilityInstantiationLanguage Mechanism P1 Generalization of P1 (values P1 can take) (default value for P1) … Variability tables (from application domain SCVR analysis) Domain D1 (main commonality of D1) …

5 V. Vranić — AspectJ Paradigm Model — GCSE 2001 4 Feature Modeling A conceptual modeling technique Feature diagrams –directed trees with edge decorations –root = concept, other nodes = features –common and variable features –variation points Other information –Semantic description –Rationale –Constraints –Default dependency rules –Binding mode –Instantiation

6 V. Vranić — AspectJ Paradigm Model — GCSE 2001 5 MPD with Feature Modeling Feature models instead of tables and informal description Both feature modeling and SCVR analysis are based on commonalities and variabilities SCVR analysis and feature modeling: –scope  concept –commonality  common feature –variability  variable feature –relationship  feature diagrams hierarchy

7 V. Vranić — AspectJ Paradigm Model — GCSE 2001 6 Family table MPD and MPD with Feature Modeling Parameters of VariationMeaningDomainBindingDefault variation point semantic description, rationale alternative features binding mode default dependency rules Variability table Domain D1 (main commonality of D1  concept) BindingCommonalityVariabilityInstantiationLanguage Mechanism common feature binding mode variable feature additional information concept

8 V. Vranić — AspectJ Paradigm Model — GCSE 2001 7 AspectJ Paradigm Model

9 V. Vranić — AspectJ Paradigm Model — GCSE 2001 8 AspectJ Paradigm Model: Class Paradigm

10 V. Vranić — AspectJ Paradigm Model — GCSE 2001 9 AspectJ Paradigm Model: Aspect Paradigm

11 V. Vranić — AspectJ Paradigm Model — GCSE 2001 10 Transformational Analysis Prerequisites: –Solution domain feature model –Application domain feature model Matching of application domain feature model nodes with the solution domain feature model nodes –Points to the paradigms to be used for application domain structures –Two nodes match if they conceptually represent the same thing

12 V. Vranić — AspectJ Paradigm Model — GCSE 2001 11 Matching the Nodes 1. Select a node F from the application domain feature model 2. Try to match F’s children with the children of some node P that represents a paradigm in the solution domain feature model 3. If a match has been found for all of the F’s children, then F matches with P 4. A paradigm that represented by P should be used to implement feature F

13 V. Vranić — AspectJ Paradigm Model — GCSE 2001 12 The Process of Transformational Analysis Find the matching for all of the nodes in the application domain feature model Try to match the application domain nodes with the paradigms of “higher order” — the paradigms based on other paradigms (inheritance and overloading in AspectJ) Translate the results of the transformational analysis into the code: –directly –through a specific design method pointed to by MPD

14 V. Vranić — AspectJ Paradigm Model — GCSE 2001 13 An Example: Text Editing Buffers Represent a state of a file being edited Employ different working set management schemes Use different character sets Load and save the contents into a file Maintain a record of the number of lines and characters, cursor position, etc.

15 V. Vranić — AspectJ Paradigm Model — GCSE 2001 14

16 V. Vranić — AspectJ Paradigm Model — GCSE 2001 15

17 V. Vranić — AspectJ Paradigm Model — GCSE 2001 16 read status name contents File write status name contents

18 V. Vranić — AspectJ Paradigm Model — GCSE 2001 17

19 V. Vranić — AspectJ Paradigm Model — GCSE 2001 18

20 V. Vranić — AspectJ Paradigm Model — GCSE 2001 19

21 V. Vranić — AspectJ Paradigm Model — GCSE 2001 20

22 V. Vranić — AspectJ Paradigm Model — GCSE 2001 21

23 V. Vranić — AspectJ Paradigm Model — GCSE 2001 22

24 V. Vranić — AspectJ Paradigm Model — GCSE 2001 23

25 V. Vranić — AspectJ Paradigm Model — GCSE 2001 24 whole file Working Set Management DC whole page LRU fixed …

26 V. Vranić — AspectJ Paradigm Model — GCSE 2001 25

27 V. Vranić — AspectJ Paradigm Model — GCSE 2001 26 Feature diagrams alone do not fully determine the code skeleton What other sources are there?  Variability dependency graphs  Other information in feature model

28 V. Vranić — AspectJ Paradigm Model — GCSE 2001 27 Variability Dependency Graph Text Editing Buffer FileCharacter Set Debugging Code Working Set Management

29 V. Vranić — AspectJ Paradigm Model — GCSE 2001 28 class TextBuffer { public: yield(...) {...}; replace(...) {...}; loadFile(...) {...}; saveFile(...) {...}; private: int numLines, numChars, curPosition;... } class WholeFileTextBuffer extends TextBuffer { public: WholeFileTextBuffer(File f, CharacterSet c) {...}; yield(...) {...}; replace(...) {...};... }...

30 V. Vranić — AspectJ Paradigm Model — GCSE 2001 29 class File { public: Status readFile(String name, TextBuffer buff) {...} Status writeFile(String name, TextBuffer buff) {...}... } class UnixFile extends File {... }... aspect DebuggingCode {... } aspect WorkingSetDebug extends DebuggingCode {... } aspect WholeFileDebug extends WorkingSetDebug {... }...

31 V. Vranić — AspectJ Paradigm Model — GCSE 2001 30 Conclusions  A new representation for the solution and application domain in MPD –Based on feature modeling –Involves a new transformational analysis  AspectJ paradigm model Further research: –Noting of the transformational analysis results –Incorporating the MPD’s negative variability tables and variability dependency graphs –Relationship between the MPD and generative programming


Download ppt "V. Vranić — AspectJ Paradigm Model — GCSE 2001 AspectJ Paradigm Model A Basis for Multi-Paradigm Design for AspectJ Valentino Vranić"

Similar presentations


Ads by Google