3 research outputs found
Quantifying usability of domain-specific languages: An empirical study on software maintenance
A domain-specific language (DSL) aims to support software development by offering abstractions to a particular domain. It is expected that DSLs improve the maintainability of artifacts otherwise produced with general-purpose languages. However, the maintainability of the DSL artifacts and, hence, their adoption in mainstream development, is largely dependent on the usability of the language itself. Unfortunately, it is often hard to identify their usability strengths and weaknesses early, as there is no guidance on how to objectively reveal them. Usability is a multi-faceted quality characteristic, which is challenging to quantify beforehand by DSL stakeholders. There is even less support on how to quantitatively evaluate the usability of DSLs used in maintenance tasks. In this context, this paper reports a study to compare the usability of textual DSLs under the perspective of software maintenance. A usability measurement framework was developed based on the cognitive dimensions of notations. The framework was evaluated both qualitatively and quantitatively using two DSLs in the context of two evolving object-oriented systems. The results suggested that the proposed metrics were useful: (1) to early identify DSL usability limitations, (2) to reveal specific DSL features favoring maintenance tasks, and (3) to successfully analyze eight critical DSL usability dimensions.This work was funded by B. Cafeo CAPES PhD Scholarship, and CNPq scholarship grant number 141688/2013-0; A. Garcia FAPERJ - distinguished scientist grant (number E-26/102.211/2009), CNPq - productivity grants (number 305526/2009-0 and 308490/2012-6), Universal project grants (number 483882/2009-7 and 485348/2011-0), and PUC-Rio (productivity grant).info:eu-repo/semantics/publishedVersio
O impacto da animação e da avaliação automática na motivação para o ensino da programação
Tese de Doutoramento em InformáticaA aprendizagem da programação é uma tarefa complexa que coloca desafios importantes.
Nesta dissertação, propõem-se duas abordagens ao processo de ensino nas disciplinas de
Programação que visam aumentar a motivação dos alunos e a sua auto-estima.
As propostas apresentadas resultam de um estudo cuidado das dificuldades que os alunos
sentem ao contactar com a programação de computadores, quer a nível do raciocínio lógico
que é necessário para esquematizar a resolução de um qualquer problema, quer a nível da
compreensão da linguagem de programação que terá de ser usada para exprimir essa
resolução. Percebendo-se que a principal razão assenta na falta de motivação que resulta em
parte da falta de confiança e quebra da autoestima necessárias para ultrapassar os impasses,
procedeu-se também ao estudo dessa área da psicologia, conforme aqui se relata.
Identificados os problemas inerentes à motivação humana e às caraterísticas do processo de
resolução de problemas por computador, procuraram-se técnicas que tenham vindo a ser
propostas para ajudar os alunos na aquisição de conhecimentos de Programação. Conforme
se verifica ao longo do documento focou-se a atenção em duas estratégias: a capacidade do
sistema visual humano para rapidamente apreender conceitos e sobretudo processos; a
necessidade de os alunos receberem rápido feedback quando se aventuram a resolver
sozinhos um problema. No primeiro caso investigaram-se os sistemas de Animação de
Programas e no segundo caso os sistemas de Auto-avaliação de Programas. As duas
abordagens propostas baseiam-se precisamente numa combinação destas duas estratégias.
Dessas abordagens, uma foi alvo de experimentação em sala de aula para se poder aferir o
seu real impacto. A outra serviu de base para a proposta de uma plataforma Web para
suporte ao processo de ensino/aprendizagem da Programação; o sistema designado por PEP
chegou a ser prototipado, conforme é descrito. Para se poder avaliar a qualidade do PEP e até
guiar a implementação de uma versão final foram estudados sistemas de aferição de
qualidade de software para o ensino, com especial destaque para a framework QEF. Por fim ainda se estudou a importância de incluir no sistema de apoio ao ensino elementos
dos jogos que estimulam a motivação e ainda se propôs um enriquecimento do sistema PEP
através da inclusão de técnicas de ludificação ou gamificação.Learning programming is a complex task that raises important challenges. In this dissertation,
two approaches for teaching Programming courses are proposed aimed at increasing
students' motivation and their self-confidence/self-regulation .
The proposals presented came out after a deep study of the difficulties that students feel
when they are beginning a computer programming course, either at the level of the logical
reasoning that is necessary to sketch the resolution of a problem, or at the level of
understanding the programming language that has to be used to code this resolution.
Realizing that the main reason is based on the lack of motivation derived from the lack of
confidence and self-regulation necessary to overcome the troubles, the area of psychology
that studies motivation was also researched, as will be discussed in this dissertation. After
identifying the problems inherent to human motivation and the characteristics of the
computer problem solving process, techniques that have been proposed to help students on
learning programming were surveyed. This study was focussed on two strategies: the power
of human’s to quickly and easily grasp concepts from static or dynamic visualizations; the
positive impact of feedback returned to the students when they write a program on their
own. In the first case, Program Animation systems were investigated; and in the second case,
Automatic Program Evaluators were studied. The two approaches that outcame from this
Ph.D. work are precisely based on a combination of these two strategies. Experiments in the
classroom were drawn and conducted to validate the first approach. The second approach
inspired the design of a Web-based platform (PEP) to support the teaching / learning process
of Programming. A prototype of PEP, based on those guidelines and requirements, was
developed by a team of M.Sc. Students as will be described. In order to evaluate PEP’s quality,
and to guide its final implementation, software quality assessment systems were studied, with
special emphasis on QEF framework.
The importance of including, in the educational support systems, elements traditionally used
in the context of games to stimulate the motivation was studied and an enrichment of PEP
tool through the inclusion of techniques of gamification was still proposed
Visualization of domain-specific programs' behavior
Program domain concepts are rather complex and low level for a fast assimilation. On the other hand, problem domain concepts are closer to human's mind, hence they are easier to perceive. Based on Brook's theory, a full comprehension of a program is only achieved if both domains are connected and visualized in synchronization, resulting on an action-effect visualization.Domain-specific languages, as languages tailored for a specific class of problems, raise the abstraction of the program domain concepts and approximate them to the problem domain's. This way, a systematic approach can be used to perform the action-effect visualization of a program written in a domain-specific language. In this paper, we use a domain-specific language to exemplify how the concepts involved in both domains are visualized and how it is possible to map each problem domain situation (depicted by images) to the program domain operations