Separation of Concerns in Web User Interfaces

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Notes on slide 1



    - Use the concept of Separation of Concerns

    to divide web user interfaces into separate areas of interest, or concerns,


    - and develop languages, as extensions to WebDSL, to support the definition of these separated concerns


    - the languages enable the definition of an integrated description of a user interface


    - from which automatically a web application is generated


    - Use the concept of Separation of Concerns

    to divide web user interfaces into separate areas of interest, or concerns,


    - and develop languages, as extensions to WebDSL, to support the definition of these separated concerns


    - the languages enable the definition of an integrated description of a user interface


    - from which automatically a web application is generated


    - Use the concept of Separation of Concerns

    to divide web user interfaces into separate areas of interest, or concerns,


    - and develop languages, as extensions to WebDSL, to support the definition of these separated concerns


    - the languages enable the definition of an integrated description of a user interface


    - from which automatically a web application is generated


    - Use the concept of Separation of Concerns

    to divide web user interfaces into separate areas of interest, or concerns,


    - and develop languages, as extensions to WebDSL, to support the definition of these separated concerns


    - the languages enable the definition of an integrated description of a user interface


    - from which automatically a web application is generated


    - Use the concept of Separation of Concerns

    to divide web user interfaces into separate areas of interest, or concerns,


    - and develop languages, as extensions to WebDSL, to support the definition of these separated concerns


    - the languages enable the definition of an integrated description of a user interface


    - from which automatically a web application is generated


    - Use the concept of Separation of Concerns

    to divide web user interfaces into separate areas of interest, or concerns,


    - and develop languages, as extensions to WebDSL, to support the definition of these separated concerns


    - the languages enable the definition of an integrated description of a user interface


    - from which automatically a web application is generated


    - Use the concept of Separation of Concerns

    to divide web user interfaces into separate areas of interest, or concerns,


    - and develop languages, as extensions to WebDSL, to support the definition of these separated concerns


    - the languages enable the definition of an integrated description of a user interface


    - from which automatically a web application is generated


    - Use the concept of Separation of Concerns

    to divide web user interfaces into separate areas of interest, or concerns,


    - and develop languages, as extensions to WebDSL, to support the definition of these separated concerns


    - the languages enable the definition of an integrated description of a user interface


    - from which automatically a web application is generated


    - Use the concept of Separation of Concerns

    to divide web user interfaces into separate areas of interest, or concerns,


    - and develop languages, as extensions to WebDSL, to support the definition of these separated concerns


    - the languages enable the definition of an integrated description of a user interface


    - from which automatically a web application is generated


    - Use the concept of Separation of Concerns

    to divide web user interfaces into separate areas of interest, or concerns,


    - and develop languages, as extensions to WebDSL, to support the definition of these separated concerns


    - the languages enable the definition of an integrated description of a user interface


    - from which automatically a web application is generated


    - Use the concept of Separation of Concerns

    to divide web user interfaces into separate areas of interest, or concerns,


    - and develop languages, as extensions to WebDSL, to support the definition of these separated concerns


    - the languages enable the definition of an integrated description of a user interface


    - from which automatically a web application is generated


    - Use the concept of Separation of Concerns

    to divide web user interfaces into separate areas of interest, or concerns,


    - and develop languages, as extensions to WebDSL, to support the definition of these separated concerns


    - the languages enable the definition of an integrated description of a user interface


    - from which automatically a web application is generated


    - Use the concept of Separation of Concerns

    to divide web user interfaces into separate areas of interest, or concerns,


    - and develop languages, as extensions to WebDSL, to support the definition of these separated concerns


    - the languages enable the definition of an integrated description of a user interface


    - from which automatically a web application is generated


    - Use the concept of Separation of Concerns

    to divide web user interfaces into separate areas of interest, or concerns,


    - and develop languages, as extensions to WebDSL, to support the definition of these separated concerns


    - the languages enable the definition of an integrated description of a user interface


    - from which automatically a web application is generated


    - Use the concept of Separation of Concerns

    to divide web user interfaces into separate areas of interest, or concerns,


    - and develop languages, as extensions to WebDSL, to support the definition of these separated concerns


    - the languages enable the definition of an integrated description of a user interface


    - from which automatically a web application is generated


    - Use the concept of Separation of Concerns

    to divide web user interfaces into separate areas of interest, or concerns,


    - and develop languages, as extensions to WebDSL, to support the definition of these separated concerns


    - the languages enable the definition of an integrated description of a user interface


    - from which automatically a web application is generated


    - Use the concept of Separation of Concerns

    to divide web user interfaces into separate areas of interest, or concerns,


    - and develop languages, as extensions to WebDSL, to support the definition of these separated concerns


    - the languages enable the definition of an integrated description of a user interface


    - from which automatically a web application is generated



    - at end of presentation: hope to have convinced everybody from the purpose of this thesis

    - and that the right approach is taken


    - at end of presentation: hope to have convinced everybody from the purpose of this thesis

    - and that the right approach is taken


    - at end of presentation: hope to have convinced everybody from the purpose of this thesis

    - and that the right approach is taken

    - solution based on WebDSL


    - solution based on WebDSL


    - solution based on WebDSL


    - solution based on WebDSL


    - solution based on WebDSL


    - outline


    volkskrant.nl example
    explain different languages (html, javascript, css, java, sql)
    show html examples
    explain what css is and what it’s for
    show css examples

    volkskrant.nl example
    explain different languages (html, javascript, css, java, sql)
    show html examples
    explain what css is and what it’s for
    show css examples

    volkskrant.nl example
    explain different languages (html, javascript, css, java, sql)
    show html examples
    explain what css is and what it’s for
    show css examples

    volkskrant.nl example
    explain different languages (html, javascript, css, java, sql)
    show html examples
    explain what css is and what it’s for
    show css examples

    volkskrant.nl example
    explain different languages (html, javascript, css, java, sql)
    show html examples
    explain what css is and what it’s for
    show css examples

    volkskrant.nl example
    explain different languages (html, javascript, css, java, sql)
    show html examples
    explain what css is and what it’s for
    show css examples

    volkskrant.nl example
    explain different languages (html, javascript, css, java, sql)
    show html examples
    explain what css is and what it’s for
    show css examples

    volkskrant.nl example
    explain different languages (html, javascript, css, java, sql)
    show html examples
    explain what css is and what it’s for
    show css examples

    volkskrant.nl example
    explain different languages (html, javascript, css, java, sql)
    show html examples
    explain what css is and what it’s for
    show css examples

    volkskrant.nl example
    explain different languages (html, javascript, css, java, sql)
    show html examples
    explain what css is and what it’s for
    show css examples

    volkskrant.nl example
    explain different languages (html, javascript, css, java, sql)
    show html examples
    explain what css is and what it’s for
    show css examples

    volkskrant.nl example
    explain different languages (html, javascript, css, java, sql)
    show html examples
    explain what css is and what it’s for
    show css examples

    volkskrant.nl example
    explain different languages (html, javascript, css, java, sql)
    show html examples
    explain what css is and what it’s for
    show css examples

    volkskrant.nl example
    explain different languages (html, javascript, css, java, sql)
    show html examples
    explain what css is and what it’s for
    show css examples

    volkskrant.nl example
    explain different languages (html, javascript, css, java, sql)
    show html examples
    explain what css is and what it’s for
    show css examples

    volkskrant.nl example
    explain different languages (html, javascript, css, java, sql)
    show html examples
    explain what css is and what it’s for
    show css examples

    volkskrant.nl example
    explain different languages (html, javascript, css, java, sql)
    show html examples
    explain what css is and what it’s for
    show css examples

    volkskrant.nl example
    explain different languages (html, javascript, css, java, sql)
    show html examples
    explain what css is and what it’s for
    show css examples









    - what is the purpose of WebDSL
    - Domain-specific Language for the description of Web Application
    - DSL: means only suitable for describing solutions in the domain of Web Applications, not for other domains
    - python apps can be generated
    - seam, apps based on java servlets



















































































































































    - access control and workflow, great as they may be, fall outside the scope of this thesis

    - access control and workflow, great as they may be, fall outside the scope of this thesis

    - access control and workflow, great as they may be, fall outside the scope of this thesis

    - access control and workflow, great as they may be, fall outside the scope of this thesis

    - outline



    - ui is interface, as the name suggests, through which the user uses an app


    - every action a user does, every information a user reads is made possible by the user interface


    - a lot of competition on the web


    - hotmail, gmail, aol




    - ui is interface, as the name suggests, through which the user uses an app


    - every action a user does, every information a user reads is made possible by the user interface


    - a lot of competition on the web


    - hotmail, gmail, aol




    - ui is interface, as the name suggests, through which the user uses an app


    - every action a user does, every information a user reads is made possible by the user interface


    - a lot of competition on the web


    - hotmail, gmail, aol





















    - complex, because UI deals with Application logic and User input

    - complex, because UI deals with Application logic and User input

    - complex, because UI deals with Application logic and User input

    - complex, because UI deals with Application logic and User input

    - complex, because UI deals with Application logic and User input

    - complex, because UI deals with Application logic and User input

    - complex, because UI deals with Application logic and User input

    - complex, because UI deals with Application logic and User input



    How can the level of abstraction for describing and styling web-based user interfaces be raised in order to reduce development efforts while improving maintainability, reusability and quality

    How can the level of abstraction for describing and styling web-based user interfaces be raised in order to reduce development efforts while improving maintainability, reusability and quality

    How can the level of abstraction for describing and styling web-based user interfaces be raised in order to reduce development efforts while improving maintainability, reusability and quality

    How can the level of abstraction for describing and styling web-based user interfaces be raised in order to reduce development efforts while improving maintainability, reusability and quality

    How can the level of abstraction for describing and styling web-based user interfaces be raised in order to reduce development efforts while improving maintainability, reusability and quality

    How can the level of abstraction for describing and styling web-based user interfaces be raised in order to reduce development efforts while improving maintainability, reusability and quality

    How can the level of abstraction for describing and styling web-based user interfaces be raised in order to reduce development efforts while improving maintainability, reusability and quality

    How can the level of abstraction for describing and styling web-based user interfaces be raised in order to reduce development efforts while improving maintainability, reusability and quality

    How can the level of abstraction for describing and styling web-based user interfaces be raised in order to reduce development efforts while improving maintainability, reusability and quality

    How can the level of abstraction for describing and styling web-based user interfaces be raised in order to reduce development efforts while improving maintainability, reusability and quality

    Using WebDSL as a case study, what are good abstractions for describing the user interface of web applications and how can these abstractions be generalized for other environments?

    Using WebDSL as a case study, what are good abstractions for describing the user interface of web applications and how can these abstractions be generalized for other environments?

    Using WebDSL as a case study, what are good abstractions for describing the user interface of web applications and how can these abstractions be generalized for other environments?

    How much of the user interface for web applications can be generated using WebDSL on real-life case studies?

    How much of the user interface for web applications can be generated using WebDSL on real-life case studies?

    How much of the user interface for web applications can be generated using WebDSL on real-life case studies?

    How much of the user interface for web applications can be generated using WebDSL on real-life case studies?

    How much of the user interface for web applications can be generated using WebDSL on real-life case studies?

    - outline


    - in order to answer these research questions:


    - in order to answer these research questions:


    - in order to answer these research questions:


    - in order to answer these research questions:


    - CSS generation




    - suppose this is a web application
    - todo: we want to separate the application in ............

    - suppose this is a web application
    - todo: we want to separate the application in ............

    - suppose this is a web application
    - todo: we want to separate the application in ............

    - suppose this is a web application
    - todo: we want to separate the application in ............

    - suppose this is a web application
    - todo: we want to separate the application in ............

    - suppose this is a web application
    - todo: we want to separate the application in ............

    - reduces complexity


    - reduces complexity


    - reduces complexity


    - reduces complexity


    - reduces complexity


    - reduces complexity


    - reduces complexity


    - reduces complexity


    - reduces complexity


    - reduces complexity


    - reduces complexity


    - reduces complexity


    - reduces complexity


    - reduces complexity


    - reduces complexity


    - less dependencies ->
    - better reusability

    - less dependencies ->
    - better reusability

    - less dependencies ->
    - better reusability

    easier to use in different context

    - less dependencies ->
    - better maintainability
    -

    - less dependencies ->
    - better maintainability
    -

    structure: that part of the application, or domain, that is of interest to the user interface
    - is often the datamodel
    behavior: all actions a user can perform, such as viewing, navigation, (where am I, where did I come from where can I go, what can I do), actions that affect persisted data


    - scope of web user interfaces is very broad
    - this thesis focuses on Presentation and Appearance
    - appearance -> style and layout


    - scope of web user interfaces is very broad
    - this thesis focuses on Presentation and Appearance
    - appearance -> style and layout


    - scope of web user interfaces is very broad
    - this thesis focuses on Presentation and Appearance
    - appearance -> style and layout


    - scope of web user interfaces is very broad
    - this thesis focuses on Presentation and Appearance
    - appearance -> style and layout


    - deals with how content or structure is presented to users
    - without concerning for appearance, layout or style
    - content: static text or data resulting from actions of behavior tier (queries, browsing through persisted data)

    - deals with how content or structure is presented to users
    - without concerning for appearance, layout or style
    - content: static text or data resulting from actions of behavior tier (queries, browsing through persisted data)

    - deals with how content or structure is presented to users
    - without concerning for appearance, layout or style
    - content: static text or data resulting from actions of behavior tier (queries, browsing through persisted data)

    - deals with how content or structure is presented to users
    - without concerning for appearance, layout or style
    - content: static text or data resulting from actions of behavior tier (queries, browsing through persisted data)

    - deals with how content or structure is presented to users
    - without concerning for appearance, layout or style
    - content: static text or data resulting from actions of behavior tier (queries, browsing through persisted data)

    - deals with how content or structure is presented to users
    - without concerning for appearance, layout or style
    - content: static text or data resulting from actions of behavior tier (queries, browsing through persisted data)

    - consists of elements that model the inputs and outputs of a task
    - abstract concepts such as selecting one option out of a list of multiple
    - independent of modality (e.g. graphical, aural browsers)
    - difficult to visualize, since it then would be concrete

    - consists of elements that model the inputs and outputs of a task
    - abstract concepts such as selecting one option out of a list of multiple
    - independent of modality (e.g. graphical, aural browsers)
    - difficult to visualize, since it then would be concrete

    - consists of elements that model the inputs and outputs of a task
    - abstract concepts such as selecting one option out of a list of multiple
    - independent of modality (e.g. graphical, aural browsers)
    - difficult to visualize, since it then would be concrete

    - consists of elements that model the inputs and outputs of a task
    - abstract concepts such as selecting one option out of a list of multiple
    - independent of modality (e.g. graphical, aural browsers)
    - difficult to visualize, since it then would be concrete

    - consists of elements that model the inputs and outputs of a task
    - abstract concepts such as selecting one option out of a list of multiple
    - independent of modality (e.g. graphical, aural browsers)
    - difficult to visualize, since it then would be concrete

    - consists of elements that model the inputs and outputs of a task
    - abstract concepts such as selecting one option out of a list of multiple
    - independent of modality (e.g. graphical, aural browsers)
    - difficult to visualize, since it then would be concrete

    - consists of elements that model the inputs and outputs of a task
    - abstract concepts such as selecting one option out of a list of multiple
    - independent of modality (e.g. graphical, aural browsers)
    - difficult to visualize, since it then would be concrete

    - consists of elements that model the inputs and outputs of a task
    - abstract concepts such as selecting one option out of a list of multiple
    - independent of modality (e.g. graphical, aural browsers)
    - difficult to visualize, since it then would be concrete

    - consists of elements that model the inputs and outputs of a task
    - abstract concepts such as selecting one option out of a list of multiple
    - independent of modality (e.g. graphical, aural browsers)
    - difficult to visualize, since it then would be concrete

    - consists of elements that model the inputs and outputs of a task
    - abstract concepts such as selecting one option out of a list of multiple
    - independent of modality (e.g. graphical, aural browsers)
    - difficult to visualize, since it then would be concrete

    - consists of elements that model the inputs and outputs of a task
    - abstract concepts such as selecting one option out of a list of multiple
    - independent of modality (e.g. graphical, aural browsers)
    - difficult to visualize, since it then would be concrete

    - consists of elements that model the inputs and outputs of a task
    - abstract concepts such as selecting one option out of a list of multiple
    - independent of modality (e.g. graphical, aural browsers)
    - difficult to visualize, since it then would be concrete

    - consists of elements that model the inputs and outputs of a task
    - abstract concepts such as selecting one option out of a list of multiple
    - independent of modality (e.g. graphical, aural browsers)
    - difficult to visualize, since it then would be concrete

    - consists of elements that model the inputs and outputs of a task
    - abstract concepts such as selecting one option out of a list of multiple
    - independent of modality (e.g. graphical, aural browsers)
    - difficult to visualize, since it then would be concrete

    - consists of elements that model the inputs and outputs of a task
    - abstract concepts such as selecting one option out of a list of multiple
    - independent of modality (e.g. graphical, aural browsers)
    - difficult to visualize, since it then would be concrete

    - consists of elements that model the inputs and outputs of a task
    - abstract concepts such as selecting one option out of a list of multiple
    - independent of modality (e.g. graphical, aural browsers)
    - difficult to visualize, since it then would be concrete

    - consists of elements that model the inputs and outputs of a task
    - abstract concepts such as selecting one option out of a list of multiple
    - independent of modality (e.g. graphical, aural browsers)
    - difficult to visualize, since it then would be concrete

    - consists of elements that model the inputs and outputs of a task
    - abstract concepts such as selecting one option out of a list of multiple
    - independent of modality (e.g. graphical, aural browsers)
    - difficult to visualize, since it then would be concrete

    - abstract presentation made concrete
    - by defining elements that turn abstract elements into concrete elements


    - abstract presentation made concrete
    - by defining elements that turn abstract elements into concrete elements


    - abstract presentation made concrete
    - by defining elements that turn abstract elements into concrete elements


    - abstract presentation made concrete
    - by defining elements that turn abstract elements into concrete elements


    - abstract presentation made concrete
    - by defining elements that turn abstract elements into concrete elements


    - abstract presentation made concrete
    - by defining elements that turn abstract elements into concrete elements


    - abstract presentation made concrete
    - by defining elements that turn abstract elements into concrete elements










    - text: labels, internationalization


    - text: labels, internationalization


    - text: labels, internationalization


    - text: labels, internationalization


    - text: labels, internationalization


    - text: labels, internationalization


    - text: labels, internationalization


    - concerned with arrangement of elements on a page
    - it specifies natural flow of elements in a page or region
    - specify how one element is positioned in relation to other elements





    - more difficult to define
    - appearance concepts that do not define layout
    - borders, colors, fonts, etc.
    - style often specified by sets of style rules
    - style rules associate stylistic properties and values with a page’s structural or presentation elements





    - more difficult to define
    - appearance concepts that do not define layout
    - borders, colors, fonts, etc.
    - style often specified by sets of style rules
    - style rules associate stylistic properties and values with a page’s structural or presentation elements





    - more difficult to define
    - appearance concepts that do not define layout
    - borders, colors, fonts, etc.
    - style often specified by sets of style rules
    - style rules associate stylistic properties and values with a page’s structural or presentation elements





    - more difficult to define
    - appearance concepts that do not define layout
    - borders, colors, fonts, etc.
    - style often specified by sets of style rules
    - style rules associate stylistic properties and values with a page’s structural or presentation elements





    - more difficult to define
    - appearance concepts that do not define layout
    - borders, colors, fonts, etc.
    - style often specified by sets of style rules
    - style rules associate stylistic properties and values with a page’s structural or presentation elements





    - more difficult to define
    - appearance concepts that do not define layout
    - borders, colors, fonts, etc.
    - style often specified by sets of style rules
    - style rules associate stylistic properties and values with a page’s structural or presentation elements





    - labels
    - internationalization





    - in order to achieve that, templates needed different implementation

    - in order to achieve that, templates needed different implementation

    - in order to achieve that, templates needed different implementation

    - in order to achieve that, templates needed different implementation

    - in order to achieve that, templates needed different implementation

    - in order to achieve that, templates needed different implementation

    - in order to achieve that, templates needed different implementation

    - in order to achieve that, templates needed different implementation

    - in order to achieve that, templates needed different implementation

    - in order to achieve that, templates needed different implementation

    - in order to achieve that, templates needed different implementation

    - in order to achieve that, templates needed different implementation

    - in order to achieve that, templates needed different implementation

    - in order to achieve that, templates needed different implementation

    - in order to achieve that, templates needed different implementation

    - in order to achieve that, templates needed different implementation

    - in order to achieve that, templates needed different implementation

    - in order to achieve that, templates needed different implementation

    - in order to achieve that, templates needed different implementation

    - in order to achieve that, templates needed different implementation

    - in order to achieve that, templates needed different implementation

    - in order to achieve that, templates needed different implementation

    - in order to achieve that, templates needed different implementation
    - templates with same name but with arguments of different types and a different number of arguments
    - no (dynamic) overloading resolution


    - explain facelets, page generation at run-time

    - todo: show WebDSL pipeline

    - todo: remove????





    - outline


    - todo: slowly build up the page definition, not in one time

    - todo: slowly build up the page definition, not in one time

    - todo: slowly build up the page definition, not in one time



    - remark that difference in this case is not very big, but it is just to illustrate the idea

    - remark that difference in this case is not very big, but it is just to illustrate the idea

    - remark that difference in this case is not very big, but it is just to illustrate the idea

    - reimplemented template mechanism


    - these things lead to separation of structure and presentation
    - possibility to create a library of template definitions that define input and output behavior for certain data types
    - which can be manually redefined

    - these things lead to separation of structure and presentation
    - possibility to create a library of template definitions that define input and output behavior for certain data types
    - which can be manually redefined

    - these things lead to separation of structure and presentation
    - possibility to create a library of template definitions that define input and output behavior for certain data types
    - which can be manually redefined



    - something better was needed

    - something better was needed

    - something better was needed

    - something better was needed

    - XSL: does not use declarative statements to specify styling rules, but transforms XML documents into other structures
    - widely used in printing industry for formatting/transforming documents


    - great way to define style
    - implemented using constraint solving technology
    - that’s also the biggest downside: browser support

    - great way to define style
    - implemented using constraint solving technology
    - that’s also the biggest downside: browser support

    - great way to define style
    - implemented using constraint solving technology
    - that’s also the biggest downside: browser support

    - declarative language
    - design goals: easy to use syntax and semantics, independent of medium
    - property propagation: assigns values to style properties of each element
    - box layout: model of nested boxes
    - tree elaboration: enables addition of elements to the document tree to support presentation
    - also no browser support

    - declarative language
    - design goals: easy to use syntax and semantics, independent of medium
    - property propagation: assigns values to style properties of each element
    - box layout: model of nested boxes
    - tree elaboration: enables addition of elements to the document tree to support presentation
    - also no browser support

    - declarative language
    - design goals: easy to use syntax and semantics, independent of medium
    - property propagation: assigns values to style properties of each element
    - box layout: model of nested boxes
    - tree elaboration: enables addition of elements to the document tree to support presentation
    - also no browser support

    - declarative language
    - design goals: easy to use syntax and semantics, independent of medium
    - property propagation: assigns values to style properties of each element
    - box layout: model of nested boxes
    - tree elaboration: enables addition of elements to the document tree to support presentation
    - also no browser support

    - declarative language
    - design goals: easy to use syntax and semantics, independent of medium
    - property propagation: assigns values to style properties of each element
    - box layout: model of nested boxes
    - tree elaboration: enables addition of elements to the document tree to support presentation
    - also no browser support

    - declarative language
    - design goals: easy to use syntax and semantics, independent of medium
    - property propagation: assigns values to style properties of each element
    - box layout: model of nested boxes
    - tree elaboration: enables addition of elements to the document tree to support presentation
    - also no browser support

    - declarative language
    - design goals: easy to use syntax and semantics, independent of medium
    - property propagation: assigns values to style properties of each element
    - box layout: model of nested boxes
    - tree elaboration: enables addition of elements to the document tree to support presentation
    - also no browser support

    - declarative language
    - design goals: easy to use syntax and semantics, independent of medium
    - property propagation: assigns values to style properties of each element
    - box layout: model of nested boxes
    - tree elaboration: enables addition of elements to the document tree to support presentation
    - also no browser support

    Favorites, Groups & Events

    Separation of Concerns in Web User Interfaces - Presentation Transcript

    1. Separation of Concerns in Web User Interfaces 26 september 2008 Jippe Holwerda
    2. Overview
    3. Overview Separation of Concerns
    4. Overview Separation of Concerns Web User Interface
    5. Overview Separation of Concerns Web User Interface Concerns Presentation Layout Style
    6. Overview Separation of Concerns Web User Interface Concerns Presentation Layout Style Languages
    7. Overview Separation of Concerns Web User Interface Concerns Presentation Layout Style Languages UI description
    8. Overview Separation of Concerns Web User Interface Concerns Presentation Layout Style Languages UI description Web application
    9. Goal
    10. Goal Development efforts of Web User Interfaces and
    11. Goal Development efforts of Web User Interfaces and Maintainability Reusability Quality
    12. Outline - Introduction - WebDSL - Web User Interfaces - Research Questions - Approach - Separation of Concerns : Why and What? - Separating Presentation, Layout and Style - Case Studies - Conclusions and Future work
    13. Outline - Introduction - WebDSL - Web User Interfaces - Research Questions - Approach - Separation of Concerns : Why and What? - Separating Presentation, Layout and Style - Case Studies - Conclusions and Future work
    14. Outline - Introduction - WebDSL - Web User Interfaces - Research Questions - Approach - Separation of Concerns : Why and What? - Separating Presentation, Layout and Style - Case Studies - Conclusions and Future work
    15. Outline - Introduction - WebDSL - Web User Interfaces - Research Questions - Approach - Separation of Concerns : Why and What? - Separating Presentation, Layout and Style - Case Studies - Conclusions and Future work
    16. Outline - Introduction - WebDSL - Web User Interfaces - Research Questions - Approach - Separation of Concerns : Why and What? - Separating Presentation, Layout and Style - Case Studies - Conclusions and Future work
    17. Outline - Introduction - WebDSL - Web User Interfaces - Research Questions - Approach - Separation of Concerns : Why and What? - Separating Presentation, Layout and Style - Case Studies - Conclusions and Future work
    18. Outline - Introduction - WebDSL - Web User Interfaces - Research Questions - Approach - Separation of Concerns : Why and What? - Separating Presentation, Layout and Style - Case Studies - Conclusions and Future work
    19. Problems in Web Development
    20. Problems in Web Development - Many different languages
    21. Problems in Web Development - Many different languages - Not integrated well
    22. Problems in Web Development - Many different languages - Not integrated well - No compile-time error checking
    23. Problems in Web Development - Many different languages - Not integrated well - No compile-time error checking - A lot of boilerplate code
    24. WebDSL Domain-specific Language for the description of Web Applications WebWorkflow WebDSL Data Model UI Access Control Core WebDSL Data Model UI Web Application
    25. WebDSL Data Models User Interface Logic Access Control Workflow
    26. WebDSL Data Models
    27. Data Models
    28. Data Models
    29. entity Person { Data Models name :: String address <> Address } entity Address { street :: String number :: Int city :: String }
    30. Data Models
    31. Data Models
    32. WebDSL Data Models User Interface Logic Access Control Workflow
    33. Data Models User Interface Logic Access Control Workflow
    34. User Interface
    35. User Interface
    36. User Interface
    37. define page home() { title { “Home page” } form { group(\"Edit Person\") { groupitem { label(\"Name\") {input(p.name)} } groupitem { label(\"Address\") {input(p.address)} } groupitem { label(\"Employer\") {input(p.employer)} } } User Interface group() { action(\"Save\", save()) } } }
    38. define page home() { title { “Home page” } form { group(\"Edit Person\") { groupitem { label(\"Name\") {input(p.name)} } groupitem { label(\"Address\") {input(p.address)} } groupitem { label(\"Employer\") {input(p.employer)} } } User Interface group() { action(\"Save\", save()) } } }
    39. User Interface
    40. define main() { define top() { top() image(“images/logo.png”) body() } footer() } define body() { text(“Standard body”) } User Interface define footer() { navigate(disclaimer()) { “Disclaimer” } }
    41. define main() { define top() { top() image(“images/logo.png”) body() } footer() } define body() { text(“Standard body”) } User Interface define footer() { navigate(disclaimer()) { “Disclaimer” } }
    42. User Interface
    43. Data Models User Interface Logic Access Control Workflow
    44. WebDSL Data Models User Interface Logic Access Control Workflow
    45. WebDSL Logic
    46. Logic
    47. Logic
    48. Logic
    49. Logic define page home() { title { “Home page” } var p : Person; form { group(\"Edit Person\") { groupitem { label(\"Name\") {input(p.name)} } groupitem { label(\"Address\") {input(p.address)} } groupitem { label(\"Employer\") {input(p.employer)} } } group() { action(\"Save\", save()) } action save() { p.save(); return person(p); } } }
    50. Logic
    51. Logic
    52. Data Models User Interface Logic Access Control Workflow
    53. WebDSL Data Models User Interface Logic Access Control Workflow
    54. WebDSL Data Models User Interface Logic Access Control Workflow
    55. WebDSL Data Models User Interface Logic
    56. Outline - Introduction - WebDSL - Web User Interfaces - Research Questions - Approach - Separation of Concerns : Why and What? - Separating Presentation, Layout and Style - Case Studies - Conclusions and Future work
    57. Why should we care about Web User Interfaces
    58. Why should we care about Web User Interfaces A user’s entry point to an application
    59. Why should we care about Web User Interfaces A user’s entry point to an application Users will leave when not satisfied
    60. Why should we care about Web User Interfaces A user’s entry point to an application Users will leave when not satisfied
    61. Relevance of User Interface Development* User Interface Rest * Luciano Baresi and Sandro Morasca. Three empirical studies on estimating the design effort of web applications
    62. Relevance of User Interface Development* Amount of source code 48% 52% User Interface Rest * Luciano Baresi and Sandro Morasca. Three empirical studies on estimating the design effort of web applications
    63. Relevance of User Interface Development* Amount of source code Average time spent in design phase 45% 48% 52% 55% User Interface Rest * Luciano Baresi and Sandro Morasca. Three empirical studies on estimating the design effort of web applications
    64. Relevance of User Interface Development* Amount of source code Average time spent in design phase 45% 48% 52% 55% Average time spent in implementation phase 50% 50% User Interface Rest * Luciano Baresi and Sandro Morasca. Three empirical studies on estimating the design effort of web applications
    65. Relevance of User Interface Development* Amount of source code Average time spent in design phase 45% 48% 52% 55% Average time spent in implementation phase Average time spent in maintenance phase 37% 50% 50% 63% User Interface Rest * Luciano Baresi and Sandro Morasca. Three empirical studies on estimating the design effort of web applications
    66. Problems with Web User Interface Development
    67. Problems with Web User Interface Development Complex
    68. Problems with Web User Interface Development Complex Time consuming
    69. Problems with Web User Interface Development Complex Time consuming
    70. Problems with Web User Interface Development Complex Expensive Time consuming
    71. Problems with Web User Interface Development
    72. Outline - Introduction - WebDSL - Web User Interfaces - Research Questions - Approach - Separation of Concerns : Why and What? - Separating Presentation, Layout and Style - Case Studies - Conclusions and Future work
    73. Research Questions #1
    74. Research Questions #1 Level of abstraction
    75. Research Questions #1 Level of abstraction Development efforts
    76. Research Questions #1 Level of abstraction Development efforts Maintainability
    77. Research Questions #1 Level of abstraction Development efforts Maintainability Reusability
    78. Research Questions #1 Level of abstraction Development efforts Maintainability Reusability Quality
    79. Research Questions #2
    80. Research Questions #2 Using WebDSL,
    81. Research Questions #2 Using WebDSL, what are good web user interface abstractions?
    82. Research Questions #2 Using WebDSL, what are good web user interface abstractions? Also applicable to other environments?
    83. Research Questions #3
    84. Research Questions #3 Using WebDSL,
    85. Research Questions #3 Using WebDSL, how much of the user interface can be generated? 0% 100%
    86. Outline - Introduction - WebDSL - Web User Interfaces - Research Questions - Approach - Separation of Concerns : Why and What? - Separating Presentation, Layout and Style - Case Studies - Conclusions and Future work
    87. Approach
    88. Approach Separate web user interface concerns
    89. Approach Separate web user interface concerns by
    90. Approach Separate web user interface concerns by developing language extensions
    91. Approach Separate web user interface concerns by developing language extensions as plugins to WebDSL
    92. Approach WebWorkflow WebDSL WebDSL Data Model UI Access Control Styling and Layout Core WebDSL Core WebDSL Data Model UI Styling and Layout Styling Web Application implementation language
    93. Outline - Introduction - WebDSL - Web User Interfaces - Research Questions - Approach - Separation of Concerns : Why and What? - Separating Presentation, Layout and Style - Case Studies - Conclusions and Future work
    94. Why Separation of Concerns? Web Application
    95. Why Separation of Concerns? Web Application
    96. Why Separation of Concerns? Reduces complexity
    97. Why Separation of Concerns?
    98. Why Separation of Concerns?
    99. Why Separation of Concerns? Better reusability
    100. Why Separation of Concerns? Better reusability
    101. Why Separation of Concerns? Better reusability
    102. Why Separation of Concerns? Better reusability
    103. Why Separation of Concerns? Better reusability
    104. Why Separation of Concerns? Better maintainability
    105. Why Separation of Concerns? Better maintainability
    106. What are the concerns in Web User Interfaces Appearance Presentation Behavior Structure
    107. What are the concerns in Web User Interfaces Appearance Presentation Behavior Structure
    108. What are the concerns in Web User Interfaces Appearance Presentation Behavior Structure
    109. What are the concerns in Web User Interfaces Presentation Concrete Presentation Abstract Presentation
    110. What are the concerns in Web User Interfaces Concrete Presentation Abstract Presentation Presentation
    111. What are the concerns in Web User Interfaces Abstract Presentation
    112. What are the concerns in Web User Interfaces Abstract Presentation
    113. What are the concerns in Web User Interfaces Abstract Presentation
    114. What are the concerns in Web User Interfaces Concrete Presentation
    115. What are the concerns in Web User Interfaces Concrete Presentation
    116. What are the concerns in Web User Interfaces Concrete Presentation
    117. What are the concerns in Web User Interfaces Concrete Presentation
    118. What are the concerns in Web User Interfaces Appearance Presentation Behavior Structure
    119. What are the concerns in Web User Interfaces Presentation Behavior Structure Appearance
    120. What are the concerns in Web User Interfaces Appearance Text Layout Style
    121. What are the concerns in Web User Interfaces Layout Style Text Appearance
    122. What are the concerns in Web User Interfaces Layout
    123. What are the concerns in Web User Interfaces Layout
    124. What are the concerns in Web User Interfaces Style
    125. What are the concerns in Web User Interfaces Style
    126. What are the concerns in Web User Interfaces Style
    127. What are the concerns in Web User Interfaces Style
    128. Outline - Introduction - WebDSL - Web User Interfaces - Research Questions - Approach - Separation of Concerns : Why and What? - Separating Presentation, Layout and Style - Case Studies - Conclusions and Future work
    129. Separating Presentation
    130. Separating Presentation define page vets() { main() define body() { header { \"Veterinarians:\" } table { header { \"Name\" \"Specialty\" } for (v : Vet) { row { text(v.name) table { for (s : Specialty in v.specialties) { row { text(s.name) } } } } } } } }
    131. Separating Presentation define page vets() { main() define body() { header { \"Veterinarians:\" } table { header { \"Name\" \"Specialty\" } for (v : Vet) { row { text(v.name) table { for (s : Specialty in v.specialties) { row { text(s.name) } } } } } } } }
    132. Separating Presentation define page vets() { main() define body() { header { \"Veterinarians:\" } table { header { \"Name\" \"Specialty\" } for (v : Vet) { row { text(v.name) table { for (s : Specialty in v.specialties) { row { text(s.name) } } } } } } } }
    133. Separating Presentation define page vets() { main() define body() { header { \"Veterinarians:\" } table { header { \"Name\" \"Specialty\" } for (v : Vet) { row { text(v.name) list { for (s : Specialty in v.specialties) { listitem { text(s.name) } } } } } } } }
    134. Separating Presentation
    135. Separating Presentation define page vets() { main() define body() { header { \"Veterinarians:\" } table { header { \"Name\" \"Specialty\" } for (v : Vet) { row { text(v.name) output(v.specialties) } } } } }
    136. Separating Presentation define output(coll : List<Specialty>) { define page vets() { table() { main() for (s : Specialty in coll) { define body() { row { output(s.name) } header { \"Veterinarians:\" } } table { } header { \"Name\" \"Specialty\" } } for (v : Vet) { row { text(v.name) output(v.specialties) } } } } }
    137. Separating Presentation define output(coll : List<Specialty>) { define page vets() { table() { main() for (s : Specialty in coll) { define body() { row { output(s.name) } header { \"Veterinarians:\" } } table { } header { \"Name\" \"Specialty\" } } for (v : Vet) { row { text(v.name) define output(coll : List<Specialty>) { output(v.specialties) list() { } for (s : Specialty in coll) { } listitem { output(s.name) } } } } } } }
    138. Approach WebWorkflow WebDSL WebDSL Data Model UI Access Control Styling and Layout Core WebDSL Core WebDSL Data Model UI Styling and Layout Styling Web Application implementation language
    139. Separating Presentation
    140. Separating Presentation - Pages only defined in terms of input and output
    141. Separating Presentation - Pages only defined in terms of input and output - Input and output behavior defined separately
    142. Separating Presentation - Pages only defined in terms of input and output - Input and output behavior defined separately - Results in separation of structure and presentation
    143. Separating Appearance Layout Style Text Appearance
    144. Styling and WebDSL
    145. Styling and WebDSL - styling on generated code
    146. Styling and WebDSL - styling on generated code - low-level
    147. Styling and WebDSL - styling on generated code - low-level - labour intensive
    148. Styling and WebDSL - styling on generated code - low-level - labour intensive - error-prone
    149. Related Styling Languages eXtensible Style Language (XSL) Constraint Cascading Style Sheets (CCSS) Presentation Specification Language (PSL) Cascading Style Sheets (CSS)
    150. Constraint Cascading Style Sheets (CCSS)
    151. Constraint Cascading Style Sheets (CCSS) @precondition Browser[width] >= 800px
    152. Constraint Cascading Style Sheets (CCSS) @precondition Browser[width] >= 800px @variable table-width; table { constraint: width = table-width }
    153. Constraint Cascading Style Sheets (CCSS) @precondition Browser[width] >= 800px @variable table-width; table { constraint: width = table-width } @constraint #c1[width] = #c2[width]
    154. Presentation Specification Language (PSL)
    155. Presentation Specification Language (PSL) - Property propagation
    156. Presentation Specification Language (PSL) - Property propagation - Tree elaboration
    157. Presentation Specification Language (PSL) - Property propagation - Tree elaboration - Box layout
    158. Presentation Specification Language (PSL) li { if (ChildNum(Self) == round(NumChildren(Parent) / 2 + 1)) then VertPos: Top = Parent.Top; HorizPos: Left = LeftSib.Left + LeftSib.Width; else VertPos: Top = LeftSib.Actual.Bottom; HorizPost: Left = LeftSib.Left; endif Width = 200; }
    159. Cascading Style Sheets (CSS) <html> <head> <title>Home Page</title> </head> <body> <p> <span>This is text</span> <a href=”home.html”>Home</a> </p> </body> </html> html > body > p > span { font-size: 40px; } a{ text-decoration: none; color: blue; }
    160. Related Styling Languages eXtensible Style Language (XSL) Constraint Cascading Style Sheets (CCSS) Presentation Specification Language (PSL) Cascading Style Sheets (CSS)
    161. CSS problems
    162. CSS problems Missing functionality
    163. CSS problems Missing functionality - contrast between text color and background
    164. CSS problems Missing functionality - contrast between text color and background - vertical alignment of elements
    165. CSS problems Missing functionality - contrast between text color and background - vertical alignment of elements - native multi-column layouts
    166. CSS problems Missing functionality - contrast between text color and background - vertical alignment of elements - native multi-column layouts - headers and footers
    167. CSS problems Excessive functionality
    168. CSS problems Excessive functionality - box layout with padding, border, margins
    169. CSS problems Excessive functionality - box layout with padding, border, margins - unnecessary properties
    170. CSS problems Excessive functionality - box layout with padding, border, margins - unnecessary properties - text-shadow
    171. CSS problems Excessive functionality - box layout with padding, border, margins - unnecessary properties - text-shadow - first-line
    172. CSS problems Poor design
    173. CSS problems Poor design - properties that describe multiple unrelated concerns
    174. CSS problems Poor design - properties that describe multiple unrelated concerns - white-space
    175. CSS problems Poor design - properties that describe multiple unrelated concerns - white-space - text-decoration
    176. CSS problems Poor design - properties that describe multiple unrelated concerns - white-space - text-decoration - positioning
    177. Layout with CSS Tables
    178. Layout with CSS Tables
    179. Layout with CSS Tables
    180. Layout with CSS Tables Problems
    181. Layout with CSS Tables Problems - layout embedded in structure
    182. Layout with CSS Tables Problems - layout embedded in structure - corrupts page structure
    183. Layout with CSS Floats and positioning
    184. Layout with CSS Floats and positioning Problems
    185. Layout with CSS Floats and positioning Problems - difficult to use
    186. Layout with CSS Floats and positioning Problems - difficult to use - different browser interpretations
    187. Approach WebWorkflow WebDSL WebDSL Data Model UI Access Control Styling and Layout Core WebDSL Core WebDSL Data Model UI Styling and Layout Web Application CSS
    188. Language Development Process
    189. Language Development Process 1. Look at existing code
    190. Language Development Process 1. Look at existing code 2. Find reoccurring patterns
    191. Language Development Process 1. Look at existing code 2. Find reoccurring patterns 3. Capture these patterns in abstractions
    192. Language Development Process 1. Look at existing code 2. Find reoccurring patterns 3. Capture these patterns in abstractions 4. build them into the language
    193. Layout Language Requirements
    194. Layout Language Requirements 1. Specify the natural flow of elements
    195. Layout Language Requirements 1. Specify the natural flow of elements 2. Specify how one element is positioned in relation to other elements
    196. Layout Language Requirements 1. Specify the natural flow of elements 2. Specify how one element is positioned in relation to other elements 3. Try to do better than CSS
    197. Layout Language module appearance layout main() { top(); mainbody: [ sidebar() | body() ]; } customerDetails(c : Customer) { float { group() }; list(); }
    198. Layout Language define main() { define page home() { top() title { \"Home Page\" } topmenu() sidebar() main() body() } footer() }
    199. Layout Language define main() { define page home() { top() title { \"Home Page\" } topmenu() sidebar() main() body() } footer() }
    200. Layout Language main() { top(); topmenu(); mainbody: [ sidebar() | body() ]; footer(); }
    201. Layout Language main() { top(); topmenu(); mainbody: [ sidebar() | body() ]; footer(); }
    202. Layout Language main() { top(); topmenu(); mainbody: [ sidebar() | body() ]; footer(); }
    203. Layout Language main() { top(); topmenu(); mainbody: [ sidebar() | body() ]; footer(); }
    204. Layout Language main() { top(); topmenu(); mainbody: [ sidebar() | body() ]; footer(); }
    205. Layout Language main() { top(); topmenu(); mainbody: [ sidebar() | body() ]; footer(); }
    206. Layout Language main() { top(); topmenu(); mainbody: [ sidebar() | body() ]; footer(); }
    207. Layout Language main() { top(); topmenu(); mainbody: [ sidebar() | body() ]; footer(); }
    208. Layout Language main() { top(); topmenu(); mainbody: [ sidebar() | body() ]; footer(); }
    209. Layout Language main() { top(); topmenu(); mainbody: [ sidebar() | body() ]; footer(); }
    210. Layout Language main() { top(); topmenu(); mainbody: [ sidebar() | body() ]; footer(); }
    211. Layout Language main() { top(); topmenu(); mainbody: [ sidebar() | body() ]; footer(); }
    212. Layout Language
    213. Layout Language define page allOwner() { for ( o : Owner ) { ouput(o : Owner); } }
    214. Layout Language define page allOwner() { page allOwner() { for ( o : Owner ) { float { output(o : Owner) }; ouput(o : Owner); } } }
    215. Layout Language define page allOwner() { page allOwner() { for ( o : Owner ) { float { output(o : Owner) }; ouput(o : Owner); } } }
    216. Layout Language define page allOwner() { page allOwner() { for ( o : Owner ) { float { output(o : Owner) }; ouput(o : Owner); } } }
    217. Styling Language Requirements
    218. Styling Language Requirements 1. Associate stylistic properties and values with structural elements
    219. Styling Language Requirements 1. Associate stylistic properties and values with structural elements 2. Try to do better than CSS
    220. Styling Language module appearance styling globalStyling const globalFont : Font := Font.Helvetica; const globalFontColor : Color := Color.black; const globalFontSize : Length := 12pt; main() { font := bodyFont; font-size := bodyFontSize; font-color := bodyFontColor; background-color := bgColor; } page allPet() >> list() { orientation := Orientation.vertical; separator := Separator.none; } topmenu() >> menu() > menuheader() > navigate() { padding := 0.3em; font := globalFont; font-color := globalFontColor; font-size := globalFontSize; font-line := Line.none; }
    221. Style Definitions
    222. Style Definitions - Selector selects WebDSL elements page home() >> list() { width := 500px; orientation := Orientation.horizontal; }
    223. Style Definitions - Selector selects WebDSL elements - Collection of style statements page home() >> list() { width := 500px; orientation := Orientation.horizontal; }
    224. Style Definitions - Selector selects WebDSL elements - Collection of style statements - style declaration page home() >> list() { width := 500px; orientation := Orientation.horizontal; }
    225. Style Definitions - Selector selects WebDSL elements - Collection of style statements - style declaration const globalFontSize : Length := 14pt; - constant declaration
    226. Style Definitions - Selector selects WebDSL elements - Collection of style statements - style declaration const globalFontSize : Length := 14pt; - constant declaration page home() >> par() { font-size := globalFontSize; }
    227. Selectors
    228. Selectors page home() { ... } main() { ... } output(p : Person) { ... } output(c : Customer) { ... } page home() >> main() { ... } page home() >> main() >> list() > listitem() { ... }
    229. Style Expressions
    230. Style Expressions Style values font-size := 1em;
    231. Style Expressions Style values font-size := 1em; width := 100%;
    232. Style Expressions Style values font-size := 1em; width := 100%; orientation := Orientation.horizontal;
    233. Style Expressions Style values font-size := 1em; width := 100%; orientation := Orientation.horizontal; separator := Separator.pipe;
    234. Style Expressions Style values font-size := 1em; width := 100%; orientation := Orientation.horizontal; separator := Separator.pipe; font-line := Line.under;
    235. Style Expressions Style values font-size := 1em; width := 100%; orientation := Orientation.horizontal; separator := Separator.pipe; font-line := Line.under; Style constants const globalFontSize : Length := 12pt; font-size := globalFontSize;
    236. Style Expressions Dependent style
    237. Style Expressions Dependent style top() { width := 200px; } footer() { width := top().width; }
    238. Style Expressions Dependent style
    239. Style Expressions Dependent style page home() >> top() { width := 200px; } page home() >> footer() { width := (page home >> top()).width; }
    240. Style Expressions Style addition
    241. Style Expressions Style addition top() { height := 100px; } footer() { height := top().height; } body() { height := top().height + footer().height; }
    242. Style addition example
    243. Style addition example define page createPet() { var p : Pet; header{ \"Create\" } form { group(\"Owner details\") { groupitem { label(\"Name:\") { input(o.name) } } groupitem { label(\"Address:\") { input(o.address) } } } group(\"More details\") { groupitem { label(\"City:\") { input(o.city) } } groupitem { label(\"Telephone:\") { input(o.telephone) } } groupitem { label(\"Pets:\") { input(o.pets) } } } group { action(\"Save\", save()) action(\"Cancel\", cancel()) } } action save() { o.save(); return owner(o); } action cancel() { cancel home(); } }
    244. Style addition example style formStyle form() { width := (form() > group()).padding-left + (form() > group()).padding-right + (form() > group() >> label()).margin-right + (form() > group() >> label()).width + (form() > group() >> input()).width * (form() > group() >> input()).font-size + (form() > group() >> input()).border-right-width + (form() > group() >> input()).border-left-width; }
    245. Outline - Introduction - WebDSL - Web User Interfaces - Research Questions - Approach - Separation of Concerns : Why and What? - Separating Presentation, Layout and Style - Case Studies - Conclusions and Future work
    246. Examples - ING Card
    247. Examples - ING Card main() { top(); mainbody: [ sidebar() | body() ]; }
    248. Examples - ING Card
    249. Examples - ING Card
    250. Examples - ING Card
    251. Examples - ING Card
    252. Examples - ING Card define sideMenu() { list { listitem { navigate(home()) { \"Home\" } } listitem { navigate(home()) { \"Create Card Request\" } } listitem { navigate(home()) { \"Work Card Request\" } } listitem { navigate(home()) { \"Scoring\" } } listitem { navigate(home()) { \"Maintenance\" } } listitem { navigate(home()) { \"Digital Applications\" } } listitem { navigate(home()) { \"Pending Requests\" } } listitem { navigate(home()) { \"Letters\" } } } }
    253. Examples - ING Card define sideMenu() { list { listitem { navigate(home()) { \"Home\" } } listitem { navigate(home()) { \"Create Card Request\" } } listitem { navigate(home()) { \"Work Card Request\" } } listitem { navigate(home()) { \"Scoring\" } } listitem { navigate(home()) { \"Maintenance\" } } listitem { navigate(home()) { \"Digital Applications\" } } listitem { navigate(home()) { \"Pending Requests\" } } listitem { navigate(home()) { \"Letters\" } } } } sideMenu() > list() { orientation := Orientation.vertical; separator := Separator.none; spacing := 0.2em; } sideMenu() > list() > listitem() { background-color := #f95807; align := Align.center; }
    254. Examples - ING Card
    255. Examples - OSB
    256. Examples - OSB
    257. Examples - OSB
    258. Examples - OSB define topmenu() { mainNavigation() adminNavigation() }
    259. Examples - OSB define topmenu() { define mainNavigation() { mainNavigation() list { adminNavigation() listitem { navigate(home()) { \"Home\" } } } listitem { navigate(home()) { \"UserInfo\" } } listitem { navigate(home()) { \"Reports\" } } } }
    260. Examples - OSB define topmenu() { define mainNavigation() { mainNavigation() list { adminNavigation() listitem { navigate(home()) { \"Home\" } } } listitem { navigate(home()) { \"UserInfo\" } } listitem { navigate(home()) { \"Reports\" } } } } define adminNavigation() { list { listitem { navigate(home()) { \"Administration\" } } listitem { navigate(home()) { \"Status\" } } listitem { navigate(home()) { \"Configuration\" } } listitem { navigate(home()) { \"Logout\" } } } }
    261. Examples - OSB define topmenu() { define mainNavigation() { mainNavigation() list { adminNavigation() listitem { navigate(home()) { \"Home\" } } } listitem { navigate(home()) { \"UserInfo\" } } listitem { navigate(home()) { \"Reports\" } } } } layout topmenu() { menu: [ mainNavigation() | adminNavigation() ]; } style mainNavigation() { align := Align.left; } adminNavigation() { align := Align.right; }
    262. Examples - OSB define topmenu() { define mainNavigation() { mainNavigation() list { adminNavigation() listitem { navigate(home()) { \"Home\" } } } listitem { navigate(home()) { \"UserInfo\" } } listitem { navigate(home()) { \"Reports\" } } } } style mainNavigation() >> list() { orientation := Orientation.horizontal; separator := Separator.none; spacing := 1em; } adminNavigation() >> list() { orientation := (mainNavigation() >> list()).orientation; separator := (mainNavigation() >> list()).separator; spacing := (mainNavigation() >> list()).spacing; }
    263. Examples - PetClinic
    264. Examples - PetClinic
    265. Examples - PetClinic
    266. Examples - PetClinic header { \"Veterinarians:\" } table() { header { \"Name\" \"Specialty\" } for (v : Vet) { row { text(v.name) output(v.specialtiesList) }}}
    267. Examples - PetClinic header { \"Veterinarians:\" } table() { header { \"Name\" \"Specialty\" } for (v : Vet) { row { text(v.name) output(v.specialtiesList) }}} define output(coll : List<Specialty>) { list() { for (s : Specialty in coll) { listitem { output(s.name) } }}}
    268. Examples - PetClinic header { \"Veterinarians:\" } table() { header { \"Name\" \"Specialty\" } for (v : Vet) { row { text(v.name) output(v.specialtiesList) }}} define output(coll : List<Specialty>) { list() { for (s : Specialty in coll) { listitem { output(s.name) } }}} style output(c : List<Specialty>) >> list() { orientation := Orientation.horizontal; separator := Separator.comma; spacing-right := 0.2em; }
    269. Evaluation LOC generated CSS LOC source code 600 450 300 150 0 ING Card OSB PetClinic
    270. Outline - Introduction - WebDSL - Web User Interfaces - Research Questions - Approach - Separation of Concerns : Why and What? - Separating Presentation, Layout and Style - Case Studies - Conclusions and Future work
    271. Contributions
    272. Contributions - defined web user interface concerns
    273. Contributions - defined web user interface concerns - separation of page presentation from structure
    274. Contributions - defined web user interface concerns - separation of page presentation from structure - sublanguages for layout and style
    275. Contributions - defined web user interface concerns - separation of page presentation from structure - sublanguages for layout and style - case studies for evaluation of sublanguages
    276. Conclusions Used concept of Separation of Concerns by developing sublanguages describing those concerns Level of abstraction Development efforts Maintainability Reusability Quality
    277. Conclusions Abstractions over CSS
    278. Conclusions Abstractions over CSS - Layout
    279. Conclusions Abstractions over CSS - Layout - Style constants
    280. Conclusions Abstractions over CSS - Layout - Style constants - Style reuse - Style values referring to other definitions - Style addition/multiplication/etc.
    281. Conclusions Addressed CSS problems
    282. Conclusions Addressed CSS problems - missing functionality added
    283. Conclusions Addressed CSS problems - missing functionality added - shielded excessive functionality
    284. Conclusions Addressed CSS problems - missing functionality added - shielded excessive functionality - resolved poor design
    285. Conclusions Addressed CSS problems - missing functionality added - shielded excessive functionality - resolved poor design - encapsulated implementation problems
    286. Conclusions Case Studies
    287. Conclusions Case Studies - expressivity
    288. Conclusions Case Studies - expressivity - interesting abstraction
    289. Conclusions Case Studies - expressivity - interesting abstraction - slightly reduced development efforts
    290. Conclusions Case Studies - expressivity - interesting abstraction - slightly reduced development efforts - high-level abstractions
    291. Conclusions Case Studies - expressivity - interesting abstraction - slightly reduced development efforts - high-level abstractions - default style
    292. Problem areas - Finding robust transformations to CSS is difficult but rewarding initial effort is still great however, still room for improvement - Still a long development cycle
    293. Future work
    294. Future work - ‘Live’ editing of Style
    295. Future work - ‘Live’ editing of Style - Personalization
    296. Future work - ‘Live’ editing of Style - Personalization - Style and layout constraints
    297. Future work - ‘Live’ editing of Style - Personalization - Style and layout constraints - Style assistant
    298. Future work - ‘Live’ editing of Style - Personalization - Style and layout constraints - Style assistant - Separate remaining web user interface concerns
    299. Future work - ‘Live’ editing of Style - Personalization - Style and layout constraints - Style assistant - Separate remaining web user interface concerns - More eye-candy
    300. Questions?

    + jippehjippeh, 7 months ago

    custom

    158 views, 0 favs, 0 embeds more stats

    Final thesis presentation

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 158
      • 158 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 1
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories