9
The Importance of Concrete Syntax to Support End-User Abstractions D epartm entofCom puterand Inform ation Sciences U niversity ofA labam a atB irm ingham S o ftC o m Jeff Gray University of Alabama at Birmingham ICSE MiSE Workshop Minneapolis, MN May 19-20,2007 Panel on “Abstraction Challenges”

The Importance of Concrete Syntax to Support End-User Abstractions

  • Upload
    deliz

  • View
    43

  • Download
    0

Embed Size (px)

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

Page 1: The Importance of Concrete Syntax to Support End-User Abstractions

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”

Page 2: The Importance of Concrete Syntax to Support End-User Abstractions

Categories of End-Users

AdminAssistants

Businessman

Auto Factory Worker

Scientist

Spreadsheet

Model-BasedBusiness Query

Domain-SpecificModeling Language

DSL forPhysics

Page 3: The Importance of Concrete Syntax to Support End-User Abstractions

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

Page 4: The Importance of Concrete Syntax to Support End-User Abstractions

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

Page 5: The Importance of Concrete Syntax to Support End-User Abstractions

An Example Modeling Tool

Executable Model

Power Tab Editor

Two Views:

Traditional notes

Guitar tab

Metamodel: Music Symbols

Model: Song

Conforms to

Page 6: The Importance of Concrete Syntax to Support End-User Abstractions

See video demo

Windows Media Flash

Page 7: The Importance of Concrete Syntax to Support End-User Abstractions

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?

Page 8: The Importance of Concrete Syntax to Support End-User Abstractions

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?

Page 9: The Importance of Concrete Syntax to Support End-User Abstractions

Case Study: Crosscutting Constraints in Real-Time/Embedded Models