SlideShare a Scribd company logo
1 of 59
Download to read offline
Web Abstractions 1
       data models, user interface templates, access control


                            Lecture 3



                                                   Course IN4308
       Eelco Visser
                                        Master Computer Science
  http://eelcovisser.org            Delft University of Technology
Wednesday, March 10, 2010
Application Model = Domain Model + Interaction Design




                                      System




                                Domain Model = State?
                            Interaction Design = Behaviour?
Wednesday, March 10, 2010
From high-level declarative model      Model



                  automatically generate



                      efļ¬cient & complete
                        implementation      System


Wednesday, March 10, 2010
How to model applications?




Wednesday, March 10, 2010
Wat makes a blog?




Wednesday, March 10, 2010
Wat makes a webshop?




Wednesday, March 10, 2010
Wat makes a chair?




Wednesday, March 10, 2010
Wat makes a chair?




Wednesday, March 10, 2010
Purpose
                              =>
                            Features
                               ?
Wednesday, March 10, 2010
Application Model = Collection of UML Diagrams




                            generate implementation from model
Wednesday, March 10, 2010
Details make the difference


               -      Consider
                      ā˜… interaction styles
                      ā˜… layout
                      ā˜… color schemes
                      ā˜… fonts
                      ā˜… personalization
                      ā˜… ...

               -      Parameters of the modeling language?
                      ā˜… generic, orthogonal deļ¬nition?



Wednesday, March 10, 2010
UI programming is like assembly programming




                             concerned with screen components

                            not with interaction styles & concepts




                            want: declaration of user interaction

Wednesday, March 10, 2010
Problem: ā€˜UI tweakingā€™



          - code generation produces standardized/limited UI

                              Alternative: extra ā€˜hand codingā€™
                            e.g. UI templates not part of model


                                    Conclusion:
                 - modeling not adequate for interaction design
                    - user interface programming is low-level
Wednesday, March 10, 2010
instead of a general purpose solution (UML)

                        address speciļ¬c class of software systems




Wednesday, March 10, 2010
Intermediate Goal for MDSD



                        develop better programming abstractions

                                    for horizontal domains

                              before tackling vertical domains




                            ā€˜letā€™s ļ¬rst make it easier to build web appsā€™
Wednesday, March 10, 2010
vertical (ā€˜businessā€™) domains




                     UI



                    DM



                    DB



                            accounting   horizontal (technical) domains
Wednesday, March 10, 2010
Properties of Domain-Speciļ¬c Languages

               DSL design requires tradeoff between
               -      Expressivity
               -      Coverage
               -      Portability
               -      Interoperability
               -      Completeness
               -      Maintainability
               Extensive discussion in Quarter 4


Wednesday, March 10, 2010
The Web Domain


Wednesday, March 10, 2010
browser                         server              database




                                          app.war


                            a web application lives on the server
Wednesday, March 10, 2010
Concerns in Web Programming

               -      Persistent data
                      ā˜… data integrity
                      ā˜… search

               -      User interface
                      ā˜… data validation
                      ā˜… styling, layout
                      ā˜… navigation
                      ā˜… actions

               -      Workļ¬‚ow
                                               d mo re ...
               -      Access control         an
Wednesday, March 10, 2010
Problems in Web Programming



               -      Separate language for separate concerns
                      ā˜… (thatā€™s good)

               -      Lack of integration
                      ā˜… no consistency checking
                      ā˜… different language styles

               -      Low-level conļ¬guration
                      ā˜… boilerplate code




Wednesday, March 10, 2010
WebDSL
          a domain-speciļ¬c language for web applications




                  separation of concerns & linguistic integration


Wednesday, March 10, 2010
<screenshot webdsl.org>




Wednesday, March 10, 2010
<screenshot researchr>




Wednesday, March 10, 2010
<screenshot tweetview>




Wednesday, March 10, 2010
<screenshot yellowgrass>




Wednesday, March 10, 2010
<screenshot department>




Wednesday, March 10, 2010
Web Abstractions
                                     from a declarative point of view
                            (weā€™ll investigate underlying mechanisms later)

      Eelco Visser. WebDSL: A Case Study in Domain-Speciļ¬c Language Engineering. GTTSE 2008: 291-373

Wednesday, March 10, 2010
Data Model Deļ¬nition

   entity declaration
                                                   property




Wednesday, March 10, 2010
Data Model for Wiki

                                                  object identiļ¬er




                                          domain-speciļ¬c type

Wednesday, March 10, 2010
Page Deļ¬nition & Navigation


     page navigation (page call)




   page deļ¬niti
                            on
Wednesday, March 10, 2010
Displaying Data


                                              rendering values




     markup




Wednesday, March 10, 2010
Templates (Page Fragments)

         template deļ¬nition




        template call
                                                         parameter




Wednesday, March 10, 2010
wiki.css

Wednesday, March 10, 2010
Modifying Data




     data
    binding

                   submit

                                             page
                                             ļ¬‚ow
Wednesday, March 10, 2010
Core Wiki




                            navigate




        action
Wednesday, March 10, 2010
Core Wiki


                               navigate




        action
Wednesday, March 10, 2010
Creating Objects

                                         ļ¬nd/create object by id




Wednesday, March 10, 2010
Modifying Data




                                     pass string

