program comprehension for domain-specific languages maria joão varanda 1, marjan mernik 2, daniela...

Post on 18-Jan-2016

220 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

CoRTA'08 - Bragança, 2008-July-11 1

Program Comprehension for Program Comprehension for Domain-Specific LanguagesDomain-Specific Languages

Maria João Varanda1, Marjan Mernik2,

Daniela da Cruz3, Pedro Henriques3

1 Polytechnic Institute of Bragança, Dep. of Computing and Communications, Portugal

2 University of Maribor, Fac. of Electrical Engineering and Computer Science, Slovenia

3 University of Minho, Dep. of Computer Science, Portugal

CoRTA'08 - Bragança, 2008-July-11 2

ContextContext

Program Comprehension (PC) is really an hard and complex task,

requiring: cognitive models, data extraction, information representation, knowledge exploration, sw visualization, sw metrics…

CoRTA'08 - Bragança, 2008-July-11 3

ContextContext

In order to reach a full understanding of software systems, it is crucial to relate problem and program domains.

Program Visualization and Program Animation are important aids to make this process easier, more effective!

CoRTA'08 - Bragança, 2008-July-11 4

ContextContext

The outcome of existing tools for General Purpose Languages (GPL) is far away from being as good as desirable !

CoRTA'08 - Bragança, 2008-July-11 5

MotivationMotivation

To introduce a research project aimed at understanding how the

standard approaches for the comprehension of GPL can be adapted for the comprehension of domain specific languages (DSL).

CoRTA'08 - Bragança, 2008-July-11 6

MotivationMotivation

We believe that specific visualizations could be defined to improve the comprehension of the descriptions in that particular domain !

CoRTA'08 - Bragança, 2008-July-11 7

OutlineOutlineDSLsDSLpc ProjectCognitive Dimensions FrameworkMethods and Techniques for PCUser-centric visualization for DSL

◦ Case-studiesConclusion

CoRTA'08 - Bragança, 2008-July-11 8

Domain Specific Domain Specific LanguagesLanguages

Languages tailored to specific application domain that offer to users more appropriate notations and abstractions.

DSLs are more expressive and are easier to use than GPLs for the domain in question, with gains in productivity and maintenance costs.

CoRTA'08 - Bragança, 2008-July-11 9

Domain Specific Domain Specific LanguagesLanguagesSome specific goals behind the

design of DSLs are:to make programming more

accessible to end-users, to improve correctness of the

written programs, and to improve the program

developing time.to make maintenance easier.

CoRTA'08 - Bragança, 2008-July-11 10

DSLpc ProjectDSLpc Project

In this project we have the following objectives:◦ to measure how easy is to use DSLs

(comparing with the use of GPLs), ◦ to understand which one of the existing PC

approaches are applicable to DSLs and how could they be improved,

◦ to propose a set of techniques to improve the PC of DSLs, and

◦ to allow the enhancement of DSL program comprehension by enabling user-centric visualization.

CoRTA'08 - Bragança, 2008-July-11 11

DSLpc Project how easy is to understand DSLs prgs

As it does not exists any formal study on advantges of DSLs,

our purpose is to identify the aspects among the CDF that are enhanced in the context of DS Languages

CoRTA'08 - Bragança, 2008-July-11 12

DSLpc Project how easy is to understand DSLs prgsCognitive dimensions framework

(CDF) – a set of 13 guidelines – provides relevant aspects to be used to determine how easy is:

◦ to learn the language, ◦ to develop a program, ◦ to evolve a program, ◦ to comprehend a program.

CoRTA'08 - Bragança, 2008-July-11 13

DSLpc Project PC Approaches

CoRTA'08 - Bragança, 2008-July-11 14

DSLpc Project PC Approaches -- Data Extraction

Data necessary for DSL comprehension, that must be extracted, is specific and should be identified case-by-case.

CoRTA'08 - Bragança, 2008-July-11 15

DSLpc Project PC Approaches -- Data ExtractionWe will consider 2 families of

extraction methods:◦ Non-invasive: that does not

modify the source program and uses abstract interpretation techniques.

◦ Invasive: program instrumentation modifies the source code (inserting inspector functions) to be able to collect dynamic information at runtime.

CoRTA'08 - Bragança, 2008-July-11 16

DSLpc Project PC Approaches -- Data Extraction

The development of both approaches completely rely on traditional grammar-oriented techniques for compiler writing and implementation.

We use Translation Grammars or Attribute Grammars, and resort to Compiler Generators to automatically produce the code of the desired processors.

CoRTA'08 - Bragança, 2008-July-11 17

DSLpc Project PC Approaches -- Data Extraction

If DSLs processing is supported by grammars technology

we can affirm that existing PC approches (methods and techniques) for extraction, are reusable in that specific context.

CoRTA'08 - Bragança, 2008-July-11 18

DSLpc Project PC Approaches – Information Rep.

We also believe that traditional PC methods and techniques for Information Representation and storage

are reusable in that specific context.

CoRTA'08 - Bragança, 2008-July-11 19

DSLpc Project PC Approaches -- Knowledge Exploration

Inference mechanisms, metrics, and visualization/navigation over the information so far collected,

