05 Fakultät Informatik, Elektrotechnik und Informationstechnik

Permanent URI for this collectionhttps://elib.uni-stuttgart.de/handle/11682/6

Browse

Search Results

Now showing 1 - 10 of 37
  • Thumbnail Image
    ItemOpen Access
    Software Repositories Mining von Issue Tasks und Coupled File Changes
    (2017) Alakus, Deniz
    Versionsverwaltungssysteme wie Git sind eine große Hilfe bei der Entwicklung von komplexen Softwaresystemen. Issue-Tracker, die neben den Software Repositories verwaltet werden, tragen ebenfalls dazu bei. Die Software Repositories enthalten neben der Entwicklungs-Historie einer Software auch weitere auf den ersten Blick nicht offensichtliche Daten und Muster. Mit Hilfe von Software Repository Mining lassen sich diese aus Software Repositories extrahieren. In dieser Diplomarbeit wurde ein Tool entwickelt und evaluiert, mit der aus Software Repositories und Issue-Tasks Coupled Changes, also Dateien die häufig gemeinsam geändert wurden, extrahiert und angezeigt werden können.
  • Thumbnail Image
    ItemOpen Access
    Individual characteristics of successful coding challengers
    (2017) Wyrich, Marvin
    Assessing a software engineer's problem-solving ability to algorithmic programming tasks has been an essential part of technical interviews at some of the most successful technology companies for several years now. Despite the adoption of coding challenges among these companies, we do not know what influences the performance of different software engineers in solving such coding challenges. We conducted an exploratory study with software engineering students to find hypothesis on what individual characteristics make a good coding challenge solver. Our findings show that the better coding challengers have also better exam grades and more programming experience. Furthermore, conscientious as well as sad software engineers performed worse in our study.
  • Thumbnail Image
    ItemOpen Access
    Mining Java packages for developer profiles : an exploratory study
    (2017) Ramadani, Jasmin; Wagner, Stefan
  • Thumbnail Image
    ItemOpen Access
    Einsatz von Machine-Learning-Methoden zur adaptiven Darstellung von Software-Metriken
    (2017) Hermann, Matthias
    Auf manchen SonarQube-Instanzen wird die verfügbare Fläche der Webseite nicht effizient genutzt und große Teile der Seite enthalten Leerflächen. Damit diese Flächen genutzt werden können, um genau die Informationen darzustellen, weswegen der Benutzer die Webseite aufgerufen hat, wurde im Rahmen dieser Arbeit mit DeepSonar eine adaptive Benutzeroberfläche für die Codeanalyse-Plattform SonarQube entwickelt. Diese erlernt mittels Machine-Learning die für den aktuellen Benutzer und Nutzungskontext relevantesten Informationen, d. h. die aus einer Programmcodeanalyse resultierenden Software-Metriken. Anhand der Ergebnisse des Machine-Learnings wird die Weboberfläche von SonarQube angepasst, sodass diese Metriken in der davor ungenutzten Fläche auf der Startseite angezeigt werden.
  • Thumbnail Image
    ItemOpen Access
    Automated root cause isolation in performance regression testing
    (2017) Vogel, Sebastian
    Testing of software is an important aspect of software development. There exist multiple kinds of tests, like unit tests and integration tests. The tests this thesis will focus on will be load tests, which are used to observe a system’s behavior under load. The presented approach will use these load tests in order to observe and analyze the performance of a system, like e.g. the response times of methods. Next these observations are compared with those made on other versions of the system, in order to detect performance regressions, deteriorations in performance, between versions. Another goal of the approach will be to identify the root cause of the regressions, which is the source code change responsible for introducing them. By doing this, the task of fixing this problem will be made easier for the software engineer, since he has an entry point for the problem.
  • Thumbnail Image
    ItemOpen Access
    Classification of cryptographic libraries
    (2017) Poppele, Andreas; Eichler, Rebecca; Jäger, Roland
    Software developers today are faced with choosing cryptographic libraries in order to implement security concepts. There is a large variety of cryptographic libraries for diverse programming languages, without there being a standardized conception of different properties of these cryptographic libraries. This report provides a classification of over 700 cryptographic libraries. The libraries were chosen pertaining to currentness and popularity. In order to provide a standardized overview the most important traits and characteristics of these libraries were gathered and defined. Data collection on these characteristics was performed in a manual as well as automated fashion. The classification contains information that will help experienced and inexperienced developers in the cryptographic field to choose a library that fits their abilities. Furthermore, it may be used as a basis for studies concerning any form of improvement of these libraries and many more.
  • Thumbnail Image
    ItemOpen Access
    Qualitätsanalyse von Studienprojekten anhand von Quellcode-Repositories
    (2017) Kersjes, Benedikt
    An vielen Hochschulen werden studentische Softwareentwicklungsprojekte als Teil der akademischen Ausbildung in Studiengängen wie Informatik oder Softwaretechnik durchgeführt. Auch an der Universität Stuttgart und insbesondere am Fraunhofer IAO werden im Bachelorstudiengang Softwaretechnik Studienprojekte durchgeführt. Da das Institut die Studienprojekte als Grundlage ihrer weiteren Forschungstätigkeit verwendet, besteht ein Interesse, dass in den Projekten qualitativ hochwertige Software entsteht. In dieser Arbeit wurde die Qualität von sechs Studienprojekten anhand ihres Quellcodes analysiert, die in den letzten Jahren am Fraunhofer IAO durchgeführt wurden. Darüber hinaus wurde eine Analyse der Repositories durchgeführt und eine Befragung der Betreuer vorgenommen, um mögliche Einflussfaktoren auf die Qualität der Projekte zu ermitteln. Hierzu wurde ein Werkzeug entwickelt, das die Analyse automatisiert durchführt und verwendet werden kann, um zukünftige Projekte am Institut nach der gleichen Methodik auszuwerten. Die Analysen ergaben, dass die gleichmäßige Verteilung der Arbeit über das Projekt, die Teilnehmerzahl, die Qualifikation der Betreuer und die Verwendung von Drittanbieter-Bibliotheken einen hohen Einfluss auf die Qualität der untersuchten Projekte hatten. Aus diesen Erkenntnissen wurden Handlungsempfehlungen für die Betreuung und Durchführung zukünftiger Studienprojekte am Fraunhofer IAO abgeleitet.
  • Thumbnail Image
    ItemOpen Access
    Änderungstolerante Serialisierung großer Datensätze für mehrsprachige Programmanalysen
    (2017) Felden, Timm; Plödereder, Erhard (Prof. Dr.)
  • Thumbnail Image
    ItemOpen Access
    Analysing and improving the crypto ecosystem of Rust
    (2017) Keck, Philipp
    Context: Rust is an emerging systems programming language that suits security-critical applications because it guarantees memory safety without a garbage collector. Its growing ecosystem already encompasses several crypto libraries, though the competition is still open. Previous cryptography research found that vulnerabilities are often due to misunderstandings and misuse of cryptographic APIs rather than bugs in the libraries themselves. Aim: This thesis presents a holistic analysis of Rust's current crypto ecosystem and aims to improve its further development. A particular focus is on API design because all libraries are still open to change their APIs and it will become increasingly difficult to change them later. Method: All parts of the ecosystem are systematically analysed, guided by the general structure of a crypto ecosystem. Research methods include a systematic search for libraries, a survey among contributors, GitHub analyses as well as a self-experiment and a controlled experiment to test the usability. Results: The contributors are typical open source developers and they collaborate in typical ways on GitHub. Most libraries have a clear main developer and there is a general lack of contributors. While two of the major libraries focus on usability and are consequently easier to use and more resistant to misuse, the two most widespread libraries consciously neglect these topics and exhibit flaws known from crypto libraries in other languages. Conclusion: The misuse resistant Rust crypto libraries should be advertised more actively. In the medium term, an officially endorsed API could improve interoperability and foster competition. For such an API and for the improvement of existing APIs, the thesis discusses a number of design decisions and their usability implications.
  • Thumbnail Image
    ItemOpen Access
    Leveraging continuous integration in space avionics - a design using declarative build automation paradigm
    (2017) Ramakrishnan, Ganesh Ayalur
    There are several benefits when Continuous Integration (CI) is adopted for a software development project. This provides for a mechanism to reduce the burden on developers during the build and test of the developed software, as well as help release the product on-time. Other benefits include capturing errors quite early in the development cycle, easier integration at defined intervals over the course of software development, and faster, comprehensive feedback to developers. However, in an embedded domain, adopting CI is a challenging activity. If the project size and complexity is high, there will be a large number of activities which need to be covered in the CI workflow. Not all tools used in software development provide seamless interfaces to the CI tool. There is a need to design the interface framework which can quickly grow to be complex and time consuming. An effective CI workflow follows a set of best practices. Build automation is one of them. The existing literature does not provide comprehensive information to address the effect that the build automation tools have on the design and implementation of a CI framework in an embedded avionics domain. Tools like GNU Make and Apache Ant are primarily used for the build and test stages of development. However, these build tools are imperative in nature. As the build logic increases in complexity, the conciseness of build scripts reduces. The build runtimes should also not be large as the feedback cycle time would be longer. This study aims to design a CI workflow for a space satellite On-Board Software(OBSW) development project. The objective is to bring out the limitations and challenges of using a conventional imperative build approach during the set-up of a CI framework for the project. The proposal is to adopt a build tool which is based on declarative build paradigms and provide for mechanisms to easily integrate with CI tools. This study is carried out as an action research (AR) with study results expressed as quantitative or qualitative metrics. A prototypical CI chain is implemented with a Jenkins CI server and Gradle as the primary build tool. Parameters such as performance, maintenance complexity of build logic, and features such as integration to a CI tool, reproducible builds are investigated.