Wednesday, March 10, 2010
Core Wiki


                               navigate creates page




        action
Wednesday, March 10, 2010
Page Index




Wednesday, March 10, 2010
Output Object = Navigation




Wednesday, March 10, 2010
Output Object = Navigation




  custom deļ¬nition                                 default deļ¬nition


Wednesday, March 10, 2010
Access Control

         Danny M. Groenewegen, Eelco Visser. Declarative Access Control for WebDSL:
         Combining Language Integration and Separation of Concerns. ICWE 2008: 175-188


Wednesday, March 10, 2010
Principal




                                  representation of principal




  turn on access control

Wednesday, March 10, 2010
Principal




                                  representation of principal




  turn on access control

Wednesday, March 10, 2010
Authentication




Wednesday, March 10, 2010
Authentication




Wednesday, March 10, 2010
Authentication




Wednesday, March 10, 2010
Registration




Wednesday, March 10, 2010
Access Control Rules

                                              ā€˜may access page f with
                                               argument x if boolean
                                                expression e is trueā€™




Wednesday, March 10, 2010
Wiki Access Control Rules




                                                                     ā€˜anyone can view
                                                                    existing pages, only
                                                                    logged in users can
                                                                       create pagesā€™


                            ā€˜only logged in users may edit pagesā€™


Wednesday, March 10, 2010
Wiki Access Control Rules




Wednesday, March 10, 2010
Wiki Access Control Rules




Wednesday, March 10, 2010
Wiki Access Control Rules




Wednesday, March 10, 2010
Wiki Access Control Rules




Wednesday, March 10, 2010
More Web Abstractions

               -      Access control policies
                      ā˜… constraints over objects
                      ā˜… role-based AC, discretionary AC

               -      Data validation
                      ā˜… form validation
                      ā˜… data integrity

               -      Loading/accessing templates (partial pages)
                      ā˜… (AJAX)

               -      Search
               -      Workļ¬‚ow

Wednesday, March 10, 2010
The Future of Quarter 3

               -      Lecture 4
                      ā˜… More web abstractions

               -      Lecture 5
                      ā˜… What does WebDSL abstract from?
                      ā˜… Or: from DSL to Code

               -      Lecture 6
                      ā˜… Language workbenches
                      ā˜… Grammars

               -      Lecture 7
                      ā˜… Language modeling

Wednesday, March 10, 2010
Schedule
               Lab this week
                      ā˜… Finish & submit proposal Design 1
                      ā˜… Entity declarations
                      ā˜… Basic setup for user interface

               Cases
                      ā˜… Case 1: domain analysis in digital library domain
                      ā˜… Case 2: web abstractions

               Next
                      ā˜… Week 4 is ā€˜springā€™ break; Week 5: lecture no, lab yes
                      ā˜… Week 6: access control policies, validation, search, ...

Wednesday, March 10, 2010

More Related Content

Viewers also liked

Model-Driven Software Development - Context-Sensitive Transformation
Model-Driven Software Development - Context-Sensitive TransformationModel-Driven Software Development - Context-Sensitive Transformation
Model-Driven Software Development - Context-Sensitive TransformationEelco Visser
Ā 
Type analysis
Type analysisType analysis
Type analysisEelco Visser
Ā 
Composing Domain-Specific Languages
Composing Domain-Specific LanguagesComposing Domain-Specific Languages
Composing Domain-Specific LanguagesEelco Visser
Ā 
Model-Driven Software Development - Web Abstractions 2
Model-Driven Software Development - Web Abstractions 2Model-Driven Software Development - Web Abstractions 2
Model-Driven Software Development - Web Abstractions 2Eelco Visser
Ā 
Static Analysis
Static AnalysisStatic Analysis
Static AnalysisEelco Visser
Ā 
Dataflow Analysis
Dataflow AnalysisDataflow Analysis
Dataflow AnalysisEelco Visser
Ā 
From Muddling to Modelling
From Muddling to ModellingFrom Muddling to Modelling
From Muddling to ModellingJorn Bettin
Ā 
Domain Analysis & Data Modeling
Domain Analysis & Data ModelingDomain Analysis & Data Modeling
Domain Analysis & Data ModelingEelco Visser
Ā 
Dynamic Semantics
Dynamic SemanticsDynamic Semantics
Dynamic SemanticsEelco Visser
Ā 
Software languages
Software languagesSoftware languages
Software languagesEelco Visser
Ā 
Programming languages
Programming languagesProgramming languages
Programming languagesEelco Visser
Ā 

Viewers also liked (11)

Model-Driven Software Development - Context-Sensitive Transformation
Model-Driven Software Development - Context-Sensitive TransformationModel-Driven Software Development - Context-Sensitive Transformation
Model-Driven Software Development - Context-Sensitive Transformation
Ā 
Type analysis
Type analysisType analysis
Type analysis
Ā 
Composing Domain-Specific Languages
Composing Domain-Specific LanguagesComposing Domain-Specific Languages
Composing Domain-Specific Languages
Ā 
Model-Driven Software Development - Web Abstractions 2
Model-Driven Software Development - Web Abstractions 2Model-Driven Software Development - Web Abstractions 2
Model-Driven Software Development - Web Abstractions 2
Ā 
Static Analysis
Static AnalysisStatic Analysis
Static Analysis
Ā 
Dataflow Analysis
Dataflow AnalysisDataflow Analysis
Dataflow Analysis
Ā 
From Muddling to Modelling
From Muddling to ModellingFrom Muddling to Modelling
From Muddling to Modelling
Ā 
Domain Analysis & Data Modeling
Domain Analysis & Data ModelingDomain Analysis & Data Modeling
Domain Analysis & Data Modeling
Ā 
Dynamic Semantics
Dynamic SemanticsDynamic Semantics
Dynamic Semantics
Ā 
Software languages
Software languagesSoftware languages
Software languages
Ā 
Programming languages
Programming languagesProgramming languages
Programming languages
Ā 