may also be inherited from generic PC approaches.

That intuition comes directly from the previous slide --- the same IR schema is used for GPL/DSL contexts.

CoRTA'08 - Bragança, 2008-July-11 20

DSLpc Project PC Approaches -- Knowledge Exploration

Working with DSLs, we can take total profit of the inherent speciality,

and look for more expressive and adequate visual representations for each domain

and also metrics and visual interaction and querying.

CoRTA'08 - Bragança, 2008-July-11 21

DSLpc Project PC Approaches -- Knowledge Exploration

Program and Problem comprehension can be achieved easily because it is easier to present a conceptual mapping between both.

CoRTA'08 - Bragança, 2008-July-11 22

DSLpc Project User-centric Visualization

It would be useful to construct visualization tools where end-users, not language designer or developer, can easily specify their own visualization---problem and person specific.

CoRTA'08 - Bragança, 2008-July-11 23

DSLpc Project User-centric Visualization

Concerning the implementation, we think that we can rely upon the approach followed in Alma,

a system for program visualization and animation that deals easily with different programming languages and allows the construction of the most appropriate visualizations for each domain.

CoRTA'08 - Bragança, 2008-July-11 24

DSLpc Project User-centric Visualization

The core of Alma is similar to a compiler's Back-End that takes as input an abstract representation, a DAST (Decorated Abstract Syntax Tree), and implements the visualizer and the animator components in a systematic way.

CoRTA'08 - Bragança, 2008-July-11 25

DSLpc Project User-centric Visualization

This is achieved by means of two rule bases, one for the visualization of tree nodes,and another for tree rewriting.

CoRTA'08 - Bragança, 2008-July-11 26

DSLpc Project User-centric Visualization

We plan to build a graphical editor that will provide to the end-user the chance to associate to each node of the DAST:◦ a geometric figure (a square, circle,

etc), or an image.◦ an external (end-user defined)

drawing function.

CoRTA'08 - Bragança, 2008-July-11 27

DSLpc Project User-centric Visualization

This will permit to build specific drawings parameterized to fit well in each particular DSL.

The external function will be called using the attributes available in the DAST nodes to tune the picture to each concrete situation.

CoRTA'08 - Bragança, 2008-July-11 28

DSLpc Project User-centric Visualization

We can include that functionality, keeping the tree visualizer engine generic and unchanged; also the animator system, based on a tree rewriting engine, will be kept unchanged.

CoRTA'08 - Bragança, 2008-July-11 29

Case-study 1:Programming a Cleaning Robot

A sample program to move Roby:xi= 0 yi= 0 DOWN 3 RIGHT 7 UP 2 LEFT 4

CoRTA'08 - Bragança, 2008-July-11 30

Case-study 1:Programming a Cleaning Robot

A Program Domain View (operational)

CoRTA'08 - Bragança, 2008-July-11 31

Case-study 1:Programming a Cleaning Robot

A Problem Domain View (behavioral)

CoRTA'08 - Bragança, 2008-July-11 32

Case-study 2:FDL – Feature Description Language An FDL Description

Car: all(carBody,Transmission,Engine,HorsePower,

pullsTrailer?) Transmission:

one_of (automatic, manual)

Engine:

more_of (electric, gasoline )

HorsePower:

one_of(lowPower, mediumPower, highPower)

CoRTA'08 - Bragança, 2008-July-11 33

Case-study 2:FDL – Feature Description Language A Program Domain View

(operational)

CoRTA'08 - Bragança, 2008-July-11 34

Case-study 2:FDL – Feature Description Language A Problem Domain View

(behavioral)

CoRTA'08 - Bragança, 2008-July-11 35

ConclusionConclusion

We have introduced the 2 main directions of our new bilateral (Portugal/Slovenia) project for joint research:◦ to understand and measure how easy is

to comprehend and handle programs written in DSLs;

◦ to addapt and improve Program Comprehension Tools for DSLs programs.

CoRTA'08 - Bragança, 2008-July-11 36

ConclusionConclusion

In the first case, we believe that DSL concept implies that a DSL program should be more natural and clearer than the equivalent solution expressed in a General Purpose Language (GPL),

but we intent to prove it analyzing DSL actual impact according to the aspects defined in the Cognitve Dimension Framework

CoRTA'08 - Bragança, 2008-July-11 37

ConclusionConclusion

We feel that some of the cognitive dimensions (like hidden dependencies, hard mental operations, secondary notation, visibility, role expressiveness) can benefit from DSL program visualization and program comprehension tools,

and we intend to prove that!

CoRTA'08 - Bragança, 2008-July-11 38

ConclusionConclusion

In the second case, we have to directions:

to corroborate our statement that classic approaches for GPLs Program Comprehension, can be reused for DSLs;

to enhance DSL program comprehension tools, by enabling user-centric visualization.

CoRTA'08 - Bragança, 2008-July-11 39

ConclusionConclusion

We made a concrete proposal:to improve the program

understanding tool Alma with extra functionality to allow the user to specify the visual representation he wants to apply for each particular DSL .

This allows a better visualization of the Problem Domain, making it closer to Program Domain.

top related