When a person decides to inspect or modify a third-party software project, the first necessary step is its successful compilation from source code using a build system. However, such attempts often end in failure. In this data descriptor paper, we provide a dataset of build results of open source Java software systems. We tried to automatically build a large number of Java projects from GitHub using their Maven, Gradle, and Ant build scripts in a Docker container simulating a standard programmer’s environment. The dataset consists of the output of two executions: 7264 build logs from a study executed in 2016 and 7233 logs from the 2020 execution. In addition to the logs, we collected exit codes, file counts, and various project metadata. The proportion of failed builds in our dataset is 38% in the 2016 execution and 59% in the 2020 execution. The published data can be helpful for multiple purposes, such as correlation analysis of factors affecting build success, build failure prediction, and research in the area of build breakage repair.
User experience (UX) is an area of both research and software development, which deals the creation of human-friendly user interfaces. It is closely related to human-computer interaction (HCI) and usability. Teaching UX is often a difficult challenge for many educators. UX design is an intercultural, interdisciplinary, cross-field experience and requires extensive knowledge in multiple fields and the ability to awake creativity in our students. To force IT students used to program every day to talk with the customer and speak the user's language is often hard to achieve. This paper describes my experience from designing and teaching a UX related subject. When creating the content of the subject “User Interfaces of Software Systems”, available research and teaching literature was used. In this paper, I contrast the subject with the knowledge from practice. Several useful techniques to support student motivation and engagement are also provided.
1 January 2015 in Computer Science and Information Systems
Model-driven software development is surrounded by numerous myths and misunderstandings that hamper its adoption. For long, our students were victims of these myths and considered MDSD impractical and only applied in academy. In this paper we discuss these myths and present our experience with devising an MDSD course that challenges them and motivates students to understand MDSD principles. The main contribution of this work is a set of MDSD teaching guidelines that can make the course pragmatic in the eyes of students - programmers. These guidelines introduce MDSD from the viewpoint of a programmer as a pragmatic tool for solving concrete problems in the development process. In our MDSD course we implemented the presented guidelines. The course shows several techniques and principles of model-driven development in multiple incremental iterations instead of concentrating on a single tool. At the same time we unite these techniques by using a dynamic visualisation tool that shows to the students the whole infrastructure in the big picture. The course is implemented as an iterative incremental MDSD case study. The paper concludes with a survey performed with our students that indicates positive results of the approach.