Similar to Model-Driven Software Development - Web Abstractions 1

Web Content Management Is Dead Long Live Web Content Management
Web Content Management Is Dead Long Live Web Content ManagementWeb Content Management Is Dead Long Live Web Content Management
Web Content Management Is Dead Long Live Web Content ManagementThe Content Advisory
Ā 
Introduction to HTML5
Introduction to HTML5Introduction to HTML5
Introduction to HTML5Adrian Olaru
Ā 
UW Agile CP202 Class 3 Managing Software Debt
UW Agile CP202 Class 3 Managing Software DebtUW Agile CP202 Class 3 Managing Software Debt
UW Agile CP202 Class 3 Managing Software DebtChris Sterling
Ā 
Introduction to DZone
Introduction to DZoneIntroduction to DZone
Introduction to DZoneBrandon Hoe
Ā 
Web Typography with CSS3
Web Typography with CSS3Web Typography with CSS3
Web Typography with CSS3Matthew Smith
Ā 
Service Integration - A Web of Things Perspective
Service Integration - A Web of Things PerspectiveService Integration - A Web of Things Perspective
Service Integration - A Web of Things PerspectiveSimon Mayer
Ā 
Modern web application model
Modern web application modelModern web application model
Modern web application modelMichal Taberski
Ā 
Responsive Web Design
Responsive Web DesignResponsive Web Design
Responsive Web DesignLucijan Blagonic
Ā 
Please Don't Touch the Slow Parts
Please Don't Touch the Slow PartsPlease Don't Touch the Slow Parts
Please Don't Touch the Slow PartsFederico Galassi
Ā 
Is SharePoint 2010 the panacea to the shortcomings & difficulties we had with...
Is SharePoint 2010 the panacea to the shortcomings & difficulties we had with...Is SharePoint 2010 the panacea to the shortcomings & difficulties we had with...
Is SharePoint 2010 the panacea to the shortcomings & difficulties we had with...Randy Perkins-Smart
Ā 
Mobile Development with uPortal and Infusion
Mobile Development with uPortal and InfusionMobile Development with uPortal and Infusion
Mobile Development with uPortal and Infusioncolinbdclark
Ā 
Web Development for Mobile Devices
Web Development for Mobile DevicesWeb Development for Mobile Devices
Web Development for Mobile Devicesraykimsey
Ā 
Data-Centric Composites and Mashups in SharePoint 2010 - TechEd Middle East
Data-Centric Composites and Mashups in SharePoint 2010 - TechEd Middle EastData-Centric Composites and Mashups in SharePoint 2010 - TechEd Middle East
Data-Centric Composites and Mashups in SharePoint 2010 - TechEd Middle EastAyman El-Hattab
Ā 
IRW Sharepoint scope and futures seminars_june_2011
IRW Sharepoint scope and futures seminars_june_2011IRW Sharepoint scope and futures seminars_june_2011
IRW Sharepoint scope and futures seminars_june_2011IRW Systems
Ā 
Tagging Up - MMS and Taxonomy In SharePoint 2010
Tagging Up - MMS and Taxonomy In SharePoint 2010Tagging Up - MMS and Taxonomy In SharePoint 2010
Tagging Up - MMS and Taxonomy In SharePoint 2010Chris McNulty
Ā 
Introduction to Chatbots
Introduction to ChatbotsIntroduction to Chatbots
Introduction to ChatbotsDaden Limited
Ā 

Similar to Model-Driven Software Development - Web Abstractions 1 (20)

