In this blog post we present some ideas that one can consider before conducting a qualitative survey to evaluate new software engineering tools and systems. These tips derive from our own surveys conducted on Android developers as part of my research in software engineering.
Software engineering recommendation systems assist developers so that they can almost automatically find: 1) code snippets that match their programs, 2) appropriate APIs and libraries, 3) bug fixes, and 4) code changes. These systems are particularly important because they can help developers to handle large amounts of information and write stable programs. In this post, we briefly categorize existing recommendation approaches and tools.
In software engineering the “big data” catchphrase refers to in-homogeneous large-scale data that can stem from all software development cycles. Such data can be: source code, software bugs and errors, system logs, commits, issues from backtracking systems, discussion threads from consulting sites (e.g. stackoverflow.com), emails from mailing-lists, as well as developers’ demographic data and characteristics and user requirements and reviews. Software engineering can benefit from the aforementioned data in many ways, but there are several challenges regarding the handling of such data.
Topic modeling is an Information Retrieval (IR) technique that discovers representative topics from a collection of documents. Thus, we expect that logically related words will co-exist in the same document more frequently than words from different topics. For example, in a document about the space, it is more possibly to find words such as: planet, satellite, universe, galaxy, and asteroid. Whereas, in a document about the wildlife, it is more likely to find words such as: ecosystem, species, animal, and plant, landscape. But why text classification is so useful? In this blog post, we try to explain the importance of topic modeling and its use in software engineering.
Most people maybe think that software engineers are only coders that develop and maintain applications, systems, and infrastructures. This is not false. But, software engineers are also responsible for the assessment and improvement of the source code itself, based on specific metrics and techniques. This post briefly discusses how software engineering can evaluate modern software systems.