The document provides information about Ankica Barišić, a PhD student, and their supervisors. It then discusses evaluation of products, including criteria for evaluation and key activities in evaluation like data collection, analysis, and suggesting improvements. Several concepts are then introduced, including general purpose vs domain specific languages, verification vs validation of languages, and benefits and challenges of domain specific languages. Finally, different approaches to evaluating usability are presented, including formal, automatic, empirical, and heuristic evaluation methods as well as specific evaluation frameworks.
Programmer Productivity Enhancement Through Controlled Natural Language Inputijseajournal
We have created CABERNET, a Controlled Nature Language (CNL) based approach to program creation. CABERNET allows programmers to use a simple outline-based syntax. This allows increased programmer efficiency and syntax flexibility. CNLs have successfully been used for writing requirements documents. We propose taking this approach well beyond this to fully functional programs. Through the use of heuristics and inference to analyze and determine the programmer’s intent we are able to create fully functional mobile applications. The goal is for programs to be aligned with the way that the humans think rather than the way computers process information. Through the use of templates a CABERNET application can be processed to run on multiple run time environments. Because processing of a CABERNET program file results in native application program performance is maintained.
Introduction to Software Engineering, Software Process, Perspective and Specialized Process Models – Introduction to Agility – Agile process – Extreme programming – XP process - Estimation-FP,LOC and COCOMO I and II,Risk Management, Project Scheduling.
Worst practices for domain-specific modellingMikhail Barash
Course "Domain-specific programming languages" (http://dsl-course.org). Developed by Mikhail Barash.
These slides are based on S. Kelly, R. Pohjonen, "Worst practices for domain-specific modelling", IEEE Software 26:4 (2009)
When, why and for whom do practitioners detect technical debts?: An experienc...Norihiro Yoshida
First International Workshop on Technical Debt Analytics (TDA 2016), in conjunction with the 23rd Asia-Pacific Software Engineering Conference (APSEC 2016), University of Waikato, Hamilton, New Zealand, 6th December 2016.
PROGRAMMING REQUESTS/RESPONSES WITH GREATFREE IN THE CLOUD ENVIRONMENTijdpsjournal
Programming request with GreatFree is an efficient programming technique to implement distributed polling in the cloud computing environment. GreatFree is a distributed programming environment through which diverse distributed systems can be established through programming rather than configuring or scripting. GreatFree emphasizes the importance of programming since it offers developers the opportunities to leverage their distributed knowledge and programming skills. Additionally, programming is the unique way to construct creative, adaptive and flexible systems to accommodate various distributed computing environments. With the support of GreatFree code-level Distributed Infrastructure Patterns, Distributed Operation Patterns and APIs, the difficult procedure is accomplished in a programmable, rapid and highly-patterned manner, i.e., the programming behaviors are simplified as the repeatable operation of Copy-Paste-Replace. Since distributed polling is one of the fundamental techniques to construct distributed systems, GreatFree provides developers with relevant APIs and patterns to program requests/responses in the novel programming environment.
Programmer Productivity Enhancement Through Controlled Natural Language Inputijseajournal
We have created CABERNET, a Controlled Nature Language (CNL) based approach to program creation. CABERNET allows programmers to use a simple outline-based syntax. This allows increased programmer efficiency and syntax flexibility. CNLs have successfully been used for writing requirements documents. We propose taking this approach well beyond this to fully functional programs. Through the use of heuristics and inference to analyze and determine the programmer’s intent we are able to create fully functional mobile applications. The goal is for programs to be aligned with the way that the humans think rather than the way computers process information. Through the use of templates a CABERNET application can be processed to run on multiple run time environments. Because processing of a CABERNET program file results in native application program performance is maintained.
Introduction to Software Engineering, Software Process, Perspective and Specialized Process Models – Introduction to Agility – Agile process – Extreme programming – XP process - Estimation-FP,LOC and COCOMO I and II,Risk Management, Project Scheduling.
Worst practices for domain-specific modellingMikhail Barash
Course "Domain-specific programming languages" (http://dsl-course.org). Developed by Mikhail Barash.
These slides are based on S. Kelly, R. Pohjonen, "Worst practices for domain-specific modelling", IEEE Software 26:4 (2009)
When, why and for whom do practitioners detect technical debts?: An experienc...Norihiro Yoshida
First International Workshop on Technical Debt Analytics (TDA 2016), in conjunction with the 23rd Asia-Pacific Software Engineering Conference (APSEC 2016), University of Waikato, Hamilton, New Zealand, 6th December 2016.
PROGRAMMING REQUESTS/RESPONSES WITH GREATFREE IN THE CLOUD ENVIRONMENTijdpsjournal
Programming request with GreatFree is an efficient programming technique to implement distributed polling in the cloud computing environment. GreatFree is a distributed programming environment through which diverse distributed systems can be established through programming rather than configuring or scripting. GreatFree emphasizes the importance of programming since it offers developers the opportunities to leverage their distributed knowledge and programming skills. Additionally, programming is the unique way to construct creative, adaptive and flexible systems to accommodate various distributed computing environments. With the support of GreatFree code-level Distributed Infrastructure Patterns, Distributed Operation Patterns and APIs, the difficult procedure is accomplished in a programmable, rapid and highly-patterned manner, i.e., the programming behaviors are simplified as the repeatable operation of Copy-Paste-Replace. Since distributed polling is one of the fundamental techniques to construct distributed systems, GreatFree provides developers with relevant APIs and patterns to program requests/responses in the novel programming environment.
This paper presents a vision on how the software development process could be a fully unified mechanized
process by getting benefits from the advances of Natural Language Processing and Program Synthesis
fields. The process begins from requirements written in natural language that is translated to sentences in
logical form. A program synthesizer gets those sentences in logical form (the translator's outcome) and
generates a source code. Finally, a compiler produces ready-to-run software. To find out how the building
blocks of our proposed approach works, we conducted an exploratory research on the literature in the
fields of Requirements Engineering, Natural Language Processing, and Program Synthesis. Currently, this
approach is difficult to accomplish in a fully automatic way due to the ambiguities inherent in natural
language, the reasoning context of the software, and the program synthesizer limitations in generating a
source code from logic.
Java-centered Translator-based Multi-paradigm Software Development EnvironmentWaqas Tariq
This research explores the use of a translator-based multi-paradigm programming method to develop high quality software. With Java as the target language, an integrated software development environment is built to allow different parts of software implemented in Lisp, Prolog, and Java respectively. Two open source translators named PrologCafe and Linj are used to translate Prolog and Lisp program into Java classes. In the end, the generated Java classes are compiled and linked into one executable program. To demonstrate the functionalities of this integrated multi-paradigm environment, a calculator application is developed. Our study has demonstrated that a centralized translator-based multi-paradigm software development environment has great potential for improving software quality and the productivity of software developers. The key to the successful adoption of this approach in large software development depends on the compatibility among the translators and seamless integration of generated codes.
Domain Specific Languages: An introduction (DSLs)Pedro Silva
Domain Specific Languages (DSLs) are special-purpose programming languages developed for a specific domain.
Some of its most interesting benefits include:
● increasing productivity
○ by reducing
■ the lines of code that have to be written manually
■ the number of coding errors
● (due to automatic domain restrictions)
● test generation
● formal verification
(Check my books at https://beacons.ai/tagido)
Introduction of A Lightweight Stage-Programming FrameworkYu Liu
The Lightweight Stage-Programming Framework introduced in this slides can be used for making efficient parallel DSL which can be transformed to MapReduce programs. To understand this slides, please firstly read http://www.slideshare.net/YuLiu19/a-generatetestaggregate-parallel-programming-library-on-spark.
Evaluation of meta modeling tools for domain specific modeling language chnjlPG Scholar
A Domain Specific Languages for modeling web pages and provide automatic code generation with a web-testing framework.
The whole process of Meta-modeling in the MetaEdit+ tool rotates around the Meta types represented together as GOPPRR’
Our technique are based on building abstractions of web pages and modeling state-machine-based test behavior using domain specific language
JUnit: A unit testing framework that is extensively used to test the code written in Java.
Unit testing is a type of software testing.
Software testing: The process of examining whether the software and its components meet the specified requirements
Other types of software testing are as shown.
Introducing Usability Concerns Early in the DSL Development Cycle: FlowSL Ex...Ankica Barisic
Domain-Specific Languages (DSLs) developers aim to narrow the gap between the level of abstraction used by domain users and the one provided by the DSL, in order to help taming the increased complexity of computer systems and real-world problems. The quality in use of a DSL is essential for its successful adoption. We illustrate how a usability evaluation process can be weaved into the development process of a concrete DSL - FlowSL - used for specifying humanitarian campaign processes lead by an international Non-Governmental Organization. FlowSL is being developed following an agile process using Model-Driven Development (MDD) tools, to cope with vague and poorly understood requirements at the beginning of the development process.
The Software developer occupational brief shows the level of detail that is required to demonstrate competency across the apprenticeship standard. This shows what apprentices should do for the what, how and with whom in order to achieve pass, merit and distinction grades.
This paper presents a vision on how the software development process could be a fully unified mechanized
process by getting benefits from the advances of Natural Language Processing and Program Synthesis
fields. The process begins from requirements written in natural language that is translated to sentences in
logical form. A program synthesizer gets those sentences in logical form (the translator's outcome) and
generates a source code. Finally, a compiler produces ready-to-run software. To find out how the building
blocks of our proposed approach works, we conducted an exploratory research on the literature in the
fields of Requirements Engineering, Natural Language Processing, and Program Synthesis. Currently, this
approach is difficult to accomplish in a fully automatic way due to the ambiguities inherent in natural
language, the reasoning context of the software, and the program synthesizer limitations in generating a
source code from logic.
Java-centered Translator-based Multi-paradigm Software Development EnvironmentWaqas Tariq
This research explores the use of a translator-based multi-paradigm programming method to develop high quality software. With Java as the target language, an integrated software development environment is built to allow different parts of software implemented in Lisp, Prolog, and Java respectively. Two open source translators named PrologCafe and Linj are used to translate Prolog and Lisp program into Java classes. In the end, the generated Java classes are compiled and linked into one executable program. To demonstrate the functionalities of this integrated multi-paradigm environment, a calculator application is developed. Our study has demonstrated that a centralized translator-based multi-paradigm software development environment has great potential for improving software quality and the productivity of software developers. The key to the successful adoption of this approach in large software development depends on the compatibility among the translators and seamless integration of generated codes.
Domain Specific Languages: An introduction (DSLs)Pedro Silva
Domain Specific Languages (DSLs) are special-purpose programming languages developed for a specific domain.
Some of its most interesting benefits include:
● increasing productivity
○ by reducing
■ the lines of code that have to be written manually
■ the number of coding errors
● (due to automatic domain restrictions)
● test generation
● formal verification
(Check my books at https://beacons.ai/tagido)
Introduction of A Lightweight Stage-Programming FrameworkYu Liu
The Lightweight Stage-Programming Framework introduced in this slides can be used for making efficient parallel DSL which can be transformed to MapReduce programs. To understand this slides, please firstly read http://www.slideshare.net/YuLiu19/a-generatetestaggregate-parallel-programming-library-on-spark.
Evaluation of meta modeling tools for domain specific modeling language chnjlPG Scholar
A Domain Specific Languages for modeling web pages and provide automatic code generation with a web-testing framework.
The whole process of Meta-modeling in the MetaEdit+ tool rotates around the Meta types represented together as GOPPRR’
Our technique are based on building abstractions of web pages and modeling state-machine-based test behavior using domain specific language
JUnit: A unit testing framework that is extensively used to test the code written in Java.
Unit testing is a type of software testing.
Software testing: The process of examining whether the software and its components meet the specified requirements
Other types of software testing are as shown.
Introducing Usability Concerns Early in the DSL Development Cycle: FlowSL Ex...Ankica Barisic
Domain-Specific Languages (DSLs) developers aim to narrow the gap between the level of abstraction used by domain users and the one provided by the DSL, in order to help taming the increased complexity of computer systems and real-world problems. The quality in use of a DSL is essential for its successful adoption. We illustrate how a usability evaluation process can be weaved into the development process of a concrete DSL - FlowSL - used for specifying humanitarian campaign processes lead by an international Non-Governmental Organization. FlowSL is being developed following an agile process using Model-Driven Development (MDD) tools, to cope with vague and poorly understood requirements at the beginning of the development process.
The Software developer occupational brief shows the level of detail that is required to demonstrate competency across the apprenticeship standard. This shows what apprentices should do for the what, how and with whom in order to achieve pass, merit and distinction grades.
Pair Programming with a Large Language ModelKnoldus Inc.
In this session we will Learn how LLMs can enhance, debug, and document our code. AI pair programming is being rapidly adopted by developers to help with tasks across the tech stack, from catching bugs to quickly inserting entire code snippets. We will learn how to use an LLM in pair programming to: Simplify and improve your code. Write test cases. Debug and refactor your code. Explain and document any complex code written in any coding language
🚀 *Unlock Your Potential in the Tech World! Explore Your Career Path Today!* 🚀
Are you ready to dive into the exciting realm of technology and shape your career in cutting-edge domains? 🌐📱💻 Whether you're a budding enthusiast or an experienced professional, there's a world of opportunities waiting for you in the fields of Android & Web Development, AI/ML, Cybersecurity, Data Science, PR & Marketing, Designing, Programming Languages and Data Structures.
🔹 *Android & Web Development*: Build the digital future by creating user-friendly apps and responsive websites.
🔹 *AI/ML Enthusiasts*: Join the revolution of Artificial Intelligence and Machine Learning, making computers smarter and more capable of human-like tasks.
🔹 *Cybersecurity Guardians*: Protect digital landscapes from evolving threats, safeguarding sensitive information and ensuring the integrity of systems.
🔹 *Data Science Pioneers*: Dive into data-driven insights, unravel patterns, and make strategic decisions that shape industries and innovations.
🔹 *PR & Marketing Maestros*: Craft compelling narratives, shape brand identities, and influence trends in the fast-paced world of tech communication.
🔹 *Creative Designers*: Fuse technology with artistry; create visually stunning interfaces, logos, and graphics that leave a lasting impact.
🔹 *Coding Champions*: Master programming languages and data structures to engineer solutions that solve real-world challenges.
🔹 *Cloud Computing* Innovators: Harness the power of the cloud, revolutionize accessibility, and drive seamless digital transformation.
Embark on a journey of continuous learning and growth with resources such as online courses, workshops, webinars, and mentorship programs. Your passion, combined with the right knowledge, can lead to a fulfilling career in these dynamic domains. 🌟
Ready to take the next step?
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis ut imperdiet enim. Donec lectus eros, luctus quis dapibus ac, posuere sed dolor. Sed id orci at sapien hendrerit adipiscing et at enim. Nam eu adipiscing mauris. Nulla aliquam nisl nec risus viverra elementum. Maecenas facilisis.
Software Development Simplified - A Beginner's Guide.pdfSeasiaInfotech2
Software development isn't a haphazard process. It adheres to a methodical process called the Software Development Life Cycle. The SDLC is a roadmap that outlines the various stages a software project goes through, starting from conception to include deployment and maintenance.
Similar to Usability evaluation of Domain-Specific Languages (20)
Biological screening of herbal drugs: Introduction and Need for
Phyto-Pharmacological Screening, New Strategies for evaluating
Natural Products, In vitro evaluation techniques for Antioxidants, Antimicrobial and Anticancer drugs. In vivo evaluation techniques
for Anti-inflammatory, Antiulcer, Anticancer, Wound healing, Antidiabetic, Hepatoprotective, Cardio protective, Diuretics and
Antifertility, Toxicity studies as per OECD guidelines
Embracing GenAI - A Strategic ImperativePeter Windle
Artificial Intelligence (AI) technologies such as Generative AI, Image Generators and Large Language Models have had a dramatic impact on teaching, learning and assessment over the past 18 months. The most immediate threat AI posed was to Academic Integrity with Higher Education Institutes (HEIs) focusing their efforts on combating the use of GenAI in assessment. Guidelines were developed for staff and students, policies put in place too. Innovative educators have forged paths in the use of Generative AI for teaching, learning and assessments leading to pockets of transformation springing up across HEIs, often with little or no top-down guidance, support or direction.
This Gasta posits a strategic approach to integrating AI into HEIs to prepare staff, students and the curriculum for an evolving world and workplace. We will highlight the advantages of working with these technologies beyond the realm of teaching, learning and assessment by considering prompt engineering skills, industry impact, curriculum changes, and the need for staff upskilling. In contrast, not engaging strategically with Generative AI poses risks, including falling behind peers, missed opportunities and failing to ensure our graduates remain employable. The rapid evolution of AI technologies necessitates a proactive and strategic approach if we are to remain relevant.
2024.06.01 Introducing a competency framework for languag learning materials ...Sandy Millin
http://sandymillin.wordpress.com/iateflwebinar2024
Published classroom materials form the basis of syllabuses, drive teacher professional development, and have a potentially huge influence on learners, teachers and education systems. All teachers also create their own materials, whether a few sentences on a blackboard, a highly-structured fully-realised online course, or anything in between. Despite this, the knowledge and skills needed to create effective language learning materials are rarely part of teacher training, and are mostly learnt by trial and error.
Knowledge and skills frameworks, generally called competency frameworks, for ELT teachers, trainers and managers have existed for a few years now. However, until I created one for my MA dissertation, there wasn’t one drawing together what we need to know and do to be able to effectively produce language learning materials.
This webinar will introduce you to my framework, highlighting the key competencies I identified from my research. It will also show how anybody involved in language teaching (any language, not just English!), teacher training, managing schools or developing language learning materials can benefit from using the framework.
A Strategic Approach: GenAI in EducationPeter Windle
Artificial Intelligence (AI) technologies such as Generative AI, Image Generators and Large Language Models have had a dramatic impact on teaching, learning and assessment over the past 18 months. The most immediate threat AI posed was to Academic Integrity with Higher Education Institutes (HEIs) focusing their efforts on combating the use of GenAI in assessment. Guidelines were developed for staff and students, policies put in place too. Innovative educators have forged paths in the use of Generative AI for teaching, learning and assessments leading to pockets of transformation springing up across HEIs, often with little or no top-down guidance, support or direction.
This Gasta posits a strategic approach to integrating AI into HEIs to prepare staff, students and the curriculum for an evolving world and workplace. We will highlight the advantages of working with these technologies beyond the realm of teaching, learning and assessment by considering prompt engineering skills, industry impact, curriculum changes, and the need for staff upskilling. In contrast, not engaging strategically with Generative AI poses risks, including falling behind peers, missed opportunities and failing to ensure our graduates remain employable. The rapid evolution of AI technologies necessitates a proactive and strategic approach if we are to remain relevant.
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...Levi Shapiro
Letter from the Congress of the United States regarding Anti-Semitism sent June 3rd to MIT President Sally Kornbluth, MIT Corp Chair, Mark Gorenberg
Dear Dr. Kornbluth and Mr. Gorenberg,
The US House of Representatives is deeply concerned by ongoing and pervasive acts of antisemitic
harassment and intimidation at the Massachusetts Institute of Technology (MIT). Failing to act decisively to ensure a safe learning environment for all students would be a grave dereliction of your responsibilities as President of MIT and Chair of the MIT Corporation.
This Congress will not stand idly by and allow an environment hostile to Jewish students to persist. The House believes that your institution is in violation of Title VI of the Civil Rights Act, and the inability or
unwillingness to rectify this violation through action requires accountability.
Postsecondary education is a unique opportunity for students to learn and have their ideas and beliefs challenged. However, universities receiving hundreds of millions of federal funds annually have denied
students that opportunity and have been hijacked to become venues for the promotion of terrorism, antisemitic harassment and intimidation, unlawful encampments, and in some cases, assaults and riots.
The House of Representatives will not countenance the use of federal funds to indoctrinate students into hateful, antisemitic, anti-American supporters of terrorism. Investigations into campus antisemitism by the Committee on Education and the Workforce and the Committee on Ways and Means have been expanded into a Congress-wide probe across all relevant jurisdictions to address this national crisis. The undersigned Committees will conduct oversight into the use of federal funds at MIT and its learning environment under authorities granted to each Committee.
• The Committee on Education and the Workforce has been investigating your institution since December 7, 2023. The Committee has broad jurisdiction over postsecondary education, including its compliance with Title VI of the Civil Rights Act, campus safety concerns over disruptions to the learning environment, and the awarding of federal student aid under the Higher Education Act.
• The Committee on Oversight and Accountability is investigating the sources of funding and other support flowing to groups espousing pro-Hamas propaganda and engaged in antisemitic harassment and intimidation of students. The Committee on Oversight and Accountability is the principal oversight committee of the US House of Representatives and has broad authority to investigate “any matter” at “any time” under House Rule X.
• The Committee on Ways and Means has been investigating several universities since November 15, 2023, when the Committee held a hearing entitled From Ivory Towers to Dark Corners: Investigating the Nexus Between Antisemitism, Tax-Exempt Universities, and Terror Financing. The Committee followed the hearing with letters to those institutions on January 10, 202
Instructions for Submissions thorugh G- Classroom.pptxJheel Barad
This presentation provides a briefing on how to upload submissions and documents in Google Classroom. It was prepared as part of an orientation for new Sainik School in-service teacher trainees. As a training officer, my goal is to ensure that you are comfortable and proficient with this essential tool for managing assignments and fostering student engagement.
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdfTechSoup
In this webinar you will learn how your organization can access TechSoup's wide variety of product discount and donation programs. From hardware to software, we'll give you a tour of the tools available to help your nonprofit with productivity, collaboration, financial management, donor tracking, security, and more.
Read| The latest issue of The Challenger is here! We are thrilled to announce that our school paper has qualified for the NATIONAL SCHOOLS PRESS CONFERENCE (NSPC) 2024. Thank you for your unwavering support and trust. Dive into the stories that made us stand out!
Introduction to AI for Nonprofits with Tapp NetworkTechSoup
Dive into the world of AI! Experts Jon Hill and Tareq Monaur will guide you through AI's role in enhancing nonprofit websites and basic marketing strategies, making it easy to understand and apply.
The French Revolution, which began in 1789, was a period of radical social and political upheaval in France. It marked the decline of absolute monarchies, the rise of secular and democratic republics, and the eventual rise of Napoleon Bonaparte. This revolutionary period is crucial in understanding the transition from feudalism to modernity in Europe.
For more information, visit-www.vavaclasses.com
Synthetic Fiber Construction in lab .pptxPavel ( NSTU)
Synthetic fiber production is a fascinating and complex field that blends chemistry, engineering, and environmental science. By understanding these aspects, students can gain a comprehensive view of synthetic fiber production, its impact on society and the environment, and the potential for future innovations. Synthetic fibers play a crucial role in modern society, impacting various aspects of daily life, industry, and the environment. ynthetic fibers are integral to modern life, offering a range of benefits from cost-effectiveness and versatility to innovative applications and performance characteristics. While they pose environmental challenges, ongoing research and development aim to create more sustainable and eco-friendly alternatives. Understanding the importance of synthetic fibers helps in appreciating their role in the economy, industry, and daily life, while also emphasizing the need for sustainable practices and innovation.
How to Make a Field invisible in Odoo 17Celine George
It is possible to hide or invisible some fields in odoo. Commonly using “invisible” attribute in the field definition to invisible the fields. This slide will show how to make a field invisible in odoo 17.
2. Systematic determination of a merit, worth and
significance of product
Criteria based on a set of standards
Degree of achievement
objectives v.s. results
Tailored to its context
Assessment of a product quality
Activities
CAPTURE – collecting data
ANALYSIS – interpreting data to identify problems
CRITIQUE – suggesting solutions or improvements to
mitigate problems
2
3. A language is a means of communication
The user interface is a realization of a language
A language is a model that describes the allowed
terms and how to compose them into valid sentences
3
4. General Purpose (programming) Languages (GPLs)
User has to master programming concepts
User has to master domain concepts
Domain Specific (modeling) Languages (DSLs)
Meant to close gap between PROBLEM DOMAIN and
SOLUTION DOMAIN
Reduce the use of computation domain concepts
Focus on the domain concepts
4
5. Verification
Did I build the thing right?
Is the right product functionality provided? (from
language engineer understanding)
Focus is on the language
Validation
Did I build the right thing?
Is end user satisfied with product?
Focus is NOT on the language’s users
Should this be the other way around?
5
6. Increasingly popular
Raise the abstraction level (closer to the domain)
Narrow the design space
Several benefits claimed, in well-defined domains
Productivity gains
Better time to market
Avoid error-prone mappings between domain and software
development concepts
Leverage the expertise of domain experts
6
8. The capability
of a software
product to
enable
specified users
to achieve
specified goals
with:
effectiveness,
productivity,
safety and
satisfaction
in specified
contexts of use
[ISO IEC 25010]
8
9. Dynamic, structured information space that includes the
following entities
a model of the
User
Different knowledge sets
Characteristics chosen are dependent on application domain
the hardware-software
set of computing, sensing, communication, and interaction
resources
e.g. operating systems, memory size, network bandwidth, input and
output interaction devices
the social and physical
Platform
Environment
Where the interaction is actually taking place
Different languages may have different contexts of use
Their users are likely to have different knowledge sets
A minimum set of ontological concepts is required to use the
language
9
10. The user's view of the Quality of a product
Measured in terms of the result of using the
product, rather than its properties
10
11. Formal evaluation
Models and simulations to predict measures of usability
Some can be used before a prototype is available
Automatic evaluation
Automated conformance checking to guidelines and standards
Requires at least a prototype, or an initial version of the full
implementation
Empirical evaluation
Possible at any development stage
Requires users
Formative methods (e.g. think aloud) vs. Summative methods (using
metrics)
Heuristic evaluation
Evaluation conducted by experts (often before userrs are involved)
Without scenarios: reviews, inspections
With scenarios (task based): walkthroughs
11
14. • To evaluate, or not to evaluate
•
(aka “Should we?”)
• Facts are facts, even when
portrayed by statistics
•
(aka “Do we?”)
• How do language engineers
evaluate languages?
•
(aka “How can we?”)
• Language evaluation forensics
•
(aka “Life in the trenches”)
Barišić, Amaral, Goulão, and Barroca:
‘Evaluating the Usability of DomainSpecific Languages’, (IGI Global, 2012)
14
15. DSL development is hard
Requires domain and language development expertise
Many DSL development techniques
which should we use?
Costfull
No systematic aproach
No awarness of Software Language Engineering process
Challenges
Development of training materials
Support
Standardization
Maintenance
15
16. Evaluating candidate DSL
Evaluating candidate DSL
• Building/adopting DSL
• Building/adopting DSL
• Developing evaluation and training
• Developing evaluation and training
materials
materials
• Training/Evaluation
• Training/Evaluation
• Establishing a baseline for
• Establishing a baseline for
comparing performance with the
comparing performance with the
DSL
DSL
Not evaluating candidate DSL
Not evaluating candidate DSL
• Inability to estimate return on
• Inability to estimate return on
investment in the adoption of the
investment in the adoption of the
DSL
DSL
• What is the break even point?
• What is the break even point?
• What is the DSL’s impact on the
• What is the DSL’s impact on the
process quality?
process quality?
• What is the DSL´s impact on the
• What is the DSL´s impact on the
product quality?
product quality?
16
17. Simply NOT true…
e.g. Language Level has been around, and widely used, since 1996
Language evaluation has been a concern for many decades. For
instance,
“…the tools we are trying to use and the language or notation we are
using to express or record our thoughts are the major factors
determining what we can think or express at all! The analysis of the
influence that programming languages have on the thinking habits of
their users … give[s] us a new collection of yardsticks for comparing
the relative merits of various programming languages.”
[Dijkstra 1972]
17
18. But how will I know
Is Perl better than
why Python is better
Python?
than Perl?
The dark side of
If once you start
code
But Code! Yes. Perl.
beware of A
maintainability are
You will know.
down the dark
Terse no... no.
No... syntax...
programmer's
path, forever codeit
When your will
they.
strength flows from
more than one way
Quicker, easier,
you try theyyour
Easily to read six
dominate flow,
more code
to seductive.
do it...
months from now.
destiny, consume
quick to join you
default variables.
maintainability.
when code you
you it will.
write.
http://www.netfunny.com/rhf/jokes/99/Nov/perl.html
18
19. Language Qualities
Clarity, simplicity, and unity of language concept
Clarity of program syntax
Naturalness for the application
Support for data abstraction
Ease of program verification
Programming environment
Portability of programs
Cost of program execution
Cost of program translation
Cost of program creation, testing, and use
Cost of program maintenance
[Pratt 1984]
19
20. Language and its documentation qualities
Completeness of definition
Independence from hardware
Modularization and support for abstraction
Smallness of size
Conciseness and clarity of description
Implementation qualities
Reliability
Compilation speed
Efficiency of code
Predictability of execution cost
Compactness of compiled code
Simple and effective interface to environment
[Wirth 1984]
20
21. Language design and implementation criteria
Is the language formally defined?
Is the language unambiguous?
Human factors criteria
Do programmers easily write correct, understandable code in
the language?
How easy is the language to learn?
Software Engineering criteria
Support for quality attributes such as portability, reliability,
maintainability...
Availability of good tools and experienced programmers
Application domain criteria
How well does the language support programming for specific
applications?
[Howatt 1995]
21
22. Project-specific criteria
Even within a domain, specific projects will have
specific requirements
Criteria should be defined within projects
Criteria should have an evaluation richer than just yes/no,
e.g. (criterium, satisfaction score, importance score)
Relevance
External constraints are also relevant, e.g.
Legacy code
Use what everybody else is using (should be good, right?)
Language availability
Contractual obligations
[Howatt 1995]
22
23. In general, software language engineers do not
evaluate their languages with respect to their impact
in the software development process in which the
DSLs will be integrated
Or, if they do, they are extremely shy about it…
[Gabriel 2010]
23
24. Is there a concrete and detailed evaluation model to
measure DSLs Usability?
Is the DSL community concerned about experimental
evaluation as a mechanism to prevent future
problems emerging from the proposed DSLs?
To what extent does the DSL community present
evidence that the developed DSLs are easy to use and
correspond to end-users needs?
[Gabriel 2010]
24
25. RQ1: Does the paper report the development of a DSL?
RQ2: Does the paper report the DSL development process
with some detail?
RQ3: Does the paper report any experimentation
conducted for the assessment of the DSL?
RQ4: Does the paper report the inclusion of end-users in
the assessment of a DSL?
RQ5: Does the paper report any sort of usability
evaluation?
[Gabriel 2010]
25
27. Few papers (14%) report any sort
of evaluation
Even those provide too few
details
Too much tacit knowledge:
virtually impossible to replicate
evaluations and perform metaanalysis
Predominance of toy examples
Unsubstantiated claims to the
merits of DSLs
Poor characterization of subjects
involved in validation
How representative are they of
real DSL users?
27
34. • Introduce DSLs’ Usability evaluation during DSLs’ life-cycle
•
•
•
•
iterations
Design an effective experimental evaluation of DSLs that will provide
qualitative and quantitative feedback for DSLs developers
Produce user-centered design of DSL
Foresee the Quality of a DSL while in an iterative evolution step
Merge the Software Language development process with the
Usability Engineering process
[Barisic, 2011a]
34
35. Barišić, Monteiro, Amaral, Goulão, Monteiro:
"Patterns for Evaluating Usability of Domain-Specific
Languages“, InProceedings of the 19th Conference on
pattern languages of programs (PLoP), SPLASH 2012
Tucson, Arizona, USA, October 2012
35
36. Barišić, Monteiro, Amaral, Goulão, Monteiro:
"Patterns for Evaluating Usability of Domain-Specific
Languages“, InProceedings of the 19th Conference on
pattern languages of programs (PLoP), SPLASH 2012
Tucson, Arizona, USA, October 2012
36
37. Barišić, Monteiro, Amaral, Goulão, Monteiro:
"Patterns for Evaluating Usability of Domain-Specific
Languages“, InProceedings of the 19th Conference on
pattern languages of programs (PLoP), SPLASH 2012
Tucson, Arizona, USA, October 2012
37
42. Two types of physicists (graduated students) involved
Informed programmers (Inf) – regular users of
programming languages and they are used to program
with the present analysis framework
Uninformed programmers (non-Inf) - regular users of
programming languages and they are not used to
program with the present analysis framework
[Barisic2011b]
42
43. Features we wanted to have evaluated:
query steps in Pheasant vs. C++/BEE
expressing
a decay
specification of filtering conditions
vertexing and the usage of user-defined
functions
aggregation
path expression (navigation queries)
expressing the result set
the expressiveness of user-defined functions
[Barisic2011b]
43
44. Our evaluation technique was tested with two individuals
(two physics experts) in order to verify it and to test the
teaching materials and questionnaires
As time constrants and equipment turn out to be adequat
there was no need to change prepared materials
[Barisic2011b]
44
45. RQ1:Is querying with Pheasant more effective than with C+
+/BEE?
RQ2:Is querying with Pheasant more efficient than with C+
+/BEE?
RQ3:Are participants querying with Pheasant more confident on
their performance than with C++/BEE?
Our goal is to:
analyze the performance of Pheasant programmers plug-ins
for the purpose of comparing it with a baseline alternative (C+
+/BEE)
with respect to the efficiency, effectiveness and confidence of
defying queries in Pheasant
from the point of view of a researcher trying to assess the Pheasant
DSL,
in the context of a case study on selected queries
[Barisic2011b]
45
46. H1null Using Pheasant vs. C++/BEE has no impact on the
effectiveness of querying the analysis framework
H1alt Using Pheasant vs. C++/BEE has a significant impact on
the effectiveness of querying the analysis framework
H2null Using Pheasant vs. C++/BEE has no impact on the
efficiency of querying the analysis framework
H2alt Using Pheasant vs. C++/BEE has a significant impact on
the efficiency of querying the analysis framework
H3null Using Pheasant vs. C++/BEE has no impact on the
confidence of querying the analysis framework
H3alt Using Pheasant vs. C++/BEE has a significant impact on
the confidence of querying the analysis framework
[Barisic2011b]
46
47. We focus on presenting six examples, each focusing in some of the
features we chose to evaluate
Participants are asked to give themselves a mark for feeling of
correctness of their trial
Session take the time needed for each group to understand the examples
[Barisic2011b]
47
48. Every participant has four queries, specified in
English, to be rewritten in previously learned
language
Subjects makes self-assessment of his replay rating
his feeling of correctness
Example:
Build the decay of a D0 particle to a Kaon Pion
[Barisic2011b]
48
49. Query solution in Pheasant
Query solution in C++/BEE
(pseudo code based on real code)
49
50. The participants were asked to judge the
intuitiveness, suitability and effectiveness of the query
language. The goal was to evaluate:
Overall reactions
Query language constructs
Affect to query language was rated by:
Query language constructs
Participants’ comments
[Barisic2011b]
50
51. Results obtained with Pheasant were clearly better then
those with C++/BEE
Pheasant allowed non-programmers to correctly define
their queries.
The evaluation also showed a considerable speedup in the
query definition by all the groups of users that were using
Pheasant
The feed-back obtained from the users was that it is more
comfortable to use Pheasant than with the alternative.
[Barisic2011b]
51
52. Results obtained with Pheasant were clearly better then
those with C++/BEE
Pheasant allowed non-programmers to correctly define
their queries.
The evaluation also showed a considerable speedup in the
query definition by all the groups of users that were using
Pheasant
The feed-back obtained from the users was that it is more
comfortable to use Pheasant than with the alternative.
[Barisic2011b]
52
58. Literature
[Mernik2005] M. Mernik, J. Heering, and A. M. Sloane: When and how to develop
domain-specific languages, 2005, ACM Computing Surveys
[Gabriel2010] Gabriel, P., Goulão, M. & Amaral, V. (2010). Do Software Languages
Engineers Evaluate their Languages? in XIII Congreso Iberoamericano en "Software
Engineering" (CIbSE'2010)
[Barisic2011a] Barišić, A., Amaral, V., Goulão, M., and Barroca, B.: ‘Quality in Use of DSLs:
Current Evaluation Methods’. Proc. 3rd INForum - Simpósio de Informática
(INForum2011), Coimbra, Portugal, September 2011
[Barisic2011b] Barišić, A., Amaral, V., Goulão, M., and Barroca, B.: ‘Quality in Use of
Domain Specific Languages: a Case Study’. Proc. Evaluation and Usability of Programming
Languages and Tools (PLATEAU) Portland, USA, October 2011
[Barisic2011c] Barišić, A., Amaral, V., Goulão, M., and Barroca, B.: ‘How to reach a usable
DSL? Moving toward a Systematic Evaluation’, Electronic Communications of the EASST,
2011
[Barisic2012] Barišić, A., Amaral, V., Goulão, M., and Barroca, B.: ‘Evaluating the Usability
of Domain-Specific Languages’, in Mernik, M. (Ed.): ‘Formal and Practical Aspects of
Domain-Specific Languages: Recent Developments’ (IGI Global, 2012)
[Barisic2013] Barišić, A: ‘Evaluating the Usability of Domain-Specific Languages’, in
Mernik, M. (Ed.): ‘Formal and Practical Aspects of Domain-Specific Languages: Recent
Developments’ (IGI Global, 2012)
58