Web Content Management Is Dead Long Live Web Content Management
Web Content Management Is Dead Long Live Web Content ManagementWeb Content Management Is Dead Long Live Web Content Management
Web Content Management Is Dead Long Live Web Content Management
Ā 
Portfolio 2007-2009
Portfolio 2007-2009Portfolio 2007-2009
Portfolio 2007-2009
Ā 
Introduction to HTML5
Introduction to HTML5Introduction to HTML5
Introduction to HTML5
Ā 
UW Agile CP202 Class 3 Managing Software Debt
UW Agile CP202 Class 3 Managing Software DebtUW Agile CP202 Class 3 Managing Software Debt
UW Agile CP202 Class 3 Managing Software Debt
Ā 
Introduction to DZone
Introduction to DZoneIntroduction to DZone
Introduction to DZone
Ā 
Web Typography with CSS3
Web Typography with CSS3Web Typography with CSS3
Web Typography with CSS3
Ā 
Service Integration - A Web of Things Perspective
Service Integration - A Web of Things PerspectiveService Integration - A Web of Things Perspective
Service Integration - A Web of Things Perspective
Ā 
Modern web application model
Modern web application modelModern web application model
Modern web application model
Ā 
Vertically Challenged
Vertically ChallengedVertically Challenged
Vertically Challenged
Ā 
Responsive Web Design
Responsive Web DesignResponsive Web Design
Responsive Web Design
Ā 
Please Don't Touch the Slow Parts
Please Don't Touch the Slow PartsPlease Don't Touch the Slow Parts
Please Don't Touch the Slow Parts
Ā 
Is SharePoint 2010 the panacea to the shortcomings & difficulties we had with...
Is SharePoint 2010 the panacea to the shortcomings & difficulties we had with...Is SharePoint 2010 the panacea to the shortcomings & difficulties we had with...
Is SharePoint 2010 the panacea to the shortcomings & difficulties we had with...
Ā 
Mobile Development with uPortal and Infusion
Mobile Development with uPortal and InfusionMobile Development with uPortal and Infusion
Mobile Development with uPortal and Infusion
Ā 
Web Development for Mobile Devices
Web Development for Mobile DevicesWeb Development for Mobile Devices
Web Development for Mobile Devices
Ā 
AUC Tech-SP 2010
AUC Tech-SP 2010AUC Tech-SP 2010
AUC Tech-SP 2010
Ā 
Data-Centric Composites and Mashups in SharePoint 2010 - TechEd Middle East
Data-Centric Composites and Mashups in SharePoint 2010 - TechEd Middle EastData-Centric Composites and Mashups in SharePoint 2010 - TechEd Middle East
Data-Centric Composites and Mashups in SharePoint 2010 - TechEd Middle East
Ā 
IRW Sharepoint scope and futures seminars_june_2011
IRW Sharepoint scope and futures seminars_june_2011IRW Sharepoint scope and futures seminars_june_2011
IRW Sharepoint scope and futures seminars_june_2011
Ā 
Tagging Up - MMS and Taxonomy In SharePoint 2010
Tagging Up - MMS and Taxonomy In SharePoint 2010Tagging Up - MMS and Taxonomy In SharePoint 2010
Tagging Up - MMS and Taxonomy In SharePoint 2010
Ā 
profile
profileprofile
profile
Ā 
Introduction to Chatbots
Introduction to ChatbotsIntroduction to Chatbots
Introduction to Chatbots
Ā 

More from Eelco Visser

CS4200 2019 | Lecture 5 | Transformation by Term Rewriting
CS4200 2019 | Lecture 5 | Transformation by Term RewritingCS4200 2019 | Lecture 5 | Transformation by Term Rewriting
CS4200 2019 | Lecture 5 | Transformation by Term RewritingEelco Visser
Ā 
CS4200 2019 | Lecture 4 | Syntactic Services
CS4200 2019 | Lecture 4 | Syntactic ServicesCS4200 2019 | Lecture 4 | Syntactic Services
CS4200 2019 | Lecture 4 | Syntactic ServicesEelco Visser
Ā 
CS4200 2019 | Lecture 3 | Parsing
CS4200 2019 | Lecture 3 | ParsingCS4200 2019 | Lecture 3 | Parsing
CS4200 2019 | Lecture 3 | ParsingEelco Visser
Ā 
CS4200 2019 | Lecture 2 | syntax-definition
CS4200 2019 | Lecture 2 | syntax-definitionCS4200 2019 | Lecture 2 | syntax-definition
CS4200 2019 | Lecture 2 | syntax-definitionEelco Visser
Ā 
CS4200 2019 Lecture 1: Introduction
CS4200 2019 Lecture 1: IntroductionCS4200 2019 Lecture 1: Introduction
CS4200 2019 Lecture 1: IntroductionEelco Visser
Ā 
A Direct Semantics of Declarative Disambiguation Rules
A Direct Semantics of Declarative Disambiguation RulesA Direct Semantics of Declarative Disambiguation Rules
A Direct Semantics of Declarative Disambiguation RulesEelco Visser
Ā 
Declarative Type System Specification with Statix
Declarative Type System Specification with StatixDeclarative Type System Specification with Statix
Declarative Type System Specification with StatixEelco Visser
Ā 
Compiler Construction | Lecture 17 | Beyond Compiler Construction
Compiler Construction | Lecture 17 | Beyond Compiler ConstructionCompiler Construction | Lecture 17 | Beyond Compiler Construction
Compiler Construction | Lecture 17 | Beyond Compiler ConstructionEelco Visser
Ā 
Domain Specific Languages for Parallel Graph AnalytiX (PGX)
Domain Specific Languages for Parallel Graph AnalytiX (PGX)Domain Specific Languages for Parallel Graph AnalytiX (PGX)
Domain Specific Languages for Parallel Graph AnalytiX (PGX)Eelco Visser
Ā 
Compiler Construction | Lecture 15 | Memory Management
Compiler Construction | Lecture 15 | Memory ManagementCompiler Construction | Lecture 15 | Memory Management
Compiler Construction | Lecture 15 | Memory ManagementEelco Visser
Ā 
Compiler Construction | Lecture 14 | Interpreters
Compiler Construction | Lecture 14 | InterpretersCompiler Construction | Lecture 14 | Interpreters
Compiler Construction | Lecture 14 | InterpretersEelco Visser
Ā 
Compiler Construction | Lecture 13 | Code Generation
Compiler Construction | Lecture 13 | Code GenerationCompiler Construction | Lecture 13 | Code Generation
Compiler Construction | Lecture 13 | Code GenerationEelco Visser
Ā 
Compiler Construction | Lecture 12 | Virtual Machines
Compiler Construction | Lecture 12 | Virtual MachinesCompiler Construction | Lecture 12 | Virtual Machines
Compiler Construction | Lecture 12 | Virtual MachinesEelco Visser
Ā 
Compiler Construction | Lecture 11 | Monotone Frameworks
Compiler Construction | Lecture 11 | Monotone FrameworksCompiler Construction | Lecture 11 | Monotone Frameworks
Compiler Construction | Lecture 11 | Monotone FrameworksEelco Visser
Ā 
Compiler Construction | Lecture 10 | Data-Flow Analysis
Compiler Construction | Lecture 10 | Data-Flow AnalysisCompiler Construction | Lecture 10 | Data-Flow Analysis
Compiler Construction | Lecture 10 | Data-Flow AnalysisEelco Visser
Ā 
Compiler Construction | Lecture 9 | Constraint Resolution
Compiler Construction | Lecture 9 | Constraint ResolutionCompiler Construction | Lecture 9 | Constraint Resolution
Compiler Construction | Lecture 9 | Constraint ResolutionEelco Visser
Ā 
Compiler Construction | Lecture 8 | Type Constraints
Compiler Construction | Lecture 8 | Type ConstraintsCompiler Construction | Lecture 8 | Type Constraints
Compiler Construction | Lecture 8 | Type ConstraintsEelco Visser
Ā 
Compiler Construction | Lecture 7 | Type Checking
Compiler Construction | Lecture 7 | Type CheckingCompiler Construction | Lecture 7 | Type Checking
Compiler Construction | Lecture 7 | Type CheckingEelco Visser
Ā 
Compiler Construction | Lecture 6 | Introduction to Static Analysis
Compiler Construction | Lecture 6 | Introduction to Static AnalysisCompiler Construction | Lecture 6 | Introduction to Static Analysis
Compiler Construction | Lecture 6 | Introduction to Static AnalysisEelco Visser
Ā 
Compiler Construction | Lecture 5 | Transformation by Term Rewriting
Compiler Construction | Lecture 5 | Transformation by Term RewritingCompiler Construction | Lecture 5 | Transformation by Term Rewriting
Compiler Construction | Lecture 5 | Transformation by Term RewritingEelco Visser
Ā 

