View
47
Download
0
Category
Tags:
Preview:
DESCRIPTION
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. - PowerPoint PPT Presentation
Citation preview
The Importance of Concrete Syntax to Support End-User
Abstractions
Department of Computer and Information SciencesUniversity of Alabama at Birmingham
S o f t C o m
Jeff GrayUniversity of Alabama at Birmingham
ICSE MiSE Workshop
Minneapolis, MN
May 19-20,2007
Panel on “Abstraction Challenges”
Categories of End-Users
AdminAssistants
Businessman
Auto Factory Worker
Scientist
Spreadsheet
Model-BasedBusiness Query
Domain-SpecificModeling Language
DSL forPhysics
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
# 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 placeinstall: printenv printenv.man $(INSTALL) -c -o $(OWNER) -g $(GROUP) -m 755 printenv $(BINDIR) $(INSTALL) -c -o $(OWNER) -g $(GROUP) -m 644 printenv.man $(MANDIR)
Make File
%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 */ ;
YACC
An Example Modeling Tool
Executable Model
Power Tab Editor
Two Views:
Traditional notes
Guitar tab
Metamodel: Music Symbols
Model: Song
Conforms to
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
Recommended