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
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
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
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
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