More from Eelco Visser (20)

CS4200 2019 | Lecture 5 | Transformation by Term Rewriting
CS4200 2019 | Lecture 5 | Transformation by Term RewritingCS4200 2019 | Lecture 5 | Transformation by Term Rewriting
CS4200 2019 | Lecture 5 | Transformation by Term Rewriting
Ā 
CS4200 2019 | Lecture 4 | Syntactic Services
CS4200 2019 | Lecture 4 | Syntactic ServicesCS4200 2019 | Lecture 4 | Syntactic Services
CS4200 2019 | Lecture 4 | Syntactic Services
Ā 
CS4200 2019 | Lecture 3 | Parsing
CS4200 2019 | Lecture 3 | ParsingCS4200 2019 | Lecture 3 | Parsing
CS4200 2019 | Lecture 3 | Parsing
Ā 
CS4200 2019 | Lecture 2 | syntax-definition
CS4200 2019 | Lecture 2 | syntax-definitionCS4200 2019 | Lecture 2 | syntax-definition
CS4200 2019 | Lecture 2 | syntax-definition
Ā 
CS4200 2019 Lecture 1: Introduction
CS4200 2019 Lecture 1: IntroductionCS4200 2019 Lecture 1: Introduction
CS4200 2019 Lecture 1: Introduction
Ā 
A Direct Semantics of Declarative Disambiguation Rules
A Direct Semantics of Declarative Disambiguation RulesA Direct Semantics of Declarative Disambiguation Rules
A Direct Semantics of Declarative Disambiguation Rules
Ā 
Declarative Type System Specification with Statix
Declarative Type System Specification with StatixDeclarative Type System Specification with Statix
Declarative Type System Specification with Statix
Ā 
Compiler Construction | Lecture 17 | Beyond Compiler Construction
Compiler Construction | Lecture 17 | Beyond Compiler ConstructionCompiler Construction | Lecture 17 | Beyond Compiler Construction
Compiler Construction | Lecture 17 | Beyond Compiler Construction
Ā 
Domain Specific Languages for Parallel Graph AnalytiX (PGX)
Domain Specific Languages for Parallel Graph AnalytiX (PGX)Domain Specific Languages for Parallel Graph AnalytiX (PGX)
Domain Specific Languages for Parallel Graph AnalytiX (PGX)
Ā 
Compiler Construction | Lecture 15 | Memory Management
Compiler Construction | Lecture 15 | Memory ManagementCompiler Construction | Lecture 15 | Memory Management
Compiler Construction | Lecture 15 | Memory Management
Ā 
Compiler Construction | Lecture 14 | Interpreters
Compiler Construction | Lecture 14 | InterpretersCompiler Construction | Lecture 14 | Interpreters
Compiler Construction | Lecture 14 | Interpreters
Ā 
Compiler Construction | Lecture 13 | Code Generation
Compiler Construction | Lecture 13 | Code GenerationCompiler Construction | Lecture 13 | Code Generation
Compiler Construction | Lecture 13 | Code Generation
Ā 
Compiler Construction | Lecture 12 | Virtual Machines
Compiler Construction | Lecture 12 | Virtual MachinesCompiler Construction | Lecture 12 | Virtual Machines
Compiler Construction | Lecture 12 | Virtual Machines
Ā 
Compiler Construction | Lecture 11 | Monotone Frameworks
Compiler Construction | Lecture 11 | Monotone FrameworksCompiler Construction | Lecture 11 | Monotone Frameworks
Compiler Construction | Lecture 11 | Monotone Frameworks
Ā 
Compiler Construction | Lecture 10 | Data-Flow Analysis
Compiler Construction | Lecture 10 | Data-Flow AnalysisCompiler Construction | Lecture 10 | Data-Flow Analysis
Compiler Construction | Lecture 10 | Data-Flow Analysis
Ā 
Compiler Construction | Lecture 9 | Constraint Resolution
Compiler Construction | Lecture 9 | Constraint ResolutionCompiler Construction | Lecture 9 | Constraint Resolution
Compiler Construction | Lecture 9 | Constraint Resolution
Ā 
Compiler Construction | Lecture 8 | Type Constraints
Compiler Construction | Lecture 8 | Type ConstraintsCompiler Construction | Lecture 8 | Type Constraints
Compiler Construction | Lecture 8 | Type Constraints
Ā 
Compiler Construction | Lecture 7 | Type Checking
Compiler Construction | Lecture 7 | Type CheckingCompiler Construction | Lecture 7 | Type Checking
Compiler Construction | Lecture 7 | Type Checking
Ā 
Compiler Construction | Lecture 6 | Introduction to Static Analysis
Compiler Construction | Lecture 6 | Introduction to Static AnalysisCompiler Construction | Lecture 6 | Introduction to Static Analysis
Compiler Construction | Lecture 6 | Introduction to Static Analysis
Ā 
Compiler Construction | Lecture 5 | Transformation by Term Rewriting
Compiler Construction | Lecture 5 | Transformation by Term RewritingCompiler Construction | Lecture 5 | Transformation by Term Rewriting
Compiler Construction | Lecture 5 | Transformation by Term Rewriting
Ā 

