The Infona portal uses cookies, i.e. strings of text saved by a browser on the user's device. The portal can access those files and use them to remember the user's data, such as their chosen settings (screen view, interface language, etc.), or their login data. By using the Infona portal the user accepts automatic saving and using this information for portal operation purposes. More information on the subject can be found in the Privacy Policy and Terms of Service. By closing this window the user confirms that they have read the information on cookie usage, and they accept the privacy policy and the way cookies are used by the portal. You can change the cookie settings in your browser.
This paper reports on an interview-based study of 18 authors of different chapters of the two-volume book "Architecture of Open-Source Applications". The main contributions are a synthesis of the process of authoring essay-style documents (ESDs) on software architecture, a series of observations on important factors that influence the content and presentation of architectural knowledge in...
Scalability is a major challenge for existing behavioral log analysis algorithms, which extract finite-state automaton models or temporal properties from logs generated by running systems. In this paper we present statistical log analysis, which addresses scalability using statistical tools. The key to our approach is to consider behavioral log analysis as a statistical experiment.Rather than analyzing...
This paper analyses the changes we have made in teaching agile methodologies, practices, and principles in four courses in order to address a specific dilemma: students need to apply agile methods in order to learn them, but when complementing our courses with applied content, we face the problem that students perceive the learning and application of agile methods as less important than delivering...
Software documentation is a very crucial resource for developers in understanding various aspects of software development process. A unique nature of such documentation is the presence of code elements embedded in natural-language texts that explain their purposes, usages and mutual relations with others. Some recent work has explored that nature for different purposes such as discovering code elements...
Over the past decade, major advancements in software development have occurred in the global context. Global software development (GSD) is an effective strategy, and many higher educational institutions have been offering GSD courses. These courses are usually organized together with another institution situated in a different location. However, conducting such a course with more than one institution...
Context: Software development is knowledge-intense work, and so is pair programming. However, the importance of knowledge transfer in pair programming is usually only stressed for expert-novice constellations. Goal: Understand how knowledge transfer during pair programming works and eventually provide guidance for practitioners. Method: Detailed qualitative data analysis of full-length recordings...
Context: Empirical investigations regarding using Agile programming methodologies in high schools are scarce in the literature. Objective: This paper evaluates (i) the performance, (ii) the code quality, and (iii) the satisfaction of both students and teachers in using Agile practices in education. Method: this study includes an experiment, administered in a laboratory controlled setting to measure...
The popular agile practice of continuous integration has become an essential part of the software development process in many companies, sometimes to the extent that delivery to customer is impossible without it. Due to this pivotal role it is an important field of research to better understand the practice: continuous integration system behavior, improvement identification and analysis of change...
In game development, software teams often conduct postmortems to reflect on what went well and what went wrong in a project. The postmortems are shared publicly on gaming sites or at developer conferences. In this paper, we present an analysis of 155 postmortems published on the gaming site Gamasutra.com. We identify characteristics of game development, link the characteristics to positive and negative...
There is a broad consensus that understanding software requirements is critical in designing a good software system. Software engineering research literature is rife with state of the art practices and techniques that are proposed to improve requirements engineering techniques. Also, creative approaches are used to determine system requirements in a better way. However, little empirical research has...
The software architecture is usually the first design artifact that addresses quality issues (e.g., performance, security). Also, the architecture is reference point for other development activities, e.g., coding and maintenance. Based on our experience teaching software engineering and architecture at different institutions and levels, we discuss what makes teaching software architecture difficult,...
Software development consists to a large extend of human-based processes with continuously increasing demands regarding interdisciplinary team work. Understanding the dynamics of software teams can be seen as highly important to successful project execution. Hence, for future project managers, knowledge about non-technical processes in teams is significant. In this paper, we present a course unit...
We propose a technique based on symbolic execution for analyzing the algorithmic complexity of programs. The technique uses an efficient guided analysis to compute bounds on the worst-case complexity (for increasing input sizes) and to generate test values that trigger the worst-case behaviors. The resulting bounds are fitted to a function to obtain a prediction of the worst-case program behavior...
Developers of performance sensitive production software are in a dilemma: performance regression tests are too costly to run at each commit, but skipping the tests delays and complicates performance regression detection. Ideally, developers would have a system that predicts whether a given commit is likely to impact performance and suggests which tests to run to detect a potential performance regression...
To perform software maintenance, developers must have a relatively good understanding of the program's source code, which is often written by other developers. Code summaries, which describe a program's entities (for example, its methods), help developers better comprehend code more quickly. However, generating code summaries can be challenging. To mitigate this problem, CrowdSummarizer exploits crowdsourcing,...
There exist several coverage-based approaches to reduce time and resource costs of test execution. While these methods are well-investigated and evaluated for smaller to medium-size projects, we faced several challenges in applying them in the context of a very large industrial software project, namely SAP HANA. These issues include: varying effectiveness of algorithms for test case selection/prioritization,...
Crowd-based requirements engineering (CrowdRE) could significantly change RE. Performing RE activities such as elicitation with the crowd of stakeholders turns RE into a participatory effort, leads to more accurate requirements, and ultimately boosts software quality. Although any stakeholder in the crowd can contribute, CrowdRE emphasizes one stakeholder group whose role is often trivialized: users...
In the context of use-case centric development and requirements-driven testing, this paper addresses the problem of automatically deriving system test cases to verify timing requirements. Inspired by engineering practice in an automotive software development context, we rely on an analyzable form of use case specifications and augment such functional descriptions with timed automata, capturing timing...
This paper presents an investigation into the changing nature of user involvement in Information System Development (ISD) projects. This analysis shows the representative papers that have been published on user involvement in ISD projects and identifies areas requiring further investigation and research. Considering different project contexts the need for a new approach where an ISD project is steeped...
This work aims to purpose the creation of a model to develop intelligent learning systems with self-regulated contents. Its main goal is to support self-oriented learning in workplace, to improve performance levels and skills. Our target is mainly software industries, where the novelty of knowledge and learning needs are critical success factors for the companies' competitiveness, and the learning...
Set the date range to filter the displayed results. You can set a starting date, ending date or both. You can enter the dates manually or choose them from the calendar.