41 research outputs found
Understanding the Relations Between Iterative Cycles in Software Engineering
Iterations are one of the most successful mechanisms in software development to ensure that the resulting system is satisfactory. Due to its strengths, various kinds of iterations have been integrated to software development with varying goals. In this paper, we consider different types of iterations related to software development, including prototyping, incremental development, sprints as in e.g. Scrum, and iterations as defined in Lean Startup. The goal is to understand the relations between the types of iterations, and to find out what kind of similarities and differences they have with each other. As a result, we find that while the goals are different, it is possible for the iterations to coexist, so that one form of iteration is used as a tool to complete the goals of another
Towards Liquid Web Applications
Abstract. As the complexity of rich Web applications grows together with the power and number of Web browsers, the next Web engineering challenge to be addressed is to design and deploy Web applications to make coherent use of all devices. As users nowadays operate multiple personal computers, smart phones, tablets, and computing devices embedded into home appliances or cars, the architecture of current Web applications needs to be redesigned to enable what we call Liquid Software. Liquid Web applications not only can take full advantage of the computing, storage and communication resources available on all devices owned by the end user, but also can seamlessly and dynamically migrate from one device to another continuously following the user attention and usage context. In this paper we address the Liquid Software concept in the context of Web applications and survey to which extent and how current Web technologies can support its novel requirements
Test Case Selection with Incremental ML
Context: Software projects applying continuous integration should run the tests very frequently, but often the number of test is huge and their execution takes a long time. This delays the feedback to the developer. Objective: Study if heuristic and especially incremental machine learning can help in finding an optimal test set that still finds the errors. Method: Several methods for reducing the tests were tested. Each method was applied to the example software its commit history, and the performance of the methods were compared. Results: The test set size can be radically reduced with automatic approaches. Furthermore, it was found that the incremental machine learning based test selection techniques eventually perform equally well or better than the best heuristic.Peer reviewe
Practices for Supervising Master's Theses in Company Context : An Anti-Pattern Approach
Software Engineering (SE) university students often work part-time during their studies. In this setup the students can reform the practices of companies by transferring what they have learned to companies and correspondingly utilize what they have experienced at work in their studies. This symbiosis often continues as the students begin to work towards their thesis. The topic of the thesis relates to the problems in the company. These topics often solve a practical problem, which are not always in a perfect match with academic expectations. On the one hand the employer has certain expectations in terms of working for the company, whereas the supervising professor needs to follow the university guidelines. In this paper, we study this tension by focusing on the problems appearing in MSc thesis process in company context. We propose ways to act so that the different stakeholders - the student, the professor, and the company - reach the best possible results. We have analyzed the problems and their root causes. We have also taken the first steps toward anti-patterns for analysis and salvaging of the problems. The study is based on the authors' collective supervision experience, which covers over 1000 MSc theses, with the combined supervision experience of over 100 years.acceptedVersionPeer reviewe
Objectives and Challenges of the Utilization of User-Interaction Data in Software Development
Peer reviewe
Autonomous Agents in Software Development: A Vision Paper
Large Language Models (LLM) and Generative Pre-trained Transformers (GPT),
are reshaping the field of Software Engineering (SE). They enable innovative
methods for executing many software engineering tasks, including automated code
generation, debugging, maintenance, etc. However, only a limited number of
existing works have thoroughly explored the potential of GPT agents in SE. This
vision paper inquires about the role of GPT-based agents in SE. Our vision is
to leverage the capabilities of multiple GPT agents to contribute to SE tasks
and to propose an initial road map for future work. We argue that multiple GPT
agents can perform creative and demanding tasks far beyond coding and
debugging. GPT agents can also do project planning, requirements engineering,
and software design. These can be done through high-level descriptions given by
the human developer. We have shown in our initial experimental analysis for
simple software (e.g., Snake Game, Tic-Tac-Toe, Notepad) that multiple GPT
agents can produce high-quality code and document it carefully. We argue that
it shows a promise of unforeseen efficiency and will dramatically reduce
lead-times. To this end, we intend to expand our efforts to understand how we
can scale these autonomous capabilities further.Comment: 5 pages, 1 figur