Recently uploaded

Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfMr Bounab Samir
Ā 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Celine George
Ā 
ROOT CAUSE ANALYSIS PowerPoint Presentation
ROOT CAUSE ANALYSIS PowerPoint PresentationROOT CAUSE ANALYSIS PowerPoint Presentation
ROOT CAUSE ANALYSIS PowerPoint PresentationAadityaSharma884161
Ā 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Mark Reed
Ā 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxAnupkumar Sharma
Ā 
EPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptxEPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptxRaymartEstabillo3
Ā 
Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Celine George
Ā 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxpboyjonauth
Ā 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPCeline George
Ā 
DATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersDATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersSabitha Banu
Ā 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatYousafMalik24
Ā 
call girls in Kamla Market (DELHI) šŸ” >ą¼’9953330565šŸ” genuine Escort Service šŸ”āœ”ļøāœ”ļø
call girls in Kamla Market (DELHI) šŸ” >ą¼’9953330565šŸ” genuine Escort Service šŸ”āœ”ļøāœ”ļøcall girls in Kamla Market (DELHI) šŸ” >ą¼’9953330565šŸ” genuine Escort Service šŸ”āœ”ļøāœ”ļø
call girls in Kamla Market (DELHI) šŸ” >ą¼’9953330565šŸ” genuine Escort Service šŸ”āœ”ļøāœ”ļø9953056974 Low Rate Call Girls In Saket, Delhi NCR
Ā 
Atmosphere science 7 quarter 4 .........
Atmosphere science 7 quarter 4 .........Atmosphere science 7 quarter 4 .........
Atmosphere science 7 quarter 4 .........LeaCamillePacle
Ā 
Hį»ŒC Tį»T TIįŗ¾NG ANH 11 THEO CHĘÆĘ NG TRƌNH GLOBAL SUCCESS ĐƁP ƁN CHI TIįŗ¾T - Cįŗ¢ NĂ...
Hį»ŒC Tį»T TIįŗ¾NG ANH 11 THEO CHĘÆĘ NG TRƌNH GLOBAL SUCCESS ĐƁP ƁN CHI TIįŗ¾T - Cįŗ¢ NĂ...Hį»ŒC Tį»T TIįŗ¾NG ANH 11 THEO CHĘÆĘ NG TRƌNH GLOBAL SUCCESS ĐƁP ƁN CHI TIįŗ¾T - Cįŗ¢ NĂ...
Hį»ŒC Tį»T TIįŗ¾NG ANH 11 THEO CHĘÆĘ NG TRƌNH GLOBAL SUCCESS ĐƁP ƁN CHI TIįŗ¾T - Cįŗ¢ NĂ...Nguyen Thanh Tu Collection
Ā 
Quarter 4 Peace-education.pptx Catch Up Friday
Quarter 4 Peace-education.pptx Catch Up FridayQuarter 4 Peace-education.pptx Catch Up Friday
Quarter 4 Peace-education.pptx Catch Up FridayMakMakNepo
Ā 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17Celine George
Ā 

