3 research outputs found

    Quantifying usability of domain-specific languages: An empirical study on software maintenance

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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
    corecore