90 likes | 215 Views
The Importance of Concrete Syntax to Support End-User Abstractions. Jeff Gray University of Alabama at Birmingham. ICSE MiSE Workshop Minneapolis, MN May 19-20,2007 Panel on “Abstraction Challenges”. Categories of End-Users. Spreadsheet. Admin Assistants. Model-Based Business Query.
E N D
The Importance of Concrete Syntax to Support End-User Abstractions Jeff Gray University of Alabama at Birmingham ICSE MiSE Workshop Minneapolis, MN May 19-20,2007 Panel on “Abstraction Challenges”
Categories of End-Users Spreadsheet Admin Assistants Model-Based Business Query Businessman Auto Factory Worker Domain-SpecificModeling Language DSL for Physics Scientist
Increasing interest in DSMLs • “One size fits all” approach is appearing to be inadequate for many end-user needs • Too complex and contains “kitchen sink” approach providing things most users do not need (UML) • Current trend is to provide “domain-specific” modeling languages that are customized to a specific domain • Notations and abstractions are exactly what the users expect; focused on problem space, not technology solution space • But, how to create such modeling languages and environments? • Expensive to create from scratch for each domain
Textual DSL and Visual DSML Make File # To get things out of the revision control system $(SRCS): $(GET) $@ # To make an object from source $(CC) $(CFLAGS) -c $*.c # To make an executable printenv: $(OBJS) $(CC) $(LDFLAGS) -o $@ $(OBJS) # To install things in the right place install: printenv printenv.man $(INSTALL) -c -o $(OWNER) -g $(GROUP) -m 755 printenv $(BINDIR) $(INSTALL) -c -o $(OWNER) -g $(GROUP) -m 644 printenv.man $(MANDIR) YACC %token <iValue> INTEGER %token <sIndex> VARIABLE %token WHILE IF PRINT %nonassoc IFX %nonassoc ELSE %left GE LE EQ NE '>' '<' %left '+' '-' %left '*' '/' %nonassoc UMINUS %type <nPtr> stmt expr stmt_list %% program: function { exit(0); } ; function: function stmt { ex($2); freeNode($2); } | /* NULL */ ;
Two Views: Traditional notes Guitar tab An Example Modeling Tool Metamodel: Music Symbols Power Tab Editor Conforms to Model: Song Executable Model
See video demo • Windows Media • Flash
Abstraction Challenges • For the task at hand, how is the "right" level of abstraction selected? • What heuristics can be used to decide what concepts should be left out of a modeling language? • How can we measure, test, and teach abstraction skills suitable for modelling? • To what extent to do domain-specific modeling language approaches provide mechanisms for extending modeling languages with support for new abstractions? • How do domain-specific modeling languages offer advantages over UML; likewise, what advantages remain in using UML over customized modeling languages?
Abstraction Challenges • In terms of providing the best constructs for abstraction in modeling languages, what can be learned from decades of programming language design (if anything)? • What are examples of cases where the LACK of abstraction in modeling hindered a project? • What was missing in the modeling language and how can the language be extended to address new constructions for the abstractions needed for these examples?
Case Study:Crosscutting Constraints in Real-Time/Embedded Models