Recently uploaded (20)

Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Ā 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17
Ā 
ROOT CAUSE ANALYSIS PowerPoint Presentation
ROOT CAUSE ANALYSIS PowerPoint PresentationROOT CAUSE ANALYSIS PowerPoint Presentation
ROOT CAUSE ANALYSIS PowerPoint Presentation
Ā 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)
Ā 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
Ā 
EPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptxEPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptx
Ā 
OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...
Ā 
Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17
Ā 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptx
Ā 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERP
Ā 
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdfTataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
Ā 
DATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersDATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginners
Ā 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice great
Ā 
call girls in Kamla Market (DELHI) šŸ” >ą¼’9953330565šŸ” genuine Escort Service šŸ”āœ”ļøāœ”ļø
call girls in Kamla Market (DELHI) šŸ” >ą¼’9953330565šŸ” genuine Escort Service šŸ”āœ”ļøāœ”ļøcall girls in Kamla Market (DELHI) šŸ” >ą¼’9953330565šŸ” genuine Escort Service šŸ”āœ”ļøāœ”ļø
call girls in Kamla Market (DELHI) šŸ” >ą¼’9953330565šŸ” genuine Escort Service šŸ”āœ”ļøāœ”ļø
Ā 
Atmosphere science 7 quarter 4 .........
Atmosphere science 7 quarter 4 .........Atmosphere science 7 quarter 4 .........
Atmosphere science 7 quarter 4 .........
Ā 
Model Call Girl in Bikash Puri Delhi reach out to us at šŸ”9953056974šŸ”
Model Call Girl in Bikash Puri  Delhi reach out to us at šŸ”9953056974šŸ”Model Call Girl in Bikash Puri  Delhi reach out to us at šŸ”9953056974šŸ”
Model Call Girl in Bikash Puri Delhi reach out to us at šŸ”9953056974šŸ”
Ā 
Hį»ŒC Tį»T TIįŗ¾NG ANH 11 THEO CHĘÆĘ NG TRƌNH GLOBAL SUCCESS ĐƁP ƁN CHI TIįŗ¾T - Cįŗ¢ NĂ...
Hį»ŒC Tį»T TIįŗ¾NG ANH 11 THEO CHĘÆĘ NG TRƌNH GLOBAL SUCCESS ĐƁP ƁN CHI TIįŗ¾T - Cįŗ¢ NĂ...Hį»ŒC Tį»T TIįŗ¾NG ANH 11 THEO CHĘÆĘ NG TRƌNH GLOBAL SUCCESS ĐƁP ƁN CHI TIįŗ¾T - Cįŗ¢ NĂ...
Hį»ŒC Tį»T TIįŗ¾NG ANH 11 THEO CHĘÆĘ NG TRƌNH GLOBAL SUCCESS ĐƁP ƁN CHI TIįŗ¾T - Cįŗ¢ NĂ...
Ā 
Quarter 4 Peace-education.pptx Catch Up Friday
Quarter 4 Peace-education.pptx Catch Up FridayQuarter 4 Peace-education.pptx Catch Up Friday
Quarter 4 Peace-education.pptx Catch Up Friday
Ā 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17
Ā 
Rapple "Scholarly Communications and the Sustainable Development Goals"
Rapple "Scholarly Communications and the Sustainable Development Goals"Rapple "Scholarly Communications and the Sustainable Development Goals"
Rapple "Scholarly Communications and the Sustainable Development Goals"
Ā 

Model-Driven Software Development - Web Abstractions 1

  • 1. Web Abstractions 1 data models, user interface templates, access control Lecture 3 Course IN4308 Eelco Visser Master Computer Science http://eelcovisser.org Delft University of Technology Wednesday, March 10, 2010
  • 2. Application Model = Domain Model + Interaction Design System Domain Model = State? Interaction Design = Behaviour? Wednesday, March 10, 2010
  • 3. From high-level declarative model Model automatically generate efļ¬cient & complete implementation System Wednesday, March 10, 2010
  • 4. How to model applications? Wednesday, March 10, 2010
  • 5. Wat makes a blog? Wednesday, March 10, 2010
  • 6. Wat makes a webshop? Wednesday, March 10, 2010
  • 7. Wat makes a chair? Wednesday, March 10, 2010
  • 8. Wat makes a chair? Wednesday, March 10, 2010
  • 9. Purpose => Features ? Wednesday, March 10, 2010
  • 10. Application Model = Collection of UML Diagrams generate implementation from model Wednesday, March 10, 2010
  • 11. Details make the difference - Consider ā˜… interaction styles ā˜… layout ā˜… color schemes ā˜… fonts ā˜… personalization ā˜… ... - Parameters of the modeling language? ā˜… generic, orthogonal deļ¬nition? Wednesday, March 10, 2010
  • 12. UI programming is like assembly programming concerned with screen components not with interaction styles & concepts want: declaration of user interaction Wednesday, March 10, 2010
  • 13. Problem: ā€˜UI tweakingā€™ - code generation produces standardized/limited UI Alternative: extra ā€˜hand codingā€™ e.g. UI templates not part of model Conclusion: - modeling not adequate for interaction design - user interface programming is low-level Wednesday, March 10, 2010
  • 14. instead of a general purpose solution (UML) address speciļ¬c class of software systems Wednesday, March 10, 2010
  • 15. Intermediate Goal for MDSD develop better programming abstractions for horizontal domains before tackling vertical domains ā€˜letā€™s ļ¬rst make it easier to build web appsā€™ Wednesday, March 10, 2010
  • 16. vertical (ā€˜businessā€™) domains UI DM DB accounting horizontal (technical) domains Wednesday, March 10, 2010
  • 17. Properties of Domain-Speciļ¬c Languages DSL design requires tradeoff between - Expressivity - Coverage - Portability - Interoperability - Completeness - Maintainability Extensive discussion in Quarter 4 Wednesday, March 10, 2010
  • 18. The Web Domain Wednesday, March 10, 2010
  • 19. browser server database app.war a web application lives on the server Wednesday, March 10, 2010
  • 20. Concerns in Web Programming - Persistent data ā˜… data integrity ā˜… search - User interface ā˜… data validation ā˜… styling, layout ā˜… navigation ā˜… actions - Workļ¬‚ow d mo re ... - Access control an Wednesday, March 10, 2010
  • 21. Problems in Web Programming - Separate language for separate concerns ā˜… (thatā€™s good) - Lack of integration ā˜… no consistency checking ā˜… different language styles - Low-level conļ¬guration ā˜… boilerplate code Wednesday, March 10, 2010
  • 22. WebDSL a domain-speciļ¬c language for web applications separation of concerns & linguistic integration Wednesday, March 10, 2010
  • 28. Web Abstractions from a declarative point of view (weā€™ll investigate underlying mechanisms later) Eelco Visser. WebDSL: A Case Study in Domain-Speciļ¬c Language Engineering. GTTSE 2008: 291-373 Wednesday, March 10, 2010
  • 29. Data Model Deļ¬nition entity declaration property Wednesday, March 10, 2010
  • 30. Data Model for Wiki object identiļ¬er domain-speciļ¬c type Wednesday, March 10, 2010
  • 31. Page Deļ¬nition & Navigation page navigation (page call) page deļ¬niti on Wednesday, March 10, 2010
  • 32. Displaying Data rendering values markup Wednesday, March 10, 2010
  • 33. Templates (Page Fragments) template deļ¬nition template call parameter Wednesday, March 10, 2010
  • 35. Modifying Data data binding submit page ļ¬‚ow Wednesday, March 10, 2010
  • 36. Core Wiki navigate action Wednesday, March 10, 2010
  • 37. Core Wiki navigate action Wednesday, March 10, 2010
  • 38. Creating Objects ļ¬nd/create object by id Wednesday, March 10, 2010
  • 39. Modifying Data pass string Wednesday, March 10, 2010
  • 40. Core Wiki navigate creates page action Wednesday, March 10, 2010
  • 42. Output Object = Navigation Wednesday, March 10, 2010
  • 43. Output Object = Navigation custom deļ¬nition default deļ¬nition Wednesday, March 10, 2010
  • 44. Access Control Danny M. Groenewegen, Eelco Visser. Declarative Access Control for WebDSL: Combining Language Integration and Separation of Concerns. ICWE 2008: 175-188 Wednesday, March 10, 2010
  • 45. Principal representation of principal turn on access control Wednesday, March 10, 2010
  • 46. Principal representation of principal turn on access control Wednesday, March 10, 2010
  • 51. Access Control Rules ā€˜may access page f with argument x if boolean expression e is trueā€™ Wednesday, March 10, 2010
  • 52. Wiki Access Control Rules ā€˜anyone can view existing pages, only logged in users can create pagesā€™ ā€˜only logged in users may edit pagesā€™ Wednesday, March 10, 2010
  • 53. Wiki Access Control Rules Wednesday, March 10, 2010
  • 54. Wiki Access Control Rules Wednesday, March 10, 2010
  • 55. Wiki Access Control Rules Wednesday, March 10, 2010
  • 56. Wiki Access Control Rules Wednesday, March 10, 2010
  • 57. More Web Abstractions - Access control policies ā˜… constraints over objects ā˜… role-based AC, discretionary AC - Data validation ā˜… form validation ā˜… data integrity - Loading/accessing templates (partial pages) ā˜… (AJAX) - Search - Workļ¬‚ow Wednesday, March 10, 2010
  • 58. The Future of Quarter 3 - Lecture 4 ā˜… More web abstractions - Lecture 5 ā˜… What does WebDSL abstract from? ā˜… Or: from DSL to Code - Lecture 6 ā˜… Language workbenches ā˜… Grammars - Lecture 7 ā˜… Language modeling Wednesday, March 10, 2010
  • 59. Schedule Lab this week ā˜… Finish & submit proposal Design 1 ā˜… Entity declarations ā˜… Basic setup for user interface Cases ā˜… Case 1: domain analysis in digital library domain ā˜… Case 2: web abstractions Next ā˜… Week 4 is ā€˜springā€™ break; Week 5: lecture no, lab yes ā˜… Week 6: access control policies, validation, search, ... Wednesday, March